G:::G:LIT
W:2
K:DESTROYED:GRASS
-F:LOS | PROJECT | MOVE | PLACE | DROP | REMEMBER | CAN_FLY | PLANT |
+F:LOS | PROJECT | MOVE | PLACE | DROP | FLOOR | REMEMBER | CAN_FLY | PLANT |
F:HURT_DISI | TELEPORTABLE
N:94:BRAKE
G:::g:LIT
W:2
K:DESTROYED:GRASS
-F:LOS | PROJECT | MOVE | PLACE | DROP | REMEMBER | CAN_FLY | PLANT |
+F:LOS | PROJECT | MOVE | PLACE | DROP | FLOOR | REMEMBER | CAN_FLY | PLANT |
F:HURT_DISI | TELEPORTABLE
N:95:MUSEUM
E:swamp
G:.:B:LIT
W:2
-F:LOS | PROJECT | MOVE | PLACE | DROP | REMEMBER | WATER | SHALLOW | CAN_FLY |
+F:LOS | PROJECT | MOVE | PLACE | DROP | FLOOR | REMEMBER | WATER | SHALLOW | CAN_FLY |
F:CAN_SWIM | TELEPORTABLE
N:195:MIRROR
* Line 4 -- forbid normal objects
*/
#define cave_clean_bold(Y,X) \
- (have_flag(f_flags_bold((Y), (X)), FF_DROP) && \
- !have_flag(f_flags_bold((Y), (X)), FF_PERMANENT) && \
+ (have_flag(f_flags_bold((Y), (X)), FF_FLOOR) && \
!(cave[Y][X].info & CAVE_OBJECT) && \
(cave[Y][X].o_idx == 0))
* Line 8 -- forbid the player
*/
#define cave_naked_bold(Y,X) \
- (have_flag(f_flags_bold((Y), (X)), FF_PROJECT) && \
- have_flag(f_flags_bold((Y), (X)), FF_DROP) && \
- !have_flag(f_flags_bold((Y), (X)), FF_DOOR) && \
- !have_flag(f_flags_bold((Y), (X)), FF_PERMANENT) && \
- !(cave[Y][X].info & CAVE_OBJECT) && \
- !(cave[Y][X].o_idx) && \
+ (cave_clean_bold(Y,X) && \
!(cave[Y][X].m_idx) && \
!player_bold(Y,X))
/* Shallow Lava */
if (dam == 1)
{
- /* Require a "naked" floor grid */
- if (!cave_naked_bold(y, x)) break;
+ /* Ignore permanent grid */
+ if (cave_perma_bold(y, x)) break;
+
+ /* Ignore grid without enough space */
+ if (!have_flag(f_flags_bold(y, x), FF_FLOOR)) break;
/* Place a shallow lava */
cave_set_feat(y, x, FEAT_SHAL_LAVA);
/* Deep Lava */
else if (dam)
{
- /* Require a "naked" floor grid */
+ /* Ignore permanent grid */
if (cave_perma_bold(y, x)) break;
/* Place a deep lava */
/* Shallow Water */
if (dam == 1)
{
- /* Require a "naked" floor grid */
- if (!cave_naked_bold(y, x)) break;
+ /* Ignore permanent grid */
+ if (cave_perma_bold(y, x)) break;
+
+ /* Ignore grid without enough space */
+ if (!have_flag(f_flags_bold(y, x), FF_FLOOR)) break;
/* Place a shallow lava */
cave_set_feat(y, x, FEAT_SHAL_WATER);
/* Deep Water */
else if (dam)
{
- /* Require a "naked" floor grid */
+ /* Ignore permanent grid */
if (cave_perma_bold(y, x)) break;
/* Place a deep lava */