diff options
| author | Shocker <shocker@freakz.ro> | 2011-06-28 23:19:54 +0300 |
|---|---|---|
| committer | Shocker <shocker@freakz.ro> | 2011-06-28 23:19:54 +0300 |
| commit | 9e58c6e7533787fc0a5f6431855ab379b8c8b92a (patch) | |
| tree | 1b80339a8030f5e0c1ccb3089ef5d017ee0e906a /src | |
| parent | 6a59d7ddc198627cda4e0c41c883b74b30d73378 (diff) | |
Core/Maps: Allow multi-threaded updates for all instances of a map, should increase performance
Diffstat (limited to 'src')
| -rwxr-xr-x | src/server/game/Maps/MapInstanced.cpp | 5 | ||||
| -rwxr-xr-x | src/server/game/Maps/MapManager.h | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/src/server/game/Maps/MapInstanced.cpp b/src/server/game/Maps/MapInstanced.cpp index d3b6ad438bc..d5e363685e0 100755 --- a/src/server/game/Maps/MapInstanced.cpp +++ b/src/server/game/Maps/MapInstanced.cpp @@ -64,7 +64,10 @@ void MapInstanced::Update(const uint32& t) else { // update only here, because it may schedule some bad things before delete - i->second->Update(t); + if (sMapMgr->GetMapUpdater()->activated()) + sMapMgr->GetMapUpdater()->schedule_update(*i->second, t); + else + i->second->Update(t); ++i; } } diff --git a/src/server/game/Maps/MapManager.h b/src/server/game/Maps/MapManager.h index 8ca856cbd6f..068dbe33ae3 100755 --- a/src/server/game/Maps/MapManager.h +++ b/src/server/game/Maps/MapManager.h @@ -148,6 +148,8 @@ class MapManager uint32 GetNextInstanceId() { return _nextInstanceId; }; void SetNextInstanceId(uint32 nextInstanceId) { _nextInstanceId = nextInstanceId; }; + MapUpdater * GetMapUpdater() { return &m_updater; } + private: // debugging code, should be deleted some day void checkAndCorrectGridStatesArray(); // just for debugging to find some memory overwrites |
