Browse Source

MI_FirewallC bin exact (#729)

pull/78/head
qndel 7 years ago committed by Anders Jenbo
parent
commit
de665eacca
  1. 87
      Source/missiles.cpp

87
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;
}
}
}

Loading…
Cancel
Save