aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorclick <none@none>2010-08-09 23:17:02 +0200
committerclick <none@none>2010-08-09 23:17:02 +0200
commita8303b38e6c7b8ce60ca8d7bd7ed25f0165e5c12 (patch)
tree2a8b8d604966080c2cda39a3e61e393e130e17cf
parent816acb11a46c39e678efe8012e0ac12c32cd271b (diff)
parentcecb8117d5aeeb42cda8657a0c6f8cf9caf74947 (diff)
Merge
--HG-- branch : trunk
-rw-r--r--src/server/game/Scripting/ScriptMgr.cpp5
-rw-r--r--src/server/game/Scripting/ScriptMgr.h15
2 files changed, 4 insertions, 16 deletions
diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp
index 0bffcd5a1fd..4c64f8251da 100644
--- a/src/server/game/Scripting/ScriptMgr.cpp
+++ b/src/server/game/Scripting/ScriptMgr.cpp
@@ -136,6 +136,7 @@ void DoScriptText(int32 iTextEntry, WorldObject* pSource, Unit* pTarget)
}
ScriptMgr::ScriptMgr()
+ : _scriptCount(0)
{
}
@@ -1106,7 +1107,7 @@ WorldMapScript::WorldMapScript(const char* name, uint32 mapId)
}
InstanceMapScript::InstanceMapScript(const char* name, uint32 mapId)
- : ScriptObject(name), MapScript<InstanceMap>(0)
+ : ScriptObject(name), MapScript<InstanceMap>(mapId)
{
if (GetEntry() && !GetEntry()->IsDungeon())
sLog.outError("InstanceMapScript for map %u is invalid.", mapId);
@@ -1209,7 +1210,7 @@ AchievementCriteriaScript::AchievementCriteriaScript(const char* name)
// Instantiate static members of ScriptMgr::ScriptRegistry.
template<class TScript> std::map<uint32, TScript*> ScriptMgr::ScriptRegistry<TScript>::ScriptPointerList;
-template<class TScript> uint32 ScriptMgr::ScriptRegistry<TScript>::_scriptIdCounter;
+template<class TScript> uint32 ScriptMgr::ScriptRegistry<TScript>::_scriptIdCounter = 0;
// Specialize for each script type class like so:
template class ScriptMgr::ScriptRegistry<SpellHandlerScript>;
diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h
index c98a1574d9d..cf583a68532 100644
--- a/src/server/game/Scripting/ScriptMgr.h
+++ b/src/server/game/Scripting/ScriptMgr.h
@@ -145,13 +145,6 @@ class ScriptObject
public:
- // Called when the script is initialized. Use it to initialize any properties of the script. Do not use
- // the constructor for this.
- virtual void OnInitialize() { }
-
- // Called when the script is deleted. Use it to free memory, etc. Do not use the destructor for this.
- virtual void OnTeardown() { }
-
// Do not override this in scripts; it should be overridden by the various script type classes. It indicates
// whether or not this script type must be assigned in the database.
virtual bool IsDatabaseBound() const { return false; }
@@ -163,14 +156,10 @@ class ScriptObject
ScriptObject(const char* name)
: _name(std::string(name))
{
- // Allow the script to do startup routines.
- OnInitialize();
}
virtual ~ScriptObject()
{
- // Allow the script to do cleanup routines.
- OnTeardown();
}
private:
@@ -902,7 +891,7 @@ class ScriptMgr
sLog.outError("Script '%s' already assigned with the same script name, so the script can't work.",
script->GetName().c_str());
- delete script;
+ ASSERT(false); // Error that should be fixed ASAP.
}
}
else
@@ -911,8 +900,6 @@ class ScriptMgr
if (script->GetName().find("example") == std::string::npos)
sLog.outErrorDb("Script named '%s' does not have a script name assigned in database.",
script->GetName().c_str());
-
- delete script;
}
}
else