the-infocom-files / suspect

Suspect
3 stars 2 forks source link

You can sometimes use the phone, even when there is no phone nearby #24

Open eriktorbjorn opened 4 years ago

eriktorbjorn commented 4 years ago
>EXAMINE PHONE
You can't see the telephone here.

>CALL POLICE
If you yell loud enough, perhaps you can overcome the lack of a telephone.

>CALL TAXI
Since this is late on a rainy, disgusting night, the taxi company has all its
telephones off the hook. Too bad.

>CALL SHOP
A tired-sounding voice answers. "Costumes Unlimited, Jack speaking. We're
closing at ten. We don't have many costumes left. Better make it quick."

>CALL WEATHER
There doesn't seem to be a telephone here.

POLICE-F checks if there is a phone nearby:

        <COND (<NOT <GLOBAL-IN? ,TELEPHONE ,HERE>>
               <TELL
"If you yell loud enough, perhaps you can overcome the lack of a
telephone." CR>
               <RTRUE>)>

And so does V-PHONE, as shown by the nonsense "CALL WEATHER" above:

     <COND (<NOT <GLOBAL-IN? ,TELEPHONE ,HERE>>
        <THERE-DOESNT-SEEM>
        <TELL A ,TELEPHONE>
        <TELL-HERE>)

But TAXI-F and SHOP-F do not.

By the way, there is a PRE-PHONE. It would be possible to put the check there, but I don't know... it's probably less intrusive to just add checks to the taxi and the shop. In some other games, "CALL" is also used to attract someone's attention. (Though apparently not in this game?)

eriktorbjorn commented 4 years ago

Not being able to call someone's attention may be a bug. It does work if there is a phone in the room:

>EXAMINE PHONE
There's nothing special about the telephone.

>CALL MARSTON
Colonel Marston is listening.

Because V-PHONE checks for a telephone before it checks if you're trying to call someone's attention:

<ROUTINE V-PHONE ("AUX" PER)
     <COND (<NOT <GLOBAL-IN? ,TELEPHONE ,HERE>>
        <THERE-DOESNT-SEEM>
        <TELL A ,TELEPHONE>
        <TELL-HERE>)
           (<AND <FSET? ,PRSO ,PERSON>
             <SET PER <CHARACTERIZE ,PRSO>>
             <NEARBY? .PER>>
        <PERFORM ,V?$CALL ,PRSO>
        <RTRUE>)

On the other hand, repeatedly calling someone's attention is a good way of messing with the actor's schedule in other games (because he or she will stay in the room instead of moving away), so fixing this may cause other problems.

eriktorbjorn commented 4 years ago

One more:

>EXAMINE PHONE
You can't see any telephone here.

>CALL EARL DAVIS JACKSON
There's no answer.

(Earl Davis Jackson is your editor, according to the game's feelies.)

So JACKSON-F should also have a check for if there's a phone nearby.