Browse Source

Clean up PM_DoDeath (#317)

* Clean up PM_DoDeath

* Add enum for dFlags
pull/4/head
Anders Jenbo 8 years ago committed by Robin Eklind
parent
commit
7da6f4d08a
  1. 2
      Source/automap.cpp
  2. 32
      Source/cursor.cpp
  3. 4
      Source/debug.cpp
  4. 4
      Source/diablo.cpp
  5. 8
      Source/drlg_l2.cpp
  6. 2
      Source/drlg_l3.cpp
  7. 6
      Source/drlg_l4.cpp
  8. 12
      Source/gendung.cpp
  9. 2
      Source/items.cpp
  10. 14
      Source/lighting.cpp
  11. 4
      Source/loadsave.cpp
  12. 8
      Source/missiles.cpp
  13. 51
      Source/monster.cpp
  14. 2
      Source/msg.cpp
  15. 2
      Source/multi.cpp
  16. 6
      Source/objects.cpp
  17. 65
      Source/player.cpp
  18. 2
      Source/portal.cpp
  19. 52
      Source/scrollrt.cpp
  20. 4
      Source/themes.cpp
  21. 24
      Source/town.cpp
  22. 2
      Source/trigs.cpp
  23. 12
      enums.h

2
Source/automap.cpp

@ -111,7 +111,7 @@ void __cdecl InitAutomap()
v15 = 112;
do
{
*v14 &= 0x7Fu;
*v14 &= ~DFLAG_EXPLORED;
v14 += 112;
--v15;
}

32
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 )

4
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;
}
}
}

4
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

8
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;
}

2
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;

6
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;

12
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 );

2
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;

14
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];

4
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));
}
}

8
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;
}

51
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)

2
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
{

2
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
{

6
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;

65
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;

2
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 )

52
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;

4
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;
}

24
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;

2
Source/trigs.cpp

@ -1101,7 +1101,7 @@ void __cdecl Freeupstairs()
v5 = 5;
do
{
*v4 |= 8u;
*v4 |= DFLAG_POPULATED;
v4 += 112;
--v5;
}

12
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,

Loading…
Cancel
Save