Browse Source

remove Missiles[] in PutMissile()

pull/2676/head
BC Ko 5 years ago committed by Anders Jenbo
parent
commit
bf8c71dc24
  1. 88
      Source/missiles.cpp

88
Source/missiles.cpp

@ -135,9 +135,8 @@ void UpdateMissileVelocity(MissileStruct &missile, Point source, Point destinati
* @brief Add the missile to the lookup tables
* @param i Missiles index
*/
void PutMissile(int8_t i)
void PutMissile(MissileStruct &missile)
{
auto &missile = Missiles[i];
Point position = missile.position.tile;
if (!InDungeonBounds(position))
@ -732,7 +731,7 @@ void FireballUpdate(int i, Displacement offset, bool alwaysDelete)
missile._miDelFlag = true;
}
PutMissile(i);
PutMissile(missile);
}
bool GrowWall(int playerId, Point position, Point target, missile_id type, int spellLevel, int damage)
@ -1412,7 +1411,7 @@ void AddHorkSpawn(int mi, Point src, Point dst, int midir, int8_t /*mienemy*/, i
UpdateMissileVelocity(missile, src, dst, 8);
missile._mirange = 9;
missile._miVar1 = midir;
PutMissile(mi);
PutMissile(missile);
}
void AddJester(int mi, Point src, Point dst, int midir, int8_t /*mienemy*/, int id, int /*dam*/)
@ -2199,7 +2198,7 @@ void AddTown(int mi, Point /*src*/, Point dst, int /*midir*/, int8_t /*mienemy*/
if (Missiles[mx]._mitype == MIS_TOWN && mx != mi && Missiles[mx]._misource == id)
Missiles[mx]._mirange = 0;
}
PutMissile(mi);
PutMissile(missile);
if (id == MyPlayerId && !missile._miDelFlag && currlevel != 0) {
if (!setlevel) {
NetSendCmdLocParam3(true, CMD_ACTIVATEPORTAL, { tx, ty }, currlevel, leveltype, 0);
@ -2368,7 +2367,7 @@ void AddRhino(int mi, Point src, Point dst, int midir, int8_t /*mienemy*/, int i
missile._miUniqTrans = monster._uniqtrans + 1;
missile._mlid = monster.mlid;
}
PutMissile(mi);
PutMissile(missile);
}
void AddFlare(int mi, Point src, Point dst, int midir, int8_t mienemy, int id, int /*dam*/)
@ -2414,7 +2413,7 @@ void AddAcid(int mi, Point src, Point dst, int /*midir*/, int8_t /*mienemy*/, in
missile._mlid = NO_LIGHT;
missile._miVar1 = src.x;
missile._miVar2 = src.y;
PutMissile(mi);
PutMissile(missile);
}
void AddAcidpud(int mi, Point /*src*/, Point /*dst*/, int /*midir*/, int8_t /*mienemy*/, int /*id*/, int /*dam*/)
@ -2906,7 +2905,7 @@ void AddRportal(int mi, Point src, Point /*dst*/, int /*midir*/, int8_t /*mienem
missile._mirange = 100;
missile._miVar1 = 100 - missile._miAnimLen;
missile._miVar2 = 0;
PutMissile(mi);
PutMissile(missile);
}
void AddDiabApoca(int mi, Point src, Point /*dst*/, int /*midir*/, int8_t mienemy, int id, int dam)
@ -3115,7 +3114,7 @@ void MI_LArrow(int i)
missile._miDelFlag = true;
AddUnLight(missile._mlid);
}
PutMissile(i);
PutMissile(missile);
}
void MI_Arrow(int i)
@ -3145,7 +3144,7 @@ void MI_Arrow(int i)
CheckMissileCol(missile, mind, maxd, false, missile.position.tile, false);
if (missile._mirange == 0)
missile._miDelFlag = true;
PutMissile(i);
PutMissile(missile);
}
void MI_Firebolt(int i)
@ -3206,7 +3205,7 @@ void MI_Firebolt(int i)
SetMissDir(missile, DIR_OMNI);
missile._mirange = 7;
missile._miDelFlag = false;
PutMissile(i);
PutMissile(missile);
return;
case MIS_LICH:
AddMissile(missile.position.tile, { i, 0 }, missile._mimfnum, MIS_EXORA1, missile._micaster, missile._misource, 0, 0);
@ -3228,7 +3227,7 @@ void MI_Firebolt(int i)
}
if (missile._mlid != NO_LIGHT)
AddUnLight(missile._mlid);
PutMissile(i);
PutMissile(missile);
} else {
if (missile.position.tile.x != missile._miVar1 || missile.position.tile.y != missile._miVar2) {
missile._miVar1 = missile.position.tile.x;
@ -3236,16 +3235,16 @@ void MI_Firebolt(int i)
if (missile._mlid != NO_LIGHT)
ChangeLight(missile._mlid, { missile._miVar1, missile._miVar2 }, 8);
}
PutMissile(i);
PutMissile(missile);
}
} else if (missile._mirange == 0) {
if (missile._mlid != NO_LIGHT)
AddUnLight(missile._mlid);
missile._miDelFlag = true;
PlaySfxLoc(LS_BSIMPCT, missile.position.tile);
PutMissile(i);
PutMissile(missile);
} else
PutMissile(i);
PutMissile(missile);
}
void MI_Lightball(int i)
@ -3268,7 +3267,7 @@ void MI_Lightball(int i)
}
if (missile._mirange == 0)
missile._miDelFlag = true;
PutMissile(i);
PutMissile(missile);
}
void MI_Acidpud(int i)
@ -3286,7 +3285,7 @@ void MI_Acidpud(int i)
missile._mirange = missile._miAnimLen;
}
}
PutMissile(i);
PutMissile(missile);
}
void MI_Firewall(int i)
@ -3315,7 +3314,7 @@ void MI_Firewall(int i)
ChangeLight(missile._mlid, missile.position.tile, ExpLight[missile._miVar2]);
missile._miVar2++;
}
PutMissile(i);
PutMissile(missile);
}
void MI_Fireball(int i)
@ -3358,7 +3357,7 @@ void MI_HorkSpawn(int mi)
missile.position.traveled += missile.position.velocity;
UpdateMissilePos(missile);
}
PutMissile(mi);
PutMissile(missile);
}
void MI_Rune(int i)
@ -3381,7 +3380,7 @@ void MI_Rune(int i)
AddUnLight(missile._mlid);
AddMissile({ mx, my }, { mx, my }, dir, static_cast<missile_id>(missile._miVar1), TARGET_BOTH, missile._misource, missile._midam, missile._mispllvl);
}
PutMissile(i);
PutMissile(missile);
}
void MI_LightningWall(int i)
@ -3394,7 +3393,7 @@ void MI_LightningWall(int i)
missile._mirange = range;
if (missile._mirange == 0)
missile._miDelFlag = true;
PutMissile(i);
PutMissile(missile);
}
void MI_HiveExplode(int i)
@ -3405,7 +3404,7 @@ void MI_HiveExplode(int i)
missile._miDelFlag = true;
AddUnLight(missile._mlid);
}
PutMissile(i);
PutMissile(missile);
}
void MI_LightningArrow(int i)
@ -3719,7 +3718,7 @@ void MI_Lightning(int i)
missile._miDelFlag = true;
AddUnLight(missile._mlid);
}
PutMissile(i);
PutMissile(missile);
}
void MI_Town(int i)
@ -3753,7 +3752,7 @@ void MI_Town(int i)
missile._miDelFlag = true;
AddUnLight(missile._mlid);
}
PutMissile(i);
PutMissile(missile);
}
void MI_Flash(int i)
@ -3776,7 +3775,7 @@ void MI_Flash(int i)
Players[missile._misource]._pInvincible = false;
}
}
PutMissile(i);
PutMissile(missile);
}
void MI_Flash2(int i)
@ -3799,7 +3798,7 @@ void MI_Flash2(int i)
Players[missile._misource]._pInvincible = false;
}
}
PutMissile(i);
PutMissile(missile);
}
void MI_Manashield(int i)
@ -3818,7 +3817,7 @@ void MI_Manashield(int i)
NetSendCmd(true, CMD_ENDSHIELD);
}
}
PutMissile(i);
PutMissile(missile);
}
void MI_Firemove(int i)
@ -3859,7 +3858,7 @@ void MI_Firemove(int i)
missile.position.tile.x++;
missile.position.tile.y++;
missile.position.offset.deltaY -= 32;
PutMissile(i);
PutMissile(missile);
}
void MI_Guardian(int i)
@ -3921,7 +3920,7 @@ void MI_Guardian(int i)
AddUnLight(missile._mlid);
}
PutMissile(i);
PutMissile(missile);
}
void MI_Chain(int mi)
@ -3980,7 +3979,7 @@ void MI_Weapexp(int i)
missile._miDelFlag = true;
AddUnLight(missile._mlid);
} else {
PutMissile(i);
PutMissile(missile);
}
}
@ -3999,7 +3998,7 @@ void MI_Misexp(int i)
else
ChangeLight(missile._mlid, missile.position.tile, ExpLight[missile._miVar1]);
missile._miVar1++;
PutMissile(i);
PutMissile(missile);
}
}
@ -4018,7 +4017,7 @@ void MI_Acidsplat(int i)
int dam = (Monsters[monst].MData->mLevel >= 2 ? 2 : 1);
AddMissile(missile.position.tile, { i, 0 }, missile._mimfnum, MIS_ACIDPUD, TARGET_PLAYERS, monst, dam, missile._mispllvl);
} else {
PutMissile(i);
PutMissile(missile);
}
}
@ -4078,7 +4077,7 @@ void MI_Stone(int i)
}
}
if (missile._miAnimType == MFILE_SHATTER1)
PutMissile(i);
PutMissile(missile);
}
void MI_Boom(int i)
@ -4091,7 +4090,7 @@ void MI_Boom(int i)
missile._miVar1 = 1;
if (missile._mirange == 0)
missile._miDelFlag = true;
PutMissile(i);
PutMissile(missile);
}
void MI_Rhino(int i)
@ -4129,7 +4128,7 @@ void MI_Rhino(int i)
if (monster._uniqtype != 0)
ChangeLightXY(missile._mlid, newPos);
MoveMissilePos(missile);
PutMissile(i);
PutMissile(missile);
}
void MI_FirewallC(int i)
@ -4337,7 +4336,7 @@ void MI_Flame(int i)
AddUnLight(missile._mlid);
}
if (missile._miVar2 <= 0)
PutMissile(i);
PutMissile(missile);
}
void MI_Flamec(int i)
@ -4412,7 +4411,7 @@ void MI_Cbolt(int i)
missile._miDelFlag = true;
AddUnLight(missile._mlid);
}
PutMissile(i);
PutMissile(missile);
}
void MI_Hbolt(int i)
@ -4447,7 +4446,7 @@ void MI_Hbolt(int i)
AddUnLight(missile._mlid);
}
}
PutMissile(i);
PutMissile(missile);
}
void MI_Element(int i)
@ -4506,7 +4505,7 @@ void MI_Element(int i)
missile.position.StopMissile();
}
}
PutMissile(i);
PutMissile(missile);
}
void MI_Bonespirit(int i)
@ -4521,7 +4520,7 @@ void MI_Bonespirit(int i)
missile._miDelFlag = true;
AddUnLight(missile._mlid);
}
PutMissile(i);
PutMissile(missile);
} else {
missile.position.traveled += missile.position.velocity;
UpdateMissilePos(missile);
@ -4553,7 +4552,7 @@ void MI_Bonespirit(int i)
missile.position.velocity = {};
missile._mirange = 7;
}
PutMissile(i);
PutMissile(missile);
}
}
@ -4563,7 +4562,7 @@ void MI_ResurrectBeam(int i)
missile._mirange--;
if (missile._mirange == 0)
missile._miDelFlag = true;
PutMissile(i);
PutMissile(missile);
}
void MI_Rportal(int i)
@ -4586,7 +4585,7 @@ void MI_Rportal(int i)
missile._miDelFlag = true;
AddUnLight(missile._mlid);
}
PutMissile(i);
PutMissile(missile);
}
static void DeleteMissiles()
@ -4663,7 +4662,8 @@ void missiles_process_charge()
void RedoMissileFlags()
{
for (int i = 0; i < ActiveMissileCount; i++) {
PutMissile(ActiveMissiles[i]);
auto &missile = Missiles[ActiveMissiles[i]];
PutMissile(missile);
}
}

Loading…
Cancel
Save