the-infocom-files / cutthroats

Cutthroats
3 stars 3 forks source link

"TOUCH person" inconsistency #6

Open eriktorbjorn opened 4 years ago

eriktorbjorn commented 4 years ago
>TOUCH THE WEASEL
"Get your hands off me!"

>TOUCH THE CLERK
Fiddling with the desk clerk has no effect.

This is how V-RUB works:

<ROUTINE V-RUB ()
     <COND (<FSET? ,PRSO ,PERSON>
        <TELL-HANDS-OFF>)
           (T <HACK-HACK "Fiddling with">)>>

<ROUTINE TELL-HANDS-OFF ()
     <TELL "\"Get your hands off me!\"" CR>>

The difference here is that the clerk doesn't have the PERSON bit.

Apparently there are two ways the game can denote a living thing: PERSON and VICBIT. As far as I can tell, everything with PERSON also has VICBIT, but not everything with VICBIT has PERSON:

Object PERSON VICBIT
GLOBAL-OBJECT :heavy_check_mark: :heavy_check_mark:
ADVENTURER :heavy_check_mark: :heavy_check_mark:
ME :heavy_check_mark: :heavy_check_mark:
GLOBAL-SELF :heavy_check_mark:
PARROT :heavy_check_mark:
MCGINTY :heavy_check_mark: :heavy_check_mark:
JOHNNY :heavy_check_mark: :heavy_check_mark:
PETE :heavy_check_mark: :heavy_check_mark:
WEASEL :heavy_check_mark: :heavy_check_mark:
DELIVERY-BOY :heavy_check_mark:
SPEAR-CARRIER :heavy_check_mark:

(SPEAR-CARRIER is a multi-purpose character who appears at various places in the game as the desk clerk, the salesman, the bartender and the teller.)

Should some of these "victims" also be "persons"? Should V-RUB be changed? Neither? Both? I haven't checked what else PERSON implies...

eriktorbjorn commented 4 years ago

I guess adding the PERSON bit may mess up V-CALL, and possibly others. So it's probably better to change the routines that test for PERSON, but not VICBIT, where appropriate.