Unify getting terrain under drawbridge
This commit is contained in:
@@ -222,6 +222,7 @@ E boolean FDECL(is_lava, (int,int));
|
||||
E boolean FDECL(is_pool_or_lava, (int,int));
|
||||
E boolean FDECL(is_ice, (int,int));
|
||||
E boolean FDECL(is_moat, (int,int));
|
||||
E schar FDECL(db_under_typ, (int));
|
||||
E int FDECL(is_drawbridge_wall, (int,int));
|
||||
E boolean FDECL(is_db_wall, (int,int));
|
||||
E boolean FDECL(find_drawbridge, (int *,int*));
|
||||
|
||||
@@ -103,6 +103,18 @@ int x, y;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
schar
|
||||
db_under_typ(mask)
|
||||
int mask;
|
||||
{
|
||||
switch (mask & DB_UNDER) {
|
||||
case DB_ICE: return ICE; break;
|
||||
case DB_LAVA: return LAVAPOOL; break;
|
||||
case DB_MOAT: return MOAT; break;
|
||||
default: return STONE; break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* We want to know whether a wall (or a door) is the portcullis (passageway)
|
||||
* of an eventual drawbridge.
|
||||
|
||||
@@ -2207,12 +2207,7 @@ recalc_mapseen()
|
||||
if (cansee(x, y) || (x == u.ux && y == u.uy && !Levitation)) {
|
||||
ltyp = levl[x][y].typ;
|
||||
if (ltyp == DRAWBRIDGE_UP)
|
||||
switch (levl[x][y].drawbridgemask & DB_UNDER) {
|
||||
case DB_ICE: ltyp = ICE; break;
|
||||
case DB_LAVA: ltyp = LAVAPOOL; break;
|
||||
case DB_MOAT: ltyp = MOAT; break;
|
||||
default: ltyp = STONE; break;
|
||||
}
|
||||
ltyp = db_under_typ(levl[x][y].drawbridgemask);
|
||||
if ((mtmp = m_at(x, y)) != 0 &&
|
||||
mtmp->m_ap_type == M_AP_FURNITURE && canseemon(mtmp))
|
||||
ltyp = cmap_to_type(mtmp->mappearance);
|
||||
|
||||
@@ -1157,12 +1157,7 @@ xchar x,y;
|
||||
lev = &levl[x][y];
|
||||
ltyp = lev->typ;
|
||||
if (ltyp == DRAWBRIDGE_UP)
|
||||
switch (lev->drawbridgemask & DB_UNDER) {
|
||||
case DB_ICE: ltyp = ICE; break;
|
||||
case DB_LAVA: ltyp = LAVAPOOL; break;
|
||||
case DB_MOAT: ltyp = MOAT; break;
|
||||
default: ltyp = STONE; break;
|
||||
}
|
||||
ltyp = db_under_typ(lev->drawbridgemask);
|
||||
|
||||
if (ltyp == LAVAPOOL)
|
||||
return "lava";
|
||||
|
||||
@@ -1305,15 +1305,10 @@ register int x, y;
|
||||
{
|
||||
int levtyp = levl[x][y].typ;
|
||||
|
||||
if (levtyp == DRAWBRIDGE_UP) {
|
||||
/* use underlying terrain in front of closed drawbridge */
|
||||
switch (levl[x][y].drawbridgemask & DB_UNDER) {
|
||||
case DB_MOAT: levtyp = MOAT; break;
|
||||
case DB_LAVA: levtyp = LAVAPOOL; break;
|
||||
case DB_ICE: levtyp = ICE; break;
|
||||
case DB_FLOOR: levtyp = ROOM; break;
|
||||
}
|
||||
}
|
||||
/* use underlying terrain in front of closed drawbridge */
|
||||
if (levtyp == DRAWBRIDGE_UP)
|
||||
levtyp = db_under_typ(levl[x][y].drawbridgemask);
|
||||
|
||||
return (boolean)(ACCESSIBLE(levtyp) && !closed_door(x, y));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user