Browse Source

Monster.cpp (#400)

* Clean up hp and mana checks

* Clean up PrepDoEnding
pull/25/head
Anders Jenbo 8 years ago committed by Robin Eklind
parent
commit
8f3d59e513
  1. 2
      Source/control.cpp
  2. 26
      Source/cursor.cpp
  3. 12
      Source/diablo.cpp
  4. 2
      Source/diablo.h
  5. 18
      Source/missiles.cpp
  6. 59
      Source/monster.cpp
  7. 12
      Source/msg.cpp
  8. 6
      Source/multi.cpp
  9. 10
      Source/objects.cpp
  10. 2
      structs.h

2
Source/control.cpp

@ -2930,7 +2930,7 @@ void __fastcall control_drop_gold(int vkey)
char v6[6]; // [esp+8h] [ebp-8h]
v1 = vkey;
if ( (signed int)(plr[myplr]._pHitPoints & 0xFFFFFFC0) <= 0 )
if ( plr[myplr]._pHitPoints >> 6 <= 0 )
{
dropGoldFlag = 0;
dropGoldValue = 0;

26
Source/cursor.cpp

@ -1061,7 +1061,7 @@ LABEL_296:
{
v17 = v15 <= 0 ? -1 - v15 : v15 - 1;
if ( v17 == dword_4B8CCC
&& (signed int)(monster[v17]._mhitpoints & 0xFFFFFFC0) > 0
&& monster[v17]._mhitpoints >> 6 > 0
&& monster[v17].MData->mSelFlag & 4 )
{
v11 = v17;
@ -1076,7 +1076,7 @@ LABEL_74:
{
v19 = v18 <= 0 ? -1 - v18 : v18 - 1;
if ( v19 == dword_4B8CCC
&& (signed int)(monster[v19]._mhitpoints & 0xFFFFFFC0) > 0
&& monster[v19]._mhitpoints >> 6 > 0
&& monster[v19].MData->mSelFlag & 4 )
{
v11 = v19;
@ -1092,7 +1092,7 @@ LABEL_74:
{
v21 = v22 <= 0 ? -1 - v22 : v22 - 1;
if ( v21 == dword_4B8CCC
&& (signed int)(monster[v21]._mhitpoints & 0xFFFFFFC0) > 0
&& monster[v21]._mhitpoints >> 6 > 0
&& monster[v21].MData->mSelFlag & 2 )
{
cursmx = v6;
@ -1108,7 +1108,7 @@ LABEL_74:
{
v21 = v20 <= 0 ? -1 - v20 : v20 - 1;
if ( v21 == dword_4B8CCC
&& (signed int)(monster[v21]._mhitpoints & 0xFFFFFFC0) > 0
&& monster[v21]._mhitpoints >> 6 > 0
&& monster[v21].MData->mSelFlag & 2 )
{
cursmy = v8;
@ -1126,7 +1126,7 @@ LABEL_103:
{
v24 = v23 <= 0 ? -1 - v23 : v23 - 1;
if ( v24 == dword_4B8CCC
&& (signed int)(monster[v24]._mhitpoints & 0xFFFFFFC0) > 0
&& monster[v24]._mhitpoints >> 6 > 0
&& monster[v24].MData->mSelFlag & 1 )
{
v11 = v24;
@ -1140,7 +1140,7 @@ LABEL_103:
{
v26 = v25 <= 0 ? -1 - v25 : v25 - 1;
if ( v26 == dword_4B8CCC
&& (signed int)(monster[v26]._mhitpoints & 0xFFFFFFC0) > 0
&& monster[v26]._mhitpoints >> 6 > 0
&& monster[v26].MData->mSelFlag & 2 )
{
v11 = v26;
@ -1177,7 +1177,7 @@ LABEL_128:
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 )
if ( monster[v30]._mhitpoints >> 6 > 0 && monster[v30].MData->mSelFlag & 4 )
{
cursmx = v6 + 1;
v31 = v8 + 2;
@ -1192,7 +1192,7 @@ LABEL_128:
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 )
if ( monster[v30]._mhitpoints >> 6 > 0 && monster[v30].MData->mSelFlag & 4 )
{
cursmx = v6 + 2;
v31 = v8 + 1;
@ -1208,7 +1208,7 @@ LABEL_146:
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 )
if ( monster[v34]._mhitpoints >> 6 > 0 && monster[v34].MData->mSelFlag & 4 )
{
pcursmonst = v34;
cursmx = v6 + 2;
@ -1221,7 +1221,7 @@ LABEL_146:
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 )
if ( monster[v36]._mhitpoints >> 6 > 0 && monster[v36].MData->mSelFlag & 2 )
{
cursmx = v6;
cursmy = v8 + 1;
@ -1235,7 +1235,7 @@ LABEL_146:
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 )
if ( monster[v36]._mhitpoints >> 6 > 0 && monster[v36].MData->mSelFlag & 2 )
{
cursmy = v8;
cursmx = v6 + 1;
@ -1250,7 +1250,7 @@ LABEL_172:
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 )
if ( monster[v39]._mhitpoints >> 6 > 0 && monster[v39].MData->mSelFlag & 1 )
{
cursmx = v6;
cursmy = v8;
@ -1261,7 +1261,7 @@ LABEL_172:
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 )
if ( monster[v41]._mhitpoints >> 6 > 0 && monster[v41].MData->mSelFlag & 2 )
{
pcursmonst = v41;
cursmx = v6 + 1;

12
Source/diablo.cpp

@ -11,7 +11,7 @@ int MouseY; // idb
int MouseX; // idb
bool gbGameLoopStartup; // idb
int glSeedTbl[NUMLEVELS];
int gbRunGame; // weak
BOOL gbRunGame; // weak
int glMid3Seed[NUMLEVELS];
int gbRunGameResult; // weak
int zoomflag; // weak
@ -161,7 +161,7 @@ void __fastcall run_game_loop(int uMsg)
saveProc = SetWindowProc(GM_Game);
control_update_life_mana();
msg_process_net_packets();
gbRunGame = 1;
gbRunGame = TRUE;
gbProcessPlayers = 1;
gbRunGameResult = 1;
drawpanflag = 255;
@ -181,7 +181,7 @@ void __fastcall run_game_loop(int uMsg)
if ( msg.message == WM_QUIT )
{
gbRunGameResult = 0;
gbRunGame = 0;
gbRunGame = FALSE;
break;
}
TranslateMessage(&msg);
@ -221,7 +221,7 @@ void __fastcall run_game_loop(int uMsg)
free_game();
if ( cineflag )
{
cineflag = 0;
cineflag = FALSE;
DoEnding();
}
}
@ -234,7 +234,7 @@ void __fastcall run_game_loop(int uMsg)
void __fastcall start_game(int uMsg)
{
cineflag = 0;
cineflag = FALSE;
zoomflag = 1;
InitCursor();
InitLightTable();
@ -819,7 +819,7 @@ LRESULT __stdcall GM_Game(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
case WM_SYSCOMMAND:
if ( wParam == SC_CLOSE )
{
gbRunGame = 0;
gbRunGame = FALSE;
gbRunGameResult = 0;
return 0;
}

2
Source/diablo.h

@ -11,7 +11,7 @@ extern int MouseY; // idb
extern int MouseX; // idb
extern bool gbGameLoopStartup; // idb
extern int glSeedTbl[NUMLEVELS];
extern int gbRunGame; // weak
extern BOOL gbRunGame; // weak
extern int glMid3Seed[NUMLEVELS];
extern int gbRunGameResult; // weak
extern int zoomflag; // weak

18
Source/missiles.cpp

@ -1223,7 +1223,7 @@ BOOL __fastcall MonsterTrapHit(int m, int mindam, int maxdam, int dist, int t, i
v6 = m;
v15 = mindam;
if ( monster[m].mtalkmsg
|| (signed int)(monster[v6]._mhitpoints & 0xFFFFFFC0) <= 0
|| monster[v6]._mhitpoints >> 6 <= 0
|| monster[v6].MType->mtype == MT_ILLWEAV && _LOBYTE(monster[v6]._mgoal) == 2 )
{
return 0;
@ -1269,7 +1269,7 @@ BOOL __fastcall MonsterTrapHit(int m, int mindam, int maxdam, int dist, int t, i
if ( debug_mode_dollar_sign || debug_mode_key_inverted_v )
monster[v6]._mhitpoints = 0;
#endif
if ( (signed int)(monster[v6]._mhitpoints & 0xFFFFFFC0) > 0 )
if ( monster[v6]._mhitpoints >> 6 > 0 )
{
if ( v16 )
{
@ -1327,7 +1327,7 @@ bool __fastcall MonsterMHit(int pnum, int m, int mindam, int maxdam, int dist, i
v8 = monster[m].mtalkmsg == 0;
pnuma = pnum;
if ( !v8
|| (signed int)(monster[v7]._mhitpoints & 0xFFFFFFC0) <= 0
|| monster[v7]._mhitpoints >> 6 <= 0
|| t == 53 && monster[v7].MType->mtype != MT_DIABLO && monster[v7].MData->mMonstClass )
{
return 0;
@ -1422,7 +1422,7 @@ bool __fastcall MonsterMHit(int pnum, int m, int mindam, int maxdam, int dist, i
v22 = plr[v12]._pIFlags;
if ( v22 & 8 )
monster[v7]._mFlags |= 8u;
if ( (signed int)(monster[v7]._mhitpoints & 0xFFFFFFC0) > 0 )
if ( monster[v7]._mhitpoints >> 6 > 0 )
{
if ( v26 )
{
@ -1496,7 +1496,7 @@ bool __fastcall PlayerMHit(int pnum, int m, int dist, int mind, int maxd, int mt
arglist = pnum;
v9 = pnum;
v34 = m;
if ( (signed int)(plr[pnum]._pHitPoints & 0xFFFFFFC0) <= 0
if ( plr[pnum]._pHitPoints >> 6 <= 0
|| plr[v9]._pInvincible
|| plr[v9]._pSpellFlags & 1 && !missiledata[mtype].mType )
{
@ -1644,7 +1644,7 @@ LABEL_50:
plr[v9]._pHitPoints = v30;
plr[v9]._pHPBase = plr[v9]._pMaxHPBase;
}
if ( (signed int)(plr[v9]._pHitPoints & 0xFFFFFFC0) > 0 )
if ( plr[v9]._pHitPoints >> 6 > 0 )
{
StartPlrHit(arglist, v21, 0);
return 1;
@ -1664,7 +1664,7 @@ LABEL_50:
plr[v9]._pHitPoints = v26;
plr[v9]._pHPBase = plr[v9]._pMaxHPBase;
}
if ( (signed int)(plr[v9]._pHitPoints & 0xFFFFFFC0) <= 0 )
if ( plr[v9]._pHitPoints >> 6 <= 0 )
{
LABEL_70:
SyncPlrKill(v24, earflag);
@ -4542,7 +4542,7 @@ int __fastcall Sentfire(int i, int sx, int sy)
if ( LineClear(missile[i]._mix, missile[i]._miy, sx, sy) )
{
v7 = dMonster[0][sy + 112 * v4];
if ( v7 > 0 && (signed int)(monster[v7-1]._mhitpoints & 0xFFFFFFC0) > 0 && v7 - 1 > 3 ) /* fix monstactive */
if ( v7 > 0 && monster[v7-1]._mhitpoints >> 6 > 0 && v7 - 1 > 3 ) /* fix monstactive */
{
v8 = GetDirection(missile[v3]._mix, missile[v3]._miy, v4, sy);
v9 = missile[v3]._misource;
@ -5668,7 +5668,7 @@ LABEL_26:
plr[v2]._pManaBase = v12;
if ( v13 )
SetPlayerHitPoints(arglist, 0);
if ( plr[v2]._pHitPoints & 0xFFFFFFC0 )
if ( plr[v2]._pHitPoints >> 6 )
goto LABEL_26;
if ( arglist == myplr )
{

59
Source/monster.cpp

@ -3041,7 +3041,7 @@ void __fastcall M_TryM2MHit(int i, int mid, int hper, int mind, int maxd)
v7 = v5;
if ( !monster[v5].MType )
TermMsg("M_TryM2MHit: Monster %d \"%s\" MType NULL", v5, monster[v7].mName);
if ( (signed int)(monster[v7]._mhitpoints & 0xFFFFFFC0) > 0
if ( monster[v7]._mhitpoints >> 6 > 0
&& (monster[v7].MType->mtype != MT_ILLWEAV || _LOBYTE(monster[v7]._mgoal) != 2) )
{
v8 = random(4, 100);
@ -3052,7 +3052,7 @@ void __fastcall M_TryM2MHit(int i, int mid, int hper, int mind, int maxd)
{
v11 = (mind + random(5, maxd - mind + 1)) << 6;
monster[v7]._mhitpoints -= v11;
if ( (signed int)(monster[v7]._mhitpoints & 0xFFFFFFC0) > 0 )
if ( monster[v7]._mhitpoints >> 6 > 0 )
{
if ( monster[v7]._mmode == MM_STONE )
{
@ -3126,7 +3126,7 @@ void __fastcall M_TryH2HHit(int i, int pnum, int Hit, int MinDam, int MaxDam)
return;
}
v7 = plr_num;
if ( (signed int)(plr[plr_num]._pHitPoints & 0xFFFFFFC0) > 0 && !plr[v7]._pInvincible && !(plr[v7]._pSpellFlags & 1) )
if ( plr[plr_num]._pHitPoints >> 6 > 0 && !plr[v7]._pInvincible && !(plr[v7]._pSpellFlags & 1) )
{
v8 = abs(monster[v6]._mx - plr[v7].WorldX);
v9 = abs(monster[v6]._my - plr[v7].WorldY);
@ -3249,7 +3249,7 @@ void __fastcall M_TryH2HHit(int i, int pnum, int Hit, int MinDam, int MaxDam)
{
v30 = (random(99, 3) + 1) << 6;
monster[v6]._mhitpoints -= v30;
if ( (signed int)(monster[v6]._mhitpoints & 0xFFFFFFC0) > 0 )
if ( monster[v6]._mhitpoints >> 6 > 0 )
M_StartHit(arglist, plr_num, v30);
else
M_StartKill(arglist, plr_num);
@ -3262,7 +3262,7 @@ void __fastcall M_TryH2HHit(int i, int pnum, int Hit, int MinDam, int MaxDam)
plr[v7]._pHitPoints = v31;
plr[v7]._pHPBase = plr[v7]._pMaxHPBase;
}
if ( (signed int)(plr[v7]._pHitPoints & 0xFFFFFFC0) > 0 )
if ( plr[v7]._pHitPoints >> 6 > 0 )
{
StartPlrHit(plr_num, v29, 0);
if ( SLOBYTE(monster[v6]._mFlags) < 0 )
@ -3858,38 +3858,27 @@ void __cdecl DoEnding()
void __cdecl PrepDoEnding()
{
int *v0; // eax
int v1; // ecx
int *v2; // eax
bool v3; // cf
bool v4; // zf
gbSoundOn = sgbSaveSoundOn;
gbRunGame = 0;
gbRunGame = FALSE;
deathflag = FALSE;
v0 = &plr[myplr].pDiabloKillLevel;
v1 = gnDifficulty + 1;
cineflag = 1;
if ( *v0 > (unsigned int)(gnDifficulty + 1) )
v1 = *v0;
*v0 = v1;
v2 = &plr[0]._pHitPoints;
do
{
v3 = (unsigned char)gbMaxPlayers < 1u;
v4 = gbMaxPlayers == 1;
*(v2 - 102) = 11;
*((_BYTE *)v2 - 91) = 1;
if ( !v3 && !v4 )
{
if ( !(*v2 & 0xFFFFFFC0) )
*v2 = 64;
if ( !(v2[5] & 0xFFFFFFC0) )
v2[5] = 64;
cineflag = TRUE;
DWORD *killLevel = &plr[myplr].pDiabloKillLevel;
int newKillLevel = gnDifficulty + 1;
if ( *killLevel > newKillLevel )
newKillLevel = *killLevel;
plr[myplr].pDiabloKillLevel = newKillLevel;
for ( int i = 0; i < MAX_PLRS; i++ ) {
plr[i]._pmode = PM_QUIT;
plr[i]._pBlockFlag = TRUE;
if ( gbMaxPlayers > 1 ) {
if ( plr[i]._pHitPoints >> 6 == 0 )
plr[i]._pHitPoints = 64;
if ( plr[i]._pMana >> 6 == 0 )
plr[i]._pMana = 64;
}
v2 += 5430;
}
while ( (signed int)v2 < (signed int)&plr[4]._pHitPoints );
}
// 4A22D5: using guessed type char gbSoundOn;
// 525650: using guessed type int gbRunGame;
@ -7251,7 +7240,7 @@ void __cdecl ProcessMonsters()
if ( !(monster[v1]._mFlags & 8) )
{
v2 = monster[v1]._mhitpoints;
if ( v2 < monster[v1]._mmaxhp && (signed int)(v2 & 0xFFFFFFC0) > 0 )
if ( v2 < monster[v1]._mmaxhp && v2 >> 6 > 0 )
{
v3 = SLOBYTE(monster[v1].mLevel);
if ( (char)v3 > 1 )
@ -8005,7 +7994,7 @@ void __fastcall M_FallenFear(int x, int y)
&& v4
&& abs(x1 - monster[v5]._mx) < 5
&& abs(y1 - monster[v5]._my) < 5
&& (signed int)(monster[v5]._mhitpoints & 0xFFFFFFC0) > 0 )
&& monster[v5]._mhitpoints >> 6 > 0 )
{
_LOBYTE(monster[v5]._mgoal) = 2;
monster[v5]._mgoalvar1 = v4;

12
Source/msg.cpp

@ -3153,7 +3153,7 @@ int __fastcall On_MONSTDAMAGE(struct TCmdLocParam1 *pCmd, int pnum)
{
*v6 -= (unsigned short)v3->wParam1;
v7 = &monster[*(unsigned short *)&v3->x]._mhitpoints;
if ( (signed int)(*v7 & 0xFFFFFFC0) < 64 )
if ( *v7 >> 6 < 64 )
*v7 = 64;
delta_monster_hp(*(unsigned short *)&v3->x, monster[*(unsigned short *)&v3->x]._mhitpoints, *v4);
}
@ -3185,7 +3185,6 @@ int __fastcall On_PLRDAMAGE(struct TCmdDamage *pCmd, int pnum)
{
int v2; // edi
int v3; // eax
int v4; // esi
int *v5; // esi
int v6; // ecx
@ -3197,11 +3196,10 @@ int __fastcall On_PLRDAMAGE(struct TCmdDamage *pCmd, int pnum)
if ( gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel && pCmd->dwDam <= 0x2EE00u )
{
v3 = myplr;
v4 = plr[myplr]._pHitPoints;
if ( (signed int)(v4 & 0xFFFFFFC0) > 0 )
if ( plr[myplr]._pHitPoints >> 6 > 0 )
{
drawhpflag = TRUE;
plr[v3]._pHitPoints = v4 - pCmd->dwDam;
plr[v3]._pHitPoints = plr[myplr]._pHitPoints - pCmd->dwDam;
v5 = &plr[v3]._pHPBase;
*v5 -= pCmd->dwDam;
v6 = plr[v3]._pMaxHP;
@ -3210,7 +3208,7 @@ int __fastcall On_PLRDAMAGE(struct TCmdDamage *pCmd, int pnum)
plr[v3]._pHitPoints = v6;
*v5 = plr[v3]._pMaxHPBase;
}
if ( (signed int)(plr[v3]._pHitPoints & 0xFFFFFFC0) <= 0 )
if ( plr[v3]._pHitPoints >> 6 <= 0 )
SyncPlrKill(v2, 1);
}
}
@ -3463,7 +3461,7 @@ int __fastcall On_PLAYER_JOINLEVEL(struct TCmdLocParam1 *pCmd, int pnum)
{
LoadPlrGFX(v2, PFILE_STAND);
SyncInitPlr(v2);
if ( (signed int)(plr[v4]._pHitPoints & 0xFFFFFFC0) <= 0 )
if ( plr[v4]._pHitPoints >> 6 <= 0 )
{
plr[v4]._pgfxnum = 0;
LoadPlrGFX(v2, PFILE_DEATH);

6
Source/multi.cpp

@ -367,7 +367,7 @@ int __cdecl multi_handle_delta()
if ( gbGameDestroyed )
{
gbRunGame = 0;
gbRunGame = FALSE;
return 0;
}
v0 = 0;
@ -495,7 +495,7 @@ void __cdecl multi_begin_timeout()
}
else
{
gbRunGame = 0;
gbRunGame = FALSE;
}
}
}
@ -1129,7 +1129,7 @@ void __fastcall multi_player_joins(int pnum, TCmdPlrInfoHdr *cmd, int a3)
SyncInitPlr(v3);
if ( plr[v6].plrlevel == currlevel )
{
if ( (signed int)(plr[v6]._pHitPoints & 0xFFFFFFC0) <= 0 )
if ( plr[v6]._pHitPoints >> 6 <= 0 )
{
plr[v6]._pgfxnum = 0;
LoadPlrGFX(v3, PFILE_DEATH);

10
Source/objects.cpp

@ -2827,7 +2827,7 @@ void __fastcall Obj_BCrossDamage(int i)
v4 = damage[(unsigned char)leveltype-1];
plr[v1]._pHitPoints -= v4;
plr[v1]._pHPBase -= v4;
if ( (signed int)(plr[v1]._pHitPoints & 0xFFFFFFC0) <= 0 )
if ( plr[v1]._pHitPoints >> 6 <= 0 )
{
SyncPlrKill(myplr, 0);
drawhpflag = TRUE;
@ -5457,12 +5457,12 @@ LABEL_47:
*(int *)((char *)&plr[0]._pMaxManaBase + v7) = v98 - v101;
v105 = v104 - v101;
*(int *)((char *)&plr[0]._pMaxMana + v7) = v105;
if ( (signed int)(sfx_idf & 0xFFFFFFC0) <= 0 )
if ( sfx_idf >> 6 <= 0 )
{
*(int *)((char *)&plr[0]._pManaBase + v7) = 0;
*(int *)((char *)&plr[0]._pMana + v7) = v100;
}
if ( (signed int)(v105 & 0xFFFFFFC0) <= 0 )
if ( v105 >> 6 <= 0 )
{
*(int *)((char *)&plr[0]._pMaxManaBase + v7) = 0;
*(int *)((char *)&plr[0]._pMaxMana + v7) = v102;
@ -5586,12 +5586,12 @@ LABEL_47:
*(int *)((char *)&plr[0]._pMaxManaBase + v7) = v117 - v120;
v124 = v123 - v120;
*(int *)((char *)&plr[0]._pMaxMana + v7) = v124;
if ( (signed int)(sfx_idg & 0xFFFFFFC0) <= 0 )
if ( sfx_idg >> 6 <= 0 )
{
*(int *)((char *)&plr[0]._pManaBase + v7) = 0;
*(int *)((char *)&plr[0]._pMana + v7) = v119;
}
if ( (signed int)(v124 & 0xFFFFFFC0) <= 0 )
if ( v124 >> 6 <= 0 )
{
*(int *)((char *)&plr[0]._pMaxManaBase + v7) = 0;
*(int *)((char *)&plr[0]._pMaxMana + v7) = v121;

2
structs.h

@ -337,7 +337,7 @@ struct PlayerStruct {
unsigned char pManaShield;
char bReserved[3];
short wReserved[8];
int pDiabloKillLevel;
DWORD pDiabloKillLevel;
int dwReserved[7];
unsigned char *_pNData;
unsigned char *_pWData;

Loading…
Cancel
Save