diff --git a/Source/control.cpp b/Source/control.cpp index d9e55e00a..00a10a258 100644 --- a/Source/control.cpp +++ b/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; diff --git a/Source/cursor.cpp b/Source/cursor.cpp index 9512a1b30..076848019 100644 --- a/Source/cursor.cpp +++ b/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; diff --git a/Source/diablo.cpp b/Source/diablo.cpp index 3b8ee68b4..edaafa5e5 100644 --- a/Source/diablo.cpp +++ b/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; } diff --git a/Source/diablo.h b/Source/diablo.h index e15c8543a..aecdd9c30 100644 --- a/Source/diablo.h +++ b/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 diff --git a/Source/missiles.cpp b/Source/missiles.cpp index ff6ed5321..270d5142d 100644 --- a/Source/missiles.cpp +++ b/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 ) { diff --git a/Source/monster.cpp b/Source/monster.cpp index 611bc5e8c..4d9c1eb72 100644 --- a/Source/monster.cpp +++ b/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; diff --git a/Source/msg.cpp b/Source/msg.cpp index 7243fbf14..54c0bb15d 100644 --- a/Source/msg.cpp +++ b/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); diff --git a/Source/multi.cpp b/Source/multi.cpp index e71f629c4..91ea04045 100644 --- a/Source/multi.cpp +++ b/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); diff --git a/Source/objects.cpp b/Source/objects.cpp index ae9fb7b04..ce718dccf 100644 --- a/Source/objects.cpp +++ b/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; diff --git a/structs.h b/structs.h index 929fbe5a5..bab80a06d 100644 --- a/structs.h +++ b/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;