While I’m not sure exactly what a choice like this would need to be satisfying, I can take a shot at it?
It would probably be least intrusive (immersion-breaking?) to ask how tall our MCs are in comparison to Adelaide, Camille, et al. after we first return to our human shape, and can look at them eye-to-eye. Asking for an explicit number would just be weird. Sure, such a number could be used “behind the scenes,” as it were, but players don’t need to see or interact with it directly. At all. And a number isn’t even be necessary when a string variable check like *if height = "very short"
is so easy.
After all, scenes about kisses on tippy-toes can’t involve our MCs unless the game has a way of knowing how tall our MCs are!
So a game that includes something like this:
...could be coded with explicit height measurements (that players never see) like this:
You look at these people, and…
*fake_choice
#You're taller than all four of them.
*set height_centimeters 195
*comment Approximately 76.77 inches (rounds up to 6'5"). Huge!
#You're taller than three of them, but shorter than Sid.
*set height_centimeters 180
*comment Approximately 70.87 inches (call it 5'11").
#You're clearly taller than Adelaide and shorter than Sid, though Camille and Mars just about match your height.
*set height_centimeters 175
*comment Approximately 68.90 inches (another for the 5'9" pile!). Splits the difference between Camille and Mars, if only barely: 174.9, 175, and 175.2 lol
#You're taller than Adelaide... but shorter than the other three.
*set height_centimeters 165
*comment Approximately 64.96 inches (call it 5'5").
#You're shorter than all four of them.
*set height_centimeters 150
*comment Approximately 59.05 inches (almost exactly 4'11"). Tiny!
An inches version would work the exact same way, though the specific numbers would be different. It might start like this:
*fake_choice
#You're taller than all four of them.
*set height_inches 77
*set height_feet_words "six feet, five inches"
*set height_feet_numbers "6'5\""
Note that the backslash is critical to get ${height_feet_numbers}
to display as 6’5" instead of 6’5. It’s an escape character that allows one of the quotation marks to be treated as text, even though it’s inside a variable’s content. Normally, a quotation mark in that position would be treated as code, to mark the end of the variable’s content. The backslash lets us change that.
...or it could be coded with words describing relative height like this:
You look at these people, and…
*fake_choice
#You're taller than all four of them.
*set height_rank_words "tallest"
#You're taller than three of them, but shorter than Sid.
*set height_rank_words "tall"
#You're clearly taller than Adelaide and shorter than Sid, though Camille and Mars just about match your height.
*set height_rank_words "median"
#You're taller than Adelaide... but shorter than the other three.
*set height_rank_words "short"
#You're shorter than all four of them.
*set height_rank_words "shortest"
...or it could even be coded by numbering the relative heights for use with the multireplace operator like this:
You look at these people, and…
*fake_choice
#You're taller than all four of them.
*set height_rank_numbers 1
#You're taller than three of them, but shorter than Sid.
*set height_rank_numbers 2
#You're clearly taller than Adelaide and shorter than Sid, though Camille and Mars just about match your height.
*set height_rank_numbers 3
#You're taller than Adelaide... but shorter than the other three.
*set height_rank_numbers 4
#You're shorter than all four of them.
*set height_rank_numbers 5
This enables multireplace for things like: You could @{height_rank_numbers rest your arm on the top of Adelaide's head|rest your chin on the top of Adelaide's head|kiss Adelaide on her forehead|kiss Adelaide on the nose|kiss Adelaide on the neck} while you both stand normally.
With the exception of the height that splits the difference between Mars and Camille, all the possible MC heights in my examples could be adjusted up or down quite readily. And of course, there’s no reason for the code to use a variable with a complicated name. Simply calling it “height” should be fine! My examples use more complex names purely so it’s easier to read them and see what I’m doing with them.
It’s technically possible to let players manually type their desired heights, in the players’ choice of metric or imperial, but I very strongly recommend against it. Mostly because that kind of choice is pretty awkward to read, to the point it may even derail the narrative! It’s also a bit more annoying to code, although I slapped together a functional version for grins and giggles while I was composing this reply, so it’s not impossible. The possibility of act doesn’t overcome the “Why would you DO that?” factor, however.
Of course, if there’s no part of the game where a height-setting choice could reasonably substitute for a *page_break
, this is all for naught.