aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/GameObject/GameObject.h1
-rw-r--r--src/server/game/Entities/Item/Item.h1
-rw-r--r--src/server/game/Entities/Transport/Transport.cpp4
-rw-r--r--src/server/game/Entities/Transport/Transport.h2
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp2
5 files changed, 9 insertions, 1 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.h b/src/server/game/Entities/GameObject/GameObject.h
index 70a09c26f11..400597cfb77 100644
--- a/src/server/game/Entities/GameObject/GameObject.h
+++ b/src/server/game/Entities/GameObject/GameObject.h
@@ -744,6 +744,7 @@ class GameObject : public WorldObject, public GridObject<GameObject>
void EventInform(uint32 eventId);
uint64 GetRotation() const { return m_rotation; }
+ virtual uint32 GetScriptId() const { return GetGOInfo()->ScriptId; }
protected:
uint32 m_spellId;
time_t m_respawnTime; // (secs) time of next respawn (or despawn if GO have owner()),
diff --git a/src/server/game/Entities/Item/Item.h b/src/server/game/Entities/Item/Item.h
index c2b18badf9b..bab9bc9060a 100644
--- a/src/server/game/Entities/Item/Item.h
+++ b/src/server/game/Entities/Item/Item.h
@@ -347,6 +347,7 @@ class Item : public Object
void BuildUpdate(UpdateDataMapType&);
+ uint32 GetScriptId() const { return GetProto()->ScriptId; }
private:
std::string m_text;
uint8 m_slot;
diff --git a/src/server/game/Entities/Transport/Transport.cpp b/src/server/game/Entities/Transport/Transport.cpp
index e1036436af0..29bb3007b1b 100644
--- a/src/server/game/Entities/Transport/Transport.cpp
+++ b/src/server/game/Entities/Transport/Transport.cpp
@@ -33,7 +33,7 @@
void MapManager::LoadTransports()
{
- QueryResult_AutoPtr result = WorldDatabase.Query("SELECT entry, name, period FROM transports");
+ QueryResult_AutoPtr result = WorldDatabase.Query("SELECT entry, name, period, ScriptName FROM transports");
uint32 count = 0;
@@ -60,6 +60,7 @@ void MapManager::LoadTransports()
uint32 entry = fields[0].GetUInt32();
std::string name = fields[1].GetCppString();
t->m_period = fields[2].GetUInt32();
+ t->ScriptId = objmgr.GetScriptId(fields[3].GetString());
const GameObjectInfo *goinfo = objmgr.GetGameObjectInfo(entry);
@@ -182,6 +183,7 @@ void MapManager::LoadTransportNPCs()
Transport::Transport() : GameObject()
{
m_updateFlag = (UPDATEFLAG_TRANSPORT | UPDATEFLAG_HIGHGUID | UPDATEFLAG_HAS_POSITION | UPDATEFLAG_ROTATION);
+ ScriptId = 0;
}
bool Transport::Create(uint32 guidlow, uint32 mapid, float x, float y, float z, float ang, uint32 animprogress, uint32 dynflags)
diff --git a/src/server/game/Entities/Transport/Transport.h b/src/server/game/Entities/Transport/Transport.h
index aa8328afed4..00d9e0ef84b 100644
--- a/src/server/game/Entities/Transport/Transport.h
+++ b/src/server/game/Entities/Transport/Transport.h
@@ -59,6 +59,7 @@ class Transport : public GameObject
void UpdateNPCPositions();
void BuildStartMovePacket(Map const *targetMap);
void BuildStopMovePacket(Map const *targetMap);
+ uint32 GetScriptId() const { return ScriptId; }
private:
struct WayPoint
{
@@ -89,6 +90,7 @@ class Transport : public GameObject
PlayerSet m_passengers;
uint32 currenttguid;
+ uint32 ScriptId;
public:
WayPointMap m_WayPoints;
uint32 m_nextNodeTime;
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index 469f9f5c021..305edb1bd3b 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -8740,6 +8740,8 @@ void ObjectMgr::LoadScriptNames()
"UNION "
"SELECT DISTINCT(ScriptName) FROM spell_script_names WHERE ScriptName <> '' "
"UNION "
+ "SELECT DISTINCT(ScriptName) FROM transports WHERE ScriptName <> '' "
+ "UNION "
"SELECT DISTINCT(script) FROM instance_template WHERE script <> ''");
if (!result)