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:
Kelsi 2026-02-09 17:39:21 -08:00
parent 28aa88608f
commit 0071c24713
10 changed files with 421 additions and 32 deletions

View file

@ -143,6 +143,7 @@ bool Minimap::initialize(int size) {
uniform float uRotation;
uniform float uArrowRotation;
uniform float uZoomRadius;
uniform bool uSquareShape;
out vec4 FragColor;
@ -168,7 +169,8 @@ bool Minimap::initialize(int size) {
void main() {
vec2 centered = TexCoord - 0.5;
float dist = length(centered);
if (dist > 0.5) discard;
float maxDist = uSquareShape ? max(abs(centered.x), abs(centered.y)) : dist;
if (maxDist > 0.5) discard;
// Rotate screen coords → composite UV offset
// Composite: U increases east, V increases south
@ -186,9 +188,9 @@ bool Minimap::initialize(int size) {
vec2 uv = uPlayerUV + offset;
vec3 color = texture(uComposite, uv).rgb;
// Thin dark border at circle edge
if (dist > 0.49) {
color = mix(color, vec3(0.08), smoothstep(0.49, 0.5, dist));
// Thin dark border at edge
if (maxDist > 0.49) {
color = mix(color, vec3(0.08), smoothstep(0.49, 0.5, maxDist));
}
// Player arrow at center (always points up = forward)
@ -509,6 +511,7 @@ void Minimap::renderQuad(const Camera& playerCamera, const glm::vec3& centerWorl
arrowRotation = std::atan2(-fwd.x, fwd.y);
}
quadShader->setUniform("uArrowRotation", arrowRotation);
quadShader->setUniform("uSquareShape", squareShape);
quadShader->setUniform("uComposite", 0);
glActiveTexture(GL_TEXTURE0);