Browse Source

Cleanup MI_Wave

pull/2210/head
Vladimir Olteanu 5 years ago committed by Anders Jenbo
parent
commit
1368c4d499
  1. 18
      Source/missiles.cpp

18
Source/missiles.cpp

@ -4633,29 +4633,23 @@ void MI_Apoca(int i)
void MI_Wave(int i)
{
int j, id, pn;
bool f1, f2;
int v1, v2;
f1 = false;
f2 = false;
bool f1 = false;
bool f2 = false;
assert((DWORD)i < MAXMISSILES);
id = missile[i]._misource;
int id = missile[i]._misource;
Point src = missile[i].position.tile;
v1 = missile[i]._miVar1;
v2 = missile[i]._miVar2;
Direction sd = GetDirection(src, { v1, v2 });
Direction sd = GetDirection(src, { missile[i]._miVar1, missile[i]._miVar2 });
Direction dira = left[left[sd]];
Direction dirb = right[right[sd]];
Point na = src + sd;
pn = dPiece[na.x][na.y];
int pn = dPiece[na.x][na.y];
assert((DWORD)pn <= MAXTILES);
if (!nMissileTable[pn]) {
AddMissile(na, na + sd, plr[id]._pdir, MIS_FIREMOVE, TARGET_MONSTERS, id, 0, missile[i]._mispllvl);
na += dira;
Point nb = src + sd + dirb;
for (j = 0; j < (missile[i]._mispllvl / 2) + 2; j++) {
for (int j = 0; j < (missile[i]._mispllvl / 2) + 2; j++) {
pn = dPiece[na.x][na.y]; // BUGFIX: dPiece is accessed before check against dungeon size and 0
assert((DWORD)pn <= MAXTILES);
if (nMissileTable[pn] || f1 || !InDungeonBounds(na)) {

Loading…
Cancel
Save