Browse Source

Clean up Obj_BCrossDamage.

pull/88/head
Sergey Semushin 7 years ago
parent
commit
b0fac7e542
  1. 62
      Source/objects.cpp

62
Source/objects.cpp

@ -2029,45 +2029,33 @@ void Obj_Trap(int i)
void Obj_BCrossDamage(int i)
{
int v1; // esi
BOOLEAN v2; // zf
int v3; // ecx
int v4; // edx
int v6; // ecx
int damage[4]; // [esp+4h] [ebp-18h]
int v8; // [esp+18h] [ebp-4h]
v1 = myplr;
v8 = i;
v2 = plr[myplr]._pmode == PM_DEATH;
damage[0] = 6;
damage[1] = 8;
damage[2] = 10;
damage[3] = 12;
if (!v2) {
v3 = plr[v1]._pFireResist;
if (v3 > 0)
damage[leveltype - 1] -= v3 * damage[leveltype - 1] / 100;
if (plr[v1].WorldX == object[v8]._ox && plr[v1].WorldY == object[v8]._oy - 1) {
v4 = damage[leveltype - 1];
plr[v1]._pHitPoints -= v4;
plr[v1]._pHPBase -= v4;
if (plr[v1]._pHitPoints >> 6 <= 0) {
SyncPlrKill(myplr, 0);
drawhpflag = TRUE;
return;
}
if (plr[myplr]._pClass == PC_WARRIOR) {
v6 = PS_WARR68;
} else if (plr[myplr]._pClass == PC_ROGUE) {
v6 = PS_ROGUE68;
} else if (plr[myplr]._pClass == PC_SORCERER) {
v6 = PS_MAGE68;
}
PlaySfxLoc(v6, plr[v1].WorldX, plr[v1].WorldY);
drawhpflag = TRUE;
int fire_resist;
int damage[4] = { 6, 8, 10, 12 };
if (plr[myplr]._pmode == PM_DEATH)
return;
fire_resist = plr[myplr]._pFireResist;
if (fire_resist > 0)
damage[leveltype - 1] -= fire_resist * damage[leveltype - 1] / 100;
if (plr[myplr].WorldX != object[i]._ox || plr[myplr].WorldY != object[i]._oy - 1)
return;
plr[myplr]._pHitPoints -= damage[leveltype - 1];
plr[myplr]._pHPBase -= damage[leveltype - 1];
if (plr[myplr]._pHitPoints >> 6 <= 0) {
SyncPlrKill(myplr, 0);
} else {
if (plr[myplr]._pClass == PC_WARRIOR) {
PlaySfxLoc(PS_WARR68, plr[myplr].WorldX, plr[myplr].WorldY);
} else if (plr[myplr]._pClass == PC_ROGUE) {
PlaySfxLoc(PS_ROGUE68, plr[myplr].WorldX, plr[myplr].WorldY);
} else if (plr[myplr]._pClass == PC_SORCERER) {
PlaySfxLoc(PS_MAGE68, plr[myplr].WorldX, plr[myplr].WorldY);
}
}
drawhpflag = TRUE;
}
void ProcessObjects()

Loading…
Cancel
Save