maybe i’m not understanding something but i’m confused about the QUEUE process. in this example code, the I-IGOR-ENTRY routine is set to fire in 4 moves.
"Name of Game"
<VERSION XZIP>
<CONSTANT RELEASEID 1>
"Main loop"
<CONSTANT GAME-BANNER
"Name of Game | Description of Game | By Your Name Here |
Year and any other useful info">
<ROUTINE GO ()
<CRLF> <CRLF>
<QUEUE I-IGOR-ENTRY 4>
<TELL "Opening text, something that sets the scene." CR>
<INIT-STATUS-LINE>
<V-VERSION> <CRLF>
<SETG HERE ,ROOM-OF-PARTS>
<MOVE ,PLAYER ,HERE>
<V-LOOK>
<MAIN-LOOP>>
<INSERT-FILE "parser">
<ROUTINE I-IGOR-ENTRY ()
<TELL CR
"Suddenly, you feel a low rumble through the floor and the north wall begins to slowly rotate.
From the darkness behind it, a figure enters carrying a large sack. He enters the room and
does something with his back to you. He shakes the shack to make sure it's empty
and then turns and disappears through the opening in the wall." CR>
<RTRUE>>
<ROOM ROOM-OF-PARTS
(DESC "Room of Parts")
(IN ROOMS)
(FLAGS LIGHTBIT ONBIT)
(LDESC
"This is a small stone-lined claustrophic room with no apparent door. A tarnished brass sconce is
embedded in the otherwise featureless north wall. A thick wooden table occupies the center of the room;
piled on top of it you see papers and manuscripts.")>
and it works fine most of the time.
but if the player enters a single “wait” command at the prompt then the routine fires immediately.
You see that a wait waits STANDARD-WAIT turns or until it’s interrupted. The definition is <GLOBAL STANDARD-WAIT 4>. So a single wait command will wait four turns and trigger the interrupt.
i’ve gotten so used to inform, dialog, etc. where ‘wait’ = 1 turn. but just went back and checked and it’s 3 turns for ‘zork’ and ‘deadline’.
playing these games long ago i don’t think i ever realized that or had forgotten.
thx.
EDIT:
duh, now that i think back, i definitely remember playing old infocom games where an interrupt would fire during a ‘wait’ and the game would ask something like “ms. dunbar comes into view to the west and heads to the north, do you want to keep waiting?”
i guess i’d forgotten about it since this isn’t really a thing in modern IF.
learning ZIL apparently involves relearning old game mechanics (along with learning how to decipher crazy-nested brackets).
Yeah, it’s slightly odd, but the thing about ZIL is everything is so easy to modify since you have it right in front of you. So of you change <GLOBAL STANDARD-WAIT 4> to <GLOBAL STANDARD-WAIT 1>, then waiting only takes one turn. Admittedly, that’s one of the first things i changed when learning ZIL.