From d1f5ae5535e70b8abb4641875bc7c0ad71d7faaf Mon Sep 17 00:00:00 2001 From: qndel Date: Thu, 14 Mar 2019 00:52:28 +0100 Subject: [PATCH] MI_Stone bin exact (#649) --- Source/missiles.cpp | 44 +++++++++++++++++--------------------------- 1 file changed, 17 insertions(+), 27 deletions(-) diff --git a/Source/missiles.cpp b/Source/missiles.cpp index ccc81628c..4fff6cd85 100644 --- a/Source/missiles.cpp +++ b/Source/missiles.cpp @@ -4915,38 +4915,28 @@ void __fastcall MI_Teleport(int i) void __fastcall MI_Stone(int i) { - int v1; // esi - int v2; // edi - int v3; // edi - BOOLEAN v4; // zf - BOOLEAN v5; // sf - int ia; // [esp+Ch] [ebp-4h] + int m; - v1 = i; - ia = i; - v2 = missile[i]._miVar2; - --missile[v1]._mirange; - v3 = v2; - if (!monster[v3]._mhitpoints && _LOBYTE(missile[v1]._miAnimType) != MFILE_MAGBALL) { - missile[v1]._mimfnum = 0; - missile[v1]._miDrawFlag = TRUE; + missile[i]._mirange--; + m = missile[i]._miVar2; + if (!monster[m]._mhitpoints && missile[i]._miAnimType != MFILE_SHATTER1) { + missile[i]._mimfnum = 0; + missile[i]._miDrawFlag = TRUE; SetMissAnim(i, MFILE_SHATTER1); - missile[v1]._mirange = 11; + missile[i]._mirange = 11; } - if (monster[v3]._mmode == MM_STONE) { - if (!missile[v1]._mirange) { - v4 = monster[v3]._mhitpoints == 0; - v5 = monster[v3]._mhitpoints < 0; - missile[v1]._miDelFlag = TRUE; - if (v5 || v4) - AddDead(monster[v3]._mx, monster[v3]._my, stonendx, (direction)monster[v3]._mdir); + if (monster[m]._mmode != MM_STONE) { + missile[i]._miDelFlag = TRUE; + } else { + if (!missile[i]._mirange) { + missile[i]._miDelFlag = TRUE; + if (monster[m]._mhitpoints > 0) + monster[m]._mmode = missile[i]._miVar1; 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) - PutMissile(ia); - } else { - missile[v1]._miDelFlag = TRUE; + if (missile[i]._miAnimType == MFILE_SHATTER1) + PutMissile(i); } }