aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent-Michael <Vincent_Michael@gmx.de>2014-04-11 23:12:12 +0200
committerVincent-Michael <Vincent_Michael@gmx.de>2014-04-11 23:12:12 +0200
commit5454e10b52c6e8c75afba25a1cc8fb13c6ef8dcc (patch)
tree4550ff13616242169009c245277bfa454d0e4988
parent4e59d0b9228789c2c17c3dc9aa52c9f498b0c0e3 (diff)
parent870d5d9c45ddf8331f7029072f44f4b1cfa3b54b (diff)
Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Conflicts: src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp11
-rw-r--r--src/server/game/Entities/GameObject/GameObject.h2
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp7
3 files changed, 17 insertions, 3 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp
index 9cc9a1bab43..5afbdd5468a 100644
--- a/src/server/game/Entities/GameObject/GameObject.cpp
+++ b/src/server/game/Entities/GameObject/GameObject.cpp
@@ -52,7 +52,7 @@ GameObject::GameObject() : WorldObject(false), MapObject(),
m_spellId = 0;
m_cooldownTime = 0;
m_goInfo = NULL;
- m_ritualOwner = NULL;
+ m_ritualOwnerGUID = 0;
m_goData = NULL;
m_DBTableGuid = 0;
@@ -1445,9 +1445,16 @@ void GameObject::Use(Unit* user)
GameObjectTemplate const* info = GetGOInfo();
+ Player* m_ritualOwner = NULL;
+ if (m_ritualOwnerGUID)
+ m_ritualOwner = ObjectAccessor::FindPlayer(m_ritualOwnerGUID);
+
// ritual owner is set for GO's without owner (not summoned)
if (!m_ritualOwner && !owner)
+ {
+ m_ritualOwnerGUID = player->GetGUID();
m_ritualOwner = player;
+ }
if (owner)
{
@@ -1518,7 +1525,7 @@ void GameObject::Use(Unit* user)
else
{
// reset ritual for this GO
- m_ritualOwner = NULL;
+ m_ritualOwnerGUID = 0;
m_unique_users.clear();
m_usetimes = 0;
}
diff --git a/src/server/game/Entities/GameObject/GameObject.h b/src/server/game/Entities/GameObject/GameObject.h
index 77d36e1290c..6a411e3b4a2 100644
--- a/src/server/game/Entities/GameObject/GameObject.h
+++ b/src/server/game/Entities/GameObject/GameObject.h
@@ -847,7 +847,7 @@ class GameObject : public WorldObject, public GridObject<GameObject>, public Map
// For traps this: spell casting cooldown, for doors/buttons: reset time.
std::list<uint32> m_SkillupList;
- Player* m_ritualOwner; // used for GAMEOBJECT_TYPE_SUMMONING_RITUAL where GO is not summoned (no owner)
+ uint64 m_ritualOwnerGUID; // used for GAMEOBJECT_TYPE_SUMMONING_RITUAL where GO is not summoned (no owner)
std::set<uint64> m_unique_users;
uint32 m_usetimes;
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
index b5bd510addc..ee27a1524f0 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
@@ -393,6 +393,13 @@ class boss_halion : public CreatureScript
if (events.IsInPhase(PHASE_TWO))
return;
+ // Rough radius, it is not an exactly perfect circle
+ if (me->GetDistance2d(HalionControllerSpawnPos.GetPositionX(), HalionControllerSpawnPos.GetPositionY()) > 48.5f)
+ {
+ EnterEvadeMode();
+ return;
+ }
+
generic_halionAI::UpdateAI(diff);
}