mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-22 23:30:14 +00:00
Add nonbinary gender support with pronoun system and server compatibility
Extends gender system beyond WoW's binary male/female to support nonbinary characters with proper they/them pronouns. Implements client-side gender mapping (nonbinary→male) for 3.3.5a server compatibility while preserving player identity through local config persistence. Adds pronoun placeholders ($p/$o/$s/$S) and three-option gender text parsing ($g<male>:<female>:<nonbinary>;) for inclusive quest and dialog text.
This commit is contained in:
parent
28aa88608f
commit
0071c24713
10 changed files with 421 additions and 32 deletions
|
|
@ -45,9 +45,41 @@ enum class Class : uint8_t {
|
|||
*/
|
||||
enum class Gender : uint8_t {
|
||||
MALE = 0,
|
||||
FEMALE = 1
|
||||
FEMALE = 1,
|
||||
NONBINARY = 2
|
||||
};
|
||||
|
||||
/**
|
||||
* Pronoun set for text substitution
|
||||
*/
|
||||
struct Pronouns {
|
||||
std::string subject; // he/she/they
|
||||
std::string object; // him/her/them
|
||||
std::string possessive; // his/her/their
|
||||
std::string possessiveP; // his/hers/theirs
|
||||
|
||||
static Pronouns forGender(Gender gender) {
|
||||
switch (gender) {
|
||||
case Gender::MALE:
|
||||
return {"he", "him", "his", "his"};
|
||||
case Gender::FEMALE:
|
||||
return {"she", "her", "her", "hers"};
|
||||
case Gender::NONBINARY:
|
||||
return {"they", "them", "their", "theirs"};
|
||||
default:
|
||||
return {"they", "them", "their", "theirs"};
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Convert gender to server-compatible value (WoW 3.3.5a only supports binary genders)
|
||||
* Nonbinary is mapped to MALE for server communication while preserving client-side identity
|
||||
*/
|
||||
inline Gender toServerGender(Gender gender) {
|
||||
return (gender == Gender::FEMALE) ? Gender::FEMALE : Gender::MALE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Equipment item data
|
||||
*/
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue