Quick question about fake choice

So, I’ve double checked the instructional material regard *fake_choice, and it says that no commands are allowed in the body of the choice. But somewhere else in the forum, I think I read that fake_choice can now include branching paths somehow(?).

Anyway, a quick yes or no would be great. Is this:

*fake_choice
	#Your mother, with her tech enhanced weaponry.
		*set pc_tech %+ 10
		*set momrelate + 1
	#Your father, with his unbeatable defense.
		*set pc_durability %+ 10
		*set dadrelate + 1
	#Your uncle, with his fluid attacks.
		*set pc_combat %+ 10
		*set uncrelate + 1
	#Whoever got the drop on their opponent, really.
		*set pc_stealth %+ 10

possible?

Yes, that’s perfectly fine as you wrote it.

Fake choice are exactly same as a choice except for the detail it hasn’t needed, use a *goto after each choice I have been using it years so no problems with it. The tutorial is outdated

I think I read that fake_choice can break when the games get published. Only I can’t remember the specifics of how it breaks.

*fake_choice also does not play well with *else. Else requires a goto or gosub after every choice result with *fake_choice just as *choice does.

1 Like

Fake choice works perfectly with else if you define well the parameters. Anyway, I don’t use else because It is a totally waste of code if you ask me actually It is totally redundant.
Edit: Also my point of using fake instead normal choice is versatility. You could have a choice which lead to another label or scene while others continue in same label. You could use all commands and gosub with it. It’s personal preference due I code in phones. My code is more go to the point and short than the bigger screens ones.

Good lord, if it breaks, I’m going to have to go back and add a whole lot of goto’s.

*set won’t break fake_choice. There are other things that might but *set isn’t one of them.

2 Likes

By any chance, would *temp?

*temp should be fine too, although I generally put all *temp statements at the beginning of a file so I can’t say that I personally have a great deal of experience with that combo the way I do with *set. The things most likely to break a fake_choice are those that complicate the internal logic and/or cause branching inside of the fake_choice. *temp doesn’t do either so it should be fine.

2 Likes

One of the things to remember is that a lot of the decisions on what breaks what is to help specify error catching. (e.g. forcing the correct use of *if, *else and *elseif to prevent falling out into other text.)

As for what breaks what, run quicktest and randomtest (the cmd version if you can, just the html if you can’t). Those are the two big tools for error catching. If something runs through those, it should work once everything is packed (barring things like continuity errors obviously).

As for *fake_choice specifically, even though code now works in it, I still recommend against it. The more complex you make a *fake_choice, the more likely you are to end up with problems that a normal *choice might find.

3 Likes