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