aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2017-03-31 01:58:15 -0300
committerariel- <ariel-@users.noreply.github.com>2017-03-31 01:58:15 -0300
commitdafa7267737ac11b7abb4dcf9943c24ab1e71a8a (patch)
treed23d1b59b7879fb3a8f6d1b687a44b075e2de812 /src
parent8c3b6d57162a9da6006890dd46ad57d1f508d495 (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.cpp3
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp3
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp4
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))
{