mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-05-03 08:03:50 +00:00
Add body type selection for nonbinary characters and reduce preview rotation sensitivity
Nonbinary characters can now choose between masculine and feminine body types in character creation, with real-time preview updates and full appearance customization. Body type preference is saved to character config and persists across sessions. Also reduces character preview drag-to-rotate sensitivity from 0.5 to 0.2 for better control.
This commit is contained in:
parent
ebac7eb135
commit
7c28b80135
8 changed files with 50 additions and 11 deletions
|
|
@ -114,6 +114,7 @@ struct Character {
|
|||
Race race; // Character race
|
||||
Class characterClass; // Character class (renamed from 'class' keyword)
|
||||
Gender gender; // Character gender
|
||||
bool useFemaleModel = false; // For nonbinary: body type preference (client-side only)
|
||||
uint8_t level; // Character level (1-80)
|
||||
|
||||
// Appearance
|
||||
|
|
@ -167,8 +168,14 @@ const char* getGenderName(Gender gender);
|
|||
|
||||
/**
|
||||
* Get M2 model path for a given race and gender
|
||||
* useFemaleModel allows nonbinary characters to choose body type
|
||||
*/
|
||||
std::string getPlayerModelPath(Race race, Gender gender);
|
||||
std::string getPlayerModelPath(Race race, Gender gender, bool useFemaleModel = false);
|
||||
|
||||
/**
|
||||
* Get M2 model path for a character (uses character's body type preference)
|
||||
*/
|
||||
std::string getPlayerModelPath(const Character& character);
|
||||
|
||||
} // namespace game
|
||||
} // namespace wowee
|
||||
|
|
|
|||
|
|
@ -234,6 +234,7 @@ struct CharCreateData {
|
|||
uint8_t hairStyle = 0;
|
||||
uint8_t hairColor = 0;
|
||||
uint8_t facialHair = 0;
|
||||
bool useFemaleModel = false; // For nonbinary: choose body type
|
||||
};
|
||||
|
||||
class CharCreatePacket {
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ public:
|
|||
bool loadCharacter(game::Race race, game::Gender gender,
|
||||
uint8_t skin, uint8_t face,
|
||||
uint8_t hairStyle, uint8_t hairColor,
|
||||
uint8_t facialHair);
|
||||
uint8_t facialHair, bool useFemaleModel = false);
|
||||
|
||||
void update(float deltaTime);
|
||||
void render();
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ private:
|
|||
int raceIndex = 0;
|
||||
int classIndex = 0;
|
||||
int genderIndex = 0;
|
||||
int bodyTypeIndex = 0; // For nonbinary: 0=masculine, 1=feminine
|
||||
int skin = 0, face = 0, hairStyle = 0, hairColor = 0, facialHair = 0;
|
||||
int maxSkin = 9, maxFace = 9, maxHairStyle = 11, maxHairColor = 9, maxFacialHair = 8;
|
||||
std::string statusMessage;
|
||||
|
|
@ -49,6 +50,7 @@ private:
|
|||
pipeline::AssetManager* assetManager_ = nullptr;
|
||||
int prevRaceIndex_ = -1;
|
||||
int prevGenderIndex_ = -1;
|
||||
int prevBodyTypeIndex_ = -1;
|
||||
int prevSkin_ = -1;
|
||||
int prevFace_ = -1;
|
||||
int prevHairStyle_ = -1;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue