Skip to content

Commit

Permalink
[9911] Check script using and existance at `creature_movement_scripts…
Browse files Browse the repository at this point in the history
…` load.
  • Loading branch information
VladimirMangos committed May 16, 2010
1 parent 0ccee49 commit 4c027b2
Show file tree
Hide file tree
Showing 5 changed files with 45 additions and 10 deletions.
26 changes: 18 additions & 8 deletions src/game/ObjectMgr.cpp
Expand Up @@ -4583,6 +4583,16 @@ void ObjectMgr::LoadGossipScripts()
void ObjectMgr::LoadCreatureMovementScripts()
{
LoadScripts(sCreatureMovementScripts, "creature_movement_scripts");

std::set<uint32> ids;

for(ScriptMapMap::const_iterator itr = sCreatureMovementScripts.begin(); itr != sEventScripts.end(); ++itr)
ids.insert(itr->first);

sWaypointMgr.CheckScriptExistance(ids);

for(std::set<uint32>::const_iterator itr = ids.begin(); itr != ids.end(); ++itr)
sLog.outErrorDb("Table `creature_movement_scripts` has script (Id: %u) not referring to any waypoint.", *itr);
}

void ObjectMgr::LoadPageTexts()
Expand Down Expand Up @@ -8446,7 +8456,7 @@ uint32 ObjectMgr::GetScriptId(const char *name)
return uint32(itr - m_scriptNames.begin());
}

void ObjectMgr::CheckScripts(ScriptMapMap const& scripts,std::set<int32>& ids)
void ObjectMgr::CheckScriptTexts(ScriptMapMap const& scripts,std::set<int32>& ids)
{
for(ScriptMapMap::const_iterator itrMM = scripts.begin(); itrMM != scripts.end(); ++itrMM)
{
Expand Down Expand Up @@ -8477,13 +8487,13 @@ void ObjectMgr::LoadDbScriptStrings()
if(GetMangosStringLocale(i))
ids.insert(i);

CheckScripts(sQuestEndScripts,ids);
CheckScripts(sQuestStartScripts,ids);
CheckScripts(sSpellScripts,ids);
CheckScripts(sGameObjectScripts,ids);
CheckScripts(sEventScripts,ids);
CheckScripts(sGossipScripts,ids);
CheckScripts(sCreatureMovementScripts,ids);
CheckScriptTexts(sQuestEndScripts,ids);
CheckScriptTexts(sQuestStartScripts,ids);
CheckScriptTexts(sSpellScripts,ids);
CheckScriptTexts(sGameObjectScripts,ids);
CheckScriptTexts(sEventScripts,ids);
CheckScriptTexts(sGossipScripts,ids);
CheckScriptTexts(sCreatureMovementScripts,ids);

sWaypointMgr.CheckTextsExistance(ids);

Expand Down
2 changes: 1 addition & 1 deletion src/game/ObjectMgr.h
Expand Up @@ -961,7 +961,7 @@ class ObjectMgr

private:
void LoadScripts(ScriptMapMap& scripts, char const* tablename);
void CheckScripts(ScriptMapMap const& scripts,std::set<int32>& ids);
void CheckScriptTexts(ScriptMapMap const& scripts,std::set<int32>& ids);
void LoadCreatureAddons(SQLStorage& creatureaddons, char const* entryName, char const* comment);
void ConvertCreatureAddonAuras(CreatureDataAddon* addon, char const* table, char const* guidEntryStr);
void LoadQuestRelationsHelper(QuestRelations& map,char const* table);
Expand Down
24 changes: 24 additions & 0 deletions src/game/WaypointManager.cpp
Expand Up @@ -394,3 +394,27 @@ void WaypointManager::CheckTextsExistance(std::set<int32>& ids)
}
}
}

void WaypointManager::CheckScriptExistance(std::set<uint32>& ids)
{
WaypointPathMap::iterator pmItr = m_pathMap.begin();
for ( ; pmItr != m_pathMap.end(); ++pmItr)
{
for (size_t i = 0; i < pmItr->second.size(); ++i)
{
uint32 script_id = pmItr->second[i].script_id;
if (!script_id)
continue;

// Now we check text existence and put all zero texts ids to the end of array
if (sCreatureMovementScripts.find(script_id)==sCreatureMovementScripts.end())
{
sLog.outErrorDb("Some waypoint has not existing scriptid %u.", script_id);
pmItr->second[i].script_id = 0;
continue;
}
else
ids.erase(script_id);
}
}
}
1 change: 1 addition & 0 deletions src/game/WaypointManager.h
Expand Up @@ -79,6 +79,7 @@ class WaypointManager
void SetNodePosition(uint32 id, uint32 point, float x, float y, float z);
void SetNodeText(uint32 id, uint32 point, const char *text_field, const char *text);
void CheckTextsExistance(std::set<int32>& ids);
void CheckScriptExistance(std::set<uint32>& ids);

private:
void _addNode(uint32 id, uint32 point, float x, float y, float z, float o, uint32 delay, uint32 wpGuid);
Expand Down
2 changes: 1 addition & 1 deletion src/shared/revision_nr.h
@@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__
#define __REVISION_NR_H__
#define REVISION_NR "9910"
#define REVISION_NR "9911"
#endif // __REVISION_NR_H__

0 comments on commit 4c027b2

Please sign in to comment.