aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Server/Packets
diff options
context:
space:
mode:
authorIntel <chemicstry@gmail.com>2014-11-15 17:13:41 +0200
committerIntel <chemicstry@gmail.com>2014-11-15 17:40:04 +0200
commitcd9be923955c57a0ec5054897ac377a964f502ca (patch)
treee9802959ec45416d897f5069ba850e7399173289 /src/server/game/Server/Packets
parent96fa1eb5ecb6667b4150b1d9bffa7efed79fedd8 (diff)
Core/Packets: Added CMSG_PAGE_TEXT_QUERY and SMSG_PAGE_TEXT_QUERY_RESPONSE
Moved QueryPlayerName to QueryPackets
Diffstat (limited to 'src/server/game/Server/Packets')
-rw-r--r--src/server/game/Server/Packets/CharacterPackets.cpp43
-rw-r--r--src/server/game/Server/Packets/CharacterPackets.h44
-rw-r--r--src/server/game/Server/Packets/QueryPackets.cpp65
-rw-r--r--src/server/game/Server/Packets/QueryPackets.h76
4 files changed, 140 insertions, 88 deletions
diff --git a/src/server/game/Server/Packets/CharacterPackets.cpp b/src/server/game/Server/Packets/CharacterPackets.cpp
index 9876da54ae3..8fae98cf8f2 100644
--- a/src/server/game/Server/Packets/CharacterPackets.cpp
+++ b/src/server/game/Server/Packets/CharacterPackets.cpp
@@ -395,46 +395,3 @@ void WorldPackets::Character::LoadingScreenNotify::Read()
_worldPacket >> MapID;
Showing = _worldPacket.ReadBit();
}
-
-void WorldPackets::Character::QueryPlayerName::Read()
-{
- _worldPacket >> Player;
-
- Hint.VirtualRealmAddress.HasValue = _worldPacket.ReadBit();
- Hint.NativeRealmAddress.HasValue = _worldPacket.ReadBit();
-
- if (Hint.VirtualRealmAddress.HasValue)
- _worldPacket >> Hint.VirtualRealmAddress.value;
-
- if (Hint.NativeRealmAddress.HasValue)
- _worldPacket >> Hint.NativeRealmAddress.value;
-}
-
-WorldPacket const* WorldPackets::Character::PlayerNameResponse::Write()
-{
- _worldPacket << Result;
- _worldPacket << Player;
-
- if (Result == 0)
- {
- _worldPacket.WriteBits(Data.Name.length(), 7);
-
- for (int i = 0; i < MAX_DECLINED_NAME_CASES; ++i)
- _worldPacket.WriteBits(Data.DeclinedNames.name[i].length(), 7);
-
- for (int i = 0; i < MAX_DECLINED_NAME_CASES; ++i)
- _worldPacket.WriteString(Data.DeclinedNames.name[i]);
-
- _worldPacket << Data.AccountID;
- _worldPacket << Data.BnetAccountID;
- _worldPacket << Data.GuidActual;
- _worldPacket << Data.VirtualRealmAddress;
- _worldPacket << Data.Race;
- _worldPacket << Data.Sex;
- _worldPacket << Data.ClassID;
- _worldPacket << Data.Level;
- _worldPacket.WriteString(Data.Name);
- }
-
- return &_worldPacket;
-}
diff --git a/src/server/game/Server/Packets/CharacterPackets.h b/src/server/game/Server/Packets/CharacterPackets.h
index 8ffd3622539..386c407b10f 100644
--- a/src/server/game/Server/Packets/CharacterPackets.h
+++ b/src/server/game/Server/Packets/CharacterPackets.h
@@ -473,50 +473,6 @@ namespace WorldPackets
int32 MapID = -1;
bool Showing = false;
};
-
- struct PlayerGuidLookupHint
- {
- Optional<uint32> VirtualRealmAddress; ///< current realm (?) (identifier made from the Index, BattleGroup and Region)
- Optional<uint32> NativeRealmAddress; ///< original realm (?) (identifier made from the Index, BattleGroup and Region)
- };
-
- struct PlayerGuidLookupData
- {
- bool IsDeleted = false;
- ObjectGuid AccountID;
- ObjectGuid BnetAccountID;
- ObjectGuid GuidActual;
- std::string Name;
- uint32 VirtualRealmAddress = 0;
- uint8 Race = RACE_NONE;
- uint8 Sex = GENDER_NONE;
- uint8 ClassID = CLASS_NONE;
- uint8 Level = 0;
- DeclinedName DeclinedNames;
- };
-
- class QueryPlayerName final : public ClientPacket
- {
- public:
- QueryPlayerName(WorldPacket&& packet) : ClientPacket(CMSG_NAME_QUERY, std::move(packet)) { }
-
- void Read() override;
-
- ObjectGuid Player;
- PlayerGuidLookupHint Hint;
- };
-
- class PlayerNameResponse final : public ServerPacket
- {
- public:
- PlayerNameResponse() : ServerPacket(SMSG_NAME_QUERY_RESPONSE, 60) { }
-
- WorldPacket const* Write() override;
-
- ObjectGuid Player;
- uint8 Result = 0; // 0 - full packet, != 0 - only guid
- PlayerGuidLookupData Data;
- };
}
}
diff --git a/src/server/game/Server/Packets/QueryPackets.cpp b/src/server/game/Server/Packets/QueryPackets.cpp
index 3076c221c71..eec966e2cfb 100644
--- a/src/server/game/Server/Packets/QueryPackets.cpp
+++ b/src/server/game/Server/Packets/QueryPackets.cpp
@@ -88,3 +88,68 @@ WorldPacket const* WorldPackets::Query::QueryCreatureResponse::Write()
return &_worldPacket;
}
+
+void WorldPackets::Query::QueryPlayerName::Read()
+{
+ _worldPacket >> Player;
+
+ Hint.VirtualRealmAddress.HasValue = _worldPacket.ReadBit();
+ Hint.NativeRealmAddress.HasValue = _worldPacket.ReadBit();
+
+ if (Hint.VirtualRealmAddress.HasValue)
+ _worldPacket >> Hint.VirtualRealmAddress.value;
+
+ if (Hint.NativeRealmAddress.HasValue)
+ _worldPacket >> Hint.NativeRealmAddress.value;
+}
+
+WorldPacket const* WorldPackets::Query::QueryPlayerNameResponse::Write()
+{
+ _worldPacket << Result;
+ _worldPacket << Player;
+
+ if (Result == 0)
+ {
+ _worldPacket.WriteBits(Data.Name.length(), 7);
+
+ for (int i = 0; i < MAX_DECLINED_NAME_CASES; ++i)
+ _worldPacket.WriteBits(Data.DeclinedNames.name[i].length(), 7);
+
+ for (int i = 0; i < MAX_DECLINED_NAME_CASES; ++i)
+ _worldPacket.WriteString(Data.DeclinedNames.name[i]);
+
+ _worldPacket << Data.AccountID;
+ _worldPacket << Data.BnetAccountID;
+ _worldPacket << Data.GuidActual;
+ _worldPacket << Data.VirtualRealmAddress;
+ _worldPacket << Data.Race;
+ _worldPacket << Data.Sex;
+ _worldPacket << Data.ClassID;
+ _worldPacket << Data.Level;
+ _worldPacket.WriteString(Data.Name);
+ }
+
+ return &_worldPacket;
+}
+
+void WorldPackets::Query::QueryPageText::Read()
+{
+ _worldPacket >> PageTextID;
+ _worldPacket >> ItemGUID;
+}
+
+WorldPacket const* WorldPackets::Query::QueryPageTextResponse::Write()
+{
+ _worldPacket << PageTextID;
+ _worldPacket.WriteBit(Allow);
+
+ if (Allow)
+ {
+ _worldPacket << Info.ID;
+ _worldPacket << Info.NextPageID;
+ _worldPacket.WriteBits(Info.Text.length(), 12);
+ _worldPacket.WriteString(Info.Text);
+ }
+
+ return &_worldPacket;
+}
diff --git a/src/server/game/Server/Packets/QueryPackets.h b/src/server/game/Server/Packets/QueryPackets.h
index 49bb5847400..b7c57e94747 100644
--- a/src/server/game/Server/Packets/QueryPackets.h
+++ b/src/server/game/Server/Packets/QueryPackets.h
@@ -59,7 +59,7 @@ namespace WorldPackets
class QueryCreatureResponse final : public ServerPacket
{
public:
- QueryCreatureResponse() : ServerPacket(SMSG_CREATURE_QUERY_RESPONSE, 2+4+4+4+12) { }
+ QueryCreatureResponse() : ServerPacket(SMSG_CREATURE_QUERY_RESPONSE, 76) { }
WorldPacket const* Write() override;
@@ -67,6 +67,80 @@ namespace WorldPackets
CreatureStats Stats;
uint32 CreatureID = 0;
};
+
+ struct PlayerGuidLookupHint
+ {
+ Optional<uint32> VirtualRealmAddress; ///< current realm (?) (identifier made from the Index, BattleGroup and Region)
+ Optional<uint32> NativeRealmAddress; ///< original realm (?) (identifier made from the Index, BattleGroup and Region)
+ };
+
+ class QueryPlayerName final : public ClientPacket
+ {
+ public:
+ QueryPlayerName(WorldPacket&& packet) : ClientPacket(CMSG_NAME_QUERY, std::move(packet)) { }
+
+ void Read() override;
+
+ ObjectGuid Player;
+ PlayerGuidLookupHint Hint;
+ };
+
+ struct PlayerGuidLookupData
+ {
+ bool IsDeleted = false;
+ ObjectGuid AccountID;
+ ObjectGuid BnetAccountID;
+ ObjectGuid GuidActual;
+ std::string Name;
+ uint32 VirtualRealmAddress = 0;
+ uint8 Race = RACE_NONE;
+ uint8 Sex = GENDER_NONE;
+ uint8 ClassID = CLASS_NONE;
+ uint8 Level = 0;
+ DeclinedName DeclinedNames;
+ };
+
+ class QueryPlayerNameResponse final : public ServerPacket
+ {
+ public:
+ QueryPlayerNameResponse() : ServerPacket(SMSG_NAME_QUERY_RESPONSE, 60) { }
+
+ WorldPacket const* Write() override;
+
+ ObjectGuid Player;
+ uint8 Result = 0; // 0 - full packet, != 0 - only guid
+ PlayerGuidLookupData Data;
+ };
+
+ class QueryPageText final : public ClientPacket
+ {
+ public:
+ QueryPageText(WorldPacket&& packet) : ClientPacket(CMSG_PAGE_TEXT_QUERY, std::move(packet)) { }
+
+ void Read() override;
+
+ ObjectGuid ItemGUID;
+ uint32 PageTextID = 0;
+ };
+
+ struct PageTextInfo
+ {
+ uint32 ID = 0;
+ uint32 NextPageID = 0;
+ std::string Text;
+ };
+
+ class QueryPageTextResponse final : public ServerPacket
+ {
+ public:
+ QueryPageTextResponse() : ServerPacket(SMSG_PAGE_TEXT_QUERY_RESPONSE, 15) { }
+
+ WorldPacket const* Write() override;
+
+ bool Allow = false;
+ PageTextInfo Info;
+ uint32 PageTextID = 0;
+ };
}
}