diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/game/World.cpp | 43 |
1 files changed, 25 insertions, 18 deletions
diff --git a/src/game/World.cpp b/src/game/World.cpp index 761a2383c00..d632c0b6ad1 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -2308,6 +2308,7 @@ void World::ScriptsProcess() sLog.outError("SCRIPT_COMMAND_CALLSCRIPT calls invallid db_script_id or lowguid not present: skipping."); break; } + //our target Creature* target = NULL; if(source) //using grid searcher @@ -2329,40 +2330,46 @@ void World::ScriptsProcess() if(CreatureData const* data = objmgr.GetCreatureData(step.script->datalong)) target = ObjectAccessor::GetObjectInWorld<Creature>(data->mapid, data->posX, data->posY, MAKE_NEW_GUID(step.script->datalong, data->id, HIGHGUID_UNIT), target); } - + //sLog.outDebug("attempting to pass target..."); if(!target) break; - + //sLog.outDebug("target passed"); //Lets choose our ScriptMap map - ScriptMapMap datamap; + ScriptMapMap *datamap = NULL; switch(step.script->dataint) { - case 1: - datamap = sQuestEndScripts; + case 1://QUEST END SCRIPTMAP + datamap = &sQuestEndScripts; break; - case 2: - datamap = sQuestStartScripts; + case 2://QUEST START SCRIPTMAP + datamap = &sQuestStartScripts; break; - case 3: - datamap = sSpellScripts; + case 3://SPELLS SCRIPTMAP + datamap = &sSpellScripts; break; - case 4: - datamap = sGameObjectScripts; + case 4://GAMEOBJECTS SCRIPTMAP + datamap = &sGameObjectScripts; break; - case 5: - datamap = sEventScripts; + case 5://EVENTS SCRIPTMAP + datamap = &sEventScripts; break; - case 6: - datamap = sWaypointScripts; + case 6://WAYPOINTS SCRIPTMAP + datamap = &sWaypointScripts; break; default: sLog.outError("SCRIPT_COMMAND_CALLSCRIPT ERROR: no scriptmap present... ignoring"); - m_scriptSchedule.erase(iter); - return; + break; } + //if no scriptmap present... + if(!datamap) + break; + uint32 script_id = step.script->datalong2; + //delete iter and return it to begin pos(next one) m_scriptSchedule.erase(iter); - ScriptsStart(datamap, script_id, target, NULL); + iter = m_scriptSchedule.begin(); + + ScriptsStart(*datamap, script_id, target, NULL); return; } |
