aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2018-02-24 15:52:09 -0300
committerfunjoker <funjoker109@gmail.com>2021-08-08 21:21:34 +0200
commita1a00f823e7e47e8cb652b71a839c1d0875a8f84 (patch)
treeddffcb6efbfed6d4d27d8dd9320e552365a34545 /src
parent30f8adda86f0c4376595866607a2e03cc88406eb (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.h2
-rw-r--r--src/server/game/AI/SmartScripts/SmartAI.cpp4
-rw-r--r--src/server/game/AI/SmartScripts/SmartAI.h2
-rw-r--r--src/server/game/Entities/Player/Player.cpp16
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp32
-rw-r--r--src/server/game/Entities/Unit/Unit.h2
-rw-r--r--src/server/game/Entities/Vehicle/Vehicle.cpp2
-rw-r--r--src/server/game/Globals/ObjectMgr.h5
-rw-r--r--src/server/scripts/Kalimdor/zone_felwood.cpp4
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp4
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp4
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp4
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);