aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <none@none>2010-08-06 12:13:13 +0200
committerShauren <none@none>2010-08-06 12:13:13 +0200
commit7cae47210ed01473d9025d7627f69adc08f989db (patch)
treed2916a1652351a13fa4480e732cdb9ac5ca1ba24
parent9cfef5c39f451fdfcd8e403dbbefd37c5321e1c9 (diff)
Added ScriptName to transports table for script system rewrite
--HG-- branch : trunk
-rw-r--r--sql/base/world_database.sql1
-rw-r--r--sql/updates/9189_world_transports.sql1
-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
7 files changed, 11 insertions, 1 deletions
diff --git a/sql/base/world_database.sql b/sql/base/world_database.sql
index 3365b352406..87c843618da 100644
--- a/sql/base/world_database.sql
+++ b/sql/base/world_database.sql
@@ -14728,6 +14728,7 @@ CREATE TABLE `transports` (
`entry` mediumint(8) unsigned NOT NULL DEFAULT '0',
`name` text,
`period` mediumint(8) unsigned NOT NULL DEFAULT '0',
+ `ScriptName` char(64) NOT NULL DEFAULT '',
PRIMARY KEY (`entry`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Transports';
/*!40101 SET character_set_client = @saved_cs_client */;
diff --git a/sql/updates/9189_world_transports.sql b/sql/updates/9189_world_transports.sql
new file mode 100644
index 00000000000..da3d2245c54
--- /dev/null
+++ b/sql/updates/9189_world_transports.sql
@@ -0,0 +1 @@
+ALTER TABLE `transports` ADD `ScriptName` char(64) NOT NULL DEFAULT '' AFTER `period`;
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)