diff --git a/dGame/dGameMessages/PlayerMessages.cpp b/dGame/dGameMessages/PlayerMessages.cpp index fd9a2a5c2..464ff8b18 100644 --- a/dGame/dGameMessages/PlayerMessages.cpp +++ b/dGame/dGameMessages/PlayerMessages.cpp @@ -206,4 +206,12 @@ namespace GameMessages { VALIDATE_READ(BitStreamUtils::ReadOptional(bitStream, uiHandle, 0)); return true; } + + void Help::Serialize(RakNet::BitStream& bitStream) const { + bitStream.Write(helpId); + } + + bool Help::Deserialize(RakNet::BitStream& bitStream) { + return bitStream.Read(helpId); + } } diff --git a/dGame/dGameMessages/PlayerMessages.h b/dGame/dGameMessages/PlayerMessages.h index 168ed7039..af19e8ebd 100644 --- a/dGame/dGameMessages/PlayerMessages.h +++ b/dGame/dGameMessages/PlayerMessages.h @@ -3,6 +3,7 @@ #include "GameMessages.h" #include "eGameMasterLevel.h" +#include "eHelpType.h" #include "eLootSourceType.h" #include @@ -144,6 +145,17 @@ namespace GameMessages { std::string sBitStream{}; uint32_t uiHandle{ 0 }; // optional }; + + // Server -> client, to the player. Shows a one-time tutorial tooltip (LWOCharacterComponent::ShowHelp); the + // client skips it once the player flag with the same ID is set, and sets that flag itself. + // Serialize 0x00dc51e0 / Deserialize 0x00dc5220: a single int32. + struct Help : public NetGameMsg { + Help() : NetGameMsg(MessageType::Game::HELP) {} + void Serialize(RakNet::BitStream& bitStream) const override; + bool Deserialize(RakNet::BitStream& bitStream) override; + + eHelpType helpId{ eHelpType::NONE }; + }; } #endif // PLAYERMESSAGES_H