From 4712ca471bc3d186dc9dae7803571ff40b845d81 Mon Sep 17 00:00:00 2001 From: Alex King <89047260+Kinglykrab@users.noreply.github.com> Date: Sat, 30 Dec 2023 11:22:09 -0500 Subject: [PATCH] [Cleanup] Gender constants cleanup (#3817) * [Cleanup] Gender constants cleanup # Notes - Convert to a `Gender` namespace using `constexpr`. - Cleanup spots where we were using magic numbers for gender values. * Cleanup --- common/races.cpp | 72 +++++++++++------------ common/races.h | 8 ++- zone/attack.cpp | 2 +- zone/beacon.cpp | 6 +- zone/bot.cpp | 8 +-- zone/bot_command.cpp | 26 ++++---- zone/client.cpp | 6 +- zone/encounter.cpp | 6 +- zone/gm_commands/fixmob.cpp | 8 +-- zone/gm_commands/set/gender.cpp | 2 +- zone/gm_commands/set/gender_permanent.cpp | 2 +- zone/merc.cpp | 4 +- zone/mob.cpp | 58 +++++++++--------- zone/npc.cpp | 2 +- zone/pathfinder_waypoint.cpp | 2 +- zone/spell_effects.cpp | 16 ++--- zone/titles.cpp | 4 +- zone/tradeskills.cpp | 2 +- zone/trap.cpp | 2 +- zone/zonedb.h | 2 +- 20 files changed, 120 insertions(+), 118 deletions(-) diff --git a/common/races.cpp b/common/races.cpp index fb1382fb7..a66898d50 100644 --- a/common/races.cpp +++ b/common/races.cpp @@ -1598,7 +1598,7 @@ float GetRaceGenderDefaultHeight(int race, int gender) return 6.0f; } - if (gender == FEMALE) { + if (gender == Gender::Female) { return female_height[race]; } @@ -1606,38 +1606,38 @@ float GetRaceGenderDefaultHeight(int race, int gender) } // PlayerAppearance prep -#define HUMAN_MALE ((HUMAN << 8) | MALE) -#define HUMAN_FEMALE ((HUMAN << 8) | FEMALE) -#define BARBARIAN_MALE ((BARBARIAN << 8) | MALE) -#define BARBARIAN_FEMALE ((BARBARIAN << 8) | FEMALE) -#define ERUDITE_MALE ((ERUDITE << 8) | MALE) -#define ERUDITE_FEMALE ((ERUDITE << 8) | FEMALE) -#define WOOD_ELF_MALE ((WOOD_ELF << 8) | MALE) -#define WOOD_ELF_FEMALE ((WOOD_ELF << 8) | FEMALE) -#define HIGH_ELF_MALE ((HIGH_ELF << 8) | MALE) -#define HIGH_ELF_FEMALE ((HIGH_ELF << 8) | FEMALE) -#define DARK_ELF_MALE ((DARK_ELF << 8) | MALE) -#define DARK_ELF_FEMALE ((DARK_ELF << 8) | FEMALE) -#define HALF_ELF_MALE ((HALF_ELF << 8) | MALE) -#define HALF_ELF_FEMALE ((HALF_ELF << 8) | FEMALE) -#define DWARF_MALE ((DWARF << 8) | MALE) -#define DWARF_FEMALE ((DWARF << 8) | FEMALE) -#define TROLL_MALE ((TROLL << 8) | MALE) -#define TROLL_FEMALE ((TROLL << 8) | FEMALE) -#define OGRE_MALE ((OGRE << 8) | MALE) -#define OGRE_FEMALE ((OGRE << 8) | FEMALE) -#define HALFLING_MALE ((HALFLING << 8) | MALE) -#define HALFLING_FEMALE ((HALFLING << 8) | FEMALE) -#define GNOME_MALE ((GNOME << 8) | MALE) -#define GNOME_FEMALE ((GNOME << 8) | FEMALE) -#define IKSAR_MALE ((IKSAR << 8) | MALE) -#define IKSAR_FEMALE ((IKSAR << 8) | FEMALE) -#define VAHSHIR_MALE ((VAHSHIR << 8) | MALE) -#define VAHSHIR_FEMALE ((VAHSHIR << 8) | FEMALE) -#define FROGLOK_MALE ((FROGLOK << 8) | MALE) -#define FROGLOK_FEMALE ((FROGLOK << 8) | FEMALE) -#define DRAKKIN_MALE ((DRAKKIN << 8) | MALE) -#define DRAKKIN_FEMALE ((DRAKKIN << 8) | FEMALE) +#define HUMAN_MALE ((HUMAN << 8) | Gender::Male) +#define HUMAN_FEMALE ((HUMAN << 8) | Gender::Female) +#define BARBARIAN_MALE ((BARBARIAN << 8) | Gender::Male) +#define BARBARIAN_FEMALE ((BARBARIAN << 8) | Gender::Female) +#define ERUDITE_MALE ((ERUDITE << 8) | Gender::Male) +#define ERUDITE_FEMALE ((ERUDITE << 8) | Gender::Female) +#define WOOD_ELF_MALE ((WOOD_ELF << 8) | Gender::Male) +#define WOOD_ELF_FEMALE ((WOOD_ELF << 8) | Gender::Female) +#define HIGH_ELF_MALE ((HIGH_ELF << 8) | Gender::Male) +#define HIGH_ELF_FEMALE ((HIGH_ELF << 8) | Gender::Female) +#define DARK_ELF_MALE ((DARK_ELF << 8) | Gender::Male) +#define DARK_ELF_FEMALE ((DARK_ELF << 8) | Gender::Female) +#define HALF_ELF_MALE ((HALF_ELF << 8) | Gender::Male) +#define HALF_ELF_FEMALE ((HALF_ELF << 8) | Gender::Female) +#define DWARF_MALE ((DWARF << 8) | Gender::Male) +#define DWARF_FEMALE ((DWARF << 8) | Gender::Female) +#define TROLL_MALE ((TROLL << 8) | Gender::Male) +#define TROLL_FEMALE ((TROLL << 8) | Gender::Female) +#define OGRE_MALE ((OGRE << 8) | Gender::Male) +#define OGRE_FEMALE ((OGRE << 8) | Gender::Female) +#define HALFLING_MALE ((HALFLING << 8) | Gender::Male) +#define HALFLING_FEMALE ((HALFLING << 8) | Gender::Female) +#define GNOME_MALE ((GNOME << 8) | Gender::Male) +#define GNOME_FEMALE ((GNOME << 8) | Gender::Female) +#define IKSAR_MALE ((IKSAR << 8) | Gender::Male) +#define IKSAR_FEMALE ((IKSAR << 8) | Gender::Female) +#define VAHSHIR_MALE ((VAHSHIR << 8) | Gender::Male) +#define VAHSHIR_FEMALE ((VAHSHIR << 8) | Gender::Female) +#define FROGLOK_MALE ((FROGLOK << 8) | Gender::Male) +#define FROGLOK_FEMALE ((FROGLOK << 8) | Gender::Female) +#define DRAKKIN_MALE ((DRAKKIN << 8) | Gender::Male) +#define DRAKKIN_FEMALE ((DRAKKIN << 8) | Gender::Female) #define BINDRG(r, g) (((int)r << 8) | g) @@ -2238,11 +2238,11 @@ bool PlayerAppearance::IsValidWoad(uint16 race_id, uint8 gender_id, uint8 woad_v const char* GetGenderName(uint32 gender_id) { const char* gender_name = "Unknown"; - if (gender_id == MALE) { + if (gender_id == Gender::Male) { gender_name = "Male"; - } else if (gender_id == FEMALE) { + } else if (gender_id == Gender::Female) { gender_name = "Female"; - } else if (gender_id == NEUTER) { + } else if (gender_id == Gender::Neuter) { gender_name = "Neuter"; } return gender_name; diff --git a/common/races.h b/common/races.h index ad16566a2..942e61ca6 100644 --- a/common/races.h +++ b/common/races.h @@ -21,9 +21,11 @@ #include "../common/types.h" #include -#define MALE 0 -#define FEMALE 1 -#define NEUTER 2 +namespace Gender { + constexpr uint8 Male = 0; + constexpr uint8 Female = 1; + constexpr uint8 Neuter = 2; +} //theres a big list straight from the client below. diff --git a/zone/attack.cpp b/zone/attack.cpp index 58b9c974d..8db313cc8 100644 --- a/zone/attack.cpp +++ b/zone/attack.cpp @@ -5015,7 +5015,7 @@ void Mob::TryCriticalHit(Mob *defender, DamageHitInfo &hit, ExtraAttackOptions * hit.damage_done = (hit.damage_done * SlayDmgBonus) / 100; /* Female */ - if (GetGender() == 1) { + if (GetGender() == Gender::Female) { entity_list.FilteredMessageCloseString( this, /* Sender */ false, /* Skip Sender */ diff --git a/zone/beacon.cpp b/zone/beacon.cpp index 4ccaa7d36..82e6352d7 100644 --- a/zone/beacon.cpp +++ b/zone/beacon.cpp @@ -49,9 +49,9 @@ Beacon::Beacon(const glm::vec4 &in_pos, int lifetime) : Mob( nullptr, // in_lastname 0, // in_cur_hp 0, // in_max_hp - MALE, // in_gender - INVISIBLE_MAN, // in_race - 0, // in_class + Gender::Male, // in_gender + Race::InvisibleMan, // in_race + Class::None, // in_class BT_NoTarget, // in_bodytype 0, // in_deity 0, // in_level diff --git a/zone/bot.cpp b/zone/bot.cpp index fde349c1c..57a2a03dd 100644 --- a/zone/bot.cpp +++ b/zone/bot.cpp @@ -281,10 +281,10 @@ Bot::Bot( case SE_IllusionCopy: case SE_Illusion: { if (spell.base_value[x1] == -1) { - if (gender == FEMALE) { - gender = MALE; - } else if (gender == MALE) { - gender = FEMALE; + if (gender == Gender::Female) { + gender = Gender::Male; + } else if (gender == Gender::Male) { + gender = Gender::Female; } SendIllusionPacket( diff --git a/zone/bot_command.cpp b/zone/bot_command.cpp index 057bc7afc..8987765fb 100644 --- a/zone/bot_command.cpp +++ b/zone/bot_command.cpp @@ -2870,7 +2870,7 @@ void bot_command_apply_poison(Client *c, const Seperator *sep) } if (my_rogue_bot->GetLevel() < 18) { - c->Message(Chat::White, "Your rogue bot must be level 18 before %s can apply poison!", (my_rogue_bot->GetGender() == 1 ? "she" : "he")); + c->Message(Chat::White, "Your rogue bot must be level 18 before %s can apply poison!", (my_rogue_bot->GetGender() == Gender::Female ? "she" : "he")); return; } @@ -5633,7 +5633,7 @@ void bot_subcommand_bot_beard_color(Client *c, const Seperator *sep) uint8 uvalue = Strings::ToInt(sep->arg[1]); auto fail_type = BCEnum::AFT_None; - if (my_bot->GetGender() != MALE && my_bot->GetRace() != DWARF) + if (my_bot->GetGender() != Gender::Male && my_bot->GetRace() != DWARF) fail_type = BCEnum::AFT_GenderRace; else if (!PlayerAppearance::IsValidBeardColor(my_bot->GetRace(), my_bot->GetGender(), uvalue)) fail_type = BCEnum::AFT_Value; @@ -5670,7 +5670,7 @@ void bot_subcommand_bot_beard_style(Client *c, const Seperator *sep) uint8 uvalue = Strings::ToInt(sep->arg[1]); auto fail_type = BCEnum::AFT_None; - if (my_bot->GetGender() != MALE && my_bot->GetRace() != DWARF) + if (my_bot->GetGender() != Gender::Male && my_bot->GetRace() != DWARF) fail_type = BCEnum::AFT_GenderRace; else if (!PlayerAppearance::IsValidBeard(my_bot->GetRace(), my_bot->GetGender(), uvalue)) fail_type = BCEnum::AFT_Value; @@ -6171,18 +6171,18 @@ void bot_subcommand_bot_create(Client *c, const Seperator *sep) return; } - auto bot_gender = MALE; + auto bot_gender = Gender::Male; if (sep->IsNumber(4)) { bot_gender = static_cast(Strings::ToUnsignedInt(sep->arg[4])); - if (bot_gender == NEUTER) { - bot_gender = MALE; + if (bot_gender == Gender::Neuter) { + bot_gender = Gender::Male; } } else { if (!strcasecmp(sep->arg[4], "m") || !strcasecmp(sep->arg[4], "male")) { - bot_gender = MALE; + bot_gender = Gender::Male; } else if (!strcasecmp(sep->arg[4], "f") || !strcasecmp(sep->arg[4], "female")) { - bot_gender = FEMALE; + bot_gender = Gender::Female; } } @@ -9561,15 +9561,15 @@ uint32 helper_bot_create(Client *bot_owner, std::string bot_name, uint8 bot_clas return bot_id; } - if (!EQ::ValueWithin(bot_gender, MALE, FEMALE)) { + if (!EQ::ValueWithin(bot_gender, Gender::Male, Gender::Female)) { bot_owner->Message( Chat::White, fmt::format( "Gender: {} ({}) or {} ({})", - GetGenderName(MALE), - MALE, - GetGenderName(FEMALE), - FEMALE + GetGenderName(Gender::Male), + Gender::Male, + GetGenderName(Gender::Female), + Gender::Female ).c_str() ); return bot_id; diff --git a/zone/client.cpp b/zone/client.cpp index bc5cf904f..2d15ed877 100644 --- a/zone/client.cpp +++ b/zone/client.cpp @@ -86,9 +86,9 @@ Client::Client(EQStreamInterface *ieqs) : Mob( "", // in_lastname 0, // in_cur_hp 0, // in_max_hp - 0, // in_gender - 0, // in_race - 0, // in_class + Gender::Male, // in_gender + Race::Doug, // in_race + Class::None, // in_class BT_Humanoid, // in_bodytype 0, // in_deity 0, // in_level diff --git a/zone/encounter.cpp b/zone/encounter.cpp index f03909e2f..512178028 100644 --- a/zone/encounter.cpp +++ b/zone/encounter.cpp @@ -37,9 +37,9 @@ Encounter::Encounter(const char *enc_name) : Mob( nullptr, // in_lastname 0, // in_cur_hp 0, // in_max_hp - MALE, // in_gender - INVISIBLE_MAN, // in_race - 0, // in_class + Gender::Male, // in_gender + Race::InvisibleMan, // in_race + Class::None, // in_class BT_NoTarget, // in_bodytype 0, // in_deity 0, // in_level diff --git a/zone/gm_commands/fixmob.cpp b/zone/gm_commands/fixmob.cpp index d0d20b57e..3a002ebdd 100755 --- a/zone/gm_commands/fixmob.cpp +++ b/zone/gm_commands/fixmob.cpp @@ -60,11 +60,11 @@ void command_fixmob(Client *c, const Seperator *sep) ChangeSetting = Race; } else if (strcasecmp(command, "gender") == 0) { - if (Gender == MALE && codeMove == 'p') { - Gender = NEUTER; + if (Gender == Gender::Male && codeMove == 'p') { + Gender = Gender::Neuter; } - else if (Gender >= NEUTER && codeMove != 'p') { - Gender = MALE; + else if (Gender >= Gender::Neuter && codeMove != 'p') { + Gender = Gender::Male; } else { Gender += Adjustment; diff --git a/zone/gm_commands/set/gender.cpp b/zone/gm_commands/set/gender.cpp index b0ea61cdd..bc91f1074 100755 --- a/zone/gm_commands/set/gender.cpp +++ b/zone/gm_commands/set/gender.cpp @@ -15,7 +15,7 @@ void SetGender(Client *c, const Seperator *sep) } const uint8 gender_id = Strings::ToUnsignedInt(sep->arg[2]); - if (!EQ::ValueWithin(gender_id, MALE, NEUTER)) { + if (!EQ::ValueWithin(gender_id, Gender::Male, Gender::Neuter)) { c->Message(Chat::White, "Usage: #set gender [Gender ID]"); c->Message(Chat::White, "Genders: 0 = Male, 1 = Female, 2 = Neuter"); return; diff --git a/zone/gm_commands/set/gender_permanent.cpp b/zone/gm_commands/set/gender_permanent.cpp index 0130cf18b..9a2855cb3 100755 --- a/zone/gm_commands/set/gender_permanent.cpp +++ b/zone/gm_commands/set/gender_permanent.cpp @@ -15,7 +15,7 @@ void SetGenderPermanent(Client *c, const Seperator *sep) } const uint8 gender_id = Strings::ToInt(sep->arg[2]); - if (!EQ::ValueWithin(gender_id, MALE, NEUTER)) { + if (!EQ::ValueWithin(gender_id, Gender::Male, Gender::Neuter)) { c->Message(Chat::White, "Usage: #set gender_permanent [Gender ID]"); c->Message(Chat::White, "Genders: 0 = Male, 1 = Female, 2 = Neuter"); return; diff --git a/zone/merc.cpp b/zone/merc.cpp index 2d216b55b..b2b75391a 100644 --- a/zone/merc.cpp +++ b/zone/merc.cpp @@ -4323,7 +4323,7 @@ Merc* Merc::LoadMerc(Client *c, MercTemplate* merc_template, uint32 merchant_id, npc_type->race = merc_template->RaceID; // Use the Gender and Size of the Merchant if possible - uint8 tmpgender = MALE; + uint8 tmpgender = Gender::Male; float tmpsize = 6.0f; if(merchant_id > 0) { @@ -5624,7 +5624,7 @@ void Client::SetMerc(Merc* newmerc) { GetMercInfo().myTemplate = nullptr; GetMercInfo().IsSuspended = false; GetMercInfo().SuspendedTime = 0; - GetMercInfo().Gender = MALE; + GetMercInfo().Gender = Gender::Male; GetMercInfo().State = 0; memset(GetMercInfo().merc_name, 0, 64); Log(Logs::General, Logs::Mercenaries, "SetMerc No Merc for %s.", GetName()); diff --git a/zone/mob.cpp b/zone/mob.cpp index 13f09017a..a0ac49d5f 100644 --- a/zone/mob.cpp +++ b/zone/mob.cpp @@ -3703,11 +3703,11 @@ bool Mob::RandomizeFeatures(bool send_illusion, bool set_variables) case HUMAN: new_hair_color = zone->random.Int(0, 19); - if (current_gender == MALE) { + if (current_gender == Gender::Male) { new_beard_color = new_hair_color; new_hair_style = zone->random.Int(0, 3); new_beard = zone->random.Int(0, 5); - } else if (current_gender == FEMALE) { + } else if (current_gender == Gender::Female) { new_hair_style = zone->random.Int(0, 2); } @@ -3716,21 +3716,21 @@ bool Mob::RandomizeFeatures(bool send_illusion, bool set_variables) new_hair_color = zone->random.Int(0, 19); new_luclin_face = zone->random.Int(0, 87); - if (current_gender == MALE) { + if (current_gender == Gender::Male) { new_beard_color = new_hair_color; new_hair_style = zone->random.Int(0, 3); new_beard = zone->random.Int(0, 5); - } else if (current_gender == FEMALE) { + } else if (current_gender == Gender::Female) { new_hair_style = zone->random.Int(0, 2); } break; case ERUDITE: - if (current_gender == MALE) { + if (current_gender == Gender::Male) { new_beard_color = zone->random.Int(0, 19); new_beard = zone->random.Int(0, 5); new_luclin_face = zone->random.Int(0, 57); - } else if (current_gender == FEMALE) { + } else if (current_gender == Gender::Female) { new_luclin_face = zone->random.Int(0, 87); } @@ -3738,9 +3738,9 @@ bool Mob::RandomizeFeatures(bool send_illusion, bool set_variables) case WOOD_ELF: new_hair_color = zone->random.Int(0, 19); - if (current_gender == MALE) { + if (current_gender == Gender::Male) { new_hair_style = zone->random.Int(0, 3); - } else if (current_gender == FEMALE) { + } else if (current_gender == Gender::Female) { new_hair_style = zone->random.Int(0, 2); } @@ -3748,11 +3748,11 @@ bool Mob::RandomizeFeatures(bool send_illusion, bool set_variables) case HIGH_ELF: new_hair_color = zone->random.Int(0, 14); - if (current_gender == MALE) { + if (current_gender == Gender::Male) { new_hair_style = zone->random.Int(0, 3); new_luclin_face = zone->random.Int(0, 37); new_beard_color = new_hair_color; - } else if (current_gender == FEMALE) { + } else if (current_gender == Gender::Female) { new_hair_style = zone->random.Int(0, 2); } @@ -3760,11 +3760,11 @@ bool Mob::RandomizeFeatures(bool send_illusion, bool set_variables) case DARK_ELF: new_hair_color = zone->random.Int(13, 18); - if (current_gender == MALE) { + if (current_gender == Gender::Male) { new_hair_style = zone->random.Int(0, 3); new_luclin_face = zone->random.Int(0, 37); new_beard_color = new_hair_color; - } else if (current_gender == FEMALE) { + } else if (current_gender == Gender::Female) { new_hair_style = zone->random.Int(0, 2); } @@ -3772,11 +3772,11 @@ bool Mob::RandomizeFeatures(bool send_illusion, bool set_variables) case HALF_ELF: new_hair_color = zone->random.Int(0, 19); - if (current_gender == MALE) { + if (current_gender == Gender::Male) { new_hair_style = zone->random.Int(0, 3); new_luclin_face = zone->random.Int(0, 37); new_beard_color = new_hair_color; - } else if (current_gender == FEMALE) { + } else if (current_gender == Gender::Female) { new_hair_style = zone->random.Int(0, 2); } @@ -3785,10 +3785,10 @@ bool Mob::RandomizeFeatures(bool send_illusion, bool set_variables) new_hair_color = zone->random.Int(0, 19); new_beard_color = new_hair_color; - if (current_gender == MALE) { + if (current_gender == Gender::Male) { new_hair_style = zone->random.Int(0, 3); new_beard = zone->random.Int(0, 5); - } else if (current_gender == FEMALE) { + } else if (current_gender == Gender::Female) { new_hair_style = zone->random.Int(0, 2); new_luclin_face = zone->random.Int(0, 17); } @@ -3798,14 +3798,14 @@ bool Mob::RandomizeFeatures(bool send_illusion, bool set_variables) new_eye_color_one = zone->random.Int(0, 10); new_eye_color_two = zone->random.Int(0, 10); - if (current_gender == FEMALE) { + if (current_gender == Gender::Female) { new_hair_style = zone->random.Int(0, 3); new_hair_color = zone->random.Int(0, 23); } break; case OGRE: - if (current_gender == FEMALE) { + if (current_gender == Gender::Female) { new_hair_style = zone->random.Int(0, 3); new_hair_color = zone->random.Int(0, 23); } @@ -3814,11 +3814,11 @@ bool Mob::RandomizeFeatures(bool send_illusion, bool set_variables) case HALFLING: new_hair_color = zone->random.Int(0, 19); - if (current_gender == MALE) { + if (current_gender == Gender::Male) { new_beard_color = new_hair_color; new_hair_style = zone->random.Int(0, 3); new_beard = zone->random.Int(0, 5); - } else if (current_gender == FEMALE) { + } else if (current_gender == Gender::Female) { new_hair_style = zone->random.Int(0, 2); } @@ -3826,11 +3826,11 @@ bool Mob::RandomizeFeatures(bool send_illusion, bool set_variables) case GNOME: new_hair_color = zone->random.Int(0, 24); - if (current_gender == MALE) { + if (current_gender == Gender::Male) { new_beard_color = new_hair_color; new_hair_style = zone->random.Int(0, 3); new_beard = zone->random.Int(0, 5); - } else if (current_gender == FEMALE) { + } else if (current_gender == Gender::Female) { new_hair_style = zone->random.Int(0, 2); } @@ -3852,10 +3852,10 @@ bool Mob::RandomizeFeatures(bool send_illusion, bool set_variables) new_drakkin_tattoo = zone->random.Int(0, 7); new_drakkin_details = zone->random.Int(0, 7); - if (current_gender == MALE) { + if (current_gender == Gender::Male) { new_beard = zone->random.Int(0, 12); new_hair_style = zone->random.Int(0, 8); - } else if (current_gender == FEMALE) { + } else if (current_gender == Gender::Female) { new_beard = zone->random.Int(0, 3); new_hair_style = zone->random.Int(0, 7); } @@ -3961,8 +3961,8 @@ uint8 Mob::GetDefaultGender(uint16 in_race, uint8 in_gender) { in_race == Race::HumanGhost || in_race == Race::Coldain2 ) { - if (in_gender >= 2) { // Male default for PC Races - return 0; + if (in_gender >= Gender::Neuter) { // Male default for PC Races + return Gender::Male; } else { return in_gender; } @@ -3986,7 +3986,7 @@ uint8 Mob::GetDefaultGender(uint16 in_race, uint8 in_gender) { in_race == Race::RoyalGuard || in_race == Race::Erudite2 ) { // Male only races - return 0; + return Gender::Male; } else if ( in_race == Race::Fairy || in_race == Race::Pixie || @@ -3995,9 +3995,9 @@ uint8 Mob::GetDefaultGender(uint16 in_race, uint8 in_gender) { in_race == Race::AyonaeRo || in_race == Race::SullonZek ) { // Female only races - return 1; + return Gender::Female; } else { // Neutral default for NPC Races - return 2; + return Gender::Neuter; } } diff --git a/zone/npc.cpp b/zone/npc.cpp index 5e694b8cf..f32a8801e 100644 --- a/zone/npc.cpp +++ b/zone/npc.cpp @@ -1220,7 +1220,7 @@ void NPC::SpawnGridNodeNPC(const glm::vec4 &position, int32 grid_id, int32 grid_ npc_type->current_hp = 4000000; npc_type->max_hp = 4000000; npc_type->race = 2254; - npc_type->gender = NEUTER; + npc_type->gender = Gender::Neuter; npc_type->class_ = 9; npc_type->deity = 1; npc_type->level = 200; diff --git a/zone/pathfinder_waypoint.cpp b/zone/pathfinder_waypoint.cpp index fa0d917d5..26fb07a70 100644 --- a/zone/pathfinder_waypoint.cpp +++ b/zone/pathfinder_waypoint.cpp @@ -529,7 +529,7 @@ void PathfinderWaypoint::ShowNode(const Node &n) { npc_type->current_hp = 4000000; npc_type->max_hp = 4000000; npc_type->race = 2254; - npc_type->gender = NEUTER; + npc_type->gender = Gender::Neuter; npc_type->class_ = 9; npc_type->deity = 1; npc_type->level = 75; diff --git a/zone/spell_effects.cpp b/zone/spell_effects.cpp index df00b24c5..8201e759d 100644 --- a/zone/spell_effects.cpp +++ b/zone/spell_effects.cpp @@ -8077,33 +8077,33 @@ bool Mob::PassCastRestriction(int value) } case IS_CLIENT_AND_MALE_PLATE_USER: - if (IsClient() && GetGender() == MALE && IsPlateClass(GetClass())) + if (IsClient() && GetGender() == Gender::Male && IsPlateClass(GetClass())) return true; break; case IS_CLEINT_AND_MALE_DRUID_ENCHANTER_MAGICIAN_NECROANCER_SHAMAN_OR_WIZARD: - if (IsClient() && GetGender() == MALE && (IsCasterClass(GetClass()) && GetClass() != Class::Cleric)) + if (IsClient() && GetGender() == Gender::Male && (IsCasterClass(GetClass()) && GetClass() != Class::Cleric)) return true; break; case IS_CLIENT_AND_MALE_BEASTLORD_BERSERKER_MONK_RANGER_OR_ROGUE: - if (IsClient() && GetGender() == MALE && + if (IsClient() && GetGender() == Gender::Male && (GetClass() == Class::Beastlord || GetClass() == Class::Berserker || GetClass() == Class::Monk || GetClass() == Class::Ranger || GetClass() == Class::Rogue)) return true; break; case IS_CLIENT_AND_FEMALE_PLATE_USER: - if (IsClient() && GetGender() == FEMALE && IsPlateClass(GetClass())) + if (IsClient() && GetGender() == Gender::Female && IsPlateClass(GetClass())) return true; break; case IS_CLIENT_AND_FEMALE_DRUID_ENCHANTER_MAGICIAN_NECROANCER_SHAMAN_OR_WIZARD: - if (IsClient() && GetGender() == FEMALE && (IsCasterClass(GetClass()) && GetClass() != Class::Cleric)) + if (IsClient() && GetGender() == Gender::Female && (IsCasterClass(GetClass()) && GetClass() != Class::Cleric)) return true; break; case IS_CLIENT_AND_FEMALE_BEASTLORD_BERSERKER_MONK_RANGER_OR_ROGUE: - if (IsClient() && GetGender() == FEMALE && + if (IsClient() && GetGender() == Gender::Female && (GetClass() == Class::Beastlord || GetClass() == Class::Berserker || GetClass() == Class::Monk || GetClass() == Class::Ranger || GetClass() == Class::Rogue)) return true; break; @@ -10219,7 +10219,7 @@ void Mob::ApplySpellEffectIllusion(int32 spell_id, Mob *caster, int buffslot, in if (base == -1) { // Specific Gender Illusions if (spell_id == SPELL_ILLUSION_MALE || spell_id == SPELL_ILLUSION_FEMALE) { - uint8 specific_gender = spell_id == SPELL_ILLUSION_MALE ? MALE : FEMALE; + uint8 specific_gender = spell_id == SPELL_ILLUSION_MALE ? Gender::Male : Gender::Female; if (caster && caster->GetTarget()) { SendIllusionPacket( @@ -10234,7 +10234,7 @@ void Mob::ApplySpellEffectIllusion(int32 spell_id, Mob *caster, int buffslot, in // Change Gender Illusions else { if (caster && caster->GetTarget()) { - uint8 opposite_gender = caster->GetTarget()->GetGender() == MALE ? FEMALE : MALE; + uint8 opposite_gender = caster->GetTarget()->GetGender() == Gender::Male ? Gender::Female : Gender::Male; SendIllusionPacket( AppearanceStruct{ diff --git a/zone/titles.cpp b/zone/titles.cpp index bb4e185fc..f91a522f6 100644 --- a/zone/titles.cpp +++ b/zone/titles.cpp @@ -152,11 +152,11 @@ bool TitleManager::IsClientEligibleForTitle(Client *client, TitleEntry title) return false; } - if (title.gender_id >= 0 && client->GetBaseGender() != title.gender_id) { + if (title.gender_id >= Gender::Male && client->GetBaseGender() != title.gender_id) { return false; } - if (title.class_id >= 0 && client->GetBaseClass() != title.class_id) { + if (title.class_id >= Class::None && client->GetBaseClass() != title.class_id) { return false; } diff --git a/zone/tradeskills.cpp b/zone/tradeskills.cpp index 81c927f72..f539eac46 100644 --- a/zone/tradeskills.cpp +++ b/zone/tradeskills.cpp @@ -1147,7 +1147,7 @@ bool Client::TradeskillExecute(DBTradeskillRecipe_Struct *spec) { LogTradeskills("Tradeskill failed"); if (GetGroup()) { - entity_list.MessageGroup(this, true, Chat::Skills,"%s was unsuccessful in %s tradeskill attempt.",GetName(),GetGender() == 0 ? "his" : GetGender() == 1 ? "her" : "its"); + entity_list.MessageGroup(this, true, Chat::Skills,"%s was unsuccessful in %s tradeskill attempt.",GetName(),GetGender() == Gender::Male ? "his" : GetGender() == Gender::Female ? "her" : "its"); } diff --git a/zone/trap.cpp b/zone/trap.cpp index 1021b85f7..08f4cd225 100644 --- a/zone/trap.cpp +++ b/zone/trap.cpp @@ -510,7 +510,7 @@ void Trap::CreateHiddenTrigger() make_npc->runspeed = 0.0f; make_npc->bodytype = BT_Special; make_npc->race = 127; - make_npc->gender = MALE; + make_npc->gender = Gender::Male; make_npc->loottable_id = 0; make_npc->npc_spells_id = 0; make_npc->d_melee_texture1 = 0; diff --git a/zone/zonedb.h b/zone/zonedb.h index e922aa01c..0c20a76db 100644 --- a/zone/zonedb.h +++ b/zone/zonedb.h @@ -340,7 +340,7 @@ namespace BeastlordPetData { uint16 race_id = WOLF; uint8 texture = 0; uint8 helm_texture = 0; - uint8 gender = NEUTER; + uint8 gender = Gender::Neuter; float size_modifier = 1.0f; uint8 face = 0; };