From 7da6f4d08a904428520b7d0edd8069c86d8fae91 Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Mon, 24 Sep 2018 08:13:48 +0200 Subject: [PATCH] Clean up PM_DoDeath (#317) * Clean up PM_DoDeath * Add enum for dFlags --- Source/automap.cpp | 2 +- Source/cursor.cpp | 32 +++++++++++----------- Source/debug.cpp | 4 +-- Source/diablo.cpp | 4 +-- Source/drlg_l2.cpp | 8 +++--- Source/drlg_l3.cpp | 2 +- Source/drlg_l4.cpp | 6 ++--- Source/gendung.cpp | 12 ++++----- Source/items.cpp | 2 +- Source/lighting.cpp | 14 +++++----- Source/loadsave.cpp | 4 +-- Source/missiles.cpp | 8 +++--- Source/monster.cpp | 51 +++++++++++++++++------------------ Source/msg.cpp | 2 +- Source/multi.cpp | 2 +- Source/objects.cpp | 6 ++--- Source/player.cpp | 65 +++++++++++++++++++++------------------------ Source/portal.cpp | 2 +- Source/scrollrt.cpp | 52 ++++++++++++++++++------------------ Source/themes.cpp | 4 +-- Source/town.cpp | 24 ++++++++--------- Source/trigs.cpp | 2 +- enums.h | 12 +++++++++ 23 files changed, 164 insertions(+), 156 deletions(-) diff --git a/Source/automap.cpp b/Source/automap.cpp index 335d4f630..32df4e00f 100644 --- a/Source/automap.cpp +++ b/Source/automap.cpp @@ -111,7 +111,7 @@ void __cdecl InitAutomap() v15 = 112; do { - *v14 &= 0x7Fu; + *v14 &= ~DFLAG_EXPLORED; v14 += 112; --v15; } diff --git a/Source/cursor.cpp b/Source/cursor.cpp index 045399b79..9512a1b30 100644 --- a/Source/cursor.cpp +++ b/Source/cursor.cpp @@ -843,7 +843,7 @@ LABEL_223: pcursplr = v52; } } - if ( dFlags[0][v27 + v8] & 4 ) + if ( dFlags[0][v27 + v8] & DFLAG_DEAD_PLAYER ) { v53 = 0; v54 = &plr[0].WorldY; @@ -870,7 +870,7 @@ LABEL_223: v55 = v8 - 1; do { - if ( v77[v80] & 4 ) + if ( v77[v80] & DFLAG_DEAD_PLAYER ) { v82 = 0; v56 = &plr[0].WorldY; @@ -1047,7 +1047,7 @@ LABEL_296: v15 = dMonster[1][v14 + 2]; if ( !v15 ) goto LABEL_74; - v16 = (dFlags[1][v12 + 2] & 0x40) == 0; + v16 = (dFlags[1][v12 + 2] & DFLAG_LIT) == 0; } else { @@ -1055,7 +1055,7 @@ LABEL_296: v15 = dMonster[2][v14 + 1]; if ( !v15 ) goto LABEL_74; - v16 = (dFlags[2][v12 + 1] & 0x40) == 0; + v16 = (dFlags[2][v12 + 1] & DFLAG_LIT) == 0; } if ( !v16 ) { @@ -1072,7 +1072,7 @@ LABEL_296: } LABEL_74: v18 = dMonster[2][v14 + 2]; - if ( v18 && dFlags[2][v81 + 2] & 0x40 ) + if ( v18 && dFlags[2][v81 + 2] & DFLAG_LIT ) { v19 = v18 <= 0 ? -1 - v18 : v18 - 1; if ( v19 == dword_4B8CCC @@ -1088,7 +1088,7 @@ LABEL_74: if ( v83 ) { v22 = dMonster[0][v14 + 1]; - if ( v22 && dFlags[0][v81 + 1] & 0x40 ) + if ( v22 && dFlags[0][v81 + 1] & DFLAG_LIT ) { v21 = v22 <= 0 ? -1 - v22 : v22 - 1; if ( v21 == dword_4B8CCC @@ -1104,7 +1104,7 @@ LABEL_74: else { v20 = dMonster[1][v14]; - if ( v20 && dFlags[1][v81] & 0x40 ) + if ( v20 && dFlags[1][v81] & DFLAG_LIT ) { v21 = v20 <= 0 ? -1 - v20 : v20 - 1; if ( v21 == dword_4B8CCC @@ -1122,7 +1122,7 @@ LABEL_102: } LABEL_103: v23 = dMonster[0][v14]; - if ( v23 && dFlags[0][v81] & 0x40 ) + if ( v23 && dFlags[0][v81] & DFLAG_LIT ) { v24 = v23 <= 0 ? -1 - v23 : v23 - 1; if ( v24 == dword_4B8CCC @@ -1136,7 +1136,7 @@ LABEL_103: } } v25 = dMonster[1][v14 + 1]; - if ( v25 && dFlags[1][v81 + 1] & 0x40 ) + if ( v25 && dFlags[1][v81 + 1] & DFLAG_LIT ) { v26 = v25 <= 0 ? -1 - v25 : v25 - 1; if ( v26 == dword_4B8CCC @@ -1174,7 +1174,7 @@ LABEL_128: { v28 = v27 + v8; v32 = dMonster[1][v28 + 2]; - if ( v32 && dFlags[1][v27 + 2 + v8] & 0x40 ) + if ( v32 && dFlags[1][v27 + 2 + v8] & DFLAG_LIT ) { v30 = v32 <= 0 ? -1 - v32 : v32 - 1; if ( (signed int)(monster[v30]._mhitpoints & 0xFFFFFFC0) > 0 && monster[v30].MData->mSelFlag & 4 ) @@ -1189,7 +1189,7 @@ LABEL_128: { v28 = v27 + v8; v29 = dMonster[2][v28 + 1]; - if ( v29 && dFlags[2][v27 + 1 + v8] & 0x40 ) + if ( v29 && dFlags[2][v27 + 1 + v8] & DFLAG_LIT ) { v30 = v29 <= 0 ? -1 - v29 : v29 - 1; if ( (signed int)(monster[v30]._mhitpoints & 0xFFFFFFC0) > 0 && monster[v30].MData->mSelFlag & 4 ) @@ -1205,7 +1205,7 @@ LABEL_145: } LABEL_146: v33 = dMonster[2][v28 + 2]; - if ( v33 && dFlags[2][v27 + 2 + v8] & 0x40 ) + if ( v33 && dFlags[2][v27 + 2 + v8] & DFLAG_LIT ) { v34 = v33 <= 0 ? -1 - v33 : v33 - 1; if ( (signed int)(monster[v34]._mhitpoints & 0xFFFFFFC0) > 0 && monster[v34].MData->mSelFlag & 4 ) @@ -1218,7 +1218,7 @@ LABEL_146: if ( v83 ) { v37 = dMonster[0][v28 + 1]; - if ( v37 && dFlags[0][v27 + 1 + v8] & 0x40 ) + if ( v37 && dFlags[0][v27 + 1 + v8] & DFLAG_LIT ) { v36 = v37 <= 0 ? -1 - v37 : v37 - 1; if ( (signed int)(monster[v36]._mhitpoints & 0xFFFFFFC0) > 0 && monster[v36].MData->mSelFlag & 2 ) @@ -1232,7 +1232,7 @@ LABEL_146: else { v35 = dMonster[1][v28]; - if ( v35 && dFlags[1][v27 + v8] & 0x40 ) + if ( v35 && dFlags[1][v27 + v8] & DFLAG_LIT ) { v36 = v35 <= 0 ? -1 - v35 : v35 - 1; if ( (signed int)(monster[v36]._mhitpoints & 0xFFFFFFC0) > 0 && monster[v36].MData->mSelFlag & 2 ) @@ -1247,7 +1247,7 @@ LABEL_171: } LABEL_172: v38 = dMonster[0][v28]; - if ( v38 && dFlags[0][v27 + v8] & 0x40 ) + if ( v38 && dFlags[0][v27 + v8] & DFLAG_LIT ) { v39 = v38 <= 0 ? -1 - v38 : v38 - 1; if ( (signed int)(monster[v39]._mhitpoints & 0xFFFFFFC0) > 0 && monster[v39].MData->mSelFlag & 1 ) @@ -1258,7 +1258,7 @@ LABEL_172: } } v40 = dMonster[1][v28 + 1]; - if ( v40 && dFlags[1][v27 + 1 + v8] & 0x40 ) + if ( v40 && dFlags[1][v27 + 1 + v8] & DFLAG_LIT ) { v41 = v40 <= 0 ? -1 - v40 : v40 - 1; if ( (signed int)(monster[v41]._mhitpoints & 0xFFFFFFC0) > 0 && monster[v41].MData->mSelFlag & 2 ) diff --git a/Source/debug.cpp b/Source/debug.cpp index 022cac0e1..6f8b2fd47 100644 --- a/Source/debug.cpp +++ b/Source/debug.cpp @@ -36,8 +36,8 @@ void __cdecl CheckDungeonClear() if ( dPlayer[i][j] ) TermMsg("Players not cleared"); - dMonsDbg[currlevel][i][j] = dFlags[i][j] & 2; - dFlagDbg[currlevel][i][j] = dFlags[i][j] & 8; + dMonsDbg[currlevel][i][j] = dFlags[i][j] & DFLAG_VISIBLE; + dFlagDbg[currlevel][i][j] = dFlags[i][j] & DFLAG_POPULATED; } } } diff --git a/Source/diablo.cpp b/Source/diablo.cpp index 3710b12c2..b4f851a34 100644 --- a/Source/diablo.cpp +++ b/Source/diablo.cpp @@ -2047,7 +2047,7 @@ LABEL_55: for(i = 0; i < 112; i++) { for(j = 0; j < 112; j++) - dFlags[i][j] |= 0x40; + dFlags[i][j] |= DFLAG_LIT; } InitTowners(); @@ -2113,7 +2113,7 @@ LABEL_72: if ( plr[i].plractive && plr[i].plrlevel == currlevel && (!plr[i]._pLvlChanging || i == myplr) ) { if ( plr[i]._pHitPoints <= 0 ) - dFlags[plr[i].WorldX][plr[i].WorldY] |= 4; + dFlags[plr[i].WorldX][plr[i].WorldY] |= DFLAG_DEAD_PLAYER; else if ( gbMaxPlayers == 1 ) dPlayer[plr[i].WorldX][plr[i].WorldY] = i + 1; else diff --git a/Source/drlg_l2.cpp b/Source/drlg_l2.cpp index b315ec856..c4795cb2c 100644 --- a/Source/drlg_l2.cpp +++ b/Source/drlg_l2.cpp @@ -468,7 +468,7 @@ void __fastcall LoadL2Dungeon(char *sFileName, int vx, int vy) v14 = *v12; if ( *v12 ) { - dflags[0][v13] |= 0x80u; + dflags[0][v13] |= DFLAG_EXPLORED; dungeon[0][v13] = v14; } else @@ -717,7 +717,7 @@ void __fastcall LoadPreL2Dungeon(char *sFileName, int vx, int vy) v12 = *v10; if ( *v10 ) { - dflags[0][v11] |= 0x80u; + dflags[0][v11] |= DFLAG_EXPLORED; dungeon[0][v11] = v12; } else @@ -1582,7 +1582,7 @@ void __fastcall DRLG_L2SetRoom(int rx1, int ry1) v5 = *v7; if ( *v7 ) { - dflags[0][v4] |= 0x80u; + dflags[0][v4] |= DFLAG_EXPLORED; dungeon[0][v4] = v5; } else @@ -2014,7 +2014,7 @@ void __fastcall DefineRoom(int nX1, int nY1, int nX2, int nY2, int ForceHW) i = nY2; do { - *ForceHWa |= 0x80u; + *ForceHWa |= DFLAG_EXPLORED; v9 = v14-- == 1; ForceHWa += 40; } diff --git a/Source/drlg_l3.cpp b/Source/drlg_l3.cpp index 6abec8832..4c0d8fed0 100644 --- a/Source/drlg_l3.cpp +++ b/Source/drlg_l3.cpp @@ -267,7 +267,7 @@ int __cdecl DRLG_L3Anvil() v11 = L3ANVIL[v7]; if ( v11 ) dungeon[0][v9] = v11; - dflags[0][v9] |= 0x80u; + dflags[0][v9] |= DFLAG_EXPLORED; ++v7; v9 += 40; --v10; diff --git a/Source/drlg_l4.cpp b/Source/drlg_l4.cpp index 8c646d782..6759f744c 100644 --- a/Source/drlg_l4.cpp +++ b/Source/drlg_l4.cpp @@ -352,7 +352,7 @@ void __fastcall DRLG_L4SetSPRoom(int rx1, int ry1) v5 = *v7; if ( *v7 ) { - dflags[0][v4] |= 0x80u; + dflags[0][v4] |= DFLAG_EXPLORED; dungeon[0][v4] = v5; } else @@ -451,7 +451,7 @@ void __fastcall DRLG_L4SetRoom(unsigned char *pSetPiece, int rx1, int ry1) v7 = *v5; if ( *v5 ) { - dflags[0][v6] |= 0x80u; + dflags[0][v6] |= DFLAG_EXPLORED; dungeon[0][v6] = v7; } else @@ -2963,7 +2963,7 @@ bool __fastcall DRLG_L4PlaceMiniSet(const unsigned char *miniset, int tmin, int v21 = v23[j]; if ( v21 ) { - dflags[0][v20] |= 8u; + dflags[0][v20] |= DFLAG_POPULATED; dungeon[0][v20] = v21; } ++j; diff --git a/Source/gendung.cpp b/Source/gendung.cpp index f43ad3754..043955a07 100644 --- a/Source/gendung.cpp +++ b/Source/gendung.cpp @@ -834,7 +834,7 @@ void __cdecl DRLG_SetPC() v6 = &dFlags[v3][v0 + i]; do { - *v6 |= 8u; + *v6 |= DFLAG_POPULATED; v6 += 112; --v5; } @@ -867,7 +867,7 @@ void __fastcall Make_SetPC(int x, int y, int w, int h) v9 = &dFlags[v6][wa + i]; do { - *v9 |= 8u; + *v9 |= DFLAG_POPULATED; v9 += 112; --v8; } @@ -1379,10 +1379,10 @@ void __cdecl DRLG_HoldThemeRooms() { v6 = v3 + v4; v4 += 224; - dFlags[0][v6] |= 8u; - dFlags[1][v6] |= 8u; - dFlags[0][v6 + 1] |= 8u; - dFlags[1][v6 + 1] |= 8u; + dFlags[0][v6] |= DFLAG_POPULATED; + dFlags[1][v6] |= DFLAG_POPULATED; + dFlags[0][v6 + 1] |= DFLAG_POPULATED; + dFlags[1][v6 + 1] |= DFLAG_POPULATED; --v5; } while ( v5 ); diff --git a/Source/items.cpp b/Source/items.cpp index 6e8166884..caf7bb5d5 100644 --- a/Source/items.cpp +++ b/Source/items.cpp @@ -658,7 +658,7 @@ bool __fastcall ItemPlace(int xp, int yp) v2 = xp; v3 = v2 * 112 + yp; - if ( dMonster[0][v3] || dPlayer[v2][yp] || dItem[v2][yp] || dObject[v2][yp] || dFlags[v2][yp] & 8 ) + if ( dMonster[0][v3] || dPlayer[v2][yp] || dItem[v2][yp] || dObject[v2][yp] || dFlags[v2][yp] & DFLAG_POPULATED ) result = 0; else result = nSolidTable[dPiece[0][v3]] == 0; diff --git a/Source/lighting.cpp b/Source/lighting.cpp index a9749e4c9..5ca692ea9 100644 --- a/Source/lighting.cpp +++ b/Source/lighting.cpp @@ -835,7 +835,7 @@ void __fastcall DoUnVision(int nXPos, int nYPos, int nRadius) do { for ( j = y1; j < y2; ++j ) - v7[j] &= 0xBDu; + v7[j] &= ~(DFLAG_VISIBLE | DFLAG_LIT); v7 += 112; --i; } @@ -886,11 +886,11 @@ void __fastcall DoVision(int nXPos, int nYPos, int nRadius, unsigned char doauto nYPos = v28; nXPos = v29; } - *v5 |= 0x80u; + *v5 |= DFLAG_EXPLORED; } if ( visible ) - dFlags[nXPos][nYPos] |= 0x40u; - dFlags[nXPos][nYPos] |= 2u; + dFlags[nXPos][nYPos] |= DFLAG_LIT; + dFlags[nXPos][nYPos] |= DFLAG_VISIBLE; } v27 = 0; v6 = doautomap; @@ -982,11 +982,11 @@ void __fastcall DoVision(int nXPos, int nYPos, int nRadius, unsigned char doauto v16 = v7 + 112 * v6; v8 = v19; } - dFlags[0][v16] |= 0x80u; + dFlags[0][v16] |= DFLAG_EXPLORED; } if ( visible ) - dFlags[0][v16] |= 0x40u; - dFlags[0][v16] |= 2u; + dFlags[0][v16] |= DFLAG_LIT; + dFlags[0][v16] |= DFLAG_VISIBLE; if ( !v21 ) { v17 = dung_map[0][v16]; diff --git a/Source/loadsave.cpp b/Source/loadsave.cpp index 770460acf..449745879 100644 --- a/Source/loadsave.cpp +++ b/Source/loadsave.cpp @@ -713,7 +713,7 @@ void __cdecl SaveGame() v47 = 112; do { - BSave(*v23 & 0xF8); + BSave(*v23 & (DFLAG_POPULATED | DFLAG_MONSTER | DFLAG_PLAYER | DFLAG_LIT | DFLAG_EXPLORED)); v23 += 112; --v47; } @@ -1045,7 +1045,7 @@ void __cdecl SaveLevel() { for(j = 0; j < 112; j++) { - BSave(dFlags[j][i] & 0xF8); + BSave(dFlags[j][i] & (DFLAG_POPULATED | DFLAG_MONSTER | DFLAG_PLAYER | DFLAG_LIT | DFLAG_EXPLORED)); } } diff --git a/Source/missiles.cpp b/Source/missiles.cpp index 0545c8aab..244c4c6df 100644 --- a/Source/missiles.cpp +++ b/Source/missiles.cpp @@ -1131,7 +1131,7 @@ void __fastcall PutMissile(int i) if ( !missile[v1]._miDelFlag ) { v4 = v3 + 112 * v2; - dFlags[0][v4] |= 1u; + dFlags[0][v4] |= DFLAG_MISSILE; v5 = (unsigned char *)dMissile + v4; if ( *v5 ) *v5 = -1; @@ -2337,7 +2337,7 @@ void __cdecl InitMissiles() v8 = 112; do { - *v7 &= 0xFEu; + *v7 &= ~DFLAG_MISSILE; v7 += 112; --v8; } @@ -7368,7 +7368,7 @@ void __cdecl ProcessMissiles() for ( i = 0; i < v0; dMissile[0][v2] = 0 ) { v2 = 112 * missile[missileactive[i]]._mix + missile[missileactive[i]]._miy; - dFlags[0][v2] &= 0xFEu; + dFlags[0][v2] &= ~DFLAG_MISSILE; ++i; } v3 = 0; @@ -7490,6 +7490,6 @@ void __cdecl missiles_process_charge() void __fastcall ClearMissileSpot(int mi) { - dFlags[missile[mi]._mix][missile[mi]._miy] &= 0xFE; + dFlags[missile[mi]._mix][missile[mi]._miy] &= ~DFLAG_MISSILE; dMissile[missile[mi]._mix][missile[mi]._miy] = 0; } diff --git a/Source/monster.cpp b/Source/monster.cpp index ff6a00da3..a78f29122 100644 --- a/Source/monster.cpp +++ b/Source/monster.cpp @@ -833,8 +833,8 @@ void __cdecl ClrAllMonsters() BOOL __fastcall MonstPlace(int xp, int yp) { - if ( xp < 0 || xp >= 112 - || yp < 0 || yp >= 112 + if ( xp < 0 || xp >= MAXDUNX + || yp < 0 || yp >= MAXDUNY || dMonster[xp][yp] || dPlayer[xp][yp] ) { @@ -843,13 +843,12 @@ BOOL __fastcall MonstPlace(int xp, int yp) char f = dFlags[xp][yp]; - // TODO: Add enum values here - if ( f & 2 ) + if ( f & DFLAG_VISIBLE ) { return FALSE; } - if ( f & 8 ) + if ( f & DFLAG_POPULATED ) { return FALSE; } @@ -2053,7 +2052,7 @@ void __fastcall M_StartWalk3(int i, int xvel, int yvel, int xoff, int yoff, int monster[v10]._moldy = monster[v10]._my; monster[v10]._mfutx = a6a; monster[v10]._mxvel = v17; - dFlags[v13][v14] |= 0x10u; + dFlags[v13][v14] |= DFLAG_MONSTER; v16 = monster[v10].MType; monster[v10]._myvel = yvel; monster[v10]._mfuty = a7a; @@ -2245,9 +2244,9 @@ void __fastcall M_ClearSquares(int i) while ( v4 <= v2 + 1 ); } if ( v1 + 1 < 112 ) - dFlags[v1 + 1][v2] &= 0xEFu; + dFlags[v1 + 1][v2] &= ~DFLAG_MONSTER; if ( v5 < 112 ) - dFlags[v1][v2 + 1] &= 0xEFu; + dFlags[v1][v2 + 1] &= ~DFLAG_MONSTER; } void __fastcall M_GetKnockback(int i) @@ -2998,7 +2997,7 @@ int __fastcall M_DoWalk3(int i) v7 = monster[v2]._mVar1; monster[v2]._mx = v7; v8 = &dFlags[monster[v2]._mVar4][v6]; - *v8 &= 0xEFu; + *v8 &= ~DFLAG_MONSTER; v9 = monster[v2]._uniqtype == 0; dMonster[0][v4 + 112 * v7] = v1 + 1; if ( !v9 ) @@ -4485,7 +4484,7 @@ void __fastcall MAI_Zombie(int i) if ( v3->_mmode == MM_STAND ) { v4 = v3->_my; - if ( dFlags[v3->_mx][v4] & 2 ) + if ( dFlags[v3->_mx][v4] & DFLAG_VISIBLE ) { v5 = v3->_mx - (unsigned char)v3->_menemyx; v6 = v4 - (unsigned char)v3->_menemyy; @@ -6836,13 +6835,13 @@ void __fastcall MAI_Garbud(int i) v5 = monster[v2].mtalkmsg; if ( v5 < (signed int)QUEST_GARBUD4 && v5 >(signed int)QUEST_DOOM10 - && !(dFlags[v4][v3] & 2) + && !(dFlags[v4][v3] & DFLAG_VISIBLE) && _LOBYTE(monster[v2]._mgoal) == 7 ) { _LOBYTE(monster[v2]._mgoal) = 6; monster[v2].mtalkmsg = v5 + 1; } - if ( dFlags[v4][v3] & 2 ) + if ( dFlags[v4][v3] & DFLAG_VISIBLE ) { if ( monster[v2].mtalkmsg == QUEST_GARBUD4 ) { @@ -6888,12 +6887,12 @@ void __fastcall MAI_Zhar(int i) v3 = monster[v2]._my; v4 = monster[v2]._mx; v11 = M_GetDir(v1); - if ( monster[v2].mtalkmsg == QUEST_ZHAR1 && !(dFlags[v4][v3] & 2) && _LOBYTE(monster[v2]._mgoal) == 7 ) + if ( monster[v2].mtalkmsg == QUEST_ZHAR1 && !(dFlags[v4][v3] & DFLAG_VISIBLE) && _LOBYTE(monster[v2]._mgoal) == 7 ) { monster[v2].mtalkmsg = QUEST_ZHAR2; _LOBYTE(monster[v2]._mgoal) = 6; } - if ( dFlags[v4][v3] & 2 ) + if ( dFlags[v4][v3] & DFLAG_VISIBLE ) { v5 = monster[v2]._mx - (unsigned char)monster[v2]._menemyx; v6 = monster[v2]._my - (unsigned char)monster[v2]._menemyy; @@ -6943,7 +6942,7 @@ void __fastcall MAI_SnotSpil(int i) v3 = monster[v2]._my; v4 = monster[v2]._mx; v5 = M_GetDir(v1); - if ( monster[v2].mtalkmsg == QUEST_BANNER10 && !(dFlags[v4][v3] & 2) && _LOBYTE(monster[v2]._mgoal) == 7 ) + if ( monster[v2].mtalkmsg == QUEST_BANNER10 && !(dFlags[v4][v3] & DFLAG_VISIBLE) && _LOBYTE(monster[v2]._mgoal) == 7 ) { monster[v2].mtalkmsg = QUEST_BANNER11; _LOBYTE(monster[v2]._mgoal) = 6; @@ -6953,7 +6952,7 @@ void __fastcall MAI_SnotSpil(int i) monster[v2].mtalkmsg = 0; _LOBYTE(monster[v2]._mgoal) = 1; } - if ( dFlags[v4][v3] & 2 ) + if ( dFlags[v4][v3] & DFLAG_VISIBLE ) { if ( monster[v2].mtalkmsg == QUEST_BANNER12 ) { @@ -7005,7 +7004,7 @@ void __fastcall MAI_Lazurus(int i) v3 = monster[v2]._my; v4 = monster[v2]._mx; v5 = M_GetDir(v1); - if ( dFlags[v4][v3] & 2 ) + if ( dFlags[v4][v3] & DFLAG_VISIBLE ) { if ( gbMaxPlayers != 1 ) goto LABEL_29; @@ -7071,7 +7070,7 @@ void __fastcall MAI_Lazhelp(int i) v3 = monster[v2]._my; v4 = monster[v2]._mx; v5 = M_GetDir(ia); - if ( dFlags[v4][v3] & 2 ) + if ( dFlags[v4][v3] & DFLAG_VISIBLE ) { if ( gbMaxPlayers == 1 ) { @@ -7112,12 +7111,12 @@ void __fastcall MAI_Lachdanan(int i) v3 = monster[v2]._my; v4 = monster[v2]._mx; v6 = M_GetDir(v1); - if ( monster[v2].mtalkmsg == QUEST_VEIL9 && !(dFlags[v4][v3] & 2) && _LOBYTE(monster[v2]._mgoal) == 7 ) + if ( monster[v2].mtalkmsg == QUEST_VEIL9 && !(dFlags[v4][v3] & DFLAG_VISIBLE) && _LOBYTE(monster[v2]._mgoal) == 7 ) { monster[v2].mtalkmsg = QUEST_VEIL10; _LOBYTE(monster[v2]._mgoal) = 6; } - if ( dFlags[v4][v3] & 2 ) + if ( dFlags[v4][v3] & DFLAG_VISIBLE ) { if ( monster[v2].mtalkmsg == QUEST_VEIL11 ) { @@ -7157,7 +7156,7 @@ void __fastcall MAI_Warlord(int i) v3 = monster[v2]._my; v4 = monster[v2]._mx; v5 = M_GetDir(v1); - if ( dFlags[v4][v3] & 2 && monster[v2].mtalkmsg == QUEST_WARLRD9 ) + if ( dFlags[v4][v3] & DFLAG_VISIBLE && monster[v2].mtalkmsg == QUEST_WARLRD9 ) { if ( _LOBYTE(monster[v2]._mgoal) == 6 ) monster[v2]._mmode = MM_TALK; @@ -7270,7 +7269,7 @@ void __cdecl ProcessMonsters() } } v4 = &dFlags[monster[v1]._mx][monster[v1]._my]; - if ( *v4 & 2 && !monster[v1]._msquelch && monster[v1].MType->mtype == MT_CLEAVER ) + if ( *v4 & DFLAG_VISIBLE && !monster[v1]._msquelch && monster[v1].MType->mtype == MT_CLEAVER ) PlaySFX(USFX_CLEAVER); if ( monster[v1]._mFlags & 0x10 ) { @@ -7291,7 +7290,7 @@ void __cdecl ProcessMonsters() if ( v9 >= MAX_PLRS ) TermMsg("Illegal enemy player %d for monster \"%s\"", v9, monster[v1].mName); v10 = monster[v1]._menemy; - v11 = (*v4 & 2) == 0; + v11 = (*v4 & DFLAG_VISIBLE) == 0; v12 = (char *)&plr[v10]._px; v13 = (char *)&plr[v10]._py; monster[v1]._menemyx = *v12; @@ -7499,7 +7498,7 @@ bool __fastcall DirOK(int i, int mdir) { if ( !SolidLoc(v6, v7 + 1) ) { - v8 = (dFlags[v6][v7 + 1] & 0x10) == 0; + v8 = (dFlags[v6][v7 + 1] & DFLAG_MONSTER) == 0; goto LABEL_18; } return 0; @@ -7508,7 +7507,7 @@ bool __fastcall DirOK(int i, int mdir) { if ( SolidLoc(v6 + 1, v7) ) return 0; - v8 = (dFlags[v6 + 1][v7] & 0x10) == 0; + v8 = (dFlags[v6 + 1][v7] & DFLAG_MONSTER) == 0; } else { @@ -7591,7 +7590,7 @@ LABEL_24: BOOL __fastcall PosOkMissile(int x, int y) { - return !nMissileTable[dPiece[x][y]] && !(dFlags[x][y] & 0x10); + return !nMissileTable[dPiece[x][y]] && !(dFlags[x][y] & DFLAG_MONSTER); } BOOL __fastcall CheckNoSolid(int x, int y) diff --git a/Source/msg.cpp b/Source/msg.cpp index f1b7adf7b..bab29fdd2 100644 --- a/Source/msg.cpp +++ b/Source/msg.cpp @@ -3478,7 +3478,7 @@ int __fastcall On_PLAYER_JOINLEVEL(struct TCmdLocParam1 *pCmd, int pnum) plr[v4]._pVar8 = 2 * v8; v10 = plr[v4].WorldX; plr[v4]._pAnimFrame = v9; - dFlags[v10][plr[v4].WorldY] |= 4u; + dFlags[v10][plr[v4].WorldY] |= DFLAG_DEAD_PLAYER; } else { diff --git a/Source/multi.cpp b/Source/multi.cpp index fdba5e6f4..a4f503816 100644 --- a/Source/multi.cpp +++ b/Source/multi.cpp @@ -1142,7 +1142,7 @@ void __fastcall multi_player_joins(int pnum, TCmdPlrInfoHdr *cmd, int a3) plr[v6]._pVar8 = 2 * v11; v13 = plr[v6].WorldX; plr[v6]._pAnimFrame = v12; - dFlags[v13][plr[v6].WorldY] |= 4u; + dFlags[v13][plr[v6].WorldY] |= DFLAG_DEAD_PLAYER; } else { diff --git a/Source/objects.cpp b/Source/objects.cpp index c7e718732..27e0f3566 100644 --- a/Source/objects.cpp +++ b/Source/objects.cpp @@ -449,7 +449,7 @@ bool __fastcall RndLocOk(int xp, int yp) v2 = xp; v3 = v2 * 112 + yp; result = 0; - if ( !dMonster[0][v3] && !dPlayer[v2][yp] && !dObject[v2][yp] && !(dFlags[v2][yp] & 8) ) + if ( !dMonster[0][v3] && !dPlayer[v2][yp] && !dObject[v2][yp] && !(dFlags[v2][yp] & DFLAG_POPULATED) ) { v4 = dPiece[0][v3]; if ( !nSolidTable[v4] && (leveltype != 1 || v4 <= 126 || v4 >= 144) ) @@ -932,7 +932,7 @@ void __fastcall AddL3Objs(int x1, int y1, int x2, int y2) bool __fastcall WallTrapLocOk(int xp, int yp) { - return (~dFlags[xp][yp] & 8u) >> 3; + return (~dFlags[xp][yp] & DFLAG_POPULATED) >> 3; } void __cdecl AddL2Torches() @@ -999,7 +999,7 @@ bool __fastcall TorchLocOK(int xp, int yp) bool result; // al v2 = xp; - if ( dFlags[v2][yp] & 8 ) + if ( dFlags[v2][yp] & DFLAG_POPULATED ) result = 0; else result = nTrapTable[dPiece[0][yp + v2 * 112]] != 0; diff --git a/Source/player.cpp b/Source/player.cpp index f14ac0709..40a38f658 100644 --- a/Source/player.cpp +++ b/Source/player.cpp @@ -1008,11 +1008,11 @@ BOOL __fastcall PlrDirOK(int pnum, int dir) BOOL isOk = TRUE; if ( dir == DIR_E ) { - isOk = !SolidLoc(px, py + 1) && !(dFlags[px][py + 1] & 32); + isOk = !SolidLoc(px, py + 1) && !(dFlags[px][py + 1] & DFLAG_PLAYER); } if ( isOk && dir == DIR_W ) { - isOk = !SolidLoc(px + 1, py) && !(dFlags[px + 1][py] & 32); + isOk = !SolidLoc(px + 1, py) && !(dFlags[px + 1][py] & DFLAG_PLAYER); } return isOk; @@ -1373,7 +1373,7 @@ void __fastcall StartWalk3(int pnum, int xvel, int yvel, int xoff, int yoff, int dPlayer[px][py] = -1 - pnum; plr[pnum]._pVar4 = x; plr[pnum]._pVar5 = y; - dFlags[x][y] |= 0x20; + dFlags[x][y] |= DFLAG_PLAYER; plr[pnum]._pxoff = xoff; plr[pnum]._pyoff = yoff; @@ -1554,8 +1554,8 @@ void __fastcall FixPlrWalkTags(int pnum) } if ( dx >= 0 && dx < MAXDUNX - 1 && dy >= 0 && dy < MAXDUNY -1 ) { - dFlags[dx + 1][dy] &= 0xDF; - dFlags[dx][dy + 1] &= 0xDF; + dFlags[dx + 1][dy] &= ~DFLAG_PLAYER; + dFlags[dx][dy + 1] &= ~DFLAG_PLAYER; } } @@ -1585,7 +1585,7 @@ void __fastcall RemovePlrFromMap(int pnum) { v5 = dFlags[1][v3]; if ( v5 & 0x20 ) - dFlags[1][v3] = v5 & 0xDF; + dFlags[1][v3] = v5 & ~DFLAG_PLAYER; } v3 += 112; --v4; @@ -1766,7 +1766,7 @@ LABEL_18: FixPlayerLocation(v2, plr[v3 / 0x54D8]._pdir); RemovePlrFromMap(v2); v10 = &dFlags[plr[v3 / 0x54D8].WorldX][plr[v3 / 0x54D8].WorldY]; - *v10 |= 4u; + *v10 |= DFLAG_DEAD_PLAYER; SetPlayerOld(v2); if ( v2 == myplr ) { @@ -2409,7 +2409,7 @@ BOOL __fastcall PM_DoWalk3(int pnum) if ( plr[pnum]._pVar8 == vel ) { dPlayer[plr[pnum].WorldX][plr[pnum].WorldY] = 0; - dFlags[plr[pnum]._pVar4][plr[pnum]._pVar5] &= 0xDF; + dFlags[plr[pnum]._pVar4][plr[pnum]._pVar5] &= ~DFLAG_PLAYER; plr[pnum].WorldX = plr[pnum]._pVar1; plr[pnum].WorldY = plr[pnum]._pVar2; dPlayer[plr[pnum]._pVar1][plr[pnum]._pVar2] = pnum + 1; @@ -3235,34 +3235,31 @@ LABEL_23: BOOL __fastcall PM_DoDeath(int pnum) { - int v1; // edi - int v2; // esi - int v3; // ecx - int v4; // eax - int v5; // eax - - v1 = pnum; - if ( (unsigned int)pnum >= MAX_PLRS ) + if ( (DWORD)pnum >= MAX_PLRS ) { TermMsg("PM_DoDeath: illegal player %d", pnum); - v2 = v1; - if ( plr[v1]._pVar8 >= 2 * plr[v1]._pDFrames ) - { - if ( deathdelay > 1 && v1 == myplr && --deathdelay == 1 ) - { - deathflag = 1; - if ( gbMaxPlayers == 1 ) - gamemenu_previous(); + } + + if ( plr[pnum]._pVar8 >= 2 * plr[pnum]._pDFrames ) { + if ( deathdelay > 1 && pnum == myplr ) { + deathdelay--; + if ( deathdelay == 1 ) { + deathflag = 1; + if ( gbMaxPlayers == 1 ) { + gamemenu_previous(); + } + } } - v3 = plr[v2].WorldY; - plr[v2]._pAnimFrame = plr[v2]._pAnimLen; - v4 = plr[v2].WorldX; - plr[v2]._pAnimDelay = 10000; - dFlags[v4][v3] |= 4u; - } - v5 = plr[v2]._pVar8; - if ( v5 < 100 ) - plr[v2]._pVar8 = v5 + 1; - return 0; + + plr[pnum]._pAnimFrame = plr[pnum]._pAnimLen; + plr[pnum]._pAnimDelay = 10000; + dFlags[plr[pnum].WorldX][plr[pnum].WorldY] |= DFLAG_DEAD_PLAYER; + } + + if ( plr[pnum]._pVar8 < 100 ) { + plr[pnum]._pVar8++; + } + + return FALSE; } // 679660: using guessed type char gbMaxPlayers; // 69B7C4: using guessed type int deathdelay; diff --git a/Source/portal.cpp b/Source/portal.cpp index 1548f1f01..0e4599819 100644 --- a/Source/portal.cpp +++ b/Source/portal.cpp @@ -124,7 +124,7 @@ void __fastcall RemovePortalMissile(int id) mi = missileactive[i]; if ( missile[mi]._mitype == MIS_TOWN && missile[mi]._misource == id ) { - dFlags[missile[mi]._mix][missile[mi]._miy] &= 0xFE; + dFlags[missile[mi]._mix][missile[mi]._miy] &= ~DFLAG_MISSILE; dMissile[missile[mi]._mix][missile[mi]._miy] = 0; if ( portal[id].level ) diff --git a/Source/scrollrt.cpp b/Source/scrollrt.cpp index 8ac3871c0..651a25c2a 100644 --- a/Source/scrollrt.cpp +++ b/Source/scrollrt.cpp @@ -297,7 +297,7 @@ void __fastcall DrawDeadPlayer(int x, int y, int sx, int sy, int a5, int a6, boo DrawPlrProc = (int (__fastcall *)(int, int, int, int, int, void *, int, int, int, int))DrawPlayer; v8 = &plr[0]._pHitPoints; v9 = &dFlags[x][y]; - *v9 &= 0xFBu; + *v9 &= ~DFLAG_DEAD_PLAYER; player_num = 0; do { @@ -309,7 +309,7 @@ void __fastcall DrawDeadPlayer(int x, int y, int sx, int sy, int a5, int a6, boo v11 = *(v8 - 67); if ( v11 < 1 || (unsigned int)*v10 > 0x32 || v11 > *v10 ) break; - *v9 |= 4u; + *v9 |= DFLAG_DEAD_PLAYER; DrawPlrProc(player_num, xa, v7, sx + *(v8 - 78) - *(v8 - 65), sy + *(v8 - 77), v10, v11, *(v8 - 66), a5, a6); LABEL_14: ++player_num; @@ -331,7 +331,7 @@ void __fastcall DrawPlayer(int pnum, int x, int y, int px, int py, unsigned char v11 = myplr; v13 = pnum; ya = (int)v10; - if ( *v10 & 0x40 || plr[myplr]._pInfraFlag || !setlevel && !currlevel ) + if ( *v10 & DFLAG_LIT || plr[myplr]._pInfraFlag || !setlevel && !currlevel ) { v12 = (char *)animdata; if ( animdata ) @@ -358,7 +358,7 @@ void __fastcall DrawPlayer(int pnum, int x, int y, int px, int py, unsigned char a9, a10); } - else if ( !(*v10 & 0x40) || plr[v11]._pInfraFlag && light_table_index > 8 ) + else if ( !(*v10 & DFLAG_LIT) || plr[v11]._pInfraFlag && light_table_index > 8 ) { Cl2DecodeFrm3(px, py, v12, animframe, animwidth, a9, a10, 1); if ( plr[v13].pManaShield ) @@ -412,7 +412,7 @@ void __fastcall DrawClippedPlayer(int pnum, int x, int y, int px, int py, unsign v11 = myplr; v13 = pnum; ya = (int)v10; - if ( *v10 & 0x40 || plr[myplr]._pInfraFlag ) + if ( *v10 & DFLAG_LIT || plr[myplr]._pInfraFlag ) { v12 = (char *)animdata; if ( animdata ) @@ -439,7 +439,7 @@ void __fastcall DrawClippedPlayer(int pnum, int x, int y, int px, int py, unsign a9, a10); } - else if ( !(*v10 & 0x40) || plr[v11]._pInfraFlag && light_table_index > 8 ) + else if ( !(*v10 & DFLAG_LIT) || plr[v11]._pInfraFlag && light_table_index > 8 ) { Cl2DecodeFrm5(px, py, v12, animframe, animwidth, a9, a10, 1); if ( plr[v13].pManaShield ) @@ -969,9 +969,9 @@ void __fastcall scrollrt_draw_clipped_dungeon(char *a1, int sx, int sy, int a4, v45 = v8; v40 = *v10; v41 = *(v10 - 1); - if ( visiondebug && v50 & 0x40 ) + if ( visiondebug && v50 & DFLAG_LIT ) Cel2DecodeHdrOnly(dst_buf, (char *)pSquareCel, 1, 64, 0, 8); - if ( MissilePreFlag && v50 & 1 ) + if ( MissilePreFlag && v50 & DFLAG_MISSILE ) DrawClippedMissile(a1a, sy, a4, a5, 0, 8, 1); if ( light_table_index < lightmax ) { @@ -1015,7 +1015,7 @@ void __fastcall scrollrt_draw_clipped_dungeon(char *a1, int sx, int sy, int a4, } } } - if ( v50 & 0x20 ) + if ( v50 & DFLAG_PLAYER ) { v20 = -1 - v45; if ( v20 < 4 ) @@ -1044,7 +1044,7 @@ void __fastcall scrollrt_draw_clipped_dungeon(char *a1, int sx, int sy, int a4, } } } - if ( v50 & 0x10 && (v50 & 0x40 || plr[myplr]._pInfraFlag) && v41 < 0 ) + if ( v50 & DFLAG_MONSTER && (v50 & DFLAG_LIT || plr[myplr]._pInfraFlag) && v41 < 0 ) { v23 = -1 - v41; draw_monster_num = -1 - v41; @@ -1192,7 +1192,7 @@ void __fastcall DrawClippedMonster(int x, int y, int a3, int a4, int mon_id, int v9 = monster[v7]._mAnimFrame; if ( v9 >= 1 && (unsigned int)*v8 <= 0x32 && v9 <= *v8 ) { - if ( dFlags[x][y] & 0x40 ) + if ( dFlags[x][y] & DFLAG_LIT ) { v10 = 0; mon_ida = 0; @@ -1635,9 +1635,9 @@ void __fastcall scrollrt_draw_clipped_dungeon_2(char *buffer, int x, int y, int v48 = v10; v43 = *v12; v44 = *(v12 - 1); - if ( visiondebug && v53 & 0x40 ) + if ( visiondebug && v53 & DFLAG_LIT ) Cel2DecodeHdrOnly(dst_buf, (char *)pSquareCel, 1, 64, a5, 8); - if ( MissilePreFlag && v53 & 1 ) + if ( MissilePreFlag && v53 & DFLAG_MISSILE ) { v13 = sx; DrawClippedMissile(a1, y, sx, sy, a5, 8, 1); @@ -1688,7 +1688,7 @@ void __fastcall scrollrt_draw_clipped_dungeon_2(char *buffer, int x, int y, int } } } - if ( v53 & 0x20 ) + if ( v53 & DFLAG_PLAYER ) { v23 = -1 - v48; if ( v23 < 4 ) @@ -1717,7 +1717,7 @@ void __fastcall scrollrt_draw_clipped_dungeon_2(char *buffer, int x, int y, int } } } - if ( v53 & 0x10 && (v53 & 0x40 || plr[myplr]._pInfraFlag) && v44 < 0 ) + if ( v53 & DFLAG_MONSTER && (v53 & DFLAG_LIT || plr[myplr]._pInfraFlag) && v44 < 0 ) { v26 = -1 - v44; draw_monster_num = -1 - v44; @@ -1744,7 +1744,7 @@ void __fastcall scrollrt_draw_clipped_dungeon_2(char *buffer, int x, int y, int } } } - if ( v53 & 4 ) + if ( v53 & DFLAG_DEAD_PLAYER ) DrawDeadPlayer(a1, y, v13, sy, a5, 8, 1); if ( v51 > 0 ) { @@ -1775,7 +1775,7 @@ void __fastcall scrollrt_draw_clipped_dungeon_2(char *buffer, int x, int y, int } } } - if ( v43 > 0 && (v53 & 0x40 || plr[myplr]._pInfraFlag) ) + if ( v43 > 0 && (v53 & DFLAG_LIT || plr[myplr]._pInfraFlag) ) { v34 = v43 - 1; draw_monster_num = v43 - 1; @@ -1802,7 +1802,7 @@ void __fastcall scrollrt_draw_clipped_dungeon_2(char *buffer, int x, int y, int } } } - if ( v53 & 1 ) + if ( v53 & DFLAG_MISSILE ) DrawClippedMissile(a1, y, v13, sy, a5, 8, 0); if ( v50 && light_table_index < lightmax ) DrawClippedObject(a1, y, v13, sy, 0, a5, 8); @@ -2244,9 +2244,9 @@ void __fastcall scrollrt_draw_dungeon(char *buffer, int x, int y, int a4, int a5 v47 = v10; v42 = *v12; v43 = *(v12 - 1); - if ( visiondebug && v52 & 0x40 ) + if ( visiondebug && v52 & DFLAG_LIT ) CelDecodeHdrOnly(dst_buf, (char *)pSquareCel, 1, 64, 0, a5); - if ( MissilePreFlag && v52 & 1 ) + if ( MissilePreFlag && v52 & DFLAG_MISSILE ) DrawMissile(xa, y, sx, sy, 0, a5, 1); if ( light_table_index < lightmax ) { @@ -2290,7 +2290,7 @@ void __fastcall scrollrt_draw_dungeon(char *buffer, int x, int y, int a4, int a5 } } } - if ( v52 & 0x20 ) + if ( v52 & DFLAG_PLAYER ) { v22 = -1 - v47; if ( v22 < 4 ) @@ -2319,7 +2319,7 @@ void __fastcall scrollrt_draw_dungeon(char *buffer, int x, int y, int a4, int a5 } } } - if ( v52 & 0x10 && (v52 & 0x40 || plr[myplr]._pInfraFlag) && v43 < 0 ) + if ( v52 & DFLAG_MONSTER && (v52 & DFLAG_LIT || plr[myplr]._pInfraFlag) && v43 < 0 ) { v25 = -1 - v43; draw_monster_num = -1 - v43; @@ -2345,7 +2345,7 @@ void __fastcall scrollrt_draw_dungeon(char *buffer, int x, int y, int a4, int a5 } } } - if ( v52 & 4 ) + if ( v52 & DFLAG_DEAD_PLAYER ) DrawDeadPlayer(xa, y, sx, sy, 0, a5, 0); if ( v50 > 0 ) { @@ -2376,7 +2376,7 @@ void __fastcall scrollrt_draw_dungeon(char *buffer, int x, int y, int a4, int a5 } } } - if ( v42 > 0 && (v52 & 0x40 || plr[myplr]._pInfraFlag) ) + if ( v42 > 0 && (v52 & DFLAG_LIT || plr[myplr]._pInfraFlag) ) { v33 = v42 - 1; draw_monster_num = v42 - 1; @@ -2402,7 +2402,7 @@ void __fastcall scrollrt_draw_dungeon(char *buffer, int x, int y, int a4, int a5 } } } - if ( v52 & 1 ) + if ( v52 & DFLAG_MISSILE ) DrawMissile(xa, y, sx, sy, 0, a5, 0); if ( v49 && light_table_index < lightmax ) DrawObject(xa, y, sx, sy, 0, 0, a5); @@ -2467,7 +2467,7 @@ void __fastcall DrawMonster(int x, int y, int a3, int a4, int mon_id, int a6, in v9 = monster[v7]._mAnimFrame; if ( v9 >= 1 && (unsigned int)*v8 <= 0x32 && v9 <= *v8 ) { - if ( dFlags[x][y] & 0x40 ) + if ( dFlags[x][y] & DFLAG_LIT ) { v10 = 0; mon_ida = 0; diff --git a/Source/themes.cpp b/Source/themes.cpp index 6fa7e0ed2..a2864dd66 100644 --- a/Source/themes.cpp +++ b/Source/themes.cpp @@ -481,7 +481,7 @@ LABEL_5: { if ( dung_map[0][v6] == tv ) { - if ( dFlags[0][v6] & 8 ) + if ( dFlags[0][v6] & DFLAG_POPULATED ) return 0; ++v3; } @@ -690,7 +690,7 @@ void __cdecl HoldThemeRooms() do { if ( dung_map[0][v4] == v2 ) - dFlags[0][v4] |= 8u; + dFlags[0][v4] |= DFLAG_POPULATED; v4 += 112; --v5; } diff --git a/Source/town.cpp b/Source/town.cpp index 85f8fe269..ce5aa870b 100644 --- a/Source/town.cpp +++ b/Source/town.cpp @@ -178,7 +178,7 @@ void __fastcall town_draw_clipped_town(void *unused, int x, int y, int sx, int s 8); Cel2DrawHdrOnly(v11, sy, (char *)item[v10]._iAnimData, item[v10]._iAnimFrame, item[v10]._iAnimWidth, 0, 8); } - if ( dFlags[0][v7] & 0x10 ) + if ( dFlags[0][v7] & DFLAG_MONSTER ) { v12 = -1 - dMonster[x][y-1]; // -1 - *(&dword_52D204 + v7); /* check */ v13 = sx - towner[v12]._tAnimWidth2; @@ -212,7 +212,7 @@ void __fastcall town_draw_clipped_town(void *unused, int x, int y, int sx, int s 8); Cel2DrawHdrOnly(v17, sy, (char *)towner[v16]._tAnimData, towner[v16]._tAnimFrame, towner[v16]._tAnimWidth, 0, 8); } - if ( dFlags[0][v7] & 0x20 ) + if ( dFlags[0][v7] & DFLAG_PLAYER ) { v18 = -1 - dPlayer[x][y-1]; // -1 - *((_BYTE *)&themeLoc[49].height + v7 + 3); v19 = v18; @@ -225,7 +225,7 @@ void __fastcall town_draw_clipped_town(void *unused, int x, int y, int sx, int s town_draw_clipped_e_flag(v27 - 64, xa - 1, y + 1, sx - 64, sy); v7 = v29; } - if ( dFlags[0][v7] & 4 ) + if ( dFlags[0][v7] & DFLAG_DEAD_PLAYER ) DrawDeadPlayer(xa, y, sx, sy, 0, 8, 1); v22 = dPlayer[0][v7]; if ( v22 > 0 ) @@ -241,7 +241,7 @@ void __fastcall town_draw_clipped_town(void *unused, int x, int y, int sx, int s town_draw_clipped_e_flag(v27 - 64, xa - 1, y + 1, sx - 64, sy); v7 = v29; } - if ( dFlags[0][v7] & 1 ) + if ( dFlags[0][v7] & DFLAG_MISSILE ) DrawClippedMissile(xa, y, sx, sy, 0, 8, 0); } // 4B8CC0: using guessed type char pcursitem; @@ -478,7 +478,7 @@ void __fastcall town_draw_clipped_town_2(int x, int y, int a3, int a4, int a5, i 8); Cel2DrawHdrOnly(v13, sy, (char *)item[v12]._iAnimData, item[v12]._iAnimFrame, item[v12]._iAnimWidth, a5, 8); } - if ( dFlags[0][v9] & 0x10 ) + if ( dFlags[0][v9] & DFLAG_MONSTER ) { v14 = -1 - dMonster[x][y-1]; // -1 - *(&dword_52D204 + v9); /* check */ v15 = sx - towner[v14]._tAnimWidth2; @@ -512,7 +512,7 @@ void __fastcall town_draw_clipped_town_2(int x, int y, int a3, int a4, int a5, i 8); Cel2DrawHdrOnly(v19, sy, (char *)towner[v18]._tAnimData, towner[v18]._tAnimFrame, towner[v18]._tAnimWidth, a5, 8); } - if ( dFlags[0][v9] & 0x20 ) + if ( dFlags[0][v9] & DFLAG_PLAYER ) { v20 = -1 - dPlayer[x][y-1]; // -1 - *((_BYTE *)&themeLoc[49].height + v9 + 3); v21 = v20; @@ -525,7 +525,7 @@ void __fastcall town_draw_clipped_town_2(int x, int y, int a3, int a4, int a5, i town_draw_clipped_e_flag_2((void *)(v29 - 64), xa - 1, a3 + 1, a4, a5, sx - 64, sy); v9 = v31; } - if ( dFlags[0][v9] & 4 ) + if ( dFlags[0][v9] & DFLAG_DEAD_PLAYER ) DrawDeadPlayer(xa, a3, sx, sy, a5, 8, 1); v24 = dPlayer[0][v9]; if ( v24 > 0 ) @@ -541,7 +541,7 @@ void __fastcall town_draw_clipped_town_2(int x, int y, int a3, int a4, int a5, i town_draw_clipped_e_flag_2((void *)(v29 - 64), xa - 1, a3 + 1, a4, a5, sx - 64, sy); v9 = v31; } - if ( dFlags[0][v9] & 1 ) + if ( dFlags[0][v9] & DFLAG_MISSILE ) DrawClippedMissile(xa, a3, sx, sy, a5, 8, 0); } // 4B8CC0: using guessed type char pcursitem; @@ -763,7 +763,7 @@ void __fastcall town_draw_town_all(void *buffer, int x, int y, int a4, int dir, CelDecodeClr(181, xx, sy, (char *)item[id]._iAnimData, item[id]._iAnimFrame, item[id]._iAnimWidth, 0, dir); CelDrawHdrOnly(xx, sy, (char *)item[id]._iAnimData, item[id]._iAnimFrame, item[id]._iAnimWidth, 0, dir); } - if ( dFlags[x][y] & 0x10 ) + if ( dFlags[x][y] & DFLAG_MONSTER ) { id = -1 - dMonster[x][y-1]; // -1 - *(&dword_52D204 + v9); /* check */ xx = sx - towner[id]._tAnimWidth2; @@ -779,7 +779,7 @@ void __fastcall town_draw_town_all(void *buffer, int x, int y, int a4, int dir, CelDecodeClr(166, xx, sy, (char *)towner[id]._tAnimData, towner[id]._tAnimFrame, towner[id]._tAnimWidth, 0, dir); CelDrawHdrOnly(xx, sy, (char *)towner[id]._tAnimData, towner[id]._tAnimFrame, towner[id]._tAnimWidth, 0, dir); } - if ( dFlags[x][y] & 0x20 ) + if ( dFlags[x][y] & DFLAG_PLAYER ) { id = -1 - dPlayer[x][y-1]; // -1 - *((_BYTE *)&themeLoc[49].height + v9 + 3); yy = sy + plr[id]._pyoff; @@ -790,7 +790,7 @@ void __fastcall town_draw_town_all(void *buffer, int x, int y, int a4, int dir, if ( some_flag && plr[id]._peflag ) town_draw_e_flag((char *)buffer - 64, x - 1, y + 1, a4, dir, sx - 64, sy); } - if ( dFlags[x][y] & 4 ) + if ( dFlags[x][y] & DFLAG_DEAD_PLAYER ) DrawDeadPlayer(x, y, sx, sy, 0, dir, 0); if ( dPlayer[x][y] > 0 ) { @@ -803,7 +803,7 @@ void __fastcall town_draw_town_all(void *buffer, int x, int y, int a4, int dir, if ( some_flag && plr[id]._peflag ) town_draw_e_flag((char *)buffer - 64, x - 1, y + 1, a4, dir, sx - 64, sy); } - if ( dFlags[x][y] & 1 ) + if ( dFlags[x][y] & DFLAG_MISSILE ) DrawMissile(x, y, sx, sy, 0, dir, 0); } // 4B8CC0: using guessed type char pcursitem; diff --git a/Source/trigs.cpp b/Source/trigs.cpp index 71b9d1be5..4d020e5ba 100644 --- a/Source/trigs.cpp +++ b/Source/trigs.cpp @@ -1101,7 +1101,7 @@ void __cdecl Freeupstairs() v5 = 5; do { - *v4 |= 8u; + *v4 |= DFLAG_POPULATED; v4 += 112; --v5; } diff --git a/enums.h b/enums.h index 4178f28b8..242142122 100644 --- a/enums.h +++ b/enums.h @@ -1652,6 +1652,18 @@ enum dungeon_type DTYPE_NONE = 0xFF, }; +enum dflag +{ + DFLAG_MISSILE = 0x01, + DFLAG_VISIBLE = 0x02, + DFLAG_DEAD_PLAYER = 0x04, + DFLAG_POPULATED = 0x08, + DFLAG_MONSTER = 0x10, + DFLAG_PLAYER = 0x20, + DFLAG_LIT = 0x40, + DFLAG_EXPLORED = 0x80, +}; + enum magic_type { STYPE_FIRE = 0x0,