diff options
author | ariel- <ariel-@users.noreply.github.com> | 2018-02-24 15:52:09 -0300 |
---|---|---|
committer | funjoker <funjoker109@gmail.com> | 2021-08-08 21:21:34 +0200 |
commit | a1a00f823e7e47e8cb652b71a839c1d0875a8f84 (patch) | |
tree | ddffcb6efbfed6d4d27d8dd9320e552365a34545 /src | |
parent | 30f8adda86f0c4376595866607a2e03cc88406eb (diff) |
Core/Entities: kill unused return value from Unit::HandleSpellClick
- AI hook will now receive the result by copy, as modifying it had no effect
- Some renaming: result->spellClickHandled, clickPair is actually clickBounds, the clickPair is the pair <creatureID, SpellClickInfo>
(cherry picked from commit 98d6258efdc07b53808ba6177e5427c65163bc0d)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/AI/CreatureAI.h | 2 | ||||
-rw-r--r-- | src/server/game/AI/SmartScripts/SmartAI.cpp | 4 | ||||
-rw-r--r-- | src/server/game/AI/SmartScripts/SmartAI.h | 2 | ||||
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 16 | ||||
-rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 32 | ||||
-rw-r--r-- | src/server/game/Entities/Unit/Unit.h | 2 | ||||
-rw-r--r-- | src/server/game/Entities/Vehicle/Vehicle.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Globals/ObjectMgr.h | 5 | ||||
-rw-r--r-- | src/server/scripts/Kalimdor/zone_felwood.cpp | 4 | ||||
-rw-r--r-- | src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp | 4 | ||||
-rw-r--r-- | src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp | 4 | ||||
-rw-r--r-- | src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp | 4 |
12 files changed, 39 insertions, 42 deletions
diff --git a/src/server/game/AI/CreatureAI.h b/src/server/game/AI/CreatureAI.h index 30ba99a4abf..a20afd9653c 100644 --- a/src/server/game/AI/CreatureAI.h +++ b/src/server/game/AI/CreatureAI.h @@ -200,7 +200,7 @@ class TC_GAME_API CreatureAI : public UnitAI virtual void PassengerBoarded(Unit* /*passenger*/, int8 /*seatId*/, bool /*apply*/) { } - virtual void OnSpellClick(Unit* /*clicker*/, bool& /*result*/) { } + virtual void OnSpellClick(Unit* /*clicker*/, bool /*spellClickHandled*/) { } virtual bool CanSeeAlways(WorldObject const* /*obj*/) { return false; } diff --git a/src/server/game/AI/SmartScripts/SmartAI.cpp b/src/server/game/AI/SmartScripts/SmartAI.cpp index 2536d364845..943748e6be2 100644 --- a/src/server/game/AI/SmartScripts/SmartAI.cpp +++ b/src/server/game/AI/SmartScripts/SmartAI.cpp @@ -840,9 +840,9 @@ void SmartAI::OnGameEvent(bool start, uint16 eventId) GetScript()->ProcessEventsFor(start ? SMART_EVENT_GAME_EVENT_START : SMART_EVENT_GAME_EVENT_END, nullptr, eventId); } -void SmartAI::OnSpellClick(Unit* clicker, bool& result) +void SmartAI::OnSpellClick(Unit* clicker, bool spellClickHandled) { - if (!result) + if (!spellClickHandled) return; GetScript()->ProcessEventsFor(SMART_EVENT_ON_SPELLCLICK, clicker); diff --git a/src/server/game/AI/SmartScripts/SmartAI.h b/src/server/game/AI/SmartScripts/SmartAI.h index 614c727e724..591b10ba70f 100644 --- a/src/server/game/AI/SmartScripts/SmartAI.h +++ b/src/server/game/AI/SmartScripts/SmartAI.h @@ -186,7 +186,7 @@ class TC_GAME_API SmartAI : public CreatureAI } void StartDespawn() { mDespawnState = 2; } - void OnSpellClick(Unit* clicker, bool& result) override; + void OnSpellClick(Unit* clicker, bool spellClickHandled) override; void SetWPPauseTimer(uint32 time) { _waypointPauseTimer = time; } diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index d2a2ef0d40d..db38ba84fae 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -25105,12 +25105,12 @@ void Player::UpdateForQuestWorldObjects() if (!obj->HasNpcFlag(UNIT_NPC_FLAG_SPELLCLICK)) continue; - SpellClickInfoMapBounds clickPair = sObjectMgr->GetSpellClickInfoMapBounds(obj->GetEntry()); - for (SpellClickInfoContainer::const_iterator _itr = clickPair.first; _itr != clickPair.second; ++_itr) + auto clickBounds = sObjectMgr->GetSpellClickInfoMapBounds(obj->GetEntry()); + for (auto const& clickPair : clickBounds) { //! This code doesn't look right, but it was logically converted to condition system to do the exact //! same thing it did before. It definitely needs to be overlooked for intended functionality. - if (ConditionContainer const* conds = sConditionMgr->GetConditionsForSpellClickEvent(obj->GetEntry(), _itr->second.spellId)) + if (ConditionContainer const* conds = sConditionMgr->GetConditionsForSpellClickEvent(obj->GetEntry(), clickPair.second.spellId)) { bool buildUpdateBlock = false; for (ConditionContainer::const_iterator jtr = conds->begin(); jtr != conds->end() && !buildUpdateBlock; ++jtr) @@ -26998,16 +26998,16 @@ bool Player::CanSeeSpellClickOn(Creature const* c) const if (!c->HasNpcFlag(UNIT_NPC_FLAG_SPELLCLICK)) return false; - SpellClickInfoMapBounds clickPair = sObjectMgr->GetSpellClickInfoMapBounds(c->GetEntry()); - if (clickPair.first == clickPair.second) + auto clickBounds = sObjectMgr->GetSpellClickInfoMapBounds(c->GetEntry()); + if (clickBounds.begin() == clickBounds.end()) return true; - for (SpellClickInfoContainer::const_iterator itr = clickPair.first; itr != clickPair.second; ++itr) + for (auto const& clickPair : clickBounds) { - if (!itr->second.IsFitToRequirements(this, c)) + if (!clickPair.second.IsFitToRequirements(this, c)) return false; - if (sConditionMgr->IsObjectMeetingSpellClickConditions(c->GetEntry(), itr->second.spellId, const_cast<Player*>(this), const_cast<Creature*>(c))) + if (sConditionMgr->IsObjectMeetingSpellClickConditions(c->GetEntry(), clickPair.second.spellId, const_cast<Player*>(this), const_cast<Creature*>(c))) return true; } diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index ff731c9de7b..2115fc96aa3 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -12707,28 +12707,28 @@ void Unit::JumpTo(WorldObject* obj, float speedZ, bool withOrientation) GetMotionMaster()->MoveJump(x, y, z, GetAngle(obj), speedXY, speedZ, EVENT_JUMP, withOrientation); } -bool Unit::HandleSpellClick(Unit* clicker, int8 seatId) +void Unit::HandleSpellClick(Unit* clicker, int8 seatId /*= -1*/) { - bool result = false; + bool spellClickHandled = false; uint32 spellClickEntry = GetVehicleKit() ? GetVehicleKit()->GetCreatureEntry() : GetEntry(); TriggerCastFlags const flags = GetVehicleKit() ? TRIGGERED_IGNORE_CASTER_MOUNTED_OR_ON_VEHICLE : TRIGGERED_NONE; - SpellClickInfoMapBounds clickPair = sObjectMgr->GetSpellClickInfoMapBounds(spellClickEntry); - for (SpellClickInfoContainer::const_iterator itr = clickPair.first; itr != clickPair.second; ++itr) + auto clickBounds = sObjectMgr->GetSpellClickInfoMapBounds(spellClickEntry); + for (auto const& clickPair : clickBounds) { //! First check simple relations from clicker to clickee - if (!itr->second.IsFitToRequirements(clicker, this)) + if (!clickPair.second.IsFitToRequirements(clicker, this)) continue; //! Check database conditions - if (!sConditionMgr->IsObjectMeetingSpellClickConditions(spellClickEntry, itr->second.spellId, clicker, this)) + if (!sConditionMgr->IsObjectMeetingSpellClickConditions(spellClickEntry, clickPair.second.spellId, clicker, this)) continue; - Unit* caster = (itr->second.castFlags & NPC_CLICK_CAST_CASTER_CLICKER) ? clicker : this; - Unit* target = (itr->second.castFlags & NPC_CLICK_CAST_TARGET_CLICKER) ? clicker : this; - ObjectGuid origCasterGUID = (itr->second.castFlags & NPC_CLICK_CAST_ORIG_CASTER_OWNER) ? GetOwnerGUID() : clicker->GetGUID(); + Unit* caster = (clickPair.second.castFlags & NPC_CLICK_CAST_CASTER_CLICKER) ? clicker : this; + Unit* target = (clickPair.second.castFlags & NPC_CLICK_CAST_TARGET_CLICKER) ? clicker : this; + ObjectGuid origCasterGUID = (clickPair.second.castFlags & NPC_CLICK_CAST_ORIG_CASTER_OWNER) ? GetOwnerGUID() : clicker->GetGUID(); - SpellInfo const* spellEntry = sSpellMgr->GetSpellInfo(itr->second.spellId, caster->GetMap()->GetDifficultyID()); + SpellInfo const* spellEntry = sSpellMgr->GetSpellInfo(clickPair.second.spellId, caster->GetMap()->GetDifficultyID()); // if (!spellEntry) should be checked at npc_spellclick load if (seatId > -1) @@ -12750,7 +12750,7 @@ bool Unit::HandleSpellClick(Unit* clicker, int8 seatId) if (!valid) { - TC_LOG_ERROR("sql.sql", "Spell %u specified in npc_spellclick_spells is not a valid vehicle enter aura!", itr->second.spellId); + TC_LOG_ERROR("sql.sql", "Spell %u specified in npc_spellclick_spells is not a valid vehicle enter aura!", clickPair.second.spellId); continue; } @@ -12759,7 +12759,7 @@ bool Unit::HandleSpellClick(Unit* clicker, int8 seatId) CastSpellExtraArgs args(flags); args.OriginalCaster = origCasterGUID; args.AddSpellMod(SpellValueMod(SPELLVALUE_BASE_POINT0+i), seatId+1); - caster->CastSpell(target, itr->second.spellId, args); + caster->CastSpell(target, clickPair.second.spellId, args); } else // This can happen during Player::_LoadAuras { @@ -12780,17 +12780,15 @@ bool Unit::HandleSpellClick(Unit* clicker, int8 seatId) Aura::TryRefreshStackOrCreate(spellEntry, ObjectGuid::Create<HighGuid::Cast>(SPELL_CAST_SOURCE_NORMAL, GetMapId(), spellEntry->Id, GetMap()->GenerateLowGuid<HighGuid::Cast>()), MAX_EFFECT_MASK, this, clicker, GetMap()->GetDifficultyID(), nullptr, nullptr, origCasterGUID); } - result = true; + spellClickHandled = true; } Creature* creature = ToCreature(); if (creature && creature->IsAIEnabled) - creature->AI()->OnSpellClick(clicker, result); - - return result; + creature->AI()->OnSpellClick(clicker, spellClickHandled); } -void Unit::EnterVehicle(Unit* base, int8 seatId) +void Unit::EnterVehicle(Unit* base, int8 seatId /*= -1*/) { CastSpellExtraArgs args(TRIGGERED_IGNORE_CASTER_MOUNTED_OR_ON_VEHICLE); args.AddSpellMod(SPELLVALUE_BASE_POINT0, seatId + 1); diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index e164484ce00..75d7e60897e 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1812,7 +1812,7 @@ class TC_GAME_API Unit : public WorldObject bool m_ControlledByPlayer; - bool HandleSpellClick(Unit* clicker, int8 seatId = -1); + void HandleSpellClick(Unit* clicker, int8 seatId = -1); void EnterVehicle(Unit* base, int8 seatId = -1); void ExitVehicle(Position const* exitPosition = nullptr); void ChangeSeat(int8 seatId, bool next = true); diff --git a/src/server/game/Entities/Vehicle/Vehicle.cpp b/src/server/game/Entities/Vehicle/Vehicle.cpp index 134c62ef192..848a2eb5007 100644 --- a/src/server/game/Entities/Vehicle/Vehicle.cpp +++ b/src/server/game/Entities/Vehicle/Vehicle.cpp @@ -380,7 +380,7 @@ void Vehicle::InstallAccessory(uint32 entry, int8 seatId, bool minion, uint8 typ if (minion) accessory->AddUnitTypeMask(UNIT_MASK_ACCESSORY); - (void)_me->HandleSpellClick(accessory, seatId); + _me->HandleSpellClick(accessory, seatId); /// If for some reason adding accessory to vehicle fails it will unsummon in /// @VehicleJoinEvent::Abort diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h index abd56dd76b1..85ac73d7cf3 100644 --- a/src/server/game/Globals/ObjectMgr.h +++ b/src/server/game/Globals/ObjectMgr.h @@ -454,7 +454,6 @@ struct TC_GAME_API SpellClickInfo }; typedef std::multimap<uint32, SpellClickInfo> SpellClickInfoContainer; -typedef std::pair<SpellClickInfoContainer::const_iterator, SpellClickInfoContainer::const_iterator> SpellClickInfoMapBounds; struct AreaTriggerStruct { @@ -1580,9 +1579,9 @@ class TC_GAME_API ObjectMgr std::string const& GetScriptName(uint32 id) const; uint32 GetScriptId(std::string const& name); - SpellClickInfoMapBounds GetSpellClickInfoMapBounds(uint32 creature_id) const + Trinity::IteratorPair<SpellClickInfoContainer::const_iterator> GetSpellClickInfoMapBounds(uint32 creature_id) const { - return _spellClickInfoStore.equal_range(creature_id); + return Trinity::Containers::MapEqualRange(_spellClickInfoStore, creature_id); } GossipMenusMapBounds GetGossipMenusMapBounds(uint32 uiMenuId) const diff --git a/src/server/scripts/Kalimdor/zone_felwood.cpp b/src/server/scripts/Kalimdor/zone_felwood.cpp index f3aff8909f7..694b7e2f5e5 100644 --- a/src/server/scripts/Kalimdor/zone_felwood.cpp +++ b/src/server/scripts/Kalimdor/zone_felwood.cpp @@ -50,9 +50,9 @@ public: lasherClicked = false; } - void OnSpellClick(Unit* clicker, bool& result) override + void OnSpellClick(Unit* clicker, bool spellClickHandled) override { - if (!result) + if (!spellClickHandled) return; if (roll_chance_i(CHANCE_HOSTILE)) diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp index ce1a9d077cc..bbd04e7890b 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp @@ -1034,9 +1034,9 @@ class npc_dream_portal : public CreatureScript { } - void OnSpellClick(Unit* /*clicker*/, bool& result) override + void OnSpellClick(Unit* /*clicker*/, bool spellClickHandled) override { - if (!result) + if (!spellClickHandled) return; _used = true; diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp index 6bf16caf512..e4aec26c651 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp @@ -764,9 +764,9 @@ class boss_flame_leviathan_overload_device : public CreatureScript { } - void OnSpellClick(Unit* /*clicker*/, bool& result) override + void OnSpellClick(Unit* /*clicker*/, bool spellClickHandled) override { - if (!result) + if (!spellClickHandled) return; if (me->GetVehicle()) diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp index f6883912491..6928195ae4a 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp @@ -1436,9 +1436,9 @@ class npc_descend_into_madness : public CreatureScript { npc_descend_into_madnessAI(Creature* creature) : PassiveAI(creature), _instance(creature->GetInstanceScript()) { } - void OnSpellClick(Unit* clicker, bool& result) override + void OnSpellClick(Unit* clicker, bool spellClickHandled) override { - if (!result) + if (!spellClickHandled) return; clicker->RemoveAurasDueToSpell(SPELL_BRAIN_LINK); |