diff --git a/Source/missiles.cpp b/Source/missiles.cpp index 97d4e6d7b..0c25ecf17 100644 --- a/Source/missiles.cpp +++ b/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._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); } }