From de665eacca6c8d083899d0574c1ebef72337e9bc Mon Sep 17 00:00:00 2001 From: qndel Date: Sun, 24 Mar 2019 20:36:48 +0100 Subject: [PATCH] MI_FirewallC bin exact (#729) --- Source/missiles.cpp | 87 ++++++++++----------------------------------- 1 file changed, 19 insertions(+), 68 deletions(-) diff --git a/Source/missiles.cpp b/Source/missiles.cpp index bb34e1f3e..9c9001f67 100644 --- a/Source/missiles.cpp +++ b/Source/missiles.cpp @@ -4095,79 +4095,30 @@ void __fastcall mi_null_32(int i) void __fastcall MI_FirewallC(int i) { - int v1; // esi - int v2; // edx - BOOLEAN v3; // zf - int v4; // eax - int v5; // edi - int v6; // ecx - int v7; // ebx - int v8; // eax - int v9; // edi - int v10; // ecx - int v11; // ebx - int id; // [esp+Ch] [ebp-4h] + int tx, ty, id; - v1 = i; - v2 = missile[i]._misource; - v3 = missile[i]._mirange == 1; - --missile[v1]._mirange; - id = v2; - if (v3) { - missile[v1]._miDelFlag = TRUE; + id = missile[i]._misource; + missile[i]._mirange--; + if (missile[i]._mirange == 0) { + missile[i]._miDelFlag = TRUE; } else { - v4 = missile[v1]._miVar3; - v5 = missile[v1]._miVar1 + XDirAdd[v4]; - v6 = missile[v1]._miVar2; - v7 = v6 + YDirAdd[v4]; - if (nMissileTable[dPiece[missile[v1]._miVar1][v6]] - || missile[v1]._miVar8 - || v5 <= 0 - || v5 >= MAXDUNX - || v7 <= 0 - || v7 >= MAXDUNY) { - missile[v1]._miVar8 = 1; + tx = missile[i]._miVar1 + XDirAdd[missile[i]._miVar3]; + ty = missile[i]._miVar2 + YDirAdd[missile[i]._miVar3]; + if (!nMissileTable[dPiece[missile[i]._miVar1][missile[i]._miVar2]] && !missile[i]._miVar8 && tx > 0 && tx < MAXDUNX && ty > 0 && ty < MAXDUNY) { + AddMissile(missile[i]._miVar1, missile[i]._miVar2, missile[i]._miVar1, missile[i]._miVar2, plr[id]._pdir, MIS_FIREWALL, 0, id, 0, missile[i]._mispllvl); + missile[i]._miVar1 = tx; + missile[i]._miVar2 = ty; } else { - AddMissile( - missile[v1]._miVar1, - v6, - missile[v1]._miVar1, - v6, - plr[v2]._pdir, - MIS_FIREWALL, - 0, - v2, - 0, - missile[v1]._mispllvl); - v2 = id; - missile[v1]._miVar1 = v5; - missile[v1]._miVar2 = v7; + missile[i]._miVar8 = 1; } - v8 = missile[v1]._miVar4; - v9 = missile[v1]._miVar5 + XDirAdd[v8]; - v10 = missile[v1]._miVar6; - v11 = v10 + YDirAdd[v8]; - if (nMissileTable[dPiece[missile[v1]._miVar5][v10]] - || missile[v1]._miVar7 - || v9 <= 0 - || v9 >= MAXDUNX - || v11 <= 0 - || v11 >= MAXDUNY) { - missile[v1]._miVar7 = 1; + tx = missile[i]._miVar5 + XDirAdd[missile[i]._miVar4]; + ty = missile[i]._miVar6 + YDirAdd[missile[i]._miVar4]; + if (!nMissileTable[dPiece[missile[i]._miVar5][missile[i]._miVar6]] && !missile[i]._miVar7 && tx > 0 && tx < MAXDUNX && ty > 0 && ty < MAXDUNY) { + AddMissile(missile[i]._miVar5, missile[i]._miVar6, missile[i]._miVar5, missile[i]._miVar6, plr[id]._pdir, MIS_FIREWALL, 0, id, 0, missile[i]._mispllvl); + missile[i]._miVar5 = tx; + missile[i]._miVar6 = ty; } else { - AddMissile( - missile[v1]._miVar5, - v10, - missile[v1]._miVar5, - v10, - plr[v2]._pdir, - MIS_FIREWALL, - 0, - v2, - 0, - missile[v1]._mispllvl); - missile[v1]._miVar5 = v9; - missile[v1]._miVar6 = v11; + missile[i]._miVar7 = 1; } } }