diff options
author | ariel- <ariel-@users.noreply.github.com> | 2017-03-31 01:58:15 -0300 |
---|---|---|
committer | ariel- <ariel-@users.noreply.github.com> | 2017-03-31 01:58:15 -0300 |
commit | dafa7267737ac11b7abb4dcf9943c24ab1e71a8a (patch) | |
tree | d23d1b59b7879fb3a8f6d1b687a44b075e2de812 /src | |
parent | 8c3b6d57162a9da6006890dd46ad57d1f508d495 (diff) |
Core/Scripts: Fix a logic fail that overriden the script of an entity that changed entry
Closes #19389
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Creature/Creature.cpp | 3 | ||||
-rw-r--r-- | src/server/game/Entities/GameObject/GameObject.cpp | 3 | ||||
-rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 4 |
3 files changed, 4 insertions, 6 deletions
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index 3ae04ccbe14..42234afb7fc 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -2591,7 +2591,8 @@ std::string Creature::GetScriptName() const uint32 Creature::GetScriptId() const { if (CreatureData const* creatureData = GetCreatureData()) - return creatureData->ScriptId; + if (uint32 scriptId = creatureData->ScriptId) + return scriptId; return sObjectMgr->GetCreatureTemplate(GetEntry())->ScriptID; } diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index d399de52cdf..1eeacba22ae 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -1957,7 +1957,8 @@ void GameObject::EventInform(uint32 eventId, WorldObject* invoker /*= nullptr*/) uint32 GameObject::GetScriptId() const { if (GameObjectData const* gameObjectData = GetGOData()) - return gameObjectData->ScriptId; + if (uint32 scriptId = gameObjectData->ScriptId) + return scriptId; return GetGOInfo()->ScriptId; } diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index c0e61363f84..9ed9ef05f68 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -1795,8 +1795,6 @@ void ObjectMgr::LoadCreatures() data.unit_flags = fields[20].GetUInt32(); data.dynamicflags = fields[21].GetUInt32(); data.ScriptId = GetScriptId(fields[22].GetString()); - if (!data.ScriptId) - data.ScriptId = cInfo->ScriptID; MapEntry const* mapEntry = sMapStore.LookupEntry(data.mapid); if (!mapEntry) @@ -2137,8 +2135,6 @@ void ObjectMgr::LoadGameobjects() uint32 PoolId = fields[17].GetUInt32(); data.ScriptId = GetScriptId(fields[18].GetString()); - if (!data.ScriptId) - data.ScriptId = gInfo->ScriptId; if (std::abs(data.orientation) > 2 * float(M_PI)) { |