False for female because they both start with F.
For non-binary it becomes a lot more complicated but perhaps it’s worthwhile to limit the complexity the first time around, just to get a hang of the system and its quirks.
Though instead of having two sets of variables, you could have gender represented on a numerical system:
1: non-binary
2: female
3: male
4: female-to-male
5: male-to-female
6: female-to-male pre op
7: male-to-female pre op
(note that this obviously isn’t a ranked system!)
And then you use something based off the following code to represent it:
@{gender+1 |a person|a woman|a man|a transgendered man|a transgendered woman|a woman with gender dysphoria|a man with gender dysphoria}
(I’m sure at least one of those is wrong)
Or however many permutations you can reasonably manage while telling a satisfying story.
Oh one more thing: I’ve found personally that using @{} is so much easier than having a billion different pronoun replacement variables. Instead of filling my code with {xhe} and {xheself} and {xis} and {xer} and {xers} and {xperson} and ${xbodyparts} for every possible situation where a gender-distinct word might come up, I can just do it on a case by case basis.
${xhe} kicked ${xheself} in ${xer} ${xbodyparts}
just looks super ugly and intricate to me, unfortunately, compared to @{gender+1 |He kicked himself in his balls|etc...}
Especially considering I can make small modifications based on the context of the player’s choice of self-representation, or even omit certain aspects entirely this way. But I suppose it’s just personal preference.
Oh and I thought of another benefit! Sorry I’ve edited this post like half a dozen times. Some characters might use different words to reflect their own prejudices, world views, or general assumptions – a stranger might just stick with the character’s outward gender, for example, meaning they wouldn’t use the whole range of pronouns until they get to the know the character a bit better. It’s a lot easier to represent different characters’ perceptions using multireplace!
Since this got away from me, here’s another solution to OP’s specific problem, assuming that just have man/woman and straight/gay as their options:
if (gender = "female")
if (preference = "women") *goto gayfemale
if (preference = "men") *goto straightfemale
else
if (preference = "women") *goto straightmale
if (preference = "men") *goto gaymale
Another way, less succinct but still valid:
if ((gender = "female") and (preference = "women"))
*goto gayfemale
elseif ((gender = "female") and (preference = "men"))
*goto straightfemale
elseif ((gender = "male") and (preference = "women"))
*goto straightmale
else
*goto gaymale