52 auto first = customizations.
begin();
53 auto last = customizations.
end();
54 for (
auto itr = first; itr != last; ++itr)
106 Guid = ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt64());
115 PreloadPos =
Position(fields[8].GetFloat(), fields[9].GetFloat(), fields[10].GetFloat());
118 GuildGUID = ObjectGuid::Create<HighGuid::Guild>(guildId);
127 playerFlags &= ~PLAYER_FLAGS_GHOST;
135 if (fields[18].GetUInt64())
167 std::vector<std::string_view> equipment =
Trinity::Tokenize(fields[17].GetStringView(),
' ',
false);
181 constexpr std::size_t equipmentFieldsPerSlot = 5;
183 for (std::size_t slot = 0; slot <
VisualItems.size() && (slot + 1) * equipmentFieldsPerSlot <= equipment.size(); ++slot)
185 std::size_t visualBase = slot * equipmentFieldsPerSlot;
186 VisualItems[slot].InvType = Trinity::StringTo<uint8>(equipment[visualBase + 0]).value_or(0);
187 VisualItems[slot].DisplayID = Trinity::StringTo<uint32>(equipment[visualBase + 1]).value_or(0);
188 VisualItems[slot].DisplayEnchantID = Trinity::StringTo<uint32>(equipment[visualBase + 2]).value_or(0);
189 VisualItems[slot].Subclass = Trinity::StringTo<uint8>(equipment[visualBase + 3]).value_or(0);
190 VisualItems[slot].SecondaryItemModifiedAppearanceID = Trinity::StringTo<int32>(equipment[visualBase + 4]).value_or(0);
209 data << charInfo.
Guid;
245 data << customization;
257 for (std::string
const& str : charInfo.
MailSenders)
262 for (std::string
const& str : charInfo.
MailSenders)
286 data <<
int32(unlockedConditionalAppearance.
Unused);
350 CreateInfo = std::make_shared<CharacterCreateInfo>();
390 RenameInfo = std::make_shared<CharacterRenameInfo>();
412 CustomizeInfo = std::make_shared<CharCustomizeInfo>();
426 RaceOrFactionChangeInfo = std::make_shared<CharRaceOrFactionChangeInfo>();
498 UndeleteInfo = std::make_shared<CharacterUndeleteInfo>();
@ AT_LOGIN_CHANGE_FACTION
@ CHAR_CUSTOMIZE_FLAG_RACE
@ CHAR_CUSTOMIZE_FLAG_FACTION
@ CHAR_CUSTOMIZE_FLAG_CUSTOMIZE
@ CHARACTER_FLAG_DECLINED
@ CHARACTER_FLAG_LOCKED_BY_BILLING
#define MAX_DECLINED_NAME_CASES
uint32 ReadBits(int32 bits)
void reserve(size_t ressize)
void WriteString(std::string const &str)
void resize(size_t newsize)
void WriteBits(std::size_t value, int32 bits)
std::string ReadString(uint32 length, bool requireValidUtf8=true)
Class used to access individual fields of database query result.
std::string GetString() const
int32 CustomizedChrModelID
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)
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
bool IsNewPlayerRestrictionSkipped
allows client to skip new player restrictions
std::vector< CharacterInfo > Characters
all characters on the list
std::vector< RaceUnlock > RaceUnlockData
bool IsNewPlayer
forbids hero classes and allied races
WorldPacket const * Write() override
Optional< uint32 > DisabledClassesMask
bool IsDeletedCharacters
used for character undelete list
bool IsNewPlayerRestricted
forbids using level boost and class trials
std::vector< RaceLimitDisableInfo > RaceLimitDisables
bool IsTrialAccountRestricted
std::vector< UnlockedConditionalAppearance > UnlockedConditionalAppearances
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
WorldPacket const * Write() override
float FarClip
Visibility distance (for terrain)
ObjectGuid Guid
Guid of the player that is logging in.
WorldPacket const * Write() override
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
@ CMSG_ENUM_CHARACTERS_DELETED_BY_CLIENT
@ CMSG_REORDER_CHARACTERS
@ SMSG_CHAR_CUSTOMIZE_SUCCESS
@ CONFIG_DECLINED_NAMES_USED
uint64 CreateClubMemberId(ObjectGuid guid)
TC_COMMON_API std::vector< std::string_view > Tokenize(std::string_view str, char sep, bool keepEmpty)
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)
std::string name[MAX_DECLINED_NAME_CASES]
uint32 ChrCustomizationChoiceID
uint32 ChrCustomizationOptionID
ObjectGuid CharacterGuid
User specified variables.
int32 SecondaryItemModifiedAppearanceID
std::array< VisualItemInfo, 35 > VisualItems
uint32 Flags2
Character customization flags.
std::vector< ChrCustomizationChoice > Customizations
CharacterInfo(Field *fields)
Initialize the struct with values from QueryResult.
TaggedPosition< Position::XYZ > PreloadPos
uint32 OverrideSelectScreenFileDataID
uint32 PetCreatureFamilyID
uint32 PetExperienceLevel
std::vector< uint32 > MailSenderTypes
uint64 GuildClubMemberID
same as bgs.protocol.club.v1.MemberId.unique_id, guessed basing on SMSG_QUERY_PLAYER_NAME_RESPONSE (t...
uint32 PetCreatureDisplayID
CustomTabardInfo PersonalTabard
uint32 Flags
Character flag.
bool RpeResetQuestClearAvailable
uint32 Flags3
Character flags 3.
std::vector< std::string > MailSenders
uint8 ListPosition
Order of the characters in list.
void rotate(float x0, float y0, float *x, float *y, float angle)