aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/MiscHandler.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2021-11-12 21:53:40 +0100
committerShauren <shauren.trinity@gmail.com>2021-11-12 21:53:40 +0100
commit14b8d7d8393bb99ef66ec833bf89c3d6ce7683ab (patch)
tree4df4ff4db3bc8895488a20c92543d667e398afdb /src/server/game/Handlers/MiscHandler.cpp
parentc1915d386c192f75a164ba4157f874fbfbf663dc (diff)
Core/PacketIO: Implemented splash screen opcodes
Diffstat (limited to 'src/server/game/Handlers/MiscHandler.cpp')
-rw-r--r--src/server/game/Handlers/MiscHandler.cpp17
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());
+}