diff options
| author | Giacomo Pozzoni <giacomopoz@gmail.com> | 2019-05-23 21:08:29 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-05-23 21:08:29 +0200 |
| commit | 797fba98e95da1236465a15061ec4122d7ec33fe (patch) | |
| tree | 2ebd1df31f8bd2573cdb65683e0966b4e3c97a43 /src/server/game/AI/SmartScripts | |
| parent | 457fc224733cc78cedc5e956442a9f5d7bd2f049 (diff) | |
3.3.5 gameobject summoner (#23289)
* Scripts/Misc: Change IsSummonedBy(Unit*) to IsSummonedBy(WorldObject*)
* Scripts/Misc: Fix build
* Core/TempSummons: Rename GetSummoner() to GetSummonerUnit()
* Core/TempSummons: Add support to TempSummons::GetSummoner() to return GameObject too
* Fix build
* Core/TempSummons: Allow GameObject to be owner of TempSummon
* Core/TempSummons: Add support to SAI for GameObject owner of TempSummon
* Scripts/Misc: Fix no-pch build
* Core/TempSummons: Implement PR comments
Diffstat (limited to 'src/server/game/AI/SmartScripts')
| -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/AI/SmartScripts/SmartScript.cpp | 6 |
3 files changed, 6 insertions, 6 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartAI.cpp b/src/server/game/AI/SmartScripts/SmartAI.cpp index 83d07dc78e1..461e3c2b01f 100644 --- a/src/server/game/AI/SmartScripts/SmartAI.cpp +++ b/src/server/game/AI/SmartScripts/SmartAI.cpp @@ -636,9 +636,9 @@ void SmartAI::ReceiveEmote(Player* player, uint32 textEmote) GetScript()->ProcessEventsFor(SMART_EVENT_RECEIVE_EMOTE, player, textEmote); } -void SmartAI::IsSummonedBy(Unit* summoner) +void SmartAI::IsSummonedBy(WorldObject* summoner) { - GetScript()->ProcessEventsFor(SMART_EVENT_JUST_SUMMONED, summoner); + GetScript()->ProcessEventsFor(SMART_EVENT_JUST_SUMMONED, summoner->ToUnit(), 0, 0, false, nullptr, summoner->ToGameObject()); } void SmartAI::DamageDealt(Unit* doneTo, uint32& damage, DamageEffectType /*damagetype*/) diff --git a/src/server/game/AI/SmartScripts/SmartAI.h b/src/server/game/AI/SmartScripts/SmartAI.h index 152e3cf5b44..9f083a9c9a0 100644 --- a/src/server/game/AI/SmartScripts/SmartAI.h +++ b/src/server/game/AI/SmartScripts/SmartAI.h @@ -119,7 +119,7 @@ class TC_GAME_API SmartAI : public CreatureAI void MovementInform(uint32 MovementType, uint32 Data) override; // Called when creature is summoned by another unit - void IsSummonedBy(Unit* summoner) override; + void IsSummonedBy(WorldObject* summoner) override; // Called at any Damage to any victim (before damage apply) void DamageDealt(Unit* doneTo, uint32& damage, DamageEffectType /*damagetype*/) override; diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index 9255d52bd70..825920c5d7d 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -2708,13 +2708,13 @@ void SmartScript::GetTargets(ObjectVector& targets, SmartScriptHolder const& e, if (!charmerOrOwnerGuid) if (TempSummon* tempSummon = me->ToTempSummon()) - if (Unit* summoner = tempSummon->GetSummoner()) + if (WorldObject* summoner = tempSummon->GetSummoner()) charmerOrOwnerGuid = summoner->GetGUID(); if (!charmerOrOwnerGuid) charmerOrOwnerGuid = me->GetCreatorGUID(); - if (Unit* owner = ObjectAccessor::GetUnit(*me, charmerOrOwnerGuid)) + if (WorldObject* owner = ObjectAccessor::GetWorldObject(*me, charmerOrOwnerGuid)) targets.push_back(owner); } else if (go) @@ -2726,7 +2726,7 @@ void SmartScript::GetTargets(ObjectVector& targets, SmartScriptHolder const& e, // Get owner of owner if (e.target.owner.useCharmerOrOwner && !targets.empty()) { - Unit* owner = targets.front()->ToUnit(); + WorldObject* owner = targets.front(); targets.clear(); if (Unit* base = ObjectAccessor::GetUnit(*owner, owner->GetCharmerOrOwnerGUID())) |
