diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp index 38acfcda8..9b19cb369 100644 --- a/src/server/game/DungeonFinding/LFGMgr.cpp +++ b/src/server/game/DungeonFinding/LFGMgr.cpp @@ -577,8 +577,7 @@ namespace lfg rDungeonId = (*dungeons.begin()); sScriptMgr->OnPlayerQueueRandomDungeon(player, rDungeonId); } - // No break on purpose (Random can only be dungeon or heroic dungeon) - [[fallthrough]]; + [[fallthrough]]; // On purpose (Random can only be dungeon or heroic dungeon) case LFG_TYPE_HEROIC: case LFG_TYPE_DUNGEON: if (isRaid) diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index cd8ed7369..bf736bde9 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -562,8 +562,6 @@ void GameObject::Update(uint32 diff) m_lootState = GO_READY; // for other GOis same switched without delay to GO_READY break; } - - // NO BREAK for switch (m_lootState) [[fallthrough]]; } case GO_READY: diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 69bf56db1..dc040e9a9 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -17198,8 +17198,10 @@ void Unit::Kill(Unit* killer, Unit* victim, bool durabilityLoss, WeaponAttackTyp killer->ToCreature()->AI()->KilledUnit(victim); // Call creature just died function - if (creature->IsAIEnabled) - creature->AI()->JustDied(killer ? killer : victim); + if (CreatureAI* ai = creature->AI()) + { + ai->JustDied(killer); + } if (TempSummon* summon = creature->ToTempSummon()) if (Unit* summoner = summon->GetSummonerUnit()) diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp index e9c596ace..76f625612 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp @@ -569,7 +569,11 @@ public: void JustDied(Unit* killer) override { Talk(SAY_VALROTH_DEATH); - killer->CastSpell(me, SPELL_SUMMON_VALROTH_REMAINS, true); + + if (killer) + { + killer->CastSpell(me, SPELL_SUMMON_VALROTH_REMAINS, true); + } } }; }; diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_jarien_and_sothos.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_jarien_and_sothos.cpp index e3658a3c6..c890bb144 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/boss_jarien_and_sothos.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_jarien_and_sothos.cpp @@ -159,7 +159,7 @@ struct boss_jarien : public BossAI me->SummonCreature(NPC_SPIRIT_OF_JARIEN, me->GetPosition()); - if (_sothosDied) + if (_sothosDied && killer) { HandleBothDead(me, true, killer); } @@ -281,7 +281,7 @@ struct boss_sothos : public BossAI me->SummonCreature(NPC_SPIRIT_OF_SOTHOS, me->GetPosition()); - if (_jarienDied) + if (_jarienDied && killer) { HandleBothDead(me, false, killer); } diff --git a/src/server/scripts/Events/love_in_air.cpp b/src/server/scripts/Events/love_in_air.cpp index 1952d85be..b01db4784 100644 --- a/src/server/scripts/Events/love_in_air.cpp +++ b/src/server/scripts/Events/love_in_air.cpp @@ -330,7 +330,7 @@ struct npc_love_in_air_hummel : public ScriptedAI speachTimer = 1; } - void JustDied(Unit* ) override + void JustDied(Unit* /*killer*/) override { me->AI()->Talk(SAY_HUMMEL_5); Map::PlayerList const& players = me->GetMap()->GetPlayers(); @@ -465,7 +465,7 @@ struct npc_love_in_air_hummel_helper : public ScriptedAI } } - void JustDied(Unit* ) override + void JustDied(Unit* /*killer*/) override { me->AI()->Talk(SAY_HUMMEL_HELPER_SAY_5); } diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp index 34360d329..4c8ef521e 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp @@ -75,7 +75,7 @@ public: void JustDied(Unit* killer) override { - if (killer == me) + if (killer && killer == me) return; Talk(SAY_DEATH); me->GetInstanceScript()->SetData(DATA_ESCORT_PROGRESS, ENCOUNTER_PROGRESS_EPOCH_KILLED); diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp index 408085f90..ae7885187 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp @@ -494,7 +494,7 @@ public: void JustDied(Unit* killer) override { - if (killer == me) + if (killer && killer == me) return; summons.DespawnAll(); diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp index 7d913c483..8e64b632b 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp @@ -194,7 +194,7 @@ public: } } - void JustDied(Unit* ) override + void JustDied(Unit* /*killer*/) override { me->SetRespawnTime(DAY); events.Reset(); diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp index 096a0ed3d..50b77b3d0 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp @@ -347,7 +347,7 @@ public: me->CallForHelp(500.0f); } - void JustDied(Unit* /*pKiller*/) override + void JustDied(Unit* /*killer*/) override { RespawnDragons(true); _JustDied(); diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp index db936cec5..e38ed0c29 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp @@ -494,7 +494,7 @@ public: if (me->IsDamageEnoughForLootingAndReward()) halion->LowerPlayerDamageReq(halion->GetMaxHealth()); - if (halion->IsAlive()) + if (killer && halion->IsAlive()) Unit::Kill(killer, halion); } diff --git a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp index 96bbc00e8..40ebcff9e 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp @@ -570,7 +570,7 @@ public: ScriptedAI::MoveInLineOfSight(who); } - void JustDied(Unit* ) override + void JustDied(Unit* /*killer*/) override { if (me->GetEntry() == NPC_UNSTOPPABLE_ABOMINATION && me->GetInstanceScript()) { diff --git a/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp b/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp index 4aec789b0..5fc2bd8ea 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp @@ -473,7 +473,7 @@ public: } } - void JustDied(Unit* ) override + void JustDied(Unit* /*killer*/) override { Talk(me->GetEntry() == NPC_STALAGG ? SAY_STAL_DEATH : SAY_FEUG_DEATH); Talk(me->GetEntry() == NPC_STALAGG ? EMOTE_STAL_DEATH : EMOTE_FEUG_DEATH); diff --git a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp index 5b52d8a45..f36c12f2e 100644 --- a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp +++ b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp @@ -1169,7 +1169,7 @@ public: uint32 timer; - void JustDied(Unit* ) override + void JustDied(Unit* /*killer*/) override { if (me->GetEntry() == NPC_MR_BIGGLESWORTH && me->GetInstanceScript()) { diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp index 04bade9ef..54ba7abe4 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp @@ -718,7 +718,7 @@ public: void JustDied(Unit* killer) override { - if (me->GetEntry() == killer->GetEntry()) + if (killer && me->GetEntry() == killer->GetEntry()) return; me->Yell("Matron, flee! They are ruthless....", LANG_UNIVERSAL); me->PlayDirectSound(SOUND_STONEBARK_DEATH); @@ -824,7 +824,7 @@ public: void JustDied(Unit* killer) override { - if (me->GetEntry() == killer->GetEntry()) + if (killer && me->GetEntry() == killer->GetEntry()) return; me->Yell("Matron, one has fallen!", LANG_UNIVERSAL); me->PlayDirectSound(SOUND_BRIGHTLEAF_DEATH); @@ -945,7 +945,7 @@ public: void JustDied(Unit* killer) override { - if (me->GetEntry() == killer->GetEntry()) + if (killer && me->GetEntry() == killer->GetEntry()) return; me->Yell("Freya! They come for you.", LANG_UNIVERSAL); me->PlayDirectSound(SOUND_IRONBRANCH_DEATH); @@ -1011,7 +1011,7 @@ public: { boss_freya_iron_rootAI(Creature* pCreature) : NullCreatureAI(pCreature) { } - void JustDied(Unit*) override + void JustDied(Unit* /*killer*/) override { if (!me->IsSummon()) return; @@ -1139,7 +1139,7 @@ public: AttackStart(target); } - void JustDied(Unit*) override + void JustDied(Unit* /*killer*/) override { if (Creature* freya = ObjectAccessor::GetCreature(*me, _freyaGUID)) { diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp index 7cec48595..8c813e62c 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp @@ -782,7 +782,7 @@ public: me->m_Events.AddEvent(new BoomEvent(me), me->m_Events.CalculateTime(1 * IN_MILLISECONDS)); } - void JustDied(Unit*) override + void JustDied(Unit* /*killer*/) override { me->m_Events.AddEvent(new BoomEvent(me), me->m_Events.CalculateTime(1 * IN_MILLISECONDS)); } diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp index ad9c68d89..62ab243ef 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp @@ -87,7 +87,7 @@ public: void JustDied(Unit* killer) override { - if (killer->GetGUID() != me->GetGUID()) + if (killer && killer->GetGUID() != me->GetGUID()) if (InstanceScript* pInstance = me->GetInstanceScript()) pInstance->SetData(DATA_ON_THE_ROCKS_ACHIEV, 0); diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp index 40b5586c2..e1163d22d 100644 --- a/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp +++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp @@ -149,7 +149,7 @@ public: pInstance->SetData(EVENT_EMALON, IN_PROGRESS); } - void JustDied(Unit* ) override + void JustDied(Unit* /*killer*/) override { summons.DespawnAll(); events.Reset(); diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp index 5391bcc0f..4558291ae 100644 --- a/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp +++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp @@ -97,7 +97,7 @@ public: pInstance->SetData(EVENT_KORALON, IN_PROGRESS); } - void JustDied(Unit* ) override + void JustDied(Unit* /*killer*/) override { if (pInstance) pInstance->SetData(EVENT_KORALON, DONE); diff --git a/src/server/scripts/Northrend/isle_of_conquest.cpp b/src/server/scripts/Northrend/isle_of_conquest.cpp index 5a3592efd..048115881 100644 --- a/src/server/scripts/Northrend/isle_of_conquest.cpp +++ b/src/server/scripts/Northrend/isle_of_conquest.cpp @@ -41,7 +41,7 @@ public: uint32 faction; EventMap events; - void JustDied(Unit* ) override + void JustDied(Unit* /*killer*/) override { if (me->GetEntry() == NPC_KEEP_CANNON) { diff --git a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp index 390761218..e3286e55e 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp @@ -523,7 +523,7 @@ public: } } - void JustDied(Unit* /*killer*/) override + void JustDied(Unit* /*killer*/) override { Talk(ANGER_SAY_DEATH); if (me->IsSummon()) diff --git a/src/server/scripts/World/mob_generic_creature.cpp b/src/server/scripts/World/mob_generic_creature.cpp index f1091e2d7..a0078e520 100644 --- a/src/server/scripts/World/mob_generic_creature.cpp +++ b/src/server/scripts/World/mob_generic_creature.cpp @@ -214,7 +214,7 @@ public: trigger_deathAI(Creature* creature) : NullCreatureAI(creature) { } void JustDied(Unit* killer) override { - if (me->m_spells[0]) + if (killer && me->m_spells[0]) me->CastSpell(killer, me->m_spells[0], true); } };