Browse Source

MI_Cbolt bin exact (#696)

pull/44/head
qndel 7 years ago committed by Anders Jenbo
parent
commit
6a4c58828c
  1. 94
      Source/missiles.cpp

94
Source/missiles.cpp

@ -4956,79 +4956,39 @@ void __fastcall MI_Flamec(int i)
void __fastcall MI_Cbolt(int i)
{
int v1; // esi
BOOLEAN v2; // zf
int v3; // eax
int v4; // edx
int v5; // eax
int v6; // ecx
int v7; // ecx
int v8; // ecx
int v9; // ecx
int bpath[16]; // [esp+Ch] [ebp-44h]
int ia; // [esp+4Ch] [ebp-4h]
int sx, sy, dy, md;
int bpath[16] = { -1, 0, 1, -1, 0, 1, -1, -1, 0, 0, 1, 1, 0, 1, -1, 0 };
ia = i;
v1 = i;
--missile[v1]._mirange;
v2 = _LOBYTE(missile[i]._miAnimType) == MFILE_LGHNING;
bpath[0] = -1;
bpath[1] = 0;
bpath[2] = 1;
bpath[3] = -1;
bpath[4] = 0;
bpath[5] = 1;
bpath[6] = -1;
bpath[7] = -1;
bpath[8] = 0;
bpath[9] = 0;
bpath[10] = 1;
bpath[11] = 1;
bpath[12] = 0;
bpath[13] = 1;
bpath[14] = -1;
bpath[15] = 0;
if (!v2) {
v3 = missile[v1]._miVar3;
if (v3) {
missile[v1]._miVar3 = v3 - 1;
missile[i]._mirange--;
if (missile[i]._miAnimType != MFILE_LGHNING) {
if (!missile[i]._miVar3) {
md = (missile[i]._miVar2 + bpath[missile[i]._mirnd]) & 7;
missile[i]._mirnd = (missile[i]._mirnd + 1) & 0xF;
GetMissileVel(i, missile[i]._mix, missile[i]._miy, missile[i]._mix + XDirAdd[md], missile[i]._miy + YDirAdd[md], 8);
missile[i]._miVar3 = 16;
} else {
v4 = missile[v1]._mirnd;
v5 = (missile[v1]._miVar2 + bpath[v4]) & 7;
missile[v1]._mirnd = ((_BYTE)v4 + 1) & 0xF;
GetMissileVel(
ia,
missile[v1]._mix,
missile[v1]._miy,
missile[v1]._mix + XDirAdd[v5],
missile[v1]._miy + YDirAdd[v5],
8);
missile[v1]._miVar3 = 16;
missile[i]._miVar3--;
}
v6 = ia;
missile[v1]._mitxoff += missile[v1]._mixvel;
missile[v1]._mityoff += missile[v1]._miyvel;
GetMissilePos(v6);
CheckMissileCol(ia, missile[v1]._midam, missile[v1]._midam, 0, missile[v1]._mix, missile[v1]._miy, 0);
if (missile[v1]._miHitFlag) {
v7 = ia;
missile[v1]._miVar1 = 8;
missile[v1]._mimfnum = 0;
missile[v1]._mixoff = 0;
missile[v1]._miyoff = 0;
SetMissAnim(v7, MFILE_LGHNING);
v8 = ia;
missile[v1]._mirange = missile[v1]._miAnimLen;
GetMissilePos(v8);
missile[i]._mitxoff += missile[i]._mixvel;
missile[i]._mityoff += missile[i]._miyvel;
GetMissilePos(i);
CheckMissileCol(i, missile[i]._midam, missile[i]._midam, 0, missile[i]._mix, missile[i]._miy, 0);
if (missile[i]._miHitFlag == TRUE) {
missile[i]._miVar1 = 8;
missile[i]._mimfnum = 0;
missile[i]._mixoff = 0;
missile[i]._miyoff = 0;
SetMissAnim(i, MFILE_LGHNING);
missile[i]._mirange = missile[i]._miAnimLen;
GetMissilePos(i);
}
ChangeLight(missile[v1]._mlid, missile[v1]._mix, missile[v1]._miy, missile[v1]._miVar1);
ChangeLight(missile[i]._mlid, missile[i]._mix, missile[i]._miy, missile[i]._miVar1);
}
if (!missile[v1]._mirange) {
v9 = missile[v1]._mlid;
missile[v1]._miDelFlag = TRUE;
AddUnLight(v9);
if (!missile[i]._mirange) {
missile[i]._miDelFlag = TRUE;
AddUnLight(missile[i]._mlid);
}
PutMissile(ia);
PutMissile(i);
}
void __fastcall MI_Hbolt(int i)

Loading…
Cancel
Save