diff --git a/Source/player.cpp b/Source/player.cpp index 5ed0b02c5..8eec16d41 100644 --- a/Source/player.cpp +++ b/Source/player.cpp @@ -1666,92 +1666,69 @@ LABEL_22: void __fastcall StartAttack(int pnum, int d) { - int v2; // edi - int v3; // ebp - int v4; // esi - int v5; // ST08_4 - - v2 = pnum; - v3 = d; - if ( (unsigned int)pnum >= MAX_PLRS ) + if ( (DWORD)pnum >= MAX_PLRS ) { TermMsg("StartAttack: illegal player %d", pnum); - v4 = v2; - if ( !plr[v2]._pInvincible || plr[v4]._pHitPoints || v2 != myplr ) - { - if ( !(plr[pnum]._pGFXLoad & PFILE_ATTACK) ) { - LoadPlrGFX(pnum, PFILE_ATTACK); - } - v5 = plr[v4]._pAWidth; - NewPlrAnim(v2, plr[0]._pAAnim[v3 + 5430 * v2], plr[v4]._pAFrames, 0, v5); - plr[v4]._pmode = 4; - FixPlayerLocation(v2, v3); - SetPlayerOld(v2); } - else - { - SyncPlrKill(v2, -1); + + if ( plr[pnum]._pInvincible && !plr[pnum]._pHitPoints && pnum == myplr ) { + SyncPlrKill(pnum, -1); + return; + } + + if ( !(plr[pnum]._pGFXLoad & PFILE_ATTACK) ) { + LoadPlrGFX(pnum, PFILE_ATTACK); } + + NewPlrAnim(pnum, plr[pnum]._pAAnim[d], plr[pnum]._pAFrames, 0, plr[pnum]._pAWidth); + plr[pnum]._pmode = PM_ATTACK; + FixPlayerLocation(pnum, d); + SetPlayerOld(pnum); } void __fastcall StartRangeAttack(int pnum, int d, int cx, int cy) { - int v4; // edi - int v5; // esi - int v6; // ST08_4 - int a2a; // [esp+8h] [ebp-4h] - - v4 = pnum; - a2a = d; - if ( (unsigned int)pnum >= MAX_PLRS ) + if ( (DWORD)pnum >= MAX_PLRS ) { TermMsg("StartRangeAttack: illegal player %d", pnum); - v5 = v4; - if ( !plr[v4]._pInvincible || plr[v5]._pHitPoints || v4 != myplr ) - { - if ( !(plr[pnum]._pGFXLoad & PFILE_ATTACK) ) { - LoadPlrGFX(pnum, PFILE_ATTACK); - } - v6 = plr[v5]._pAWidth; - NewPlrAnim(v4, plr[0]._pAAnim[a2a + 5430 * v4], plr[v5]._pAFrames, 0, v6); - plr[v5]._pmode = PM_RATTACK; - FixPlayerLocation(v4, a2a); - SetPlayerOld(v4); - plr[v5]._pVar1 = cx; - plr[v5]._pVar2 = cy; } - else - { - SyncPlrKill(v4, -1); + + if ( plr[pnum]._pInvincible && !plr[pnum]._pHitPoints && pnum == myplr ) { + SyncPlrKill(pnum, -1); + return; } + + if ( !(plr[pnum]._pGFXLoad & PFILE_ATTACK) ) { + LoadPlrGFX(pnum, PFILE_ATTACK); + } + NewPlrAnim(pnum, plr[pnum]._pAAnim[d], plr[pnum]._pAFrames, 0, plr[pnum]._pAWidth); + + plr[pnum]._pmode = PM_RATTACK; + FixPlayerLocation(pnum, d); + SetPlayerOld(pnum); + plr[pnum]._pVar1 = cx; + plr[pnum]._pVar2 = cy; } void __fastcall StartPlrBlock(int pnum, int dir) { - int v2; // edi - int v3; // ebx - int v4; // esi - int v5; // ST08_4 - - v2 = pnum; - v3 = dir; - if ( (unsigned int)pnum >= MAX_PLRS ) + if ( (DWORD)pnum >= MAX_PLRS ) { TermMsg("StartPlrBlock: illegal player %d", pnum); - v4 = v2; - if ( !plr[v2]._pInvincible || plr[v4]._pHitPoints || v2 != myplr ) - { - PlaySfxLoc(IS_ISWORD, plr[v4].WorldX, plr[v4].WorldY); - if ( !(plr[pnum]._pGFXLoad & PFILE_BLOCK) ) { - LoadPlrGFX(pnum, PFILE_BLOCK); - } - v5 = plr[v4]._pBWidth; - NewPlrAnim(v2, plr[0]._pBAnim[v3 + 5430 * v2], plr[v4]._pBFrames, 2, v5); - plr[v4]._pmode = PM_BLOCK; - FixPlayerLocation(v2, v3); - SetPlayerOld(v2); } - else - { - SyncPlrKill(v2, -1); + + if ( plr[pnum]._pInvincible && !plr[pnum]._pHitPoints && pnum == myplr ) { + SyncPlrKill(pnum, -1); + return; } + + PlaySfxLoc(IS_ISWORD, plr[pnum].WorldX, plr[pnum].WorldY); + + if ( !(plr[pnum]._pGFXLoad & PFILE_BLOCK) ) { + LoadPlrGFX(pnum, PFILE_BLOCK); + } + NewPlrAnim(pnum, plr[pnum]._pBAnim[dir], plr[pnum]._pBFrames, 2, plr[pnum]._pBWidth); + + plr[pnum]._pmode = PM_BLOCK; + FixPlayerLocation(pnum, dir); + SetPlayerOld(pnum); } void __fastcall StartSpell(int pnum, int d, int cx, int cy)