[6828] Added script name indexing for creature, gameobject, item, areatrigger and instance scripts.

* loaded all distinct script names into one vector at server startup
* added custom loaders to convert the script names to indices
* converted all the script lookup functions to use the index instead of the name
This commit is contained in:
Wyk3d 2008-11-16 03:18:26 +02:00
parent 074bd3a08f
commit 766654c85d
16 changed files with 184 additions and 101 deletions

View file

@ -1626,7 +1626,7 @@ void InstanceMap::CreateInstanceData(bool load)
InstanceTemplate const* mInstance = objmgr.GetInstanceTemplate(GetId());
if (mInstance)
{
i_script = mInstance->script;
i_script_id = mInstance->script_id;
i_data = Script->CreateInstanceData(this);
}
@ -1643,7 +1643,7 @@ void InstanceMap::CreateInstanceData(bool load)
const char* data = fields[0].GetString();
if(data)
{
sLog.outDebug("Loading instance data for `%s` with id %u", i_script.c_str(), i_InstanceId);
sLog.outDebug("Loading instance data for `%s` with id %u", objmgr.GetScriptName(i_script_id), i_InstanceId);
i_data->Load(data);
}
delete result;
@ -1651,7 +1651,7 @@ void InstanceMap::CreateInstanceData(bool load)
}
else
{
sLog.outDebug("New instance data, \"%s\" ,initialized!",i_script.c_str());
sLog.outDebug("New instance data, \"%s\" ,initialized!", objmgr.GetScriptName(i_script_id));
i_data->Initialize();
}
}