diff --git a/Source/misdat.h b/Source/misdat.h index 119c69ae5..9e86e9f18 100644 --- a/Source/misdat.h +++ b/Source/misdat.h @@ -112,7 +112,7 @@ enum class MissileMovementDistrubution { struct MissileStruct; typedef struct MissileData { - void (*mAddProc)(MissileStruct &, Point, int); + void (*mAddProc)(MissileStruct &, Point, Direction); void (*mProc)(int); uint8_t mName; bool mDraw; diff --git a/Source/missiles.cpp b/Source/missiles.cpp index 8901df809..0477f8298 100644 --- a/Source/missiles.cpp +++ b/Source/missiles.cpp @@ -1291,7 +1291,7 @@ void InitMissiles() } } -void AddHiveExplosion(MissileStruct &missile, Point /*dst*/, int midir) +void AddHiveExplosion(MissileStruct &missile, Point /*dst*/, Direction midir) { for (int x : { 80, 81 }) { for (int y : { 62, 63 }) { @@ -1317,22 +1317,22 @@ void AddRune(MissileStruct &missile, Point dst, spell_id spellID, missile_id mis } } -void AddFireRune(MissileStruct &missile, Point dst, int /*midir*/) +void AddFireRune(MissileStruct &missile, Point dst, Direction /*midir*/) { AddRune(missile, dst, SPL_RUNEFIRE, MIS_HIVEEXP); } -void AddLightningRune(MissileStruct &missile, Point dst, int /*midir*/) +void AddLightningRune(MissileStruct &missile, Point dst, Direction /*midir*/) { AddRune(missile, dst, SPL_RUNELIGHT, MIS_LIGHTBALL); } -void AddGreatLightningRune(MissileStruct &missile, Point dst, int /*midir*/) +void AddGreatLightningRune(MissileStruct &missile, Point dst, Direction /*midir*/) { AddRune(missile, dst, SPL_RUNENOVA, MIS_NOVA); } -void AddImmolationRune(MissileStruct &missile, Point dst, int /*midir*/) +void AddImmolationRune(MissileStruct &missile, Point dst, Direction /*midir*/) { if (LineClearMissile(missile.position.start, dst)) { if (missile._misource >= 0) @@ -1348,7 +1348,7 @@ void AddImmolationRune(MissileStruct &missile, Point dst, int /*midir*/) } } -void AddStoneRune(MissileStruct &missile, Point dst, int /*midir*/) +void AddStoneRune(MissileStruct &missile, Point dst, Direction /*midir*/) { if (LineClearMissile(missile.position.start, dst)) { if (missile._misource >= 0) @@ -1364,7 +1364,7 @@ void AddStoneRune(MissileStruct &missile, Point dst, int /*midir*/) } } -void AddReflection(MissileStruct &missile, Point /*dst*/, int /*midir*/) +void AddReflection(MissileStruct &missile, Point /*dst*/, Direction /*midir*/) { missile._miDelFlag = true; @@ -1383,7 +1383,7 @@ void AddReflection(MissileStruct &missile, Point /*dst*/, int /*midir*/) UseMana(missile._misource, SPL_REFLECT); } -void AddBerserk(MissileStruct &missile, Point dst, int /*midir*/) +void AddBerserk(MissileStruct &missile, Point dst, Direction /*midir*/) { missile._miDelFlag = true; @@ -1431,7 +1431,7 @@ void AddBerserk(MissileStruct &missile, Point dst, int /*midir*/) } } -void AddHorkSpawn(MissileStruct &missile, Point dst, int midir) +void AddHorkSpawn(MissileStruct &missile, Point dst, Direction midir) { UpdateMissileVelocity(missile, dst, 8); missile._mirange = 9; @@ -1439,7 +1439,7 @@ void AddHorkSpawn(MissileStruct &missile, Point dst, int midir) PutMissile(missile); } -void AddJester(MissileStruct &missile, Point dst, int midir) +void AddJester(MissileStruct &missile, Point dst, Direction midir) { missile_id spell = MIS_FIREBOLT; switch (GenerateRnd(10)) { @@ -1477,7 +1477,7 @@ void AddJester(MissileStruct &missile, Point dst, int midir) missile._miDelFlag = true; } -void AddStealPotions(MissileStruct &missile, Point /*dst*/, int /*midir*/) +void AddStealPotions(MissileStruct &missile, Point /*dst*/, Direction /*midir*/) { for (int i = 0; i < 3; i++) { int k = CrawlNum[i]; @@ -1550,7 +1550,7 @@ void AddStealPotions(MissileStruct &missile, Point /*dst*/, int /*midir*/) missile._miDelFlag = true; } -void AddManaTrap(MissileStruct &missile, Point /*dst*/, int /*midir*/) +void AddManaTrap(MissileStruct &missile, Point /*dst*/, Direction /*midir*/) { for (int i = 0; i < 3; i++) { int k = CrawlNum[i]; @@ -1575,7 +1575,7 @@ void AddManaTrap(MissileStruct &missile, Point /*dst*/, int /*midir*/) missile._miDelFlag = true; } -void AddSpecArrow(MissileStruct &missile, Point dst, int /*midir*/) +void AddSpecArrow(MissileStruct &missile, Point dst, Direction /*midir*/) { int av = 0; @@ -1603,7 +1603,7 @@ void AddSpecArrow(MissileStruct &missile, Point dst, int /*midir*/) missile._miVar3 = av; } -void AddWarp(MissileStruct &missile, Point /*dst*/, int /*midir*/) +void AddWarp(MissileStruct &missile, Point /*dst*/, Direction /*midir*/) { int minDistanceSq = std::numeric_limits::max(); Point src = missile.position.start; @@ -1635,7 +1635,7 @@ void AddWarp(MissileStruct &missile, Point /*dst*/, int /*midir*/) UseMana(missile._misource, SPL_WARP); } -void AddLightningWall(MissileStruct &missile, Point dst, int /*midir*/) +void AddLightningWall(MissileStruct &missile, Point dst, Direction /*midir*/) { UpdateMissileVelocity(missile, dst, 16); missile._miAnimFrame = GenerateRnd(8) + 1; @@ -1649,7 +1649,7 @@ void AddLightningWall(MissileStruct &missile, Point dst, int /*midir*/) } } -void AddRuneExplosion(MissileStruct &missile, Point /*dst*/, int /*midir*/) +void AddRuneExplosion(MissileStruct &missile, Point /*dst*/, Direction /*midir*/) { if (IsAnyOf(missile._micaster, TARGET_MONSTERS, TARGET_BOTH)) { int dmg = 2 * (Players[missile._misource]._pLevel + GenerateRndSum(10, 2)) + 4; @@ -1666,10 +1666,10 @@ void AddRuneExplosion(MissileStruct &missile, Point /*dst*/, int /*midir*/) missile._mirange = missile._miAnimLen - 1; } -void AddFireNova(MissileStruct &missile, Point dst, int midir) +void AddFireNova(MissileStruct &missile, Point dst, Direction midir) { if (missile.position.start == dst) { - dst += static_cast(midir); + dst += midir; } int sp = 16; if (missile._micaster == TARGET_MONSTERS) { @@ -1685,10 +1685,10 @@ void AddFireNova(MissileStruct &missile, Point dst, int midir) missile._mlid = AddLight(missile.position.start, 8); } -void AddLightningArrow(MissileStruct &missile, Point dst, int midir) +void AddLightningArrow(MissileStruct &missile, Point dst, Direction midir) { if (missile.position.start == dst) { - dst += static_cast(midir); + dst += midir; } UpdateMissileVelocity(missile, dst, 32); missile._miAnimFrame = GenerateRnd(8) + 1; @@ -1703,7 +1703,7 @@ void AddLightningArrow(MissileStruct &missile, Point dst, int midir) missile._midam <<= 6; } -void AddMana(MissileStruct &missile, Point /*dst*/, int /*midir*/) +void AddMana(MissileStruct &missile, Point /*dst*/, Direction /*midir*/) { auto &player = Players[missile._misource]; @@ -1729,7 +1729,7 @@ void AddMana(MissileStruct &missile, Point /*dst*/, int /*midir*/) drawmanaflag = true; } -void AddMagi(MissileStruct &missile, Point /*dst*/, int /*midir*/) +void AddMagi(MissileStruct &missile, Point /*dst*/, Direction /*midir*/) { auto &player = Players[missile._misource]; @@ -1740,7 +1740,7 @@ void AddMagi(MissileStruct &missile, Point /*dst*/, int /*midir*/) drawmanaflag = true; } -void AddRing(MissileStruct &missile, Point /*dst*/, int /*midir*/) +void AddRing(MissileStruct &missile, Point /*dst*/, Direction /*midir*/) { missile._miDelFlag = true; if (missile._micaster == TARGET_MONSTERS) @@ -1751,7 +1751,7 @@ void AddRing(MissileStruct &missile, Point /*dst*/, int /*midir*/) missile._mirange = 7; } -void AddSearch(MissileStruct &missile, Point /*dst*/, int /*midir*/) +void AddSearch(MissileStruct &missile, Point /*dst*/, Direction /*midir*/) { missile._miVar1 = missile._misource; AutoMapShowItems = true; @@ -1778,7 +1778,7 @@ void AddSearch(MissileStruct &missile, Point /*dst*/, int /*midir*/) } } -void AddCboltArrow(MissileStruct &missile, Point dst, int midir) +void AddCboltArrow(MissileStruct &missile, Point dst, Direction midir) { missile._mirnd = GenerateRnd(15) + 1; if (missile._micaster != TARGET_MONSTERS) { @@ -1786,7 +1786,7 @@ void AddCboltArrow(MissileStruct &missile, Point dst, int midir) } if (missile.position.start == dst) { - dst += static_cast(midir); + dst += midir; } missile._miAnimFrame = GenerateRnd(8) + 1; missile._mlid = AddLight(missile.position.start, 5); @@ -1796,10 +1796,10 @@ void AddCboltArrow(MissileStruct &missile, Point dst, int midir) missile._mirange = 256; } -void AddLArrow(MissileStruct &missile, Point dst, int midir) +void AddLArrow(MissileStruct &missile, Point dst, Direction midir) { if (missile.position.start == dst) { - dst += static_cast(midir); + dst += midir; } int av = 32; if (missile._micaster == TARGET_MONSTERS) { @@ -1832,10 +1832,10 @@ void AddLArrow(MissileStruct &missile, Point dst, int midir) missile._mlid = AddLight(missile.position.start, 5); } -void AddArrow(MissileStruct &missile, Point dst, int midir) +void AddArrow(MissileStruct &missile, Point dst, Direction midir) { if (missile.position.start == dst) { - dst += static_cast(midir); + dst += midir; } int av = 32; if (missile._micaster == TARGET_MONSTERS) { @@ -1882,7 +1882,7 @@ void UpdateVileMissPos(MissileStruct &missile, Point dst) missile.position.tile = dst; } -void AddRndTeleport(MissileStruct &missile, Point dst, int /*midir*/) +void AddRndTeleport(MissileStruct &missile, Point dst, Direction /*midir*/) { int pn; int r1; @@ -1926,10 +1926,10 @@ void AddRndTeleport(MissileStruct &missile, Point dst, int /*midir*/) } } -void AddFirebolt(MissileStruct &missile, Point dst, int midir) +void AddFirebolt(MissileStruct &missile, Point dst, Direction midir) { if (missile.position.start == dst) { - dst += static_cast(midir); + dst += midir; } int sp = 26; if (missile._micaster == TARGET_MONSTERS) { @@ -1950,7 +1950,7 @@ void AddFirebolt(MissileStruct &missile, Point dst, int midir) missile._mlid = AddLight(missile.position.start, 8); } -void AddMagmaball(MissileStruct &missile, Point dst, int /*midir*/) +void AddMagmaball(MissileStruct &missile, Point dst, Direction /*midir*/) { UpdateMissileVelocity(missile, dst, 16); missile.position.traveled.deltaX += 3 * missile.position.velocity.deltaX; @@ -1965,7 +1965,7 @@ void AddMagmaball(MissileStruct &missile, Point dst, int /*midir*/) missile._mlid = AddLight(missile.position.start, 8); } -void AddTeleport(MissileStruct &missile, Point dst, int /*midir*/) +void AddTeleport(MissileStruct &missile, Point dst, Direction /*midir*/) { missile._miDelFlag = true; for (int i = 0; i < 6; i++) { @@ -1992,7 +1992,7 @@ void AddTeleport(MissileStruct &missile, Point dst, int /*midir*/) } } -void AddLightball(MissileStruct &missile, Point dst, int /*midir*/) +void AddLightball(MissileStruct &missile, Point dst, Direction /*midir*/) { UpdateMissileVelocity(missile, dst, 16); missile._miAnimFrame = GenerateRnd(8) + 1; @@ -2006,7 +2006,7 @@ void AddLightball(MissileStruct &missile, Point dst, int /*midir*/) } } -void AddFirewall(MissileStruct &missile, Point dst, int /*midir*/) +void AddFirewall(MissileStruct &missile, Point dst, Direction /*midir*/) { missile._midam = GenerateRndSum(10, 2) + 2; missile._midam += missile._misource >= 0 ? Players[missile._misource]._pLevel : currlevel; // BUGFIX: missing parenthesis around ternary (fixed) @@ -2024,10 +2024,10 @@ void AddFirewall(MissileStruct &missile, Point dst, int /*midir*/) missile._miVar1 = missile._mirange - missile._miAnimLen; } -void AddFireball(MissileStruct &missile, Point dst, int midir) +void AddFireball(MissileStruct &missile, Point dst, Direction midir) { if (missile.position.start == dst) { - dst += static_cast(midir); + dst += midir; } int sp = 16; if (missile._micaster == TARGET_MONSTERS) { @@ -2048,7 +2048,7 @@ void AddFireball(MissileStruct &missile, Point dst, int midir) missile._mlid = AddLight(missile.position.start, 8); } -void AddLightctrl(MissileStruct &missile, Point dst, int /*midir*/) +void AddLightctrl(MissileStruct &missile, Point dst, Direction /*midir*/) { if (missile._midam == 0 && missile._micaster == TARGET_MONSTERS) UseMana(missile._misource, SPL_LIGHTNING); @@ -2059,7 +2059,7 @@ void AddLightctrl(MissileStruct &missile, Point dst, int /*midir*/) missile._mirange = 256; } -void AddLightning(MissileStruct &missile, Point dst, int midir) +void AddLightning(MissileStruct &missile, Point dst, Direction /*midir*/) { missile.position.start = dst; @@ -2078,7 +2078,7 @@ void AddLightning(MissileStruct &missile, Point dst, int midir) missile._mlid = AddLight(missile.position.tile, 4); } -void AddMisexp(MissileStruct &missile, Point dst, int /*midir*/) +void AddMisexp(MissileStruct &missile, Point dst, Direction /*midir*/) { if (missile._micaster != TARGET_MONSTERS && missile._misource >= 0) { switch (Monsters[missile._misource].MType->mtype) { @@ -2106,7 +2106,7 @@ void AddMisexp(MissileStruct &missile, Point dst, int /*midir*/) missile._mirange = missile._miAnimLen; } -void AddWeapexp(MissileStruct &missile, Point dst, int /*midir*/) +void AddWeapexp(MissileStruct &missile, Point dst, Direction /*midir*/) { missile._miVar2 = dst.x; if (dst.x == 1) @@ -2116,7 +2116,7 @@ void AddWeapexp(MissileStruct &missile, Point dst, int /*midir*/) missile._mirange = missile._miAnimLen - 1; } -void AddTown(MissileStruct &missile, Point dst, int /*midir*/) +void AddTown(MissileStruct &missile, Point dst, Direction /*midir*/) { int tx = dst.x; int ty = dst.y; @@ -2163,7 +2163,7 @@ void AddTown(MissileStruct &missile, Point dst, int /*midir*/) } } -void AddFlash(MissileStruct &missile, Point /*dst*/, int /*midir*/) +void AddFlash(MissileStruct &missile, Point /*dst*/, Direction /*midir*/) { if (missile._misource != -1) { if (missile._micaster == TARGET_MONSTERS) { @@ -2180,7 +2180,7 @@ void AddFlash(MissileStruct &missile, Point /*dst*/, int /*midir*/) missile._mirange = 19; } -void AddFlash2(MissileStruct &missile, Point /*dst*/, int /*midir*/) +void AddFlash2(MissileStruct &missile, Point /*dst*/, Direction /*midir*/) { if (missile._micaster == TARGET_MONSTERS) { if (missile._misource != -1) { @@ -2196,7 +2196,7 @@ void AddFlash2(MissileStruct &missile, Point /*dst*/, int /*midir*/) missile._mirange = 19; } -void AddManashield(MissileStruct &missile, Point /*dst*/, int /*midir*/) +void AddManashield(MissileStruct &missile, Point /*dst*/, Direction /*midir*/) { missile._miDelFlag = true; @@ -2216,7 +2216,7 @@ void AddManashield(MissileStruct &missile, Point /*dst*/, int /*midir*/) UseMana(missile._misource, SPL_MANASHIELD); } -void AddFiremove(MissileStruct &missile, Point dst, int /*midir*/) +void AddFiremove(MissileStruct &missile, Point dst, Direction /*midir*/) { missile._midam = GenerateRnd(10) + Players[missile._misource]._pLevel + 1; UpdateMissileVelocity(missile, dst, 16); @@ -2226,7 +2226,7 @@ void AddFiremove(MissileStruct &missile, Point dst, int /*midir*/) missile.position.offset.deltaY -= 32; } -void AddGuardian(MissileStruct &missile, Point dst, int /*midir*/) +void AddGuardian(MissileStruct &missile, Point dst, Direction /*midir*/) { auto &player = Players[missile._misource]; @@ -2272,7 +2272,7 @@ void AddGuardian(MissileStruct &missile, Point dst, int /*midir*/) } } -void AddChain(MissileStruct &missile, Point dst, int /*midir*/) +void AddChain(MissileStruct &missile, Point dst, Direction /*midir*/) { missile._miVar1 = dst.x; missile._miVar2 = dst.y; @@ -2281,7 +2281,7 @@ void AddChain(MissileStruct &missile, Point dst, int /*midir*/) } namespace { -void InitMissileAnimationFromMonster(MissileStruct &mis, int midir, const MonsterStruct &mon, MonsterGraphic graphic) +void InitMissileAnimationFromMonster(MissileStruct &mis, Direction midir, const MonsterStruct &mon, MonsterGraphic graphic) { const AnimStruct &anim = mon.MType->GetAnimData(graphic); mis._mimfnum = midir; @@ -2300,7 +2300,7 @@ void InitMissileAnimationFromMonster(MissileStruct &mis, int midir, const Monste } } // namespace -void AddRhino(MissileStruct &missile, Point dst, int midir) +void AddRhino(MissileStruct &missile, Point dst, Direction midir) { auto &monster = Monsters[missile._misource]; @@ -2323,10 +2323,10 @@ void AddRhino(MissileStruct &missile, Point dst, int midir) PutMissile(missile); } -void AddFlare(MissileStruct &missile, Point dst, int midir) +void AddFlare(MissileStruct &missile, Point dst, Direction midir) { if (missile.position.start == dst) { - dst += static_cast(midir); + dst += midir; } UpdateMissileVelocity(missile, dst, 16); missile._mirange = 256; @@ -2353,7 +2353,7 @@ void AddFlare(MissileStruct &missile, Point dst, int midir) } } -void AddAcid(MissileStruct &missile, Point dst, int /*midir*/) +void AddAcid(MissileStruct &missile, Point dst, Direction /*midir*/) { UpdateMissileVelocity(missile, dst, 16); SetMissDir(missile, GetDirection16(missile.position.start, dst)); @@ -2367,7 +2367,7 @@ void AddAcid(MissileStruct &missile, Point dst, int /*midir*/) PutMissile(missile); } -void AddAcidpud(MissileStruct &missile, Point /*dst*/, int /*midir*/) +void AddAcidpud(MissileStruct &missile, Point /*dst*/, Direction /*midir*/) { missile._miLightFlag = true; int monst = missile._misource; @@ -2375,7 +2375,7 @@ void AddAcidpud(MissileStruct &missile, Point /*dst*/, int /*midir*/) missile._miPreFlag = true; } -void AddStone(MissileStruct &missile, Point dst, int /*midir*/) +void AddStone(MissileStruct &missile, Point dst, Direction /*midir*/) { int tx; int ty; @@ -2427,7 +2427,7 @@ void AddStone(MissileStruct &missile, Point dst, int /*midir*/) UseMana(missile._misource, SPL_STONE); } -void AddGolem(MissileStruct &missile, Point dst, int /*midir*/) +void AddGolem(MissileStruct &missile, Point dst, Direction /*midir*/) { for (int i = 0; i < ActiveMissileCount; i++) { int mx = ActiveMissiles[i]; @@ -2447,14 +2447,14 @@ void AddGolem(MissileStruct &missile, Point dst, int /*midir*/) UseMana(missile._misource, SPL_GOLEM); } -void AddBoom(MissileStruct &missile, Point dst, int /*midir*/) +void AddBoom(MissileStruct &missile, Point dst, Direction /*midir*/) { missile.position.tile = dst; missile.position.start = dst; missile._mirange = missile._miAnimLen; } -void AddHeal(MissileStruct &missile, Point /*dst*/, int /*midir*/) +void AddHeal(MissileStruct &missile, Point /*dst*/, Direction /*midir*/) { auto &player = Players[missile._misource]; @@ -2480,7 +2480,7 @@ void AddHeal(MissileStruct &missile, Point /*dst*/, int /*midir*/) drawhpflag = true; } -void AddHealOther(MissileStruct &missile, Point /*dst*/, int /*midir*/) +void AddHealOther(MissileStruct &missile, Point /*dst*/, Direction /*midir*/) { missile._miDelFlag = true; UseMana(missile._misource, SPL_HEALOTHER); @@ -2491,10 +2491,10 @@ void AddHealOther(MissileStruct &missile, Point /*dst*/, int /*midir*/) } } -void AddElement(MissileStruct &missile, Point dst, int midir) +void AddElement(MissileStruct &missile, Point dst, Direction midir) { if (missile.position.start == dst) { - dst += static_cast(midir); + dst += midir; } int dmg = 2 * (Players[missile._misource]._pLevel + GenerateRndSum(10, 2)) + 4; @@ -2513,7 +2513,7 @@ void AddElement(MissileStruct &missile, Point dst, int midir) extern void FocusOnInventory(); -void AddIdentify(MissileStruct &missile, Point /*dst*/, int /*midir*/) +void AddIdentify(MissileStruct &missile, Point /*dst*/, Direction /*midir*/) { missile._miDelFlag = true; UseMana(missile._misource, SPL_IDENTIFY); @@ -2529,7 +2529,7 @@ void AddIdentify(MissileStruct &missile, Point /*dst*/, int /*midir*/) } } -void AddFirewallC(MissileStruct &missile, Point dst, int midir) +void AddFirewallC(MissileStruct &missile, Point dst, Direction midir) { missile._miDelFlag = true; for (int i = 0; i < 6; i++) { @@ -2563,7 +2563,7 @@ void AddFirewallC(MissileStruct &missile, Point dst, int midir) } } -void AddInfra(MissileStruct &missile, Point /*dst*/, int /*midir*/) +void AddInfra(MissileStruct &missile, Point /*dst*/, Direction /*midir*/) { missile._mirange = ScaleSpellEffect(1584, missile._mispllvl); missile._mirange += missile._mirange * Players[missile._misource]._pISplDur / 128; @@ -2572,7 +2572,7 @@ void AddInfra(MissileStruct &missile, Point /*dst*/, int /*midir*/) UseMana(missile._misource, SPL_INFRA); } -void AddWave(MissileStruct &missile, Point dst, int /*midir*/) +void AddWave(MissileStruct &missile, Point dst, Direction /*midir*/) { missile._miVar1 = dst.x; missile._miVar2 = dst.y; @@ -2581,7 +2581,7 @@ void AddWave(MissileStruct &missile, Point dst, int /*midir*/) UseMana(missile._misource, SPL_WAVE); } -void AddNova(MissileStruct &missile, Point dst, int /*midir*/) +void AddNova(MissileStruct &missile, Point dst, Direction /*midir*/) { missile._miVar1 = dst.x; missile._miVar2 = dst.y; @@ -2599,7 +2599,7 @@ void AddNova(MissileStruct &missile, Point dst, int /*midir*/) missile._mirange = 1; } -void AddBlodboil(MissileStruct &missile, Point /*dst*/, int /*midir*/) +void AddBlodboil(MissileStruct &missile, Point /*dst*/, Direction /*midir*/) { auto &player = Players[missile._misource]; @@ -2620,7 +2620,7 @@ void AddBlodboil(MissileStruct &missile, Point /*dst*/, int /*midir*/) player.Say(HeroSpeech::Aaaaargh); } -void AddRepair(MissileStruct &missile, Point /*dst*/, int /*midir*/) +void AddRepair(MissileStruct &missile, Point /*dst*/, Direction /*midir*/) { missile._miDelFlag = true; UseMana(missile._misource, SPL_REPAIR); @@ -2636,7 +2636,7 @@ void AddRepair(MissileStruct &missile, Point /*dst*/, int /*midir*/) } } -void AddRecharge(MissileStruct &missile, Point /*dst*/, int /*midir*/) +void AddRecharge(MissileStruct &missile, Point /*dst*/, Direction /*midir*/) { missile._miDelFlag = true; UseMana(missile._misource, SPL_RECHARGE); @@ -2652,7 +2652,7 @@ void AddRecharge(MissileStruct &missile, Point /*dst*/, int /*midir*/) } } -void AddDisarm(MissileStruct &missile, Point /*dst*/, int /*midir*/) +void AddDisarm(MissileStruct &missile, Point /*dst*/, Direction /*midir*/) { missile._miDelFlag = true; UseMana(missile._misource, SPL_DISARM); @@ -2667,7 +2667,7 @@ void AddDisarm(MissileStruct &missile, Point /*dst*/, int /*midir*/) } } -void AddApoca(MissileStruct &missile, Point /*dst*/, int /*midir*/) +void AddApoca(MissileStruct &missile, Point /*dst*/, Direction /*midir*/) { missile._miVar1 = 8; missile._miVar2 = std::max(missile.position.start.y - 8, 1); @@ -2681,7 +2681,7 @@ void AddApoca(MissileStruct &missile, Point /*dst*/, int /*midir*/) UseMana(missile._misource, SPL_APOCA); } -void AddFlame(MissileStruct &missile, Point dst, int midir) +void AddFlame(MissileStruct &missile, Point dst, Direction /*midir*/) { missile._miVar2 = 5 * missile._midam; missile.position.start = dst; @@ -2699,10 +2699,10 @@ void AddFlame(MissileStruct &missile, Point dst, int midir) } } -void AddFlamec(MissileStruct &missile, Point dst, int midir) +void AddFlamec(MissileStruct &missile, Point dst, Direction midir) { if (missile.position.start == dst) { - dst += static_cast(midir); + dst += midir; } UpdateMissileVelocity(missile, dst, 32); if (missile._micaster == TARGET_MONSTERS) { @@ -2713,13 +2713,13 @@ void AddFlamec(MissileStruct &missile, Point dst, int midir) missile._mirange = 256; } -void AddCbolt(MissileStruct &missile, Point dst, int midir) +void AddCbolt(MissileStruct &missile, Point dst, Direction midir) { missile._mirnd = GenerateRnd(15) + 1; missile._midam = (missile._micaster == TARGET_MONSTERS) ? (GenerateRnd(Players[missile._misource]._pMagic / 4) + 1) : 15; if (missile.position.start == dst) { - dst += static_cast(midir); + dst += midir; } missile._miAnimFrame = GenerateRnd(8) + 1; missile._mlid = AddLight(missile.position.start, 5); @@ -2730,10 +2730,10 @@ void AddCbolt(MissileStruct &missile, Point dst, int midir) missile._mirange = 256; } -void AddHbolt(MissileStruct &missile, Point dst, int midir) +void AddHbolt(MissileStruct &missile, Point dst, Direction midir) { if (missile.position.start == dst) { - dst += static_cast(midir); + dst += midir; } int sp = 16; if (missile._misource != -1) { @@ -2750,7 +2750,7 @@ void AddHbolt(MissileStruct &missile, Point dst, int midir) UseMana(missile._misource, SPL_HBOLT); } -void AddResurrect(MissileStruct &missile, Point /*dst*/, int /*midir*/) +void AddResurrect(MissileStruct &missile, Point /*dst*/, Direction /*midir*/) { UseMana(missile._misource, SPL_RESURRECT); if (missile._misource == MyPlayerId) { @@ -2761,14 +2761,14 @@ void AddResurrect(MissileStruct &missile, Point /*dst*/, int /*midir*/) missile._miDelFlag = true; } -void AddResurrectBeam(MissileStruct &missile, Point dst, int /*midir*/) +void AddResurrectBeam(MissileStruct &missile, Point dst, Direction /*midir*/) { missile.position.tile = dst; missile.position.start = dst; missile._mirange = MissileSpriteData[MFILE_RESSUR1].animLen[0]; } -void AddTelekinesis(MissileStruct &missile, Point /*dst*/, int /*midir*/) +void AddTelekinesis(MissileStruct &missile, Point /*dst*/, Direction /*midir*/) { missile._miDelFlag = true; UseMana(missile._misource, SPL_TELEKINESIS); @@ -2776,10 +2776,10 @@ void AddTelekinesis(MissileStruct &missile, Point /*dst*/, int /*midir*/) NewCursor(CURSOR_TELEKINESIS); } -void AddBoneSpirit(MissileStruct &missile, Point dst, int midir) +void AddBoneSpirit(MissileStruct &missile, Point dst, Direction midir) { if (missile.position.start == dst) { - dst += static_cast(midir); + dst += midir; } UpdateMissileVelocity(missile, dst, 16); SetMissDir(missile, GetDirection(missile.position.start, dst)); @@ -2795,14 +2795,14 @@ void AddBoneSpirit(MissileStruct &missile, Point dst, int midir) } } -void AddRportal(MissileStruct &missile, Point /*dst*/, int /*midir*/) +void AddRportal(MissileStruct &missile, Point /*dst*/, Direction /*midir*/) { missile._mirange = 100; missile._miVar1 = 100 - missile._miAnimLen; PutMissile(missile); } -void AddDiabApoca(MissileStruct &missile, Point /*dst*/, int /*midir*/) +void AddDiabApoca(MissileStruct &missile, Point /*dst*/, Direction /*midir*/) { int players = gbIsMultiplayer ? MAX_PLRS : 1; for (int pnum = 0; pnum < players; pnum++) { @@ -2812,12 +2812,12 @@ void AddDiabApoca(MissileStruct &missile, Point /*dst*/, int /*midir*/) if (!LineClearMissile(missile.position.start, player.position.future)) continue; - AddMissile({ 0, 0 }, player.position.future, 0, MIS_BOOM2, missile._micaster, missile._misource, missile._midam, 0); + AddMissile({ 0, 0 }, player.position.future, DIR_S, MIS_BOOM2, missile._micaster, missile._misource, missile._midam, 0); } missile._miDelFlag = true; } -int AddMissile(Point src, Point dst, int midir, missile_id mitype, mienemy_type micaster, int id, int midam, int spllvl) +int AddMissile(Point src, Point dst, Direction midir, missile_id mitype, mienemy_type micaster, int id, int midam, int spllvl) { if (ActiveMissileCount >= MAXMISSILES - 1) return -1; @@ -3049,16 +3049,17 @@ void MI_Firebolt(int i) missile.position.traveled = { omx, omy }; UpdateMissilePos(missile); missile.position.StopMissile(); + auto dir = static_cast(missile._mimfnum); switch (missile._mitype) { case MIS_FIREBOLT: case MIS_MAGMABALL: - AddMissile(missile.position.tile, { i, 0 }, missile._mimfnum, MIS_MISEXP, missile._micaster, missile._misource, 0, 0); + AddMissile(missile.position.tile, { i, 0 }, dir, MIS_MISEXP, missile._micaster, missile._misource, 0, 0); break; case MIS_FLARE: - AddMissile(missile.position.tile, { i, 0 }, missile._mimfnum, MIS_MISEXP2, missile._micaster, missile._misource, 0, 0); + AddMissile(missile.position.tile, { i, 0 }, dir, MIS_MISEXP2, missile._micaster, missile._misource, 0, 0); break; case MIS_ACID: - AddMissile(missile.position.tile, { i, 0 }, missile._mimfnum, MIS_MISEXP3, missile._micaster, missile._misource, 0, 0); + AddMissile(missile.position.tile, { i, 0 }, dir, MIS_MISEXP3, missile._micaster, missile._misource, 0, 0); break; case MIS_BONESPIRIT: SetMissDir(missile, 8); @@ -3067,19 +3068,19 @@ void MI_Firebolt(int i) PutMissile(missile); return; case MIS_LICH: - AddMissile(missile.position.tile, { i, 0 }, missile._mimfnum, MIS_EXORA1, missile._micaster, missile._misource, 0, 0); + AddMissile(missile.position.tile, { i, 0 }, dir, MIS_EXORA1, missile._micaster, missile._misource, 0, 0); break; case MIS_PSYCHORB: - AddMissile(missile.position.tile, { i, 0 }, missile._mimfnum, MIS_EXBL2, missile._micaster, missile._misource, 0, 0); + AddMissile(missile.position.tile, { i, 0 }, dir, MIS_EXBL2, missile._micaster, missile._misource, 0, 0); break; case MIS_NECROMORB: - AddMissile(missile.position.tile, { i, 0 }, missile._mimfnum, MIS_EXRED3, missile._micaster, missile._misource, 0, 0); + AddMissile(missile.position.tile, { i, 0 }, dir, MIS_EXRED3, missile._micaster, missile._misource, 0, 0); break; case MIS_ARCHLICH: - AddMissile(missile.position.tile, { i, 0 }, missile._mimfnum, MIS_EXYEL2, missile._micaster, missile._misource, 0, 0); + AddMissile(missile.position.tile, { i, 0 }, dir, MIS_EXYEL2, missile._micaster, missile._misource, 0, 0); break; case MIS_BONEDEMON: - AddMissile(missile.position.tile, { i, 0 }, missile._mimfnum, MIS_EXBL3, missile._micaster, missile._misource, 0, 0); + AddMissile(missile.position.tile, { i, 0 }, dir, MIS_EXBL3, missile._micaster, missile._misource, 0, 0); break; default: break; @@ -3351,7 +3352,7 @@ void MI_FireRing(int i) continue; } - AddMissile({ tx, ty }, { tx, ty }, 0, MIS_FIREWALL, TARGET_BOTH, src, dmg, missile._mispllvl); + AddMissile({ tx, ty }, { tx, ty }, DIR_S, MIS_FIREWALL, TARGET_BOTH, src, dmg, missile._mispllvl); } } @@ -3835,7 +3836,7 @@ void MI_Acidsplat(int i) missile._miDelFlag = true; int monst = missile._misource; 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); + AddMissile(missile.position.tile, { i, 0 }, static_cast(missile._mimfnum), MIS_ACIDPUD, TARGET_PLAYERS, monst, dam, missile._mispllvl); } else { PutMissile(missile); } diff --git a/Source/missiles.h b/Source/missiles.h index c05161d8c..9caeec79a 100644 --- a/Source/missiles.h +++ b/Source/missiles.h @@ -143,80 +143,80 @@ void InitMissileGFX(); void FreeMissiles(); void FreeMissiles2(); void InitMissiles(); -void AddHiveExplosion(MissileStruct &missile, Point dst, int midir); -void AddFireRune(MissileStruct &missile, Point dst, int midir); -void AddLightningRune(MissileStruct &missile, Point dst, int midir); -void AddGreatLightningRune(MissileStruct &missile, Point dst, int midir); -void AddImmolationRune(MissileStruct &missile, Point dst, int midir); -void AddStoneRune(MissileStruct &missile, Point dst, int midir); -void AddReflection(MissileStruct &missile, Point dst, int midir); -void AddBerserk(MissileStruct &missile, Point dst, int midir); -void AddHorkSpawn(MissileStruct &missile, Point dst, int midir); -void AddJester(MissileStruct &missile, Point dst, int midir); -void AddStealPotions(MissileStruct &missile, Point dst, int midir); -void AddManaTrap(MissileStruct &missile, Point dst, int midir); -void AddSpecArrow(MissileStruct &missile, Point dst, int midir); -void AddWarp(MissileStruct &missile, Point dst, int midir); -void AddLightningWall(MissileStruct &missile, Point dst, int midir); -void AddRuneExplosion(MissileStruct &missile, Point dst, int midir); -void AddFireNova(MissileStruct &missile, Point dst, int midir); -void AddLightningArrow(MissileStruct &missile, Point dst, int midir); -void AddMana(MissileStruct &missile, Point dst, int midir); -void AddMagi(MissileStruct &missile, Point dst, int midir); -void AddRing(MissileStruct &missile, Point dst, int midir); -void AddSearch(MissileStruct &missile, Point dst, int midir); -void AddCboltArrow(MissileStruct &missile, Point dst, int midir); -void AddLArrow(MissileStruct &missile, Point dst, int midir); -void AddArrow(MissileStruct &missile, Point dst, int midir); -void AddRndTeleport(MissileStruct &missile, Point dst, int midir); -void AddFirebolt(MissileStruct &missile, Point dst, int midir); -void AddMagmaball(MissileStruct &missile, Point dst, int midir); -void AddTeleport(MissileStruct &missile, Point dst, int midir); -void AddLightball(MissileStruct &missile, Point dst, int midir); -void AddFirewall(MissileStruct &missile, Point dst, int midir); -void AddFireball(MissileStruct &missile, Point dst, int midir); -void AddLightctrl(MissileStruct &missile, Point dst, int midir); -void AddLightning(MissileStruct &missile, Point dst, int midir); -void AddMisexp(MissileStruct &missile, Point dst, int midir); -void AddWeapexp(MissileStruct &missile, Point dst, int midir); -void AddTown(MissileStruct &missile, Point dst, int midir); -void AddFlash(MissileStruct &missile, Point dst, int midir); -void AddFlash2(MissileStruct &missile, Point dst, int midir); -void AddManashield(MissileStruct &missile, Point dst, int midir); -void AddFiremove(MissileStruct &missile, Point dst, int midir); -void AddGuardian(MissileStruct &missile, Point dst, int midir); -void AddChain(MissileStruct &missile, Point dst, int midir); -void AddRhino(MissileStruct &missile, Point dst, int midir); -void AddFlare(MissileStruct &missile, Point dst, int midir); -void AddAcid(MissileStruct &missile, Point dst, int midir); -void AddAcidpud(MissileStruct &missile, Point dst, int midir); -void AddStone(MissileStruct &missile, Point dst, int midir); -void AddGolem(MissileStruct &missile, Point dst, int midir); -void AddBoom(MissileStruct &missile, Point dst, int midir); -void AddHeal(MissileStruct &missile, Point dst, int midir); -void AddHealOther(MissileStruct &missile, Point dst, int midir); -void AddElement(MissileStruct &missile, Point dst, int midir); -void AddIdentify(MissileStruct &missile, Point dst, int midir); -void AddFirewallC(MissileStruct &missile, Point dst, int midir); -void AddInfra(MissileStruct &missile, Point dst, int midir); -void AddWave(MissileStruct &missile, Point dst, int midir); -void AddNova(MissileStruct &missile, Point dst, int midir); -void AddBlodboil(MissileStruct &missile, Point dst, int midir); -void AddRepair(MissileStruct &missile, Point dst, int midir); -void AddRecharge(MissileStruct &missile, Point dst, int midir); -void AddDisarm(MissileStruct &missile, Point dst, int midir); -void AddApoca(MissileStruct &missile, Point dst, int midir); -void AddFlame(MissileStruct &missile, Point dst, int midir); -void AddFlamec(MissileStruct &missile, Point dst, int midir); -void AddCbolt(MissileStruct &missile, Point dst, int midir); -void AddHbolt(MissileStruct &missile, Point dst, int midir); -void AddResurrect(MissileStruct &missile, Point dst, int midir); -void AddResurrectBeam(MissileStruct &missile, Point dst, int midir); -void AddTelekinesis(MissileStruct &missile, Point dst, int midir); -void AddBoneSpirit(MissileStruct &missile, Point dst, int midir); -void AddRportal(MissileStruct &missile, Point dst, int midir); -void AddDiabApoca(MissileStruct &missile, Point dst, int midir); -int AddMissile(Point src, Point dst, int midir, missile_id mitype, mienemy_type micaster, int id, int midam, int spllvl); +void AddHiveExplosion(MissileStruct &missile, Point dst, Direction midir); +void AddFireRune(MissileStruct &missile, Point dst, Direction midir); +void AddLightningRune(MissileStruct &missile, Point dst, Direction midir); +void AddGreatLightningRune(MissileStruct &missile, Point dst, Direction midir); +void AddImmolationRune(MissileStruct &missile, Point dst, Direction midir); +void AddStoneRune(MissileStruct &missile, Point dst, Direction midir); +void AddReflection(MissileStruct &missile, Point dst, Direction midir); +void AddBerserk(MissileStruct &missile, Point dst, Direction midir); +void AddHorkSpawn(MissileStruct &missile, Point dst, Direction midir); +void AddJester(MissileStruct &missile, Point dst, Direction midir); +void AddStealPotions(MissileStruct &missile, Point dst, Direction midir); +void AddManaTrap(MissileStruct &missile, Point dst, Direction midir); +void AddSpecArrow(MissileStruct &missile, Point dst, Direction midir); +void AddWarp(MissileStruct &missile, Point dst, Direction midir); +void AddLightningWall(MissileStruct &missile, Point dst, Direction midir); +void AddRuneExplosion(MissileStruct &missile, Point dst, Direction midir); +void AddFireNova(MissileStruct &missile, Point dst, Direction midir); +void AddLightningArrow(MissileStruct &missile, Point dst, Direction midir); +void AddMana(MissileStruct &missile, Point dst, Direction midir); +void AddMagi(MissileStruct &missile, Point dst, Direction midir); +void AddRing(MissileStruct &missile, Point dst, Direction midir); +void AddSearch(MissileStruct &missile, Point dst, Direction midir); +void AddCboltArrow(MissileStruct &missile, Point dst, Direction midir); +void AddLArrow(MissileStruct &missile, Point dst, Direction midir); +void AddArrow(MissileStruct &missile, Point dst, Direction midir); +void AddRndTeleport(MissileStruct &missile, Point dst, Direction midir); +void AddFirebolt(MissileStruct &missile, Point dst, Direction midir); +void AddMagmaball(MissileStruct &missile, Point dst, Direction midir); +void AddTeleport(MissileStruct &missile, Point dst, Direction midir); +void AddLightball(MissileStruct &missile, Point dst, Direction midir); +void AddFirewall(MissileStruct &missile, Point dst, Direction midir); +void AddFireball(MissileStruct &missile, Point dst, Direction midir); +void AddLightctrl(MissileStruct &missile, Point dst, Direction midir); +void AddLightning(MissileStruct &missile, Point dst, Direction midir); +void AddMisexp(MissileStruct &missile, Point dst, Direction midir); +void AddWeapexp(MissileStruct &missile, Point dst, Direction midir); +void AddTown(MissileStruct &missile, Point dst, Direction midir); +void AddFlash(MissileStruct &missile, Point dst, Direction midir); +void AddFlash2(MissileStruct &missile, Point dst, Direction midir); +void AddManashield(MissileStruct &missile, Point dst, Direction midir); +void AddFiremove(MissileStruct &missile, Point dst, Direction midir); +void AddGuardian(MissileStruct &missile, Point dst, Direction midir); +void AddChain(MissileStruct &missile, Point dst, Direction midir); +void AddRhino(MissileStruct &missile, Point dst, Direction midir); +void AddFlare(MissileStruct &missile, Point dst, Direction midir); +void AddAcid(MissileStruct &missile, Point dst, Direction midir); +void AddAcidpud(MissileStruct &missile, Point dst, Direction midir); +void AddStone(MissileStruct &missile, Point dst, Direction midir); +void AddGolem(MissileStruct &missile, Point dst, Direction midir); +void AddBoom(MissileStruct &missile, Point dst, Direction midir); +void AddHeal(MissileStruct &missile, Point dst, Direction midir); +void AddHealOther(MissileStruct &missile, Point dst, Direction midir); +void AddElement(MissileStruct &missile, Point dst, Direction midir); +void AddIdentify(MissileStruct &missile, Point dst, Direction midir); +void AddFirewallC(MissileStruct &missile, Point dst, Direction midir); +void AddInfra(MissileStruct &missile, Point dst, Direction midir); +void AddWave(MissileStruct &missile, Point dst, Direction midir); +void AddNova(MissileStruct &missile, Point dst, Direction midir); +void AddBlodboil(MissileStruct &missile, Point dst, Direction midir); +void AddRepair(MissileStruct &missile, Point dst, Direction midir); +void AddRecharge(MissileStruct &missile, Point dst, Direction midir); +void AddDisarm(MissileStruct &missile, Point dst, Direction midir); +void AddApoca(MissileStruct &missile, Point dst, Direction midir); +void AddFlame(MissileStruct &missile, Point dst, Direction midir); +void AddFlamec(MissileStruct &missile, Point dst, Direction midir); +void AddCbolt(MissileStruct &missile, Point dst, Direction midir); +void AddHbolt(MissileStruct &missile, Point dst, Direction midir); +void AddResurrect(MissileStruct &missile, Point dst, Direction midir); +void AddResurrectBeam(MissileStruct &missile, Point dst, Direction midir); +void AddTelekinesis(MissileStruct &missile, Point dst, Direction midir); +void AddBoneSpirit(MissileStruct &missile, Point dst, Direction midir); +void AddRportal(MissileStruct &missile, Point dst, Direction midir); +void AddDiabApoca(MissileStruct &missile, Point dst, Direction midir); +int AddMissile(Point src, Point dst, Direction midir, missile_id mitype, mienemy_type micaster, int id, int midam, int spllvl); void MI_Golem(int mi); void MI_Manashield(int i); void MI_LArrow(int i); diff --git a/Source/monster.cpp b/Source/monster.cpp index 2176f4c1c..1e285a460 100644 --- a/Source/monster.cpp +++ b/Source/monster.cpp @@ -1233,7 +1233,7 @@ void StartMonsterDeath(int i, int pnum, bool sendmsg) CheckQuestKill(monster, sendmsg); M_FallenFear(monster.position.tile); if ((monster.MType->mtype >= MT_NACID && monster.MType->mtype <= MT_XACID) || monster.MType->mtype == MT_SPIDLORD) - AddMissile(monster.position.tile, { 0, 0 }, 0, MIS_ACIDPUD, TARGET_PLAYERS, i, monster._mint + 1, 0); + AddMissile(monster.position.tile, { 0, 0 }, DIR_S, MIS_ACIDPUD, TARGET_PLAYERS, i, monster._mint + 1, 0); } void StartDeathFromMonster(int i, int mid) @@ -1278,7 +1278,7 @@ void StartDeathFromMonster(int i, int mid) CheckQuestKill(monster, true); M_FallenFear(monster.position.tile); if (monster.MType->mtype >= MT_NACID && monster.MType->mtype <= MT_XACID) - AddMissile(monster.position.tile, { 0, 0 }, 0, MIS_ACIDPUD, TARGET_PLAYERS, mid, monster._mint + 1, 0); + AddMissile(monster.position.tile, { 0, 0 }, DIR_S, MIS_ACIDPUD, TARGET_PLAYERS, mid, monster._mint + 1, 0); if (gbIsHellfire) M_StartStand(killer, killer._mdir); diff --git a/Source/msg.cpp b/Source/msg.cpp index f7fee5511..bcdf77913 100644 --- a/Source/msg.cpp +++ b/Source/msg.cpp @@ -1777,7 +1777,7 @@ DWORD OnOpenHive(TCmd *pCmd, int pnum) { auto *p = (TCmdLocParam2 *)pCmd; if (gbBufferMsgs != 1) { - AddMissile({ p->x, p->y }, { p->wParam1, p->wParam2 }, 0, MIS_HIVEEXP2, TARGET_MONSTERS, pnum, 0, 0); + AddMissile({ p->x, p->y }, { p->wParam1, p->wParam2 }, DIR_S, MIS_HIVEEXP2, TARGET_MONSTERS, pnum, 0, 0); TownOpenHive(); InitTownTriggers(); } diff --git a/Source/player.cpp b/Source/player.cpp index 8f8ae09fa..dda177e87 100644 --- a/Source/player.cpp +++ b/Source/player.cpp @@ -1218,9 +1218,9 @@ bool DoAttack(int pnum) if ((player._pIFlags & ISPL_FIREDAM) == 0 || (player._pIFlags & ISPL_LIGHTDAM) == 0) { if ((player._pIFlags & ISPL_FIREDAM) != 0) { - AddMissile({ dx, dy }, { 1, 0 }, 0, MIS_WEAPEXP, TARGET_MONSTERS, pnum, 0, 0); + AddMissile({ dx, dy }, { 1, 0 }, DIR_S, MIS_WEAPEXP, TARGET_MONSTERS, pnum, 0, 0); } else if ((player._pIFlags & ISPL_LIGHTDAM) != 0) { - AddMissile({ dx, dy }, { 2, 0 }, 0, MIS_WEAPEXP, TARGET_MONSTERS, pnum, 0, 0); + AddMissile({ dx, dy }, { 2, 0 }, DIR_S, MIS_WEAPEXP, TARGET_MONSTERS, pnum, 0, 0); } } diff --git a/Source/portal.cpp b/Source/portal.cpp index 6de571957..f460af9b7 100644 --- a/Source/portal.cpp +++ b/Source/portal.cpp @@ -49,7 +49,7 @@ void AddWarpMissile(int i, int x, int y) { MissileData[MIS_TOWN].mlSFX = SFX_NONE; - int mi = AddMissile({ 0, 0 }, { x, y }, 0, MIS_TOWN, TARGET_MONSTERS, i, 0, 0); + int mi = AddMissile({ 0, 0 }, { x, y }, DIR_S, MIS_TOWN, TARGET_MONSTERS, i, 0, 0); if (mi == -1) return; diff --git a/Source/quests.cpp b/Source/quests.cpp index 6b1dd9b8d..170c05a9a 100644 --- a/Source/quests.cpp +++ b/Source/quests.cpp @@ -385,7 +385,7 @@ void CheckQuests() quest.position.y = 2 * quest.position.y + 16; int rportx = quest.position.x; int rporty = quest.position.y; - AddMissile({ rportx, rporty }, { rportx, rporty }, 0, MIS_RPORTAL, TARGET_MONSTERS, MyPlayerId, 0, 0); + AddMissile({ rportx, rporty }, { rportx, rporty }, DIR_S, MIS_RPORTAL, TARGET_MONSTERS, MyPlayerId, 0, 0); quest._qvar2 = 1; if (quest._qactive == QUEST_ACTIVE) { quest._qvar1 = 3; @@ -398,7 +398,7 @@ void CheckQuests() && quest._qvar2 == 4) { int rportx = 35; int rporty = 32; - AddMissile({ rportx, rporty }, { rportx, rporty }, 0, MIS_RPORTAL, TARGET_MONSTERS, MyPlayerId, 0, 0); + AddMissile({ rportx, rporty }, { rportx, rporty }, DIR_S, MIS_RPORTAL, TARGET_MONSTERS, MyPlayerId, 0, 0); quest._qvar2 = 3; } @@ -511,7 +511,7 @@ void CheckQuestKill(const MonsterStruct &monster, bool sendmsg) Quests[Q_BETRAYER]._qvar1 = 7; Quests[Q_BETRAYER]._qvar2 = 4; Quests[Q_DIABLO]._qactive = QUEST_ACTIVE; - AddMissile({ 35, 32 }, { 35, 32 }, 0, MIS_RPORTAL, TARGET_MONSTERS, MyPlayerId, 0, 0); + AddMissile({ 35, 32 }, { 35, 32 }, DIR_S, MIS_RPORTAL, TARGET_MONSTERS, MyPlayerId, 0, 0); myPlayer.Say(HeroSpeech::YourMadnessEndsHereBetrayer, 30); } else if (monster._uniqtype - 1 == UMT_WARLORD) { //"Warlord of Blood" Quests[Q_WARLORD]._qactive = QUEST_DONE; diff --git a/Source/spells.cpp b/Source/spells.cpp index 418d1be74..997a911ac 100644 --- a/Source/spells.cpp +++ b/Source/spells.cpp @@ -264,7 +264,7 @@ void DoResurrect(int pnum, uint16_t rid) auto &target = Players[rid]; - AddMissile(target.position.tile, target.position.tile, 0, MIS_RESURRECTBEAM, TARGET_MONSTERS, pnum, 0, 0); + AddMissile(target.position.tile, target.position.tile, DIR_S, MIS_RESURRECTBEAM, TARGET_MONSTERS, pnum, 0, 0); if (target._pHitPoints != 0) return;