mirror of
https://github.com/EQEmu/Server.git
synced 2026-03-28 07:22:29 +00:00
[Cleanup] Cleanup RandomizeFeatures() (#3958)
# Notes - Uses pre-defined constants and cleanup code. - Move `IsPlayerRace()` check so it's an early return instead of using an `else`.
This commit is contained in:
parent
ef635cb257
commit
b61649a2a0
442
zone/mob.cpp
442
zone/mob.cpp
@ -3663,230 +3663,226 @@ void Mob::SetFaceAppearance(const FaceChange_Struct& face, bool skip_sender)
|
|||||||
|
|
||||||
bool Mob::RandomizeFeatures(bool send_illusion, bool set_variables)
|
bool Mob::RandomizeFeatures(bool send_illusion, bool set_variables)
|
||||||
{
|
{
|
||||||
if (IsPlayerRace(GetRace())) {
|
if (!IsPlayerRace(GetRace())) {
|
||||||
uint8 current_gender = GetGender();
|
return false;
|
||||||
uint8 new_texture = 0xFF;
|
|
||||||
uint8 new_helm_texture = 0xFF;
|
|
||||||
uint8 new_hair_color = 0xFF;
|
|
||||||
uint8 new_beard_color = 0xFF;
|
|
||||||
uint8 new_eye_color_one = 0xFF;
|
|
||||||
uint8 new_eye_color_two = 0xFF;
|
|
||||||
uint8 new_hair_style = 0xFF;
|
|
||||||
uint8 new_luclin_face = 0xFF;
|
|
||||||
uint8 new_beard = 0xFF;
|
|
||||||
uint32 new_drakkin_heritage = 0xFFFFFFFF;
|
|
||||||
uint32 new_drakkin_tattoo = 0xFFFFFFFF;
|
|
||||||
uint32 new_drakkin_details = 0xFFFFFFFF;
|
|
||||||
|
|
||||||
// Set some common feature settings
|
|
||||||
new_eye_color_one = zone->random.Int(0, 9);
|
|
||||||
new_eye_color_two = zone->random.Int(0, 9);
|
|
||||||
new_luclin_face = zone->random.Int(0, 7);
|
|
||||||
|
|
||||||
// Adjust all settings based on the min and max for each feature of each race and gender
|
|
||||||
switch (GetRace()) {
|
|
||||||
case HUMAN:
|
|
||||||
new_hair_color = zone->random.Int(0, 19);
|
|
||||||
|
|
||||||
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 == Gender::Female) {
|
|
||||||
new_hair_style = zone->random.Int(0, 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
case BARBARIAN:
|
|
||||||
new_hair_color = zone->random.Int(0, 19);
|
|
||||||
new_luclin_face = zone->random.Int(0, 87);
|
|
||||||
|
|
||||||
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 == Gender::Female) {
|
|
||||||
new_hair_style = zone->random.Int(0, 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
case ERUDITE:
|
|
||||||
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 == Gender::Female) {
|
|
||||||
new_luclin_face = zone->random.Int(0, 87);
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
case WOOD_ELF:
|
|
||||||
new_hair_color = zone->random.Int(0, 19);
|
|
||||||
|
|
||||||
if (current_gender == Gender::Male) {
|
|
||||||
new_hair_style = zone->random.Int(0, 3);
|
|
||||||
} else if (current_gender == Gender::Female) {
|
|
||||||
new_hair_style = zone->random.Int(0, 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
case HIGH_ELF:
|
|
||||||
new_hair_color = zone->random.Int(0, 14);
|
|
||||||
|
|
||||||
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 == Gender::Female) {
|
|
||||||
new_hair_style = zone->random.Int(0, 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
case DARK_ELF:
|
|
||||||
new_hair_color = zone->random.Int(13, 18);
|
|
||||||
|
|
||||||
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 == Gender::Female) {
|
|
||||||
new_hair_style = zone->random.Int(0, 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
case HALF_ELF:
|
|
||||||
new_hair_color = zone->random.Int(0, 19);
|
|
||||||
|
|
||||||
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 == Gender::Female) {
|
|
||||||
new_hair_style = zone->random.Int(0, 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
case DWARF:
|
|
||||||
new_hair_color = zone->random.Int(0, 19);
|
|
||||||
new_beard_color = new_hair_color;
|
|
||||||
|
|
||||||
if (current_gender == Gender::Male) {
|
|
||||||
new_hair_style = zone->random.Int(0, 3);
|
|
||||||
new_beard = zone->random.Int(0, 5);
|
|
||||||
} else if (current_gender == Gender::Female) {
|
|
||||||
new_hair_style = zone->random.Int(0, 2);
|
|
||||||
new_luclin_face = zone->random.Int(0, 17);
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
case TROLL:
|
|
||||||
new_eye_color_one = zone->random.Int(0, 10);
|
|
||||||
new_eye_color_two = zone->random.Int(0, 10);
|
|
||||||
|
|
||||||
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 == Gender::Female) {
|
|
||||||
new_hair_style = zone->random.Int(0, 3);
|
|
||||||
new_hair_color = zone->random.Int(0, 23);
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
case HALFLING:
|
|
||||||
new_hair_color = zone->random.Int(0, 19);
|
|
||||||
|
|
||||||
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 == Gender::Female) {
|
|
||||||
new_hair_style = zone->random.Int(0, 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
case GNOME:
|
|
||||||
new_hair_color = zone->random.Int(0, 24);
|
|
||||||
|
|
||||||
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 == Gender::Female) {
|
|
||||||
new_hair_style = zone->random.Int(0, 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
case IKSAR:
|
|
||||||
case VAHSHIR:
|
|
||||||
new_luclin_face = zone->random.Int(0, 7);
|
|
||||||
break;
|
|
||||||
case FROGLOK:
|
|
||||||
new_luclin_face = zone->random.Int(0, 9);
|
|
||||||
break;
|
|
||||||
case DRAKKIN:
|
|
||||||
new_hair_color = zone->random.Int(0, 3);
|
|
||||||
new_beard_color = new_hair_color;
|
|
||||||
new_eye_color_one = zone->random.Int(0, 11);
|
|
||||||
new_eye_color_two = zone->random.Int(0, 11);
|
|
||||||
new_luclin_face = zone->random.Int(0, 6);
|
|
||||||
new_drakkin_heritage = zone->random.Int(0, 6);
|
|
||||||
new_drakkin_tattoo = zone->random.Int(0, 7);
|
|
||||||
new_drakkin_details = zone->random.Int(0, 7);
|
|
||||||
|
|
||||||
if (current_gender == Gender::Male) {
|
|
||||||
new_beard = zone->random.Int(0, 12);
|
|
||||||
new_hair_style = zone->random.Int(0, 8);
|
|
||||||
} else if (current_gender == Gender::Female) {
|
|
||||||
new_beard = zone->random.Int(0, 3);
|
|
||||||
new_hair_style = zone->random.Int(0, 7);
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (set_variables) {
|
|
||||||
haircolor = new_hair_color;
|
|
||||||
beardcolor = new_beard_color;
|
|
||||||
eyecolor1 = new_eye_color_one;
|
|
||||||
eyecolor2 = new_eye_color_two;
|
|
||||||
hairstyle = new_hair_style;
|
|
||||||
luclinface = new_luclin_face;
|
|
||||||
beard = new_beard;
|
|
||||||
drakkin_heritage = new_drakkin_heritage;
|
|
||||||
drakkin_tattoo = new_drakkin_tattoo;
|
|
||||||
drakkin_details = new_drakkin_details;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (send_illusion) {
|
|
||||||
SendIllusionPacket(
|
|
||||||
AppearanceStruct{
|
|
||||||
.beard = new_beard,
|
|
||||||
.beard_color = new_beard_color,
|
|
||||||
.drakkin_details = new_drakkin_details,
|
|
||||||
.drakkin_heritage = new_drakkin_heritage,
|
|
||||||
.drakkin_tattoo = new_drakkin_tattoo,
|
|
||||||
.eye_color_one = new_eye_color_one,
|
|
||||||
.eye_color_two = new_eye_color_two,
|
|
||||||
.face = new_luclin_face,
|
|
||||||
.gender_id = current_gender,
|
|
||||||
.hair = new_hair_style,
|
|
||||||
.hair_color = new_hair_color,
|
|
||||||
.helmet_texture = new_helm_texture,
|
|
||||||
.race_id = GetRace(),
|
|
||||||
.texture = new_texture,
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
|
uint8 current_gender = GetGender();
|
||||||
|
uint8 new_texture = UINT8_MAX;
|
||||||
|
uint8 new_helm_texture = UINT8_MAX;
|
||||||
|
uint8 new_hair_color = UINT8_MAX;
|
||||||
|
uint8 new_beard_color = UINT8_MAX;
|
||||||
|
uint8 new_eye_color_one = zone->random.Int(0, 9);
|
||||||
|
uint8 new_eye_color_two = zone->random.Int(0, 9);
|
||||||
|
uint8 new_hair_style = UINT8_MAX;
|
||||||
|
uint8 new_luclin_face = zone->random.Int(0, 7);
|
||||||
|
uint8 new_beard = UINT8_MAX;
|
||||||
|
uint32 new_drakkin_heritage = UINT32_MAX;
|
||||||
|
uint32 new_drakkin_tattoo = UINT32_MAX;
|
||||||
|
uint32 new_drakkin_details = UINT32_MAX;
|
||||||
|
|
||||||
|
// Adjust all settings based on the min and max for each feature of each race and gender
|
||||||
|
switch (GetRace()) {
|
||||||
|
case HUMAN:
|
||||||
|
new_hair_color = zone->random.Int(0, 19);
|
||||||
|
|
||||||
|
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 == Gender::Female) {
|
||||||
|
new_hair_style = zone->random.Int(0, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case BARBARIAN:
|
||||||
|
new_hair_color = zone->random.Int(0, 19);
|
||||||
|
new_luclin_face = zone->random.Int(0, 87);
|
||||||
|
|
||||||
|
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 == Gender::Female) {
|
||||||
|
new_hair_style = zone->random.Int(0, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case ERUDITE:
|
||||||
|
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 == Gender::Female) {
|
||||||
|
new_luclin_face = zone->random.Int(0, 87);
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case WOOD_ELF:
|
||||||
|
new_hair_color = zone->random.Int(0, 19);
|
||||||
|
|
||||||
|
if (current_gender == Gender::Male) {
|
||||||
|
new_hair_style = zone->random.Int(0, 3);
|
||||||
|
} else if (current_gender == Gender::Female) {
|
||||||
|
new_hair_style = zone->random.Int(0, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case HIGH_ELF:
|
||||||
|
new_hair_color = zone->random.Int(0, 14);
|
||||||
|
|
||||||
|
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 == Gender::Female) {
|
||||||
|
new_hair_style = zone->random.Int(0, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case DARK_ELF:
|
||||||
|
new_hair_color = zone->random.Int(13, 18);
|
||||||
|
|
||||||
|
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 == Gender::Female) {
|
||||||
|
new_hair_style = zone->random.Int(0, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case HALF_ELF:
|
||||||
|
new_hair_color = zone->random.Int(0, 19);
|
||||||
|
|
||||||
|
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 == Gender::Female) {
|
||||||
|
new_hair_style = zone->random.Int(0, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case DWARF:
|
||||||
|
new_hair_color = zone->random.Int(0, 19);
|
||||||
|
new_beard_color = new_hair_color;
|
||||||
|
|
||||||
|
if (current_gender == Gender::Male) {
|
||||||
|
new_hair_style = zone->random.Int(0, 3);
|
||||||
|
new_beard = zone->random.Int(0, 5);
|
||||||
|
} else if (current_gender == Gender::Female) {
|
||||||
|
new_hair_style = zone->random.Int(0, 2);
|
||||||
|
new_luclin_face = zone->random.Int(0, 17);
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case TROLL:
|
||||||
|
new_eye_color_one = zone->random.Int(0, 10);
|
||||||
|
new_eye_color_two = zone->random.Int(0, 10);
|
||||||
|
|
||||||
|
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 == Gender::Female) {
|
||||||
|
new_hair_style = zone->random.Int(0, 3);
|
||||||
|
new_hair_color = zone->random.Int(0, 23);
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case HALFLING:
|
||||||
|
new_hair_color = zone->random.Int(0, 19);
|
||||||
|
|
||||||
|
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 == Gender::Female) {
|
||||||
|
new_hair_style = zone->random.Int(0, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case GNOME:
|
||||||
|
new_hair_color = zone->random.Int(0, 24);
|
||||||
|
|
||||||
|
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 == Gender::Female) {
|
||||||
|
new_hair_style = zone->random.Int(0, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case IKSAR:
|
||||||
|
case VAHSHIR:
|
||||||
|
new_luclin_face = zone->random.Int(0, 7);
|
||||||
|
break;
|
||||||
|
case FROGLOK:
|
||||||
|
new_luclin_face = zone->random.Int(0, 9);
|
||||||
|
break;
|
||||||
|
case DRAKKIN:
|
||||||
|
new_hair_color = zone->random.Int(0, 3);
|
||||||
|
new_beard_color = new_hair_color;
|
||||||
|
new_eye_color_one = zone->random.Int(0, 11);
|
||||||
|
new_eye_color_two = zone->random.Int(0, 11);
|
||||||
|
new_luclin_face = zone->random.Int(0, 6);
|
||||||
|
new_drakkin_heritage = zone->random.Int(0, 6);
|
||||||
|
new_drakkin_tattoo = zone->random.Int(0, 7);
|
||||||
|
new_drakkin_details = zone->random.Int(0, 7);
|
||||||
|
|
||||||
|
if (current_gender == Gender::Male) {
|
||||||
|
new_beard = zone->random.Int(0, 12);
|
||||||
|
new_hair_style = zone->random.Int(0, 8);
|
||||||
|
} else if (current_gender == Gender::Female) {
|
||||||
|
new_beard = zone->random.Int(0, 3);
|
||||||
|
new_hair_style = zone->random.Int(0, 7);
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (set_variables) {
|
||||||
|
haircolor = new_hair_color;
|
||||||
|
beardcolor = new_beard_color;
|
||||||
|
eyecolor1 = new_eye_color_one;
|
||||||
|
eyecolor2 = new_eye_color_two;
|
||||||
|
hairstyle = new_hair_style;
|
||||||
|
luclinface = new_luclin_face;
|
||||||
|
beard = new_beard;
|
||||||
|
drakkin_heritage = new_drakkin_heritage;
|
||||||
|
drakkin_tattoo = new_drakkin_tattoo;
|
||||||
|
drakkin_details = new_drakkin_details;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (send_illusion) {
|
||||||
|
SendIllusionPacket(
|
||||||
|
AppearanceStruct{
|
||||||
|
.beard = new_beard,
|
||||||
|
.beard_color = new_beard_color,
|
||||||
|
.drakkin_details = new_drakkin_details,
|
||||||
|
.drakkin_heritage = new_drakkin_heritage,
|
||||||
|
.drakkin_tattoo = new_drakkin_tattoo,
|
||||||
|
.eye_color_one = new_eye_color_one,
|
||||||
|
.eye_color_two = new_eye_color_two,
|
||||||
|
.face = new_luclin_face,
|
||||||
|
.gender_id = current_gender,
|
||||||
|
.hair = new_hair_style,
|
||||||
|
.hair_color = new_hair_color,
|
||||||
|
.helmet_texture = new_helm_texture,
|
||||||
|
.race_id = GetRace(),
|
||||||
|
.texture = new_texture,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16 Mob::GetFactionRace() {
|
uint16 Mob::GetFactionRace() {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user