Skip to content

Commit 672579d

Browse files
ShaurenOvahlord
authored andcommitted
Core/Players: Define all character flags used in SMSG_ENUM_CHARACTERS_RESULT
1 parent 857f79b commit 672579d

File tree

4 files changed

+94
-52
lines changed

4 files changed

+94
-52
lines changed

src/server/game/Entities/Player/Player.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -408,7 +408,7 @@ enum PlayerFlags
408408
PLAYER_FLAGS_GM = 0x00000008,
409409
PLAYER_FLAGS_GHOST = 0x00000010,
410410
PLAYER_FLAGS_RESTING = 0x00000020,
411-
PLAYER_FLAGS_UNK6 = 0x00000040,
411+
PLAYER_FLAGS_VOICE_CHAT = 0x00000040,
412412
PLAYER_FLAGS_UNK7 = 0x00000080, // pre-3.0.3 PLAYER_FLAGS_FFA_PVP flag for FFA PVP state
413413
PLAYER_FLAGS_CONTESTED_PVP = 0x00000100, // Player has been involved in a PvP combat and will be attacked by contested guards
414414
PLAYER_FLAGS_IN_PVP = 0x00000200,
@@ -418,7 +418,7 @@ enum PlayerFlags
418418
PLAYER_FLAGS_PLAYED_TOO_LONG = 0x00002000, // played too long time
419419
PLAYER_FLAGS_IS_OUT_OF_BOUNDS = 0x00004000,
420420
PLAYER_FLAGS_DEVELOPER = 0x00008000, // <Dev> prefix for something?
421-
PLAYER_FLAGS_UNK16 = 0x00010000, // pre-3.0.3 PLAYER_FLAGS_SANCTUARY flag for player entered sanctuary
421+
PLAYER_FLAGS_LOW_LEVEL_RAID_ENABLED = 0x00010000, // pre-3.0.3 PLAYER_FLAGS_SANCTUARY flag for player entered sanctuary
422422
PLAYER_FLAGS_TAXI_BENCHMARK = 0x00020000, // taxi benchmark mode (on/off) (2.0.1)
423423
PLAYER_FLAGS_PVP_TIMER = 0x00040000, // 3.0.2, pvp timer active (after you disable pvp manually)
424424
PLAYER_FLAGS_UBER = 0x00080000,
@@ -432,8 +432,8 @@ enum PlayerFlags
432432
PLAYER_FLAGS_AUTO_DECLINE_GUILD = 0x08000000, // Automatically declines guild invites
433433
PLAYER_FLAGS_GUILD_LEVEL_ENABLED = 0x10000000, // Lua_GetGuildLevelEnabled() - enables guild leveling related UI
434434
PLAYER_FLAGS_VOID_UNLOCKED = 0x20000000, // void storage
435-
PLAYER_FLAGS_UNK30 = 0x40000000,
436-
PLAYER_FLAGS_UNK31 = 0x80000000
435+
PLAYER_FLAGS_TIMEWALKING = 0x40000000,
436+
PLAYER_FLAGS_COMMENTATOR_CAMERA = 0x80000000
437437
};
438438

439439
enum PlayerBytesOffsets

src/server/game/Handlers/CharacterHandler.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -269,13 +269,13 @@ void WorldSession::HandleCharEnum(PreparedQueryResult result)
269269
charInfo.HairColor = 0;
270270
charInfo.FacialHair = 0;
271271

272-
if (!(charInfo.Flags2 == CHAR_CUSTOMIZE_FLAG_CUSTOMIZE))
272+
if (!(charInfo.Flags2 == CHARACTER_FLAG_2_CUSTOMIZE))
273273
{
274274
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ADD_AT_LOGIN_FLAG);
275275
stmt->setUInt16(0, uint16(AT_LOGIN_CUSTOMIZE));
276276
stmt->setUInt32(1, charInfo.Guid.GetCounter());
277277
CharacterDatabase.Execute(stmt);
278-
charInfo.Flags2 = CHAR_CUSTOMIZE_FLAG_CUSTOMIZE;
278+
charInfo.Flags2 = CHARACTER_FLAG_2_CUSTOMIZE;
279279
}
280280
}
281281

src/server/game/Server/Packets/CharacterPackets.cpp

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,12 @@ WorldPackets::Character::EnumCharactersResult::CharacterInfo::CharacterInfo(Fiel
5656
uint32 playerFlags = fields[17].GetUInt32();
5757
uint32 atLoginFlags = fields[18].GetUInt16();
5858

59+
if (playerFlags & PLAYER_FLAGS_RESTING)
60+
Flags |= CHARACTER_FLAG_RESTING;
61+
62+
if (atLoginFlags & AT_LOGIN_RESET_TALENTS)
63+
Flags |= CHARACTER_FLAG_RESET_TALENTS_ON_LOGIN;
64+
5965
if (atLoginFlags & AT_LOGIN_RESURRECT)
6066
playerFlags &= ~PLAYER_FLAGS_GHOST;
6167

@@ -72,11 +78,20 @@ WorldPackets::Character::EnumCharactersResult::CharacterInfo::CharacterInfo(Fiel
7278
Flags |= CHARACTER_FLAG_DECLINED;
7379

7480
if (atLoginFlags & AT_LOGIN_CUSTOMIZE)
75-
Flags2 = CHAR_CUSTOMIZE_FLAG_CUSTOMIZE;
81+
Flags2 = CHARACTER_FLAG_2_CUSTOMIZE;
7682
else if (atLoginFlags & AT_LOGIN_CHANGE_FACTION)
77-
Flags2 = CHAR_CUSTOMIZE_FLAG_FACTION;
83+
Flags2 = CHARACTER_FLAG_2_FACTION_CHANGE;
7884
else if (atLoginFlags & AT_LOGIN_CHANGE_RACE)
79-
Flags2 = CHAR_CUSTOMIZE_FLAG_RACE;
85+
Flags2 = CHARACTER_FLAG_2_RACE_CHANGE;
86+
87+
if (playerFlags & PLAYER_FLAGS_NO_XP_GAIN)
88+
Flags2 |= CHARACTER_FLAG_2_NO_XP_GAIN;
89+
90+
if (playerFlags & PLAYER_FLAGS_LOW_LEVEL_RAID_ENABLED)
91+
Flags2 |= CHARACTER_FLAG_2_LOW_LEVEL_RAID_ENABLED;
92+
93+
if (playerFlags & PLAYER_FLAGS_AUTO_DECLINE_GUILD)
94+
Flags2 |= CHARACTER_FLAG_2_AUTO_DECLINE_GUILD;
8095

8196
FirstLogin = (atLoginFlags & AT_LOGIN_FIRST) != 0;
8297

src/server/shared/SharedDefines.h

Lines changed: 70 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -795,49 +795,76 @@ enum SheathTypes
795795

796796
#define MAX_SHEATHETYPE 8
797797

798-
enum CharacterFlags
799-
{
800-
CHARACTER_FLAG_NONE = 0x00000000,
801-
CHARACTER_FLAG_UNK1 = 0x00000001,
802-
CHARACTER_FLAG_UNK2 = 0x00000002,
803-
CHARACTER_FLAG_LOCKED_FOR_TRANSFER = 0x00000004,
804-
CHARACTER_FLAG_UNK4 = 0x00000008,
805-
CHARACTER_FLAG_UNK5 = 0x00000010,
806-
CHARACTER_FLAG_UNK6 = 0x00000020,
807-
CHARACTER_FLAG_UNK7 = 0x00000040,
808-
CHARACTER_FLAG_UNK8 = 0x00000080,
809-
CHARACTER_FLAG_UNK9 = 0x00000100,
810-
CHARACTER_FLAG_UNK10 = 0x00000200,
811-
CHARACTER_FLAG_HIDE_HELM = 0x00000400,
812-
CHARACTER_FLAG_HIDE_CLOAK = 0x00000800,
813-
CHARACTER_FLAG_UNK13 = 0x00001000,
814-
CHARACTER_FLAG_GHOST = 0x00002000,
815-
CHARACTER_FLAG_RENAME = 0x00004000,
816-
CHARACTER_FLAG_UNK16 = 0x00008000,
817-
CHARACTER_FLAG_UNK17 = 0x00010000,
818-
CHARACTER_FLAG_UNK18 = 0x00020000,
819-
CHARACTER_FLAG_UNK19 = 0x00040000,
820-
CHARACTER_FLAG_UNK20 = 0x00080000,
821-
CHARACTER_FLAG_UNK21 = 0x00100000,
822-
CHARACTER_FLAG_UNK22 = 0x00200000,
823-
CHARACTER_FLAG_UNK23 = 0x00400000,
824-
CHARACTER_FLAG_UNK24 = 0x00800000,
825-
CHARACTER_FLAG_LOCKED_BY_BILLING = 0x01000000,
826-
CHARACTER_FLAG_DECLINED = 0x02000000,
827-
CHARACTER_FLAG_UNK27 = 0x04000000,
828-
CHARACTER_FLAG_UNK28 = 0x08000000,
829-
CHARACTER_FLAG_UNK29 = 0x10000000,
830-
CHARACTER_FLAG_UNK30 = 0x20000000,
831-
CHARACTER_FLAG_UNK31 = 0x40000000,
832-
CHARACTER_FLAG_UNK32 = 0x80000000
833-
};
834-
835-
enum CharacterCustomizeFlags
836-
{
837-
CHAR_CUSTOMIZE_FLAG_NONE = 0x00000000,
838-
CHAR_CUSTOMIZE_FLAG_CUSTOMIZE = 0x00000001, // name, gender, etc...
839-
CHAR_CUSTOMIZE_FLAG_FACTION = 0x00010000, // name, gender, faction, etc...
840-
CHAR_CUSTOMIZE_FLAG_RACE = 0x00100000 // name, gender, race, etc...
798+
enum CharacterFlags : int32
799+
{
800+
CHARACTER_FLAG_NONE = 0x00000000,
801+
CHARACTER_FLAG_INVIS_GOD = 0x00000001, // Player has God Invis enabled
802+
CHARACTER_FLAG_RESTING = 0x00000002, // Player is currently earning rest experience
803+
CHARACTER_FLAG_LOCKED_FOR_TRANSFER = 0x00000004, // Player is locked - for paid character transfer
804+
CHARACTER_FLAG_SILENCED = 0x00000008, // Player's chat is silenced (can talk to GMs)
805+
CHARACTER_FLAG_UBERINVIS_GOD = 0x00000010, // Player has God Uberinvis enabled
806+
CHARACTER_FLAG_BEASTMASTER = 0x00000020, // Beastmaster is on
807+
CHARACTER_FLAG_PVP_ENABLED = 0x00000040, // PvP Enabled
808+
CHARACTER_FLAG_PORT_AFTER_RESURRECT = 0x00000080, // World port after resurrect
809+
CHARACTER_FLAG_RESET_TALENTS_ON_LOGIN = 0x00000100, // Clear Talents on login
810+
CHARACTER_FLAG_HAS_PVP_RANK = 0x00000200, // Player has a PvP Rank
811+
CHARACTER_FLAG_HIDE_HELM = 0x00000400, // Hide Helm
812+
CHARACTER_FLAG_HIDE_CLOAK = 0x00000800, // Hide Cloak
813+
CHARACTER_FLAG_SKINNABLE = 0x00001000, // Player is skinnable
814+
CHARACTER_FLAG_GHOST = 0x00002000, // Player is a ghost
815+
CHARACTER_FLAG_RENAME = 0x00004000, // Set to force a rename
816+
CHARACTER_FLAG_RENAME_NEEDS_GM_REVIEW = 0x00008000, // Flag is set after rename for GM review
817+
CHARACTER_FLAG_PVP_DESIRED = 0x00010000, // PvP desired flag
818+
CHARACTER_FLAG_GM_MODE = 0x00020000, // GM Mode enabled
819+
CHARACTER_FLAG_DELETED_BY_TRANSFER = 0x00040000, // Deleted by a character transfer
820+
CHARACTER_FLAG_ON_UNSAFE_TRANSPORT = 0x00080000, // On unsafe transport (port to safe loc on log in)
821+
CHARACTER_FLAG_RENAME_FAILED = 0x00100000, // Player unable to rename character
822+
CHARACTER_FLAG_MOUNT_UPGRADED = 0x00200000, // Mount has been upgraded
823+
CHARACTER_FLAG_FRIENDS_LIST_NEEDS_REPAIR = 0x00400000, // Friends list requires a repair
824+
CHARACTER_FLAG_EXPLORATION_DATA_FIXED = 0x00800000, // character had their exploration data fixed
825+
CHARACTER_FLAG_LOCKED_BY_BILLING = 0x01000000, // Locked due to billing
826+
CHARACTER_FLAG_DECLINED = 0x02000000, // Player has Russian declined name forms
827+
CHARACTER_FLAG_COMMENTATOR = 0x04000000, // Commentator mode enabled
828+
CHARACTER_FLAG_UBER_COMMENTATOR = 0x08000000, // Uber Commentator mode enabled
829+
CHARACTER_FLAG_XP_FIXED = 0x10000000, // Player's XP has been fixed (2.2.x->2.3.0)
830+
CHARACTER_FLAG_LOG_PACKETS = 0x20000000, // Log player packets
831+
CHARACTER_FLAG_COMPENSATE_FOR_SPELLS = 0x40000000 // Compensate for spells
832+
};
833+
834+
enum CharacterFlags2 : int32
835+
{
836+
CHARACTER_FLAG_2_NONE = 0x00000000,
837+
CHARACTER_FLAG_2_CUSTOMIZE = 0x00000001, // Player has paid for a character re-customization
838+
CHARACTER_FLAG_2_GM_SUPPORTER_PROXY = 0x00000002, // GMSupportServer Proxy, NOT for GMTool use
839+
CHARACTER_FLAG_2_CAN_LOAD_ON_NON_SHIP_TRANPORT = 0x00000004, // Character has been saved at least once since saving on non-ship transports was added
840+
CHARACTER_FLAG_2_BATTLE_MASTER_MISC_IS_TAXI_ID = 0x00000008, // Battle Master Misc Field is a Taxi ID
841+
CHARACTER_FLAG_2_TEMP_PET_AUTOCAST_SPELL_1 = 0x00000010, // Temp Pet Autocast Spell 1
842+
CHARACTER_FLAG_2_TEMP_PET_AUTOCAST_SPELL_2 = 0x00000020, // Temp Pet Autocast Spell 2
843+
CHARACTER_FLAG_2_TEMP_PET_AUTOCAST_SPELL_3 = 0x00000040, // Temp Pet Autocast Spell 3
844+
CHARACTER_FLAG_2_TEMP_PET_AUTOCAST_SPELL_4 = 0x00000080, // Temp Pet Autocast Spell 4
845+
CHARACTER_FLAG_2_TEMP_PET_AGGRESSIVE = 0x00000100, // Temp Pet Aggressive
846+
CHARACTER_FLAG_2_TEMP_PET_PASSIVE = 0x00000200, // Temp Pet Passive
847+
CHARACTER_FLAG_2_CAN_INTERACT_WITH_OTHER_REALMS_IN_SITE = 0x00000400, // Characters can interact with other realms in the site
848+
CHARACTER_FLAG_2_CAN_INTERACT_WITH_OTHER_REALMS_IN_REGION = 0x00000800, // Characters can interact with other realms in the region
849+
CHARACTER_FLAG_2_BATTLE_MASTER_MISC_IS_AREA_ID = 0x00001000, // Battle Master Misc Field is an Area ID
850+
CHARACTER_FLAG_2_REEVALUATE_ACCOUNT_ITEM_LICENSES = 0x00002000, // Account Item Licenses must be reevaluated on next login
851+
CHARACTER_FLAG_2_BATTLE_MASTER_MISC_IS_TRANSPORT = 0x00004000, // Battle Master Misc Field is a Transport
852+
CHARACTER_FLAG_2_TALENTS_RESET_USING_TALENT_GROUP_DATA = 0x00008000, // Players talents have been reset using talent group data
853+
CHARACTER_FLAG_2_FACTION_CHANGE = 0x00010000, // This character is eligible to change his faction
854+
CHARACTER_FLAG_2_HAS_CHANGED_RACE_OR_FACTION = 0x00020000, // This character has changed his race/faction and now requires the world server to repair him
855+
CHARACTER_FLAG_2_NO_XP_GAIN = 0x00040000, // This character has chosen to not gain XP by any means
856+
CHARACTER_FLAG_2_RECAST_ON_RESUMMON = 0x00080000, // Recast on Resummon
857+
CHARACTER_FLAG_2_RACE_CHANGE = 0x00100000, // This character is eligible to change his race
858+
CHARACTER_FLAG_2_CHANGED_TEMP_PET_AUTOCAST_SPELL_1 = 0x00200000, // Player has changed Temp Pet Autocast Spell 1
859+
CHARACTER_FLAG_2_CHANGED_TEMP_PET_AUTOCAST_SPELL_2 = 0x00400000, // Player has changed Temp Pet Autocast Spell 2
860+
CHARACTER_FLAG_2_CHANGED_TEMP_PET_AUTOCAST_SPELL_3 = 0x00800000, // Player has changed Temp Pet Autocast Spell 3
861+
CHARACTER_FLAG_2_CHANGED_TEMP_PET_AUTOCAST_SPELL_4 = 0x01000000, // Player has changed Temp Pet Autocast Spell 4
862+
CHARACTER_FLAG_2_CHANGED_GUILD_DURING_CHARACTER_TRANSFER = 0x02000000, // Player has transferred guilds during a PCT
863+
CHARACTER_FLAG_2_CAN_USE_VOID_STORAGE_FEATURE = 0x04000000, // Player is allowed to use the Void Storage feature
864+
CHARACTER_FLAG_2_BATTLE_PETS_CONVERTED = 0x08000000, // Battle Pets Converted
865+
CHARACTER_FLAG_2_QUESTS_FIXED = 0x10000000, // Player has had his quests fixed
866+
CHARACTER_FLAG_2_LOW_LEVEL_RAID_ENABLED = 0x20000000, // The player can join raids even if he's below the min raid level
867+
CHARACTER_FLAG_2_AUTO_DECLINE_GUILD = 0x40000000 // The player will automatically decline guild invites
841868
};
842869

843870
enum CharacterSlot

0 commit comments

Comments
 (0)