the-infocom-files / starcross

Starcross
5 stars 3 forks source link

The geography of the Starcross airlock is confusing #72

Open eriktorbjorn opened 4 years ago

eriktorbjorn commented 4 years ago

The Bridge of The Starcross says you can go "out" to go to the airlock. From BRIDGE-EXITS you can see that it also accepts south:

<ROUTINE BRIDGE-EXITS ()
     <COND (<==? ,PRSO ,P?WEST> ,SPACESHIP-QUARTERS)
           (<==? ,PRSO ,P?EAST> ,SPACESHIP-STORES)
           (<EQUAL? ,PRSO ,P?OUT ,P?SOUTH>
        <COND (<FSET? ,AIRLOCK-INNER ,OPENBIT> ,SPACESHIP-AIRLOCK)
              (T <ITS-CLOSED ,AIRLOCK-INNER>)>)>>

So far, so good. But then we have the exits from the airlock:

<ROOM SPACESHIP-AIRLOCK
      (IN ROOMS)
      (DESC "Airlock")
      (SOUTH TO SPACESHIP-BRIDGE IF AIRLOCK-INNER IS OPEN)
      (IN TO SPACESHIP-BRIDGE IF AIRLOCK-INNER IS OPEN)
      (NORTH PER AIRLOCK-EXIT-FCN)
      (OUT PER AIRLOCK-EXIT-FCN)
      (UP PER AIRLOCK-EXIT-FCN)
      (FLAGS RLANDBIT ONBIT)
      (ACTION AIRLOCK-FCN)
      (GLOBAL AIRLOCK AIRLOCK-INNER AIRLOCK-OUTER ALARM SAFETY-HOOK)>

So to get back from the airlock to the bridge, you walk in or south. Note that in release 15, it was north. It may not have worked correctly, though, since there were two different exits to the north:

<ROOM SPACESHIP-AIRLOCK
      (IN ROOMS)
      (DESC "Airlock")
      (NORTH TO SPACESHIP-BRIDGE IF AIRLOCK-INNER IS OPEN)
      (IN TO SPACESHIP-BRIDGE IF AIRLOCK-INNER IS OPEN)
      (NORTH PER AIRLOCK-EXIT-FCN)
      (OUT PER AIRLOCK-EXIT-FCN)
      (UP PER AIRLOCK-EXIT-FCN)
      (FLAGS RLANDBIT ONBIT)
      (ACTION AIRLOCK-FCN)
      (GLOBAL AIRLOCK AIRLOCK-INNER AIRLOCK-OUTER ALARM SAFETY-HOOK)>

To leave the ship, you go out up or north. But ADVENTURER-FCN thinks that the ways to leave the airlock without being restricted by the safety line are south, out and down:

<ROUTINE ADVENTURER-FCN ()
     <COND (<==? ,ADVENTURER ,WINNER>
        <COND (<AND ,THAT-END
                ,THIS-END
                <IN? ,SPACESUIT ,WINNER>
                <VERB? WALK>
                <NOT <AND <EQUAL? ,HERE ,YELLOW-DOCK>
                      <EQUAL? ,PRSO ,P?WEST>>>
                <NOT <AND <EQUAL? ,HERE ,YELLOW-DOCK-EDGE>
                      <EQUAL? ,PRSO ,P?EAST>>>
                <NOT <AND <EQUAL? ,HERE
                          ,SPACESHIP-AIRLOCK>
                      <EQUAL? ,PRSO ,P?SOUTH ,P?OUT P?DOWN>>>
                <NOT <AND <EQUAL? ,HERE ,DEEP-SPACE>
                      <EQUAL? ,PRSO ,P?IN>>>>
               <TELL
"The safety line prevents you from leaving, as it is only about
five meters long. You must detach it to leave." CR>)

I think it would make the most sense if the way back to the bridge from the airlock was north and in, and the ways out were out, south and up.