From 908776dd93a0c5f20439aff3104f5c07722f6656 Mon Sep 17 00:00:00 2001 From: megamage Date: Mon, 5 Jan 2009 16:03:45 -0600 Subject: *Some update of relocation notify. --HG-- branch : trunk --- src/game/World.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/game/World.cpp') diff --git a/src/game/World.cpp b/src/game/World.cpp index c5ed1800132..daa305c8f92 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -948,6 +948,7 @@ void World::LoadConfigSettings(bool reload) } if(m_MaxVisibleDistance < m_MaxVisibleDistanceInFlight) m_MaxVisibleDistance = m_MaxVisibleDistanceInFlight; + m_MaxVisibleDistance += 1.0f; ///- Read the "Data" directory from the config file std::string dataPath = sConfig.GetStringDefault("DataDir","./"); -- cgit v1.2.3 From 2df010e231c323587f586a1d43f44f7553796baa Mon Sep 17 00:00:00 2001 From: megamage Date: Mon, 5 Jan 2009 16:39:03 -0600 Subject: *Record more detailed difftime info. --HG-- branch : trunk --- src/game/World.cpp | 18 ++++++++++++++++++ src/game/World.h | 2 ++ 2 files changed, 20 insertions(+) (limited to 'src/game/World.cpp') diff --git a/src/game/World.cpp b/src/game/World.cpp index daa305c8f92..761a2383c00 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -1418,6 +1418,17 @@ void World::DetectDBCLang() sLog.outString("Using %s DBC Locale as default. All available DBC locales: %s",localeNames[m_defaultDbcLocale],availableLocalsStr.empty() ? "" : availableLocalsStr.c_str()); } +void World::RecordTimeDiff(const char *text) +{ + if(m_updateTimeCount != 1) + return; + sLog.outDebugInLine("Difftime "); + sLog.outDebugInLine(text); + time_t thisTime = time(NULL); + sLog.outDebug(": %u.", uint32(thisTime - m_currentTime)); + m_currentTime = thisTime; +} + /// Update the World ! void World::Update(time_t diff) { @@ -1429,6 +1440,7 @@ void World::Update(time_t diff) sLog.outString("Update time diff: %u. Players online: %u.", m_updateTimeSum / m_updateTimeCount, GetActiveSessionCount()); m_updateTimeSum = m_updateTime; m_updateTimeCount = 1; + m_currentTime = time(NULL); } else { @@ -1515,6 +1527,7 @@ void World::Update(time_t diff) } } } + RecordTimeDiff("UpdateAuction"); ///
  • Handle session updates when the timer has passed if (m_timers[WUPDATE_SESSIONS].Passed()) @@ -1523,6 +1536,7 @@ void World::Update(time_t diff) UpdateSessions(diff); } + RecordTimeDiff("UpdateSessions"); ///
  • Handle weather updates when the timer has passed if (m_timers[WUPDATE_WEATHERS].Passed()) @@ -1554,6 +1568,7 @@ void World::Update(time_t diff) m_timers[WUPDATE_UPTIME].Reset(); WorldDatabase.PExecute("UPDATE uptime SET uptime = %d, maxplayers = %d WHERE starttime = " I64FMTD, tmpDiff, maxClientsNum, uint64(m_startTime)); } + RecordTimeDiff("UpdateWeatherAndUptime"); ///
  • Handle all other objects if (m_timers[WUPDATE_OBJECTS].Passed()) @@ -1570,9 +1585,11 @@ void World::Update(time_t diff) sOutdoorPvPMgr.Update(diff); } + RecordTimeDiff("UpdateMaps"); // execute callbacks from sql queries that were queued recently UpdateResultQueue(); + RecordTimeDiff("UpdateResultQueue"); ///- Erase corpses once every 20 minutes if (m_timers[WUPDATE_CORPSES].Passed()) @@ -1600,6 +1617,7 @@ void World::Update(time_t diff) // And last, but not least handle the issued cli commands ProcessCliCommands(); + RecordTimeDiff("UpdateRemainingThings"); } void World::ForceGameEventUpdate() diff --git a/src/game/World.h b/src/game/World.h index aca311335df..6a224715cb4 100644 --- a/src/game/World.h +++ b/src/game/World.h @@ -538,6 +538,8 @@ class World uint32 mail_timer_expires; uint32 m_updateTime, m_updateTimeSum; uint32 m_updateTimeCount; + time_t m_currentTime; + void RecordTimeDiff(const char * text); typedef UNORDERED_MAP WeatherMap; WeatherMap m_weathers; -- cgit v1.2.3 From 8b78bea73d240e5fcf0b7e5508f0dfa9ce1ba4c4 Mon Sep 17 00:00:00 2001 From: TrullyONE Date: Tue, 6 Jan 2009 15:46:18 +0200 Subject: *Some small fixes in dbscript command 17 (SCRIPT_COMMAND_CALLSCRIPT_TO_UNIT). --HG-- branch : trunk --- src/game/World.cpp | 43 +++++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 18 deletions(-) (limited to 'src/game/World.cpp') 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(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; } -- cgit v1.2.3 From 290a187592d28cbfd9639ded43663077711f3379 Mon Sep 17 00:00:00 2001 From: megamage Date: Tue, 6 Jan 2009 11:22:38 -0600 Subject: *Record difftime as ms rather than s. --HG-- branch : trunk --- src/game/World.cpp | 6 +++--- src/game/World.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'src/game/World.cpp') diff --git a/src/game/World.cpp b/src/game/World.cpp index d632c0b6ad1..ee40587e1bf 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -1424,8 +1424,8 @@ void World::RecordTimeDiff(const char *text) return; sLog.outDebugInLine("Difftime "); sLog.outDebugInLine(text); - time_t thisTime = time(NULL); - sLog.outDebug(": %u.", uint32(thisTime - m_currentTime)); + uint32 thisTime = getMSTime(); + sLog.outDebug(": %u.", getMSTimeDiff(m_currentTime, thisTime)); m_currentTime = thisTime; } @@ -1440,7 +1440,7 @@ void World::Update(time_t diff) sLog.outString("Update time diff: %u. Players online: %u.", m_updateTimeSum / m_updateTimeCount, GetActiveSessionCount()); m_updateTimeSum = m_updateTime; m_updateTimeCount = 1; - m_currentTime = time(NULL); + m_currentTime = getMSTime(); } else { diff --git a/src/game/World.h b/src/game/World.h index 6a224715cb4..3bf979b7cac 100644 --- a/src/game/World.h +++ b/src/game/World.h @@ -538,7 +538,7 @@ class World uint32 mail_timer_expires; uint32 m_updateTime, m_updateTimeSum; uint32 m_updateTimeCount; - time_t m_currentTime; + uint32 m_currentTime; void RecordTimeDiff(const char * text); typedef UNORDERED_MAP WeatherMap; -- cgit v1.2.3