diff --git a/Source/player.cpp b/Source/player.cpp index a93506df0..80a8d1fee 100644 --- a/Source/player.cpp +++ b/Source/player.cpp @@ -2116,40 +2116,24 @@ LABEL_28: void __fastcall SyncPlrKill(int pnum, int earflag) { - int v2; // esi - int v3; // ebx - int v4; // edx - int v5; // eax + if ( plr[pnum]._pHitPoints == 0 && currlevel == 0 ) { + SetPlayerHitPoints(pnum, 64); + return; + } - v2 = pnum; - v3 = earflag; - if ( plr[pnum]._pHitPoints || currlevel ) - { - v4 = 0; - if ( nummissiles <= 0 ) - { -LABEL_9: - SetPlayerHitPoints(pnum, 0); - StartPlayerKill(v2, v3); - } - else - { - while ( 1 ) - { - v5 = missileactive[v4]; - if ( missile[v5]._mitype == 13 && missile[v5]._misource == pnum && !missile[v5]._miDelFlag ) - break; - if ( ++v4 >= nummissiles ) - goto LABEL_9; + for ( int i = 0; i < nummissiles; i++ ) { + int ma = missileactive[i]; + if ( missile[ma]._mitype == MIS_MANASHIELD && missile[ma]._misource == pnum && missile[ma]._miDelFlag == 0 ) { + if ( earflag != -1 ) { + missile[ma]._miVar8 = earflag; } - if ( v3 != -1 ) - missile[missileactive[v4]]._miVar8 = v3; + + return; } } - else - { - SetPlayerHitPoints(pnum, 64); - } + + SetPlayerHitPoints(pnum, 0); + StartPlayerKill(pnum, earflag); } void __fastcall RemovePlrMissiles(int pnum)