Open eriktorbjorn opened 4 years ago
The way time passes does seem a bit strange, but I don't know if that's specific to this game or not. Consider I-CAFETERIA
:
<ROUTINE I-CAFETERIA ()
<COND (<NOT <EQUAL? ,HERE ,CAFETERIA>>
<DISABLE <INT I-CAFETERIA>>)
(<EQUAL? ,TIME 480 705 1035>
<TELL CR "The room begins to fill with mealtime crowds." CR>)
(<EQUAL? ,TIME 570 795 1125>
<TELL CR "The mealtime crowds begin to disperse." CR>)>
<RFALSE>>
>TIME
It is 7:59am.
>LOOK
PRISM Facility Cafeteria
From this communication outlet, located in an upper corner of this high-
ceilinged room, you can see most of the huge PRISM Facility dining hall. The
tables below you are occupied by a handful of diners. Through the tall glass
windows of the cafeteria you can see the well-manicured lawns that surround the
Facility.
The room begins to fill with mealtime crowds.
>WAIT 1 MINUTE
Time passes...
The room begins to fill with mealtime crowds.
Apparently if you wait immediately after the I-CAFETERIA
message is triggered, it gets triggered again. So TIME
wasn't increased between the two calls to I-CAFETERIA
?
At the very start of the game...
So no time passed when I first typed "JUMP", but the second time it did.
I think this is because of the variable
CLOCK-WAIT
. It's set when:SIM-SLEEP
).V-WAIT
).It is then cleared by
CLOCKER
.When it's set,
MAIN-LOOP-1
will not callINCREMENT-TIME
. I think the idea here is that if when you wait or use sleep mode, those commands are responsible for advancing the time, triggering time events, etc, so they setCLOCK-WAIT
to ensure that no more time passes on this move.But in this game,
CLOCK-WAIT
starts out beingT
, and that is unlike any other Infocom game as far as I can tell. Perhaps<GLOBAL CLOCK-WAIT T>
should be<GLOBAL CLOCK-WAIT <>>
instead in this one, too?