the-infocom-files / seastalker

Seastalker
3 stars 3 forks source link

Shouldn't BADGES-RED be called regardless of where in the Aquadome you are? #36

Open eriktorbjorn opened 4 years ago

eriktorbjorn commented 4 years ago

While testing the DESCFCN of Mick Antrim, I noticed this part of DESCRIBE-COLLAPSE:

          (T
           <COND (<FSET? ,AIR-SUPPLY-SYSTEM ,MUNGBIT>
              <COND (,BADGES-RED-SAID?
                 <DESCRIBE-PERSON .PER "using Oxygen Gear">)
                (T
                 <DESCRIBE-PERSON .PER
                          "looking at you anxiously">)>)
             (T
             <DESCRIBE-PERSON .PER>)>)>)

So I went straight into the dome center and called for Mick ("CALL MICK") to join me. All the time during the oxygen crisis, he was described as "Mick Antrim is looking at you anxiously." That's because BADGES-RED-SAID? was never set.

This variable is set by the BADGES-RED routine. It's called in a couple of places, but the only one I've figured out how to trigger so far is to wait in the reception area:

>WAIT
(I assume you mean: wait 10 turns.)
Time passes...
Suddenly you realize that Zoe is literally gasping for breath. Her face is
turning reddish-purple! She clutches her throat...
Everyone, including yourself, is having trouble breathing!
Do you want to keep waiting? >YES

Someone shouts, "Our badges are turning red! The air's bad! Everyone use your
Emergency Oxygen Gear!"

>NORTH
(dome center)
You're in the very center of the Aquadome, where the Air Supply System rises
like a tower, almost to the top of the dome itself.

Tip follows you into the dome center.
You are having trouble breathing.

>CALL MICK
"Right here, Torbjorn," he replies. "What would you like me to do?"
You are having trouble breathing.

>LOOK
(dome center)
You're in the very center of the Aquadome, where the Air Supply System rises
like a tower, almost to the top of the dome itself.
Mick Antrim is using Oxygen Gear.
Tip is looking at you anxiously.
You are having trouble breathing.

It seems strange to me that there are cases when BADGES-RED isn't called.

eriktorbjorn commented 4 years ago

Another oddity is that if you call Mick to the docking tank during the oxygen crisis, he will be described as "Mick Antrim is working on the SCIMITAR." as if nothing out of the ordinary was happening. That's dedication!

<ROUTINE ANTRIM-F ("OPTIONAL" (ARG <>) "AUX" OBJ X SUB0 SUB1)
 <COND (<==? .ARG ,M-OBJDESC>
    <COND (<IN? ,ANTRIM ,AIRLOCK>
           <DESCRIBE-PERSON ,ANTRIM "working on the SCIMITAR">)
          (T <DESCRIBE-COLLAPSE ,ANTRIM>)>
    <RTRUE>)
eriktorbjorn commented 4 years ago

One of the cases where BADGES-RED is called is in COMMON-ASK-ABOUT, if you ask someone about the problem:

       (<OR <EQUAL? .OBJ ,PROBLEM>
        <AND ,DEPTH-WARNING
         <EQUAL? .OBJ ,DEPTHFINDER-LIGHT ,ALARM-SUB>>
        <AND <OR ,SONAR-WARNING ,SHIP-WARNING>
         <EQUAL? .OBJ ,SONARSCOPE-LIGHT ,ALARM-SUB>>>
    <COND (<OR ,DEPTH-WARNING ,SONAR-WARNING ,SHIP-WARNING>
           <TELL "\"I think you're going too close to "
               <COND (,DEPTH-WARNING "the bottom") (T "an obstacle")>
               ", " FN ".\"" CR>)
          (<AND ,DOME-AIR-BAD? <FSET? ,AIR-SUPPLY-SYSTEM ,MUNGBIT>>
           <BADGES-RED>
           <RTRUE>)
          (T <TELL D .PER " says, \"I don't know, " FN ".\"" CR>)>)

But I haven't been able to trigger that. I think you can only get it if you ask while the air supply system is broken, but if I do that something (perhaps the GRAB-ATTENTION routine?) will intercept and ask me "Shouldn't you fix the Air Supply System first?".