diff --git a/Source/missiles.cpp b/Source/missiles.cpp index ce9a1e6ee..feee2c632 100644 --- a/Source/missiles.cpp +++ b/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)