the-infocom-files / seastalker

Seastalker
3 stars 3 forks source link

The game sometimes tells you who's in an adjacent room, but not in verbose mode? #28

Open eriktorbjorn opened 4 years ago

eriktorbjorn commented 4 years ago
>BRIEF
(Okay, you will get brief descriptions.)

>LOOK
(reception area)
You're now at the foot of the ladder.
Tip is here.
Mick Antrim is here.
Marv Siegel is here.

>WEST
(southwest deck)
Mick Antrim is off to the east.
Marv Siegel is off to the east.

Tip follows you into the southwest deck.

>EAST
(reception area)

Tip follows you into the reception area.
Mick Antrim is here.
Marv Siegel is here.

>VERBOSE
(Okay, you will get verbose descriptions.)
(reception area)
You're now at the foot of the ladder.
Tip is here.
Mick Antrim is here.
Marv Siegel is here.

>WEST
(southwest deck)
From here, you can go west or south into the building.

Tip follows you into the southwest deck.

(Note that the "Name is to the direction." messages are printed even in superbrief mode, which looks even stranger because when you enter the room where they are it won't describe them since object descriptions are suppressed.)

The "Name is off to the direction." message is printed by CORRIDOR-CHECK, which is called by CORRIDOR-LOOK. This routine is called in a couple of different places, DESCRIBE-ROOM being one of them.

But when printing the complete room description, it will apparently return before it gets to call CORRIDOR-LOOK. This seems strange to me. It could be deliberate, but...

eriktorbjorn commented 4 years ago

Correction, the bug probably only happens if the room description is printed by an action routine:

        <COND (<AND .V? <APPLY <GETP ,HERE ,P?ACTION> ,M-LOOK>>
               <FSET ,HERE ,TOUCHBIT>
               <RTRUE>)
              (<AND .V? <SET STR <GETP ,HERE ,P?FDESC>>>
               <TELL .STR CR>)
              (<AND .V? <SET STR <GETP ,HERE ,P?LDESC>>>
               <TELL .STR CR>)
              (T <APPLY <GETP ,HERE ,P?ACTION> ,M-FLASH>)>

The following games have CORRIDOR-CHECK and CORRIDOR-LOOK routines:

From a quick look, it seems like:

But don't take my word for it.

I guess it's extra noticeable in Seastalker because it uses action routines in a couple of places where rooms have similar descriptions. Including in the example above.