Browse Source

Clean up MI_Bonespirit

pull/88/head
Anders Jenbo 7 years ago
parent
commit
7ddced8bc8
  1. 103
      Source/missiles.cpp

103
Source/missiles.cpp

@ -3536,7 +3536,7 @@ void MI_Manashield(int i)
missile[i]._mirange = 0;
if (plr[id]._pHitPoints < 0)
SetPlayerHitPoints(id, 0);
if (!(plr[id]._pHitPoints >> 6) && id == myplr) {
if (!(plr[id]._pHitPoints >> 6) && id == myplr) {
SyncPlrKill(id, missile[i]._miVar8);
}
}
@ -4383,82 +4383,53 @@ void MI_Element(int i)
void MI_Bonespirit(int i)
{
int v1; // ebx
int v2; // esi
int v3; // eax
int v4; // ecx
int v5; // ecx
int v6; // edi
int v7; // ebx
int v8; // eax
int v9; // edi
int v10; // ST14_4
int v11; // ST10_4
int v12; // eax
int v13; // ST24_4
int v14; // ecx
int v16; // [esp+Ch] [ebp-10h]
int maxdam; // [esp+10h] [ebp-Ch]
int y1; // [esp+14h] [ebp-8h]
int ia; // [esp+18h] [ebp-4h]
int id, mid, sd, dam;
int cx, cy;
v1 = i;
v2 = i;
ia = i;
v3 = missile[i]._midam;
--missile[v2]._mirange;
maxdam = v3;
v16 = missile[i]._misource;
missile[i]._mirange--;
dam = missile[i]._midam;
id = missile[i]._misource;
if (missile[i]._mimfnum == 8) {
ChangeLight(missile[v2]._mlid, missile[v2]._mix, missile[v2]._miy, missile[v2]._miAnimFrame);
if (!missile[v2]._mirange) {
v4 = missile[v2]._mlid;
missile[v2]._miDelFlag = TRUE;
AddUnLight(v4);
ChangeLight(missile[i]._mlid, missile[i]._mix, missile[i]._miy, missile[i]._miAnimFrame);
if (!missile[i]._mirange) {
missile[i]._miDelFlag = TRUE;
AddUnLight(missile[i]._mlid);
}
v5 = v1;
PutMissile(i);
} else {
missile[v2]._mitxoff += missile[v2]._mixvel;
missile[v2]._mityoff += missile[v2]._miyvel;
missile[i]._mitxoff += missile[i]._mixvel;
missile[i]._mityoff += missile[i]._miyvel;
GetMissilePos(i);
v6 = missile[v2]._miy;
v7 = missile[v2]._mix;
y1 = missile[v2]._miy;
CheckMissileCol(ia, maxdam, maxdam, 0, missile[v2]._mix, v6, 0);
if (!missile[v2]._miVar3 && v7 == missile[v2]._miVar4 && v6 == missile[v2]._miVar5)
missile[v2]._miVar3 = 1;
if (missile[v2]._miVar3 == 1) {
missile[v2]._miVar3 = 2;
missile[v2]._mirange = 255;
v8 = FindClosest(v7, v6, 19);
if (v8 <= 0) {
v13 = plr[v16]._pdir;
SetMissDir(ia, v13);
GetMissileVel(ia, v7, v6, v7 + XDirAdd[v13], v6 + YDirAdd[v13], 16);
cx = missile[i]._mix;
cy = missile[i]._miy;
CheckMissileCol(i, dam, dam, FALSE, cx, cy, 0);
if (missile[i]._miVar3 == 0 && cx == missile[i]._miVar4 && cy == missile[i]._miVar5)
missile[i]._miVar3 = 1;
if (missile[i]._miVar3 == 1) {
missile[i]._miVar3 = 2;
missile[i]._mirange = 255;
mid = FindClosest(cx, cy, 19);
if (mid > 0) {
missile[i]._midam = monster[mid]._mhitpoints >> 7;
SetMissDir(i, GetDirection8(cx, cy, monster[mid]._mx, monster[mid]._my));
GetMissileVel(i, cx, cy, monster[mid]._mx, monster[mid]._my, 16);
} else {
v9 = v8;
v10 = monster[v8]._my;
v11 = monster[v8]._mx;
missile[v2]._midam = monster[v8]._mhitpoints >> 7;
v12 = GetDirection8(v7, y1, v11, v10);
SetMissDir(ia, v12);
GetMissileVel(ia, v7, y1, monster[v9]._mx, monster[v9]._my, 16);
v6 = y1;
sd = plr[id]._pdir;
SetMissDir(i, sd);
GetMissileVel(i, cx, cy, cx + XDirAdd[sd], cy + YDirAdd[sd], 16);
}
}
if (v7 != missile[v2]._miVar1 || v6 != missile[v2]._miVar2) {
v14 = missile[v2]._mlid;
missile[v2]._miVar1 = v7;
missile[v2]._miVar2 = v6;
ChangeLight(v14, v7, v6, 8);
if (cx != missile[i]._miVar1 || cy != missile[i]._miVar2) {
missile[i]._miVar1 = cx;
missile[i]._miVar2 = cy;
ChangeLight(missile[i]._mlid, cx, cy, 8);
}
if (!missile[v2]._mirange) {
SetMissDir(ia, 8);
missile[v2]._mirange = 7;
if (!missile[i]._mirange) {
SetMissDir(i, DIR_OMNI);
missile[i]._mirange = 7;
}
v5 = ia;
PutMissile(i);
}
PutMissile(v5);
}
void MI_ResurrectBeam(int i)

Loading…
Cancel
Save