I’ve been tinkering around with an extension that, among other things, adds non-binary persons and conjugation for the singular they, as well as smartly using names vs. pronouns for the [we], [us], etc.
This is working fine in one WIP, but seems to be broken in a new WIP, and in a minimal test game.
Specifically, in third person singular present, it conjugates "[We] [are] on the bus" as Smith is on the bus, but He are on the bus when Smith has already been mentioned. Like I said, it works just fine in another game and I can’t tell why.
Now the extension is a little bit long to post here, so instead I’m looking for some guidance on where I can look at conjugation code in I6 to get an idea of where things are going wrong. I’m using 6M62, and the best I can find is in output.i6t: This paragraph contains no code, by default: it's a hook on which to hang verbatim I6 material.
Are you using just Gender Options, or are you using Gender Speedup, too?
Could you add To say prior named list: (- print prior_named_list; -) to your code and then insert say "[prior named object] [prior named list]."; before the say statement where it goes wrong?
Do a showme smith just to verify that Smith is singular-named and isn’t ambiguously plural.
Both of those extensions have extensive internal documentation which discuss how this works in detail. Whatever the problem is, it’s not with conjugation per se, it’s with determining the grammatical number of the subject. In vanilla inform, that comes from PNToVP in ListWriter.i6t or GetGNAOfObject in Parser.i6t (which PNToVP uses in one case). Gender Options doesn’t use GetGNAOfObject; it replaces that functionality with its own GetGNABitfield. Gender Speedup replaces PNToVP.