the-infocom-files / amfv

A Mind Forever Voyaging
5 stars 2 forks source link

Time does not pass on the first move #61

Open eriktorbjorn opened 4 years ago

eriktorbjorn commented 4 years ago

At the very start of the game...

>TIME
It is 7:07pm.

>JUMP
A difficult task for an immobile computer.

>TIME
It is 7:07pm.

>JUMP
A difficult task for an immobile computer.

>TIME
It is 7:08pm.

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:

It is then cleared by CLOCKER.

When it's set, MAIN-LOOP-1 will not call INCREMENT-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 set CLOCK-WAIT to ensure that no more time passes on this move.

But in this game, CLOCK-WAIT starts out being T, 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?

eriktorbjorn commented 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?