Browse Source

Use Point stuff in MI_Fireman

Update Source/missiles.cpp

Co-authored-by: Anders Jenbo <anders@jenbo.dk>
pull/2113/head
Vladimir Olteanu 5 years ago committed by Anders Jenbo
parent
commit
03f9392e0f
  1. 33
      Source/missiles.cpp

33
Source/missiles.cpp

@ -4635,35 +4635,26 @@ void MI_Rhino(int i)
void MI_Fireman(int i)
{
int src, enemy, ax, ay, bx, by, cx, cy, j;
int j;
GetMissilePos(i);
ax = missile[i].position.tile.x;
ay = missile[i].position.tile.y;
Point a = missile[i].position.tile;
missile[i].position.traveled += missile[i].position.velocity;
GetMissilePos(i);
src = missile[i]._misource;
bx = missile[i].position.tile.x;
by = missile[i].position.tile.y;
enemy = monster[src]._menemy;
if ((monster[src]._mFlags & MFLAG_TARGETS_MONSTER) == 0) {
cx = plr[enemy].position.tile.x;
cy = plr[enemy].position.tile.y;
} else {
cx = monster[enemy].position.tile.x;
cy = monster[enemy].position.tile.y;
}
if ((bx != ax || by != ay) && ((missile[i]._miVar1 & 1 && (abs(ax - cx) >= 4 || abs(ay - cy) >= 4)) || missile[i]._miVar2 > 1) && PosOkMonst(missile[i]._misource, { ax, ay })) {
MissToMonst(i, { ax, ay });
int src = missile[i]._misource;
Point b = missile[i].position.tile;
int enemy = monster[src]._menemy;
Point c = (monster[src]._mFlags & MFLAG_TARGETS_MONSTER) == 0 ? plr[enemy].position.tile : monster[enemy].position.tile;
if (b != a && ((missile[i]._miVar1 & 1 && a.WalkingDistance(c) >= 4) || missile[i]._miVar2 > 1) && PosOkMonst(missile[i]._misource, a)) {
MissToMonst(i, a);
missile[i]._miDelFlag = true;
} else if ((monster[src]._mFlags & MFLAG_TARGETS_MONSTER) == 0) {
j = dPlayer[bx][by];
j = dPlayer[b.x][b.y];
} else {
j = dMonster[bx][by];
j = dMonster[b.x][b.y];
}
if (!PosOkMissile(0, { bx, by }) || (j > 0 && !(missile[i]._miVar1 & 1))) {
missile[i].position.velocity.x *= -1;
missile[i].position.velocity.y *= -1;
if (!PosOkMissile(0, b) || (j > 0 && !(missile[i]._miVar1 & 1))) {
missile[i].position.velocity *= -1;
missile[i]._mimfnum = opposite[missile[i]._mimfnum];
missile[i]._miAnimData = monster[src].MType->Anims[MA_WALK].Data[missile[i]._mimfnum];
missile[i]._miVar2++;

Loading…
Cancel
Save