mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-02-14 07:53:44 +00:00
fix(core/dbc): improve ChrRace DBC handling (#14843)
Cherry pick of https://github.com/TrinityCore/TrinityCore/pull/24508 Co-authored-by: HelloKitty <5829095+HelloKitty@users.noreply.github.com>
This commit is contained in:
@@ -668,6 +668,13 @@ struct ChrClassesEntry
|
||||
uint32 expansion; // 59 (0 - original race, 1 - tbc addon, ...)
|
||||
};
|
||||
|
||||
enum ChrRacesAllianceType
|
||||
{
|
||||
CHRRACES_ALLIANCE_TYPE_ALLIANCE = 0,
|
||||
CHRRACES_ALLIANCE_TYPE_HORDE = 1,
|
||||
CHRRACES_ALLIANCE_TYPE_NOT_PLAYABLE = 2,
|
||||
};
|
||||
|
||||
enum ChrRacesFlags
|
||||
{
|
||||
CHRRACES_FLAGS_NOT_PLAYABLE = 0x01,
|
||||
@@ -677,25 +684,29 @@ enum ChrRacesFlags
|
||||
|
||||
struct ChrRacesEntry
|
||||
{
|
||||
uint32 RaceID; // 0
|
||||
uint32 Flags; // 1
|
||||
uint32 FactionID; // 2 facton template id
|
||||
// 3 unused
|
||||
uint32 model_m; // 4
|
||||
uint32 model_f; // 5
|
||||
// 6 unused
|
||||
uint32 TeamID; // 7 (7-Alliance 1-Horde)
|
||||
// 8-11 unused
|
||||
uint32 CinematicSequence; // 12 id from CinematicSequences.dbc
|
||||
//uint32 unk_322; // 13 faction (0 alliance, 1 horde, 2 not available?)
|
||||
char const* name[16]; // 14-29 used for DBC language detection/selection
|
||||
// 30 string flags, unused
|
||||
//char const* nameFemale[16]; // 31-46, if different from base (male) case
|
||||
// 47 string flags, unused
|
||||
//char const* nameNeutralGender[16]; // 48-63, if different from base (male) case
|
||||
// 64 string flags, unused
|
||||
// 65-67 unused
|
||||
uint32 expansion; // 68 (0 - original race, 1 - tbc addon, ...)
|
||||
uint32 ID; // 0
|
||||
uint32 Flags; // 1
|
||||
uint32 FactionID; // 2
|
||||
//uint32 ExplorationSoundID; // 3
|
||||
uint32 MaleDisplayID; // 4
|
||||
uint32 FemaleDisplayID; // 5
|
||||
//char const* ClientPrefix; // 6
|
||||
uint32 BaseLanguage; // 7 (7-Alliance 1-Horde)
|
||||
uint32 CreatureType; // 8
|
||||
uint32 ResSicknessSpellID; // 9
|
||||
//uint32 SplashSoundID; // 10
|
||||
//char const* ClientFileString; // 11
|
||||
uint32 CinematicSequenceID; // 12 ID from CinematicSequences.dbc
|
||||
uint32 Alliance; // 13
|
||||
char const* Name[16]; // 14-29
|
||||
//uint32 Name_lang_mask; // 30
|
||||
//char const* NameFemale[16]; // 31-46
|
||||
//uint32 NameFemale_lang_mask; // 47
|
||||
//char const* NameMale[16]; // 48-63
|
||||
//uint32 NameMale_lang_mask; // 64
|
||||
//char const* FacialHairCustomization[2]; // 65-66
|
||||
//char const* HairCustomization; // 67
|
||||
uint32 RequiredExpansion; // 68
|
||||
|
||||
inline bool HasFlag(ChrRacesFlags flag) const { return (Flags & flag) != 0; }
|
||||
};
|
||||
|
||||
@@ -32,7 +32,7 @@ char constexpr CharStartOutfitEntryfmt[] = "dbbbXiiiiiiiiiiiiiiiiiiiiiiiixxxxxxx
|
||||
char constexpr CharTitlesEntryfmt[] = "nxssssssssssssssssxssssssssssssssssxi";
|
||||
char constexpr ChatChannelsEntryfmt[] = "nixssssssssssssssssxxxxxxxxxxxxxxxxxx"; // ChatChannelsEntryfmt, index not used (more compact store)
|
||||
char constexpr ChrClassesEntryfmt[] = "nxixssssssssssssssssxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxixii";
|
||||
char constexpr ChrRacesEntryfmt[] = "niixiixixxxxixssssssssssssssssxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxi";
|
||||
char constexpr ChrRacesEntryfmt[] = "niixiixiiixxiissssssssssssssssxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxi";
|
||||
char constexpr CinematicCameraEntryfmt[] = "nsiffff";
|
||||
char constexpr CinematicSequencesEntryfmt[] = "nxixxxxxxx";
|
||||
char constexpr CreatureDisplayInfofmt[] = "nixifxxxxxxxxxxx";
|
||||
|
||||
@@ -730,8 +730,10 @@ enum Language
|
||||
enum TeamId
|
||||
{
|
||||
TEAM_ALLIANCE = 0,
|
||||
TEAM_HORDE,
|
||||
TEAM_NEUTRAL,
|
||||
TEAM_HORDE = 1,
|
||||
TEAM_NEUTRAL = 2,
|
||||
HORDE_FACTION = 67,
|
||||
ALLIANCE_FACTION = 469
|
||||
};
|
||||
|
||||
enum Team
|
||||
|
||||
Reference in New Issue
Block a user