Browse Source

MI_Rhino bin exact (#721)

pull/72/head
qndel 7 years ago committed by Anders Jenbo
parent
commit
7c92fbd06b
  1. 93
      Source/missiles.cpp

93
Source/missiles.cpp

@ -4301,69 +4301,48 @@ void __fastcall MI_Boom(int i)
void __fastcall MI_Rhino(int i) void __fastcall MI_Rhino(int i)
{ {
int v1; // ebx int mix, miy, mix2, miy2, omx, omy, monst;
int v2; // esi
int v3; // edi
int v4; // edi
int v5; // eax
int v6; // eax
int v7; // ebx
BOOLEAN v8; // zf
int x; // [esp+Ch] [ebp-1Ch]
int v10; // [esp+10h] [ebp-18h]
int y; // [esp+14h] [ebp-14h]
int a2; // [esp+18h] [ebp-10h]
int a3; // [esp+1Ch] [ebp-Ch]
int arglist; // [esp+20h] [ebp-8h]
int a1; // [esp+24h] [ebp-4h]
v1 = i; monst = missile[i]._misource;
v2 = i; if (monster[monst]._mmode != MM_CHARGE) {
arglist = i; missile[i]._miDelFlag = TRUE;
v3 = missile[i]._misource; return;
a1 = v3; }
v4 = v3;
if (monster[v4]._mmode != MM_CHARGE)
goto LABEL_12;
GetMissilePos(i); GetMissilePos(i);
v5 = missile[v2]._mix; mix = missile[i]._mix;
x = v5; miy = missile[i]._miy;
v10 = missile[v2]._miy; dMonster[mix][miy] = 0;
dMonster[v5][v10] = 0; if (monster[monst]._mAi == AI_SNAKE) {
v6 = missile[v2]._mixvel; missile[i]._mitxoff += 2 * missile[i]._mixvel;
if (monster[v4]._mAi == AI_SNAKE) { missile[i]._mityoff += 2 * missile[i]._miyvel;
missile[v2]._mitxoff += 2 * v6; GetMissilePos(i);
missile[v2]._mityoff += 2 * missile[v2]._miyvel; mix2 = missile[i]._mix;
GetMissilePos(v1); miy2 = missile[i]._miy;
a2 = missile[v2]._mix; missile[i]._mitxoff -= missile[i]._mixvel;
a3 = missile[v2]._miy; missile[i]._mityoff -= missile[i]._miyvel;
missile[v2]._mitxoff -= missile[v2]._mixvel;
missile[v2]._mityoff -= missile[v2]._miyvel;
} else { } else {
missile[v2]._mitxoff += v6; missile[i]._mitxoff += missile[i]._mixvel;
missile[v2]._mityoff += missile[v2]._miyvel; missile[i]._mityoff += missile[i]._miyvel;
} }
GetMissilePos(v1); GetMissilePos(i);
v7 = missile[v2]._mix; omx = missile[i]._mix;
y = missile[v2]._miy; omy = missile[i]._miy;
if (!PosOkMonst(a1, missile[v2]._mix, missile[v2]._miy) || monster[v4]._mAi == AI_SNAKE && !PosOkMonst(a1, a2, a3)) { if (!PosOkMonst(monst, missile[i]._mix, missile[i]._miy) || (monster[monst]._mAi == AI_SNAKE && !PosOkMonst(monst, mix2, miy2))) {
MissToMonst(arglist, x, v10); MissToMonst(i, mix, miy);
LABEL_12: missile[i]._miDelFlag = TRUE;
missile[v2]._miDelFlag = TRUE;
return; return;
} }
v8 = monster[v4]._uniqtype == 0; monster[monst]._mfutx = omx;
monster[v4]._mfutx = v7; monster[monst]._moldx = omx;
monster[v4]._moldx = v7; dMonster[omx][omy] = -1 - monst;
dMonster[v7][y] = -1 - a1; monster[monst]._mx = omx;
monster[v4]._mx = v7; monster[monst]._mfuty = omy;
monster[v4]._mfuty = y; monster[monst]._moldy = omy;
monster[v4]._moldy = y; monster[monst]._my = omy;
monster[v4]._my = y; if (monster[monst]._uniqtype != 0)
if (!v8) ChangeLightXY(missile[i]._mlid, omx, omy);
ChangeLightXY(missile[v2]._mlid, v7, y); MoveMissilePos(i);
MoveMissilePos(arglist); PutMissile(i);
PutMissile(arglist);
} }
void __fastcall mi_null_32(int i) void __fastcall mi_null_32(int i)

Loading…
Cancel
Save