diff options
| author | ModoX <moardox@gmail.com> | 2025-01-30 20:20:30 +0100 |
|---|---|---|
| committer | ModoX <moardox@gmail.com> | 2025-01-30 20:21:33 +0100 |
| commit | e58fa4c35eaf24cfa4866b8ca24a61d45a3382d2 (patch) | |
| tree | 9d459985b555932b9652e763f169406210af6aae /src/server/game/Entities | |
| parent | 444a98111a8d08a985d9489b06f0e1487c04cab6 (diff) | |
Core/Auras: Send scene complete if a SPELL_AURA_PLAY_SCENE aura is removed by expiration
Diffstat (limited to 'src/server/game/Entities')
| -rw-r--r-- | src/server/game/Entities/Player/SceneMgr.cpp | 10 | ||||
| -rw-r--r-- | src/server/game/Entities/Player/SceneMgr.h | 1 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/server/game/Entities/Player/SceneMgr.cpp b/src/server/game/Entities/Player/SceneMgr.cpp index 9276b4f3956..357ca2483dd 100644 --- a/src/server/game/Entities/Player/SceneMgr.cpp +++ b/src/server/game/Entities/Player/SceneMgr.cpp @@ -238,6 +238,16 @@ uint32 SceneMgr::GetActiveSceneCount(uint32 sceneScriptPackageId /*= 0*/) const return activeSceneCount; } +Optional<uint32> SceneMgr::GetInstanceIdBySceneId(uint32 sceneId) const +{ + for (auto const& itr : _scenesByInstance) + { + if (itr.second->SceneId == sceneId) + return itr.first; + } + return std::nullopt; +} + void SceneMgr::TriggerDelayedScenes() { for (WorldPacket& playScene : _delayedScenes) diff --git a/src/server/game/Entities/Player/SceneMgr.h b/src/server/game/Entities/Player/SceneMgr.h index 34366459ef8..38988fef5ed 100644 --- a/src/server/game/Entities/Player/SceneMgr.h +++ b/src/server/game/Entities/Player/SceneMgr.h @@ -68,6 +68,7 @@ public: SceneTemplate const* GetSceneTemplateFromInstanceId(uint32 sceneInstanceID) const; uint32 GetActiveSceneCount(uint32 sceneScriptPackageId = 0) const; SceneTemplateByInstance const& GetSceneTemplateByInstanceMap() const { return _scenesByInstance; } + Optional<uint32> GetInstanceIdBySceneId(uint32 sceneId) const; uint32 GetNewStandaloneSceneInstanceID() { return ++_standaloneSceneInstanceID; } |
