Browse Source

AddFireball almost bin exact

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

70
Source/missiles.cpp

@ -1769,57 +1769,33 @@ void __fastcall AddFirewall(int mi, int sx, int sy, int dx, int dy, int midir, i
void __fastcall AddFireball(int mi, int sx, int sy, int dx, int dy, int midir, int mienemy, int id, int dam)
{
int v9; // edi
int v10; // eax
int v12; // ecx
int v13; // edx
int v14; // esi
int v15; // eax
int v16; // esi
int i; // [esp+Ch] [ebp-4h]
int mienemya; // [esp+28h] [ebp+18h]
v9 = sx;
i = mi;
if (sx == dx) {
mi = dy;
if (sy == dy) {
mi = YDirAdd[midir] + dy;
dx += XDirAdd[midir];
dy += YDirAdd[midir];
}
int i;
if (sx == dx && sy == dy) {
dx += XDirAdd[midir];
dy += YDirAdd[midir];
}
if ((_BYTE)mienemy) {
v14 = 16;
} else {
v10 = random(60, 10);
v12 = 2 * (plr[id]._pLevel + random(60, 10) + v10) + 4;
v13 = missile[i]._mispllvl;
missile[i]._midam = v12;
if (v13 > 0) {
mienemya = v13;
do {
v12 += v12 >> 3;
--mienemya;
} while (mienemya);
missile[i]._midam = v12;
if (!(_BYTE)mienemy) {
missile[mi]._midam = 2 * (plr[id]._pLevel + random(60, 10) + random(60, 10)) + 4;
for (i = 0; i < missile[mi]._mispllvl; i++) {
missile[mi]._midam += missile[mi]._midam >> 3;
}
v14 = 2 * v13 + 16;
if (v14 > 50)
v14 = 50;
i = 2 * missile[mi]._mispllvl + 16;
if (i > 50)
i = 50;
UseMana(id, 12);
} else {
i = 16;
}
GetMissileVel(i, v9, sy, dx, dy, v14);
v15 = GetDirection16(v9, sy, dx, dy);
SetMissDir(i, v15);
v16 = i;
missile[v16]._miVar3 = 0;
missile[v16]._mirange = 256;
missile[v16]._miVar1 = v9;
missile[v16]._miVar2 = sy;
missile[v16]._miVar4 = v9;
missile[v16]._miVar5 = sy;
missile[v16]._mlid = AddLight(v9, sy, 8);
GetMissileVel(mi, sx, sy, dx, dy, i);
SetMissDir(mi, GetDirection16(sx, sy, dx, dy));
missile[mi]._mirange = 256;
missile[mi]._miVar1 = sx;
missile[mi]._miVar2 = sy;
missile[mi]._miVar3 = 0;
missile[mi]._miVar4 = sx;
missile[mi]._miVar5 = sy;
missile[mi]._mlid = AddLight(sx, sy, 8);
}
void __fastcall AddLightctrl(int mi, int sx, int sy, int dx, int dy, int midir, int mienemy, int id, int dam)

Loading…
Cancel
Save