Commanding multiple actors at the same time

And it’s finished!

Include this extension to completely replace the standard I6 actor parsing. It requires a couple other extensions that are also in GitHub (although Debugging isn’t necessary at this point; comment out the “debug say” statements if you don’t want to use it), and one that isn’t: Serial And Fix by Andrew Plotkin is Zarf’s fix for the “x, y, and z” issue that he posted in the other thread.

This supports all of the following syntaxes:

JUMP
IRIS, JUMP
BOTH IRIS AND WALDO, JUMP
IRIS, WALDO, JUMP
IRIS AND WALDO, JUMP
IRIS, SENSA, AND WALDO, JUMP
IRIS AND SENSA AND WALDO, JUMP
ALL ROBOTS, JUMP
TELL IRIS TO JUMP
TELL IRIS AND WALDO TO JUMP
TELL ALL ROBOTS TO JUMP

(along with many variations on these.)

This also fixes the “leaflet problem”: if Iris and Waldo are in a room with two leaflets, “BOTH IRIS AND WALDO, TAKE LEAFLET” will make them each take a different one. TELL IRIS TO TELL WALDO TO JUMP doesn’t work, but now produces a reasonable error message* rather than going into an infinite loop. The same goes for other actions out of world.

Note: Certain parser error messages don’t look quite right, since the “player” variable is changed several times during parsing. I’m working on fixing this now, but it’s quite minor and doesn’t affect functionality.

Multiple Actors.i7x