diff options
author | leak <none@none> | 2010-12-19 17:06:33 +0100 |
---|---|---|
committer | leak <none@none> | 2010-12-19 17:06:33 +0100 |
commit | fd694cd2324a7e2d61d833a78024b68fd3605053 (patch) | |
tree | 2fb48411eb25ff627b56786b66c96dd646a30651 /src/server/game/Scripting/ScriptSystem.cpp | |
parent | 9c35e10444b24848e0a909c46727ac2a312ab5de (diff) |
Streamlining loading functions for server startup
- Added a couple of timer outputs
- Improved code consistency between loading functions
- Progess bars should look and behave similar on all OS now (sLog.outString() is not needed anymore to replace the progress bar in log files)
--HG--
branch : trunk
Diffstat (limited to 'src/server/game/Scripting/ScriptSystem.cpp')
-rwxr-xr-x | src/server/game/Scripting/ScriptSystem.cpp | 286 |
1 files changed, 143 insertions, 143 deletions
diff --git a/src/server/game/Scripting/ScriptSystem.cpp b/src/server/game/Scripting/ScriptSystem.cpp index 649ff82fcde..6a2748a38a3 100755 --- a/src/server/game/Scripting/ScriptSystem.cpp +++ b/src/server/game/Scripting/ScriptSystem.cpp @@ -55,66 +55,66 @@ void SystemMgr::LoadScriptTexts() { sLog.outString("TSCR: Loading Script Texts..."); LoadTrinityStrings("script_texts",TEXT_SOURCE_RANGE,1+(TEXT_SOURCE_RANGE*2)); - - QueryResult Result = WorldDatabase.Query("SELECT entry, sound, type, language, emote FROM script_texts"); - + sLog.outString("TSCR: Loading Script Texts additional data..."); + uint32 oldMSTime = getMSTime(); - if (Result) - { - barGoLink bar(Result->GetRowCount()); - uint32 uiCount = 0; - - do - { - bar.step(); - Field* pFields = Result->Fetch(); - StringTextData pTemp; - - int32 iId = pFields[0].GetInt32(); - pTemp.uiSoundId = pFields[1].GetUInt32(); - pTemp.uiType = pFields[2].GetUInt32(); - pTemp.uiLanguage = pFields[3].GetUInt32(); - pTemp.uiEmote = pFields[4].GetUInt32(); - - if (iId >= 0) - { - sLog.outErrorDb("TSCR: Entry %i in table `script_texts` is not a negative value.", iId); - continue; - } - - if (iId > TEXT_SOURCE_RANGE || iId <= TEXT_SOURCE_RANGE*2) - { - sLog.outErrorDb("TSCR: Entry %i in table `script_texts` is out of accepted entry range for table.", iId); - continue; - } - - if (pTemp.uiSoundId) - { - if (!GetSoundEntriesStore()->LookupEntry(pTemp.uiSoundId)) - sLog.outErrorDb("TSCR: Entry %i in table `script_texts` has soundId %u but sound does not exist.", iId, pTemp.uiSoundId); - } - - if (!GetLanguageDescByID(pTemp.uiLanguage)) - sLog.outErrorDb("TSCR: Entry %i in table `script_texts` using Language %u but Language does not exist.", iId, pTemp.uiLanguage); - - if (pTemp.uiType > CHAT_TYPE_ZONE_YELL) - sLog.outErrorDb("TSCR: Entry %i in table `script_texts` has Type %u but this Chat Type does not exist.", iId, pTemp.uiType); - - m_mTextDataMap[iId] = pTemp; - ++uiCount; - } while (Result->NextRow()); + QueryResult result = WorldDatabase.Query("SELECT entry, sound, type, language, emote FROM script_texts"); - sLog.outString(); - sLog.outString(">> Loaded %u additional Script Texts data.", uiCount); - } - else + if (!result) { barGoLink bar(1); bar.step(); - sLog.outString(); sLog.outString(">> Loaded 0 additional Script Texts data. DB table `script_texts` is empty."); + sLog.outString(); + return; } + + barGoLink bar(result->GetRowCount()); + uint32 uiCount = 0; + + do + { + bar.step(); + Field* pFields = result->Fetch(); + StringTextData pTemp; + + int32 iId = pFields[0].GetInt32(); + pTemp.uiSoundId = pFields[1].GetUInt32(); + pTemp.uiType = pFields[2].GetUInt32(); + pTemp.uiLanguage = pFields[3].GetUInt32(); + pTemp.uiEmote = pFields[4].GetUInt32(); + + if (iId >= 0) + { + sLog.outErrorDb("TSCR: Entry %i in table `script_texts` is not a negative value.", iId); + continue; + } + + if (iId > TEXT_SOURCE_RANGE || iId <= TEXT_SOURCE_RANGE*2) + { + sLog.outErrorDb("TSCR: Entry %i in table `script_texts` is out of accepted entry range for table.", iId); + continue; + } + + if (pTemp.uiSoundId) + { + if (!GetSoundEntriesStore()->LookupEntry(pTemp.uiSoundId)) + sLog.outErrorDb("TSCR: Entry %i in table `script_texts` has soundId %u but sound does not exist.", iId, pTemp.uiSoundId); + } + + if (!GetLanguageDescByID(pTemp.uiLanguage)) + sLog.outErrorDb("TSCR: Entry %i in table `script_texts` using Language %u but Language does not exist.", iId, pTemp.uiLanguage); + + if (pTemp.uiType > CHAT_TYPE_ZONE_YELL) + sLog.outErrorDb("TSCR: Entry %i in table `script_texts` has Type %u but this Chat Type does not exist.", iId, pTemp.uiType); + + m_mTextDataMap[iId] = pTemp; + ++uiCount; + } while (result->NextRow()); + + sLog.outString(">> Loaded %u additional Script Texts data in %u ms", uiCount, GetMSTimeDiffToNow(oldMSTime)); + sLog.outString(); } void SystemMgr::LoadScriptTextsCustom() @@ -122,125 +122,125 @@ void SystemMgr::LoadScriptTextsCustom() sLog.outString("TSCR: Loading Custom Texts..."); LoadTrinityStrings("custom_texts",TEXT_SOURCE_RANGE*2,1+(TEXT_SOURCE_RANGE*3)); - QueryResult Result = WorldDatabase.Query("SELECT entry, sound, type, language, emote FROM custom_texts"); - sLog.outString("TSCR: Loading Custom Texts additional data..."); - if (Result) - { - barGoLink bar(Result->GetRowCount()); - uint32 uiCount = 0; - - do - { - bar.step(); - Field* pFields = Result->Fetch(); - StringTextData pTemp; - - int32 iId = pFields[0].GetInt32(); - pTemp.uiSoundId = pFields[1].GetUInt32(); - pTemp.uiType = pFields[2].GetUInt32(); - pTemp.uiLanguage = pFields[3].GetUInt32(); - pTemp.uiEmote = pFields[4].GetUInt32(); - - if (iId >= 0) - { - sLog.outErrorDb("TSCR: Entry %i in table `custom_texts` is not a negative value.", iId); - continue; - } - - if (iId > TEXT_SOURCE_RANGE*2 || iId <= TEXT_SOURCE_RANGE*3) - { - sLog.outErrorDb("TSCR: Entry %i in table `custom_texts` is out of accepted entry range for table.", iId); - continue; - } - - if (pTemp.uiSoundId) - { - if (!GetSoundEntriesStore()->LookupEntry(pTemp.uiSoundId)) - sLog.outErrorDb("TSCR: Entry %i in table `custom_texts` has soundId %u but sound does not exist.", iId, pTemp.uiSoundId); - } - - if (!GetLanguageDescByID(pTemp.uiLanguage)) - sLog.outErrorDb("TSCR: Entry %i in table `custom_texts` using Language %u but Language does not exist.", iId, pTemp.uiLanguage); - - if (pTemp.uiType > CHAT_TYPE_ZONE_YELL) - sLog.outErrorDb("TSCR: Entry %i in table `custom_texts` has Type %u but this Chat Type does not exist.", iId, pTemp.uiType); - - m_mTextDataMap[iId] = pTemp; - ++uiCount; - } while (Result->NextRow()); + QueryResult result = WorldDatabase.Query("SELECT entry, sound, type, language, emote FROM custom_texts"); - sLog.outString(); - sLog.outString(">> Loaded %u additional Custom Texts data.", uiCount); - } - else + if (!result) { barGoLink bar(1); bar.step(); - sLog.outString(); sLog.outString(">> Loaded 0 additional Custom Texts data. DB table `custom_texts` is empty."); + sLog.outString(); + return; } + + barGoLink bar(result->GetRowCount()); + uint32 uiCount = 0; + + do + { + bar.step(); + Field* pFields = result->Fetch(); + StringTextData pTemp; + + int32 iId = pFields[0].GetInt32(); + pTemp.uiSoundId = pFields[1].GetUInt32(); + pTemp.uiType = pFields[2].GetUInt32(); + pTemp.uiLanguage = pFields[3].GetUInt32(); + pTemp.uiEmote = pFields[4].GetUInt32(); + + if (iId >= 0) + { + sLog.outErrorDb("TSCR: Entry %i in table `custom_texts` is not a negative value.", iId); + continue; + } + + if (iId > TEXT_SOURCE_RANGE*2 || iId <= TEXT_SOURCE_RANGE*3) + { + sLog.outErrorDb("TSCR: Entry %i in table `custom_texts` is out of accepted entry range for table.", iId); + continue; + } + + if (pTemp.uiSoundId) + { + if (!GetSoundEntriesStore()->LookupEntry(pTemp.uiSoundId)) + sLog.outErrorDb("TSCR: Entry %i in table `custom_texts` has soundId %u but sound does not exist.", iId, pTemp.uiSoundId); + } + + if (!GetLanguageDescByID(pTemp.uiLanguage)) + sLog.outErrorDb("TSCR: Entry %i in table `custom_texts` using Language %u but Language does not exist.", iId, pTemp.uiLanguage); + + if (pTemp.uiType > CHAT_TYPE_ZONE_YELL) + sLog.outErrorDb("TSCR: Entry %i in table `custom_texts` has Type %u but this Chat Type does not exist.", iId, pTemp.uiType); + + m_mTextDataMap[iId] = pTemp; + ++uiCount; + } while (result->NextRow()); + + sLog.outString(">> Loaded %u additional Custom Texts data.", uiCount); + sLog.outString(); } void SystemMgr::LoadScriptWaypoints() { + uint32 oldMSTime = getMSTime(); + // Drop Existing Waypoint list m_mPointMoveMap.clear(); uint64 uiCreatureCount = 0; // Load Waypoints - QueryResult Result = WorldDatabase.Query("SELECT COUNT(entry) FROM script_waypoint GROUP BY entry"); - if (Result) - uiCreatureCount = Result->GetRowCount(); + QueryResult result = WorldDatabase.Query("SELECT COUNT(entry) FROM script_waypoint GROUP BY entry"); + if (result) + uiCreatureCount = result->GetRowCount(); sLog.outString("TSCR: Loading Script Waypoints for " UI64FMTD " creature(s)...", uiCreatureCount); - Result = WorldDatabase.Query("SELECT entry, pointid, location_x, location_y, location_z, waittime FROM script_waypoint ORDER BY pointid"); + result = WorldDatabase.Query("SELECT entry, pointid, location_x, location_y, location_z, waittime FROM script_waypoint ORDER BY pointid"); - if (Result) + if (!result) { - barGoLink bar(Result->GetRowCount()); - uint32 uiNodeCount = 0; + barGoLink bar(1); + bar.step(); + sLog.outString(">> Loaded 0 Script Waypoints. DB table `script_waypoint` is empty."); + sLog.outString(); + return; + } - do - { - bar.step(); - Field* pFields = Result->Fetch(); - ScriptPointMove pTemp; + barGoLink bar(result->GetRowCount()); + uint32 count = 0; - pTemp.uiCreatureEntry = pFields[0].GetUInt32(); - uint32 uiEntry = pTemp.uiCreatureEntry; - pTemp.uiPointId = pFields[1].GetUInt32(); - pTemp.fX = pFields[2].GetFloat(); - pTemp.fY = pFields[3].GetFloat(); - pTemp.fZ = pFields[4].GetFloat(); - pTemp.uiWaitTime = pFields[5].GetUInt32(); + do + { + bar.step(); + Field* pFields = result->Fetch(); + ScriptPointMove pTemp; - CreatureInfo const* pCInfo = GetCreatureTemplateStore(pTemp.uiCreatureEntry); + pTemp.uiCreatureEntry = pFields[0].GetUInt32(); + uint32 uiEntry = pTemp.uiCreatureEntry; + pTemp.uiPointId = pFields[1].GetUInt32(); + pTemp.fX = pFields[2].GetFloat(); + pTemp.fY = pFields[3].GetFloat(); + pTemp.fZ = pFields[4].GetFloat(); + pTemp.uiWaitTime = pFields[5].GetUInt32(); - if (!pCInfo) - { - sLog.outErrorDb("TSCR: DB table script_waypoint has waypoint for non-existant creature entry %u", pTemp.uiCreatureEntry); - continue; - } + CreatureInfo const* pCInfo = GetCreatureTemplateStore(pTemp.uiCreatureEntry); - if (!pCInfo->ScriptID) - sLog.outErrorDb("TSCR: DB table script_waypoint has waypoint for creature entry %u, but creature does not have ScriptName defined and then useless.", pTemp.uiCreatureEntry); + if (!pCInfo) + { + sLog.outErrorDb("TSCR: DB table script_waypoint has waypoint for non-existant creature entry %u", pTemp.uiCreatureEntry); + continue; + } - m_mPointMoveMap[uiEntry].push_back(pTemp); - ++uiNodeCount; - } while (Result->NextRow()); + if (!pCInfo->ScriptID) + sLog.outErrorDb("TSCR: DB table script_waypoint has waypoint for creature entry %u, but creature does not have ScriptName defined and then useless.", pTemp.uiCreatureEntry); - sLog.outString(); - sLog.outString(">> Loaded %u Script Waypoint nodes.", uiNodeCount); - } - else - { - barGoLink bar(1); - bar.step(); - sLog.outString(); - sLog.outString(">> Loaded 0 Script Waypoints. DB table `script_waypoint` is empty."); - } + m_mPointMoveMap[uiEntry].push_back(pTemp); + ++count; + } while (result->NextRow()); + + sLog.outString(">> Loaded %u Script Waypoint nodes in %u ms", count, GetMSTimeDiffToNow(oldMSTime)); + sLog.outString(); } |