Browse Source

MI_Hbolt bin exact (#676)

pull/44/head
qndel 7 years ago committed by Robin Eklind
parent
commit
e29da25bd2
  1. 69
      Source/missiles.cpp

69
Source/missiles.cpp

@ -699,7 +699,7 @@ void __fastcall GetMissilePos(int i)
void __fastcall MoveMissilePos(int i)
{
int dx,dy;
int dx, dy;
switch (missile[i]._mimfnum) {
case DIR_S:
@ -735,7 +735,7 @@ void __fastcall MoveMissilePos(int i)
dy = 1;
break;
}
if (PosOkMonst(missile[i]._misource, missile[i]._mix + dx,missile[i]._miy + dy)) {
if (PosOkMonst(missile[i]._misource, missile[i]._mix + dx, missile[i]._miy + dy)) {
missile[i]._mix += dx;
missile[i]._miy += dy;
missile[i]._mixoff += (dy << 5) - (dx << 5);
@ -5161,50 +5161,39 @@ void __fastcall MI_Cbolt(int i)
void __fastcall MI_Hbolt(int i)
{
int v1; // edi
int v2; // esi
int v3; // eax
int v4; // edx
int v5; // ecx
int v6; // ST10_4
int v7; // ecx
int dam;
v1 = i;
v2 = i;
--missile[v2]._mirange;
if (_LOBYTE(missile[i]._miAnimType) == MFILE_HOLYEXPL) {
ChangeLight(missile[v2]._mlid, missile[v2]._mix, missile[v2]._miy, missile[v2]._miAnimFrame + 7);
if (!missile[v2]._mirange) {
v7 = missile[v2]._mlid;
missile[v2]._miDelFlag = TRUE;
AddUnLight(v7);
}
} else {
missile[v2]._mitxoff += missile[v2]._mixvel;
missile[v2]._mityoff += missile[v2]._miyvel;
missile[i]._mirange--;
if (missile[i]._miAnimType != MFILE_HOLYEXPL) {
missile[i]._mitxoff += missile[i]._mixvel;
missile[i]._mityoff += missile[i]._miyvel;
GetMissilePos(i);
v3 = missile[v2]._mix;
if (v3 != missile[v2]._misx || missile[v2]._miy != missile[v2]._misy)
CheckMissileCol(v1, missile[v2]._midam, missile[v2]._midam, 0, v3, missile[v2]._miy, 0);
if (missile[v2]._mirange) {
v4 = missile[v2]._mix;
if (v4 != missile[v2]._miVar1 || missile[v2]._miy != missile[v2]._miVar2) {
v5 = missile[v2]._mlid;
missile[v2]._miVar1 = v4;
v6 = missile[v2]._miy;
missile[v2]._miVar2 = v6;
ChangeLight(v5, v4, v6, 8);
dam = missile[i]._midam;
if (missile[i]._mix != missile[i]._misx || missile[i]._miy != missile[i]._misy) {
CheckMissileCol(i, dam, dam, 0, missile[i]._mix, missile[i]._miy, 0);
}
if (!missile[i]._mirange) {
missile[i]._mitxoff -= missile[i]._mixvel;
missile[i]._mityoff -= missile[i]._miyvel;
GetMissilePos(i);
missile[i]._mimfnum = 0;
SetMissAnim(i, MFILE_HOLYEXPL);
missile[i]._mirange = missile[i]._miAnimLen - 1;
} else {
missile[v2]._mitxoff -= missile[v2]._mixvel;
missile[v2]._mityoff -= missile[v2]._miyvel;
GetMissilePos(v1);
missile[v2]._mimfnum = 0;
SetMissAnim(v1, MFILE_HOLYEXPL);
missile[v2]._mirange = missile[v2]._miAnimLen - 1;
if (missile[i]._mix != missile[i]._miVar1 || missile[i]._miy != missile[i]._miVar2) {
missile[i]._miVar1 = missile[i]._mix;
missile[i]._miVar2 = missile[i]._miy;
ChangeLight(missile[i]._mlid, missile[i]._mix, missile[i]._miy, 8);
}
}
} else {
ChangeLight(missile[i]._mlid, missile[i]._mix, missile[i]._miy, missile[i]._miAnimFrame + 7);
if (!missile[i]._mirange) {
missile[i]._miDelFlag = TRUE;
AddUnLight(missile[i]._mlid);
}
}
PutMissile(v1);
PutMissile(i);
}
void __fastcall MI_Element(int i)

Loading…
Cancel
Save