From a038772b3e7e5b3b88b8064448eeaa7e0cc2c4ea Mon Sep 17 00:00:00 2001 From: XTZGZoReX Date: Mon, 9 Aug 2010 11:07:23 +0200 Subject: * Remove Player::SetSession (obsolete and dangerous function). * Speed up map script searches (avoid redundant loops). * Fix linking errors for ScriptObject::RegisterSelf. --HG-- branch : trunk extra : rebase_source : 2ba48fdab4e119c6de7fe64e47c5b8115fdac1b5 --- src/server/game/Scripting/ScriptMgr.h | 218 +++++++++++++++++++++++----------- 1 file changed, 151 insertions(+), 67 deletions(-) (limited to 'src/server/game/Scripting/ScriptMgr.h') diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h index e2ba684ab6b..c226e783d38 100644 --- a/src/server/game/Scripting/ScriptMgr.h +++ b/src/server/game/Scripting/ScriptMgr.h @@ -82,13 +82,17 @@ void DoScriptText(int32 textEntry, WorldObject* pSource, Unit *pTarget = NULL); { uint32 _someId; + private: + + void RegisterSelf(); + protected: MyScriptType(const char* name, uint32 someId) : ScriptObject(name), _someId(someId) - { } - - void RegisterSelf(); + { + RegisterSelf(); + } public: @@ -162,8 +166,6 @@ class ScriptObject const std::string& GetName() const { return _name; } - const char* ToString() const { return _name.c_str(); } - protected: // Call this to register the script with ScriptMgr. @@ -174,9 +176,6 @@ class ScriptObject { // Allow the script to do startup routines. OnInitialize(); - - // Register with ScriptMgr. - RegisterSelf(); } virtual ~ScriptObject() @@ -205,13 +204,17 @@ template class UpdatableScript class SpellHandlerScript : public ScriptObject { + private: + + void RegisterSelf(); + protected: SpellHandlerScript(const char* name) : ScriptObject(name) - { } - - void RegisterSelf(); + { + RegisterSelf(); + } public: @@ -223,13 +226,17 @@ class SpellHandlerScript : public ScriptObject class AuraHandlerScript : public ScriptObject { + private: + + void RegisterSelf(); + protected: AuraHandlerScript(const char* name) : ScriptObject(name) - { } - - void RegisterSelf(); + { + RegisterSelf(); + } public: @@ -241,13 +248,17 @@ class AuraHandlerScript : public ScriptObject class ServerScript : public ScriptObject { + private: + + void RegisterSelf(); + protected: ServerScript(const char* name) : ScriptObject(name) - { } - - void RegisterSelf(); + { + RegisterSelf(); + } public: @@ -279,13 +290,17 @@ class ServerScript : public ScriptObject class WorldScript : public ScriptObject, public UpdatableScript { + private: + + void RegisterSelf(); + protected: WorldScript(const char* name) : ScriptObject(name) - { } - - void RegisterSelf(); + { + RegisterSelf(); + } public: @@ -316,13 +331,17 @@ class WorldScript : public ScriptObject, public UpdatableScript class FormulaScript : public ScriptObject { + private: + + void RegisterSelf(); + protected: FormulaScript(const char* name) : ScriptObject(name) - { } - - void RegisterSelf(); + { + RegisterSelf(); + } public: @@ -347,6 +366,7 @@ class FormulaScript : public ScriptObject // Called after calculating experience gain. virtual void OnGainCalculation(uint32& gain, Player* player, Unit* unit) { } + // Called when calculating the experience rate for group experience. virtual void OnGroupRateCalculation(float& rate, uint32 count, bool isRaid) { } }; @@ -392,6 +412,10 @@ template class MapScript : public UpdatableScript class WorldMapScript : public ScriptObject, public MapScript { + private: + + void RegisterSelf(); + protected: WorldMapScript(const char* name, uint32 mapId) @@ -399,13 +423,17 @@ class WorldMapScript : public ScriptObject, public MapScript { if (GetEntry() && !GetEntry()->IsContinent()) sLog.outError("WorldMapScript for map %u is invalid.", mapId); + else + RegisterSelf(); } - - void RegisterSelf(); }; class InstanceMapScript : public ScriptObject, public MapScript { + private: + + void RegisterSelf(); + protected: InstanceMapScript(const char* name, uint32 mapId = 0) @@ -413,10 +441,10 @@ class InstanceMapScript : public ScriptObject, public MapScript { if (GetEntry() && !GetEntry()->IsDungeon()) sLog.outError("InstanceMapScript for map %u is invalid.", mapId); + else + RegisterSelf(); } - void RegisterSelf(); - public: bool IsDatabaseBound() const { return true; } @@ -434,6 +462,8 @@ class BattlegroundMapScript : public ScriptObject, public MapScriptIsBattleground()) sLog.outError("BattlegroundMapScript for map %u is invalid.", mapId); + else + RegisterSelf(); } void RegisterSelf(); @@ -441,13 +471,17 @@ class BattlegroundMapScript : public ScriptObject, public MapScript { + private: + + void RegisterSelf(); + protected: CreatureScript(const char* name) : ScriptObject(name) - { } - - void RegisterSelf(); + { + RegisterSelf(); + } public: @@ -513,13 +551,17 @@ class CreatureScript : public ScriptObject, public UpdatableScript class GameObjectScript : public ScriptObject, public UpdatableScript { + private: + + void RegisterSelf(); + protected: GameObjectScript(const char* name) : ScriptObject(name) - { } - - void RegisterSelf(); + { + RegisterSelf(); + } public: @@ -552,13 +594,17 @@ class GameObjectScript : public ScriptObject, public UpdatableScript class AreaTriggerScript : public ScriptObject { + private: + + void RegisterSelf(); + protected: AreaTriggerScript(const char* name) : ScriptObject(name) - { } - - void RegisterSelf(); + { + RegisterSelf(); + } public: @@ -570,13 +616,17 @@ class AreaTriggerScript : public ScriptObject class BattlegroundScript : public ScriptObject { + private: + + void RegisterSelf(); + protected: BattlegroundScript(const char* name) : ScriptObject(name) - { } - - void RegisterSelf(); + { + RegisterSelf(); + } public: @@ -588,13 +638,17 @@ class BattlegroundScript : public ScriptObject class OutdoorPvPScript : public ScriptObject { + private: + + void RegisterSelf(); + protected: OutdoorPvPScript(const char* name) : ScriptObject(name) - { } - - void RegisterSelf(); + { + RegisterSelf(); + } public: @@ -606,13 +660,17 @@ class OutdoorPvPScript : public ScriptObject class CommandScript : public ScriptObject { + private: + + void RegisterSelf(); + protected: CommandScript(const char* name) : ScriptObject(name) - { } - - void RegisterSelf(); + { + RegisterSelf(); + } public: @@ -622,13 +680,17 @@ class CommandScript : public ScriptObject class WeatherScript : public ScriptObject, public UpdatableScript { + private: + + void RegisterSelf(); + protected: WeatherScript(const char* name) : ScriptObject(name) - { } - - void RegisterSelf(); + { + RegisterSelf(); + } public: @@ -640,13 +702,17 @@ class WeatherScript : public ScriptObject, public UpdatableScript class AuctionHouseScript : public ScriptObject { + private: + + void RegisterSelf(); + protected: AuctionHouseScript(const char* name) : ScriptObject(name) - { } - - void RegisterSelf(); + { + RegisterSelf(); + } public: @@ -665,13 +731,17 @@ class AuctionHouseScript : public ScriptObject class ConditionScript : public ScriptObject { + private: + + void RegisterSelf(); + protected: ConditionScript(const char* name) : ScriptObject(name) - { } - - void RegisterSelf(); + { + RegisterSelf(); + } public: @@ -683,13 +753,17 @@ class ConditionScript : public ScriptObject class VehicleScript : public ScriptObject { + private: + + void RegisterSelf(); + protected: VehicleScript(const char* name) : ScriptObject(name) - { } - - void RegisterSelf(); + { + RegisterSelf(); + } public: @@ -717,26 +791,33 @@ class VehicleScript : public ScriptObject class DynamicObjectScript : public ScriptObject, public UpdatableScript { + private: + + void RegisterSelf(); + protected: DynamicObjectScript(const char* name) : ScriptObject(name) - { } - - void RegisterSelf(); + { + RegisterSelf(); + } }; class TransportScript : public ScriptObject, public UpdatableScript { + private: + + void RegisterSelf(); + protected: TransportScript(const char* name) : ScriptObject(name) { + RegisterSelf(); } - void RegisterSelf(); - public: bool IsDatabaseBound() const { return true; } @@ -756,15 +837,18 @@ class TransportScript : public ScriptObject, public UpdatableScript class AchievementCriteriaScript : public ScriptObject { + private: + + void RegisterSelf(); + protected: AchievementCriteriaScript(const char* name) : ScriptObject(name) { + RegisterSelf(); } - void RegisterSelf(); - public: bool IsDatabaseBound() const { return true; } -- cgit v1.2.3