Browse Source

MI_Stone bin exact (#649)

pull/35/head
qndel 7 years ago committed by Robin Eklind
parent
commit
d1f5ae5535
  1. 44
      Source/missiles.cpp

44
Source/missiles.cpp

@ -4915,38 +4915,28 @@ void __fastcall MI_Teleport(int i)
void __fastcall MI_Stone(int i) void __fastcall MI_Stone(int i)
{ {
int v1; // esi int m;
int v2; // edi
int v3; // edi
BOOLEAN v4; // zf
BOOLEAN v5; // sf
int ia; // [esp+Ch] [ebp-4h]
v1 = i; missile[i]._mirange--;
ia = i; m = missile[i]._miVar2;
v2 = missile[i]._miVar2; if (!monster[m]._mhitpoints && missile[i]._miAnimType != MFILE_SHATTER1) {
--missile[v1]._mirange; missile[i]._mimfnum = 0;
v3 = v2; missile[i]._miDrawFlag = TRUE;
if (!monster[v3]._mhitpoints && _LOBYTE(missile[v1]._miAnimType) != MFILE_MAGBALL) {
missile[v1]._mimfnum = 0;
missile[v1]._miDrawFlag = TRUE;
SetMissAnim(i, MFILE_SHATTER1); SetMissAnim(i, MFILE_SHATTER1);
missile[v1]._mirange = 11; missile[i]._mirange = 11;
} }
if (monster[v3]._mmode == MM_STONE) { if (monster[m]._mmode != MM_STONE) {
if (!missile[v1]._mirange) { missile[i]._miDelFlag = TRUE;
v4 = monster[v3]._mhitpoints == 0; } else {
v5 = monster[v3]._mhitpoints < 0; if (!missile[i]._mirange) {
missile[v1]._miDelFlag = TRUE; missile[i]._miDelFlag = TRUE;
if (v5 || v4) if (monster[m]._mhitpoints > 0)
AddDead(monster[v3]._mx, monster[v3]._my, stonendx, (direction)monster[v3]._mdir); monster[m]._mmode = missile[i]._miVar1;
else else
monster[v3]._mmode = missile[v1]._miVar1; AddDead(monster[m]._mx, monster[m]._my, stonendx, (direction)monster[m]._mdir);
} }
if (_LOBYTE(missile[v1]._miAnimType) == MFILE_MAGBALL) if (missile[i]._miAnimType == MFILE_SHATTER1)
PutMissile(ia); PutMissile(i);
} else {
missile[v1]._miDelFlag = TRUE;
} }
} }

Loading…
Cancel
Save