diff options
author | ccrs <ccrs@users.noreply.github.com> | 2019-06-29 19:24:05 +0200 |
---|---|---|
committer | ccrs <ccrs@users.noreply.github.com> | 2019-06-29 19:24:05 +0200 |
commit | 953b05459a517fb83f18047ab82ac09021bc9440 (patch) | |
tree | f8f988e1eea80c2aa1fa6fc69d7539dd0c2b7f82 /src/server/game/Maps/Map.cpp | |
parent | 303811399f289184a5080207007ea1c906f6a4ba (diff) |
Core/Instance: add new hook & method
Diffstat (limited to 'src/server/game/Maps/Map.cpp')
-rw-r--r-- | src/server/game/Maps/Map.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index 2cefeb63532..d3abfa05a9b 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -3860,10 +3860,16 @@ void InstanceMap::Update(uint32 t_diff) void InstanceMap::RemovePlayerFromMap(Player* player, bool remove) { TC_LOG_DEBUG("maps", "MAP: Removing player '%s' from instance '%u' of map '%s' before relocating to another map", player->GetName().c_str(), GetInstanceId(), GetMapName()); - //if last player set unload timer + + if (i_data) + i_data->OnPlayerLeave(player); + + // if last player set unload timer if (!m_unloadTimer && m_mapRefManager.getSize() == 1) m_unloadTimer = m_unloadWhenEmpty ? MIN_UNLOAD_DELAY : std::max(sWorld->getIntConfig(CONFIG_INSTANCE_UNLOAD_DELAY), (uint32)MIN_UNLOAD_DELAY); + Map::RemovePlayerFromMap(player, remove); + // for normal instances schedule the reset after all players have left SetResetSchedule(true); sInstanceSaveMgr->UnloadInstanceSave(GetInstanceId()); |