aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Maps/Map.cpp
diff options
context:
space:
mode:
authorccrs <ccrs@users.noreply.github.com>2019-06-29 19:24:05 +0200
committerShauren <shauren.trinity@gmail.com>2021-12-13 00:42:18 +0100
commit6a63200e40d286dd49cc90135a519b0680a6f435 (patch)
tree37bb28dad9cdad7fabdafd955418066a201a4f12 /src/server/game/Maps/Map.cpp
parentfc6dc06513da4449fade9655da5d0db942fb132e (diff)
Core/Instance: add new hook & method
(cherry picked from commit 953b05459a517fb83f18047ab82ac09021bc9440)
Diffstat (limited to 'src/server/game/Maps/Map.cpp')
-rw-r--r--src/server/game/Maps/Map.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp
index 8b72da34de0..f0504dc4252 100644
--- a/src/server/game/Maps/Map.cpp
+++ b/src/server/game/Maps/Map.cpp
@@ -4058,12 +4058,19 @@ 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);
+
if (i_scenario)
i_scenario->OnPlayerExit(player);
+
Map::RemovePlayerFromMap(player, remove);
+
// for normal instances schedule the reset after all players have left
SetResetSchedule(true);
sInstanceSaveMgr->UnloadInstanceSave(GetInstanceId());