Browse Source

MI_Apoca bin exact (#730)

pull/78/head
qndel 7 years ago committed by Anders Jenbo
parent
commit
8d02e667d7
  1. 60
      Source/missiles.cpp

60
Source/missiles.cpp

@ -4415,54 +4415,28 @@ void __fastcall MI_Infra(int i)
void __fastcall MI_Apoca(int i)
{
int v1; // esi
int v2; // edi
signed int v3; // eax
int v4; // ecx
int v5; // ebx
int id; // [esp+8h] [ebp-8h]
int v7; // [esp+Ch] [ebp-4h]
int j, k, id;
BOOL exit;
v1 = i;
v2 = missile[i]._miVar2;
id = missile[i]._misource;
v3 = 0;
if (v2 >= missile[i]._miVar3)
goto LABEL_18;
do {
if (v3)
break;
v4 = missile[v1]._miVar4;
v7 = missile[v1]._miVar4;
if (v4 >= missile[v1]._miVar5) {
LABEL_11:
missile[v1]._miVar4 = missile[v1]._miVar6;
} else {
v5 = v2 + 112 * v4;
while (!v3) {
if (dMonster[0][v5] > 3 && !nSolidTable[dPiece[0][v5]]) {
AddMissile(v4, v2, v4, v2, plr[id]._pdir, MIS_BOOM, 0, id, missile[v1]._midam, 0);
v4 = v7;
v3 = 1;
}
++v4;
v5 += 112;
v7 = v4;
if (v4 >= missile[v1]._miVar5) {
if (v3)
break;
goto LABEL_11;
}
exit = FALSE;
for (j = missile[i]._miVar2; j < missile[i]._miVar3 && !exit; j++) {
for (k = missile[i]._miVar4; k < missile[i]._miVar5 && !exit; k++) {
if (dMonster[k][j] > 3 && !nSolidTable[dPiece[k][j]]) {
AddMissile(k, j, k, j, plr[id]._pdir, MIS_BOOM, 0, id, missile[i]._midam, 0);
exit = TRUE;
}
}
++v2;
} while (v2 < missile[v1]._miVar3);
if (v3 != 1) {
LABEL_18:
missile[v1]._miDelFlag = TRUE;
if (!exit) {
missile[i]._miVar4 = missile[i]._miVar6;
}
}
if (exit == TRUE) {
missile[i]._miVar2 = j - 1;
missile[i]._miVar4 = k;
} else {
missile[v1]._miVar2 = v2 - 1;
missile[v1]._miVar4 = v7;
missile[i]._miDelFlag = TRUE;
}
}

Loading…
Cancel
Save