96 Guid = ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt64());
106 PreloadPos =
Position(fields[8].GetFloat(), fields[9].GetFloat(), fields[10].GetFloat());
109 GuildGUID = ObjectGuid::Create<HighGuid::Guild>(guildId);
121 playerFlags &= ~PLAYER_FLAGS_GHOST;
129 if (fields[17].GetUInt64())
187 for (std::size_t slot = 0; slot <
VisualItems.size(); ++slot)
189 constexpr std::size_t equipmentFieldsPerSlot = 8;
191 std::size_t visualBase = 28 + slot * equipmentFieldsPerSlot;
219 data << charInfo.
Guid;
260 data << customization;
262 data << SizedString::BitsSize<6>(charInfo.
Name);
283 data << Size<uint32>(restrictionsAndMails.
MailSenders);
290 for (std::string
const& str : restrictionsAndMails.
MailSenders)
291 data << SizedCString::BitsSize<6>(str);
295 for (std::string
const& str : restrictionsAndMails.
MailSenders)
303 data << charInfo.
Basic;
311 data << charInfo.
Basic;
375 if (warbandGroupMember.
Type == 0)
376 data << warbandGroupMember.
Guid;
388 data << Size<uint32>(warbandGroup.
Members);
393 data << SizedString::BitsSize<9>(warbandGroup.
Name);
413 _worldPacket << Bits<1>(
Success);
473 CreateInfo = std::make_shared<CharacterCreateInfo>();
475 _worldPacket >> SizedString::BitsSize<6>(CreateInfo->Name);
483 _worldPacket >> Size<uint32>(CreateInfo->Customizations);
486 if (CreateInfo->TemplateSet)
517 RenameInfo = std::make_shared<CharacterRenameInfo>();
520 _worldPacket >> SizedString::BitsSize<6>(RenameInfo->NewName);
529 _worldPacket << SizedString::BitsSize<6>(
Name);
542 CustomizeInfo = std::make_shared<CharCustomizeInfo>();
546 _worldPacket >> Size<uint32>(CustomizeInfo->Customizations);
550 _worldPacket >> SizedString::BitsSize<6>(CustomizeInfo->CharName);
572 _worldPacket << SizedString::BitsSize<6>(
CharName);
615 _worldPacket << SizedString::BitsSize<6>(
Display->Name);
618 _worldPacket << Size<uint32>(*
Display->Customizations);
635 _worldPacket << Bits<1>(
Success);
636 _worldPacket << SizedString::BitsSize<6>(
Name);
660 UndeleteInfo = std::make_shared<CharacterUndeleteInfo>();
718 _worldPacket << Bits<1>(
Instant);
727 data << gameModeData.
Guid;
737 data << customization;
740 data << customization;
748 data << switchGameModeData.
Current;
749 data << switchGameModeData.
New;
@ SMSG_CHAR_CUSTOMIZE_SUCCESS
@ CMSG_ENUM_CHARACTERS_DELETED_BY_CLIENT
@ CMSG_REORDER_CHARACTERS
@ PLAYER_FLAGS_AUTO_DECLINE_GUILD
@ PLAYER_FLAGS_HIDE_ACCOUNT_ACHIEVEMENTS
@ PLAYER_FLAGS_NO_XP_GAIN
@ PLAYER_FLAGS_WAR_MODE_DESIRED
@ PLAYER_FLAGS_LOW_LEVEL_RAID_ENABLED
@ AT_LOGIN_CHANGE_FACTION
@ CHARACTER_FLAG_2_LOW_LEVEL_RAID_ENABLED
@ CHARACTER_FLAG_2_AUTO_DECLINE_GUILD
@ CHARACTER_FLAG_2_FACTION_CHANGE
@ CHARACTER_FLAG_2_RACE_CHANGE
@ CHARACTER_FLAG_2_CUSTOMIZE
@ CHARACTER_FLAG_2_NO_XP_GAIN
@ CHARACTER_FLAG_DECLINED
@ CHARACTER_FLAG_RESET_TALENTS_ON_LOGIN
@ CHARACTER_FLAG_LOCKED_BY_BILLING
@ CHARACTER_FLAG_3_HIDE_ACCOUNT_ACHIEVEMENTS
@ CHARACTER_FLAG_3_WAR_MODE_DESIRED
#define MAX_DECLINED_NAME_CASES
void reserve(size_t ressize)
Class used to access individual fields of database query result.
uint32 GetUInt32() const noexcept
uint16 GetUInt16() const noexcept
std::string_view GetStringView() const noexcept
uint8 GetUInt8() const noexcept
int32 GetInt32() const noexcept
int64 GetInt64() const noexcept
int32 CustomizedChrModelID
int8 UnalteredVisualRaceID
Array< ChrCustomizationChoice, 250 > Customizations
WorldPacket const * Write() override
WorldPacket const * Write() override
Array< ChrCustomizationChoice, 250 > const & Customizations
WorldPacket const * Write() override
CharCustomizeSuccess(CharCustomizeInfo const *customizeInfo)
Optional< CharFactionChangeDisplayInfo > Display
WorldPacket const * Write() override
std::shared_ptr< CharRaceOrFactionChangeInfo > RaceOrFactionChangeInfo
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
std::vector< CharacterInfo > Characters
all characters on the list
bool IgnoreNewPlayerRestrictions
allows client to skip new player restrictions
bool IsAccountLapsedPlayer
std::vector< RaceUnlock > RaceUnlockData
WorldPacket const * Write() override
bool ForceCharacterListSort
std::vector< RegionwideCharacterListEntry > RegionwideCharacters
bool IsDeletedCharacters
used for character undelete list
std::vector< RaceLimitDisableInfo > RaceLimitDisables
Optional< uint32 > ClassDisableMask
bool IsNewcomerChatCompleted
forbids hero classes and allied races
std::vector< WarbandGroup > WarbandGroups
std::vector< UnlockedConditionalAppearance > UnlockedConditionalAppearances
bool IsRestrictedNewPlayer
forbids using level boost and class trials
EnumCharacters(WorldPacket &&packet)
WorldPacket const * Write() override
uint8 ServerExpansionLevel
uint8 ServerExpansionTier
WorldPacket const * Write() override
WorldPacket const * Write() override
TaggedPosition< Position::XYZO > Pos
WorldPacket const * Write() override
WorldPacket const * Write() override
std::unique_ptr< SwitchGameModeData > SwitchGameMode
WorldPacket const * Write() override
WorldPacket const * Write() override
float FarClip
Visibility distance (for terrain)
ObjectGuid Guid
Guid of the player that is logging in.
WorldPacket const * Write() override
Array< ReorderInfo, 200 > Entries
ReorderCharacters(WorldPacket &&packet)
CustomTabardInfo PersonalTabard
WorldPacket const * Write() override
WorldPacket const * Write() override
DeclinedName DeclinedNames
WorldPacket const * Write() override
CharacterUndeleteInfo const * UndeleteInfo
WorldPacket const * Write() override
std::shared_ptr< CharacterUndeleteInfo > UndeleteInfo
WorldPacket const * Write() override
uint32 CurrentCooldown
Current cooldown until next free character restoration. (in sec)
uint32 MaxCooldown
Max. cooldown until next free character restoration. Displayed in undelete confirm message....
OpcodeClient GetOpcode() const
uint32 GetVirtualRealmAddress()
@ CONFIG_DECLINED_NAMES_USED
uint64 CreateClubMemberId(ObjectGuid guid)
ByteBuffer & operator>>(ByteBuffer &data, ChrCustomizationChoice &customizationChoice)
ByteBuffer & operator<<(ByteBuffer &data, ChrCustomizationChoice const &customizationChoice)
ByteBuffer & operator<<(ByteBuffer &data, CustomTabardInfo const &customTabardInfo)
void SortCustomizations(Array< ChrCustomizationChoice, 250 > &customizations)
ByteBuffer & operator>>(ByteBuffer &data, CustomTabardInfo &customTabardInfo)
DataWriter< Container > Data(Container const &value)
DataWriter< Container > Data(Container const &value)
OptionalInitWriter< T > OptionalInit(Optional< T > const &value)
std::string name[MAX_DECLINED_NAME_CASES]
uint32 ChrCustomizationChoiceID
uint32 ChrCustomizationOptionID
ObjectGuid CharacterGuid
User specified variables.
uint32 TransmogrifiedItemID
int32 SecondaryItemModifiedAppearanceID
CustomTabardInfo PersonalTabard
uint16 ListPosition
Order of the characters in list.
uint32 Flags
Character flag.
uint32 PetExperienceLevel
uint32 OverrideSelectScreenFileDataID
uint32 PetCreatureFamilyID
int32 TimerunningSeasonID
uint32 Flags3
Character flags 3.
uint32 Flags4
Character flags 4.
uint64 GuildClubMemberID
same as bgs.protocol.club.v1.MemberId.unique_id, guessed basing on SMSG_QUERY_PLAYER_NAME_RESPONSE (t...
std::vector< ChrCustomizationChoice > Customizations
uint32 Flags2
Character customization flags.
std::array< VisualItemInfo, 19 > VisualItems
TaggedPosition< Position::XYZ > PreloadPos
CharacterInfoBasic(Field const *fields)
uint32 VirtualRealmAddress
uint32 PetCreatureDisplayID
CharacterRestrictionAndMailData RestrictionsAndMails
CharacterInfo(Field const *fields)
std::vector< uint32 > MailSenderTypes
std::vector< std::string > MailSenders
bool HasUnlockedAchievement
bool DoesNotHaveAvailableClasses
bool HasUnlockedAchievement
std::vector< ClassUnlock > ClassUnlocks
bool HasHeritageArmorUnlockAchievement
bool FactionBalanceDisabled
float CurrentSeasonMythicPlusOverallScore
uint32 CurrentSeasonBestPvpRating
RegionwideCharacterListEntry(Field const *fields)
int16 PvpRatingAssociatedSpecID
float AvgEquippedItemLevel
Array< ChrCustomizationChoice, 250 > Customizations
Array< ChrCustomizationChoice, 250 > Unknown_1107_4
uint32 WarbandScenePlacementID
std::vector< WarbandGroupMember > Members
uint32 Flags
enum WarbandGroupFlags { Collapsed = 1 }