Fix iron bars dissolving turning floor into doorway

This commit is contained in:
Pasi Kallinen
2023-11-04 13:41:12 +02:00
parent 738c2239c9
commit 2bb7239867
2 changed files with 4 additions and 10 deletions

View File

@@ -1964,8 +1964,9 @@ can_hide_under_obj(struct obj *obj)
void
dissolve_bars(coordxy x, coordxy y)
{
levl[x][y].typ = (Is_special(&u.uz) || *in_rooms(x, y, 0)) ? ROOM : CORR;
levl[x][y].flags = 0;
levl[x][y].typ = (levl[x][y].edge == 1) ? DOOR
: (Is_special(&u.uz) || *in_rooms(x, y, 0)) ? ROOM : CORR;
levl[x][y].flags = 0; /* doormask = D_NODOOR */
newsym(x, y);
if (u_at(x, y))
switch_terrain();

View File

@@ -5159,18 +5159,11 @@ zap_over_floor(
rangemod -= 3;
if (see_it)
Norep("The %s melt.", defsyms[S_bars].explanation);
dissolve_bars(x, y);
if (*in_rooms(x, y, SHOPBASE)) {
/* in case we ever have a shop bounded by bars */
lev->typ = ROOM, lev->flags = 0;
if (see_it)
newsym(x, y);
add_damage(x, y, (type >= 0) ? SHOP_BARS_COST : 0L);
if (type >= 0)
*shopdamage = TRUE;
} else {
lev->typ = DOOR, lev->doormask = D_NODOOR;
if (see_it)
newsym(x, y);
}
}
}