diff options
author | Shauren <shauren.trinity@gmail.com> | 2021-11-12 21:53:40 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2021-11-12 21:53:40 +0100 |
commit | 14b8d7d8393bb99ef66ec833bf89c3d6ce7683ab (patch) | |
tree | 4df4ff4db3bc8895488a20c92543d667e398afdb /src/server/game/Handlers/MiscHandler.cpp | |
parent | c1915d386c192f75a164ba4157f874fbfbf663dc (diff) |
Core/PacketIO: Implemented splash screen opcodes
Diffstat (limited to 'src/server/game/Handlers/MiscHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/MiscHandler.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp index bad9721eb72..9c49cfa17bf 100644 --- a/src/server/game/Handlers/MiscHandler.cpp +++ b/src/server/game/Handlers/MiscHandler.cpp @@ -1171,3 +1171,20 @@ void WorldSession::HandleConversationLineStarted(WorldPackets::Misc::Conversatio if (Conversation* convo = ObjectAccessor::GetConversation(*_player, conversationLineStarted.ConversationGUID)) sScriptMgr->OnConversationLineStarted(convo, conversationLineStarted.LineID, _player); } + +void WorldSession::HandleRequestLatestSplashScreen(WorldPackets::Misc::RequestLatestSplashScreen& /*requestLatestSplashScreen*/) +{ + UISplashScreenEntry const* splashScreen = nullptr; + for (auto itr = sUISplashScreenStore.begin(); itr != sUISplashScreenStore.end(); ++itr) + { + if (PlayerConditionEntry const* playerCondition = sPlayerConditionStore.LookupEntry(itr->CharLevelConditionID)) + if (!ConditionMgr::IsPlayerMeetingCondition(_player, playerCondition)) + continue; + + splashScreen = *itr; + } + + WorldPackets::Misc::SplashScreenShowLatest splashScreenShowLatest; + splashScreenShowLatest.UISplashScreenID = splashScreen ? splashScreen->ID : 0; + SendPacket(splashScreenShowLatest.Write()); +} |