|
|
|
|
@ -4,9 +4,9 @@ int missileactive[MAXMISSILES];
|
|
|
|
|
int missileavail[MAXMISSILES]; |
|
|
|
|
MissileStruct missile[MAXMISSILES]; |
|
|
|
|
int nummissiles; |
|
|
|
|
int ManashieldFlag; |
|
|
|
|
BOOL ManashieldFlag; |
|
|
|
|
ChainStruct chain[MAXMISSILES]; |
|
|
|
|
int MissilePreFlag; |
|
|
|
|
BOOL MissilePreFlag; |
|
|
|
|
int numchains; |
|
|
|
|
|
|
|
|
|
int XDirAdd[8] = { 1, 0, -1, -1, -1, 0, 1, 1 }; |
|
|
|
|
@ -390,7 +390,7 @@ void PutMissile(int i)
|
|
|
|
|
else |
|
|
|
|
dMissile[x][y] = -1; |
|
|
|
|
if (missile[i]._miPreFlag) |
|
|
|
|
MissilePreFlag = 1; |
|
|
|
|
MissilePreFlag = TRUE; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -1571,7 +1571,7 @@ void AddTown(int mi, int sx, int sy, int dx, int dy, int midir, char mienemy, in
|
|
|
|
|
tx = dx + CrawlTable[k - 1]; |
|
|
|
|
ty = dy + CrawlTable[k]; |
|
|
|
|
if (tx > 0 && tx < MAXDUNX && ty > 0 && ty < MAXDUNY) { |
|
|
|
|
if (!(dObject[tx][ty] | dPlayer[tx][ty] | dMissile[tx][ty] | nSolidTable[dPiece[tx][ty]] | (BYTE)nMissileTable[dPiece[tx][ty]])) { |
|
|
|
|
if (!(dObject[tx][ty] | dPlayer[tx][ty] | dMissile[tx][ty] | nSolidTable[dPiece[tx][ty]] | nMissileTable[dPiece[tx][ty]])) { |
|
|
|
|
if (!CheckIfTrig(tx, ty)) { |
|
|
|
|
missile[mi]._miDelFlag = FALSE; |
|
|
|
|
missile[mi]._mix = tx; |
|
|
|
|
@ -1703,7 +1703,7 @@ void AddGuardian(int mi, int sx, int sy, int dx, int dy, int midir, char mienemy
|
|
|
|
|
pn = dPiece[tx][ty]; |
|
|
|
|
if (tx > 0 && tx < MAXDUNX && ty > 0 && ty < MAXDUNY) { |
|
|
|
|
if (LineClear(sx, sy, tx, ty)) { |
|
|
|
|
if (!(dMonster[tx][ty] | dObject[tx][ty] | dMissile[tx][ty] | nSolidTable[pn] | (BYTE)nMissileTable[pn])) { |
|
|
|
|
if (!(dMonster[tx][ty] | dObject[tx][ty] | dMissile[tx][ty] | nSolidTable[pn] | nMissileTable[pn])) { |
|
|
|
|
missile[mi]._miDelFlag = FALSE; |
|
|
|
|
missile[mi]._mix = tx; |
|
|
|
|
missile[mi]._miy = ty; |
|
|
|
|
@ -2093,7 +2093,7 @@ void AddIdentify(int mi, int sx, int sy, int dx, int dy, int midir, char mienemy
|
|
|
|
|
UseMana(id, SPL_IDENTIFY); |
|
|
|
|
if (id == myplr) { |
|
|
|
|
if (sbookflag) |
|
|
|
|
sbookflag = 0; |
|
|
|
|
sbookflag = FALSE; |
|
|
|
|
if (!invflag) |
|
|
|
|
invflag = 1; |
|
|
|
|
SetCursor_(CURSOR_IDENTIFY); |
|
|
|
|
@ -2189,7 +2189,7 @@ void AddRepair(int mi, int sx, int sy, int dx, int dy, int midir, char mienemy,
|
|
|
|
|
UseMana(id, SPL_REPAIR); |
|
|
|
|
if (id == myplr) { |
|
|
|
|
if (sbookflag) |
|
|
|
|
sbookflag = 0; |
|
|
|
|
sbookflag = FALSE; |
|
|
|
|
if (!invflag) |
|
|
|
|
invflag = 1; |
|
|
|
|
SetCursor_(CURSOR_REPAIR); |
|
|
|
|
@ -2202,7 +2202,7 @@ void AddRecharge(int mi, int sx, int sy, int dx, int dy, int midir, char mienemy
|
|
|
|
|
UseMana(id, SPL_RECHARGE); |
|
|
|
|
if (id == myplr) { |
|
|
|
|
if (sbookflag) |
|
|
|
|
sbookflag = 0; |
|
|
|
|
sbookflag = FALSE; |
|
|
|
|
if (!invflag) |
|
|
|
|
invflag = 1; |
|
|
|
|
SetCursor_(CURSOR_RECHARGE); |
|
|
|
|
@ -2539,7 +2539,7 @@ void MI_Golem(int i)
|
|
|
|
|
|
|
|
|
|
void MI_SetManashield(int i) |
|
|
|
|
{ |
|
|
|
|
ManashieldFlag = 1; |
|
|
|
|
ManashieldFlag = TRUE; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void MI_LArrow(int i) |
|
|
|
|
@ -2930,13 +2930,13 @@ void MI_Lightctrl(int i)
|
|
|
|
|
/// ASSERT: assert((DWORD)pn <= MAXTILES);
|
|
|
|
|
|
|
|
|
|
if (missile[i]._misource == -1) { |
|
|
|
|
if ((mx != missile[i]._misx || my != missile[i]._misy) && nMissileTable[pn] != 0) { |
|
|
|
|
if ((mx != missile[i]._misx || my != missile[i]._misy) && nMissileTable[pn]) { |
|
|
|
|
missile[i]._mirange = 0; |
|
|
|
|
} |
|
|
|
|
} else if (nMissileTable[pn] != 0) { |
|
|
|
|
} else if (nMissileTable[pn]) { |
|
|
|
|
missile[i]._mirange = 0; |
|
|
|
|
} |
|
|
|
|
if (nMissileTable[pn] == 0) { |
|
|
|
|
if (!nMissileTable[pn]) { |
|
|
|
|
if ((mx != missile[i]._miVar1 || my != missile[i]._miVar2) && mx > 0 && my > 0 && mx < MAXDUNX && my < MAXDUNY) { |
|
|
|
|
if (missile[i]._misource != -1) { |
|
|
|
|
if (missile[i]._micaster == 1 |
|
|
|
|
@ -3665,7 +3665,7 @@ void MI_Wave(int i)
|
|
|
|
|
nya = sy + YDirAdd[sd]; |
|
|
|
|
pn = dPiece[nxa][nya]; |
|
|
|
|
/// ASSERT: assert((DWORD)pn <= MAXTILES);
|
|
|
|
|
if (nMissileTable[pn] == 0) { |
|
|
|
|
if (!nMissileTable[pn]) { |
|
|
|
|
AddMissile(nxa, nya, nxa + XDirAdd[sd], nya + YDirAdd[sd], plr[id]._pdir, MIS_FIREMOVE, 0, id, 0, missile[i]._mispllvl); |
|
|
|
|
nxa += XDirAdd[dira]; |
|
|
|
|
nya += YDirAdd[dira]; |
|
|
|
|
@ -4039,8 +4039,8 @@ void ProcessMissiles()
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
MissilePreFlag = 0; |
|
|
|
|
ManashieldFlag = 0; |
|
|
|
|
MissilePreFlag = FALSE; |
|
|
|
|
ManashieldFlag = FALSE; |
|
|
|
|
|
|
|
|
|
for (i = 0; i < nummissiles; i++) { |
|
|
|
|
mi = missileactive[i]; |
|
|
|
|
|