trinity
trinity copied to clipboard
Special cases shadowed by the SILLY-SPEAK? routine
trafficstars
The SILLY-SPEAK? routine is used in several verb routines to handle actions directed at persons. But since it has a case for when PRSO doesn't have the PERSON bit:
(<NOT <IS? ,PRSO ,PERSON>>
<NOT-LIKELY ,PRSO "would respond">
<PCLEAR>
<RTRUE>)
it sometimes blocks interesting special cases if it's called too early. This bug report aims to collect those, or at the very least the ones I deemed interesting.
First up is V-ALARM, which has these special cases that are never reached:
(<PRSO? DSKINK DLEM DMEEP>
<THIS-IS-NOT "The Greatest Story Ever Told">
<RTRUE>)
(<IS? ,PRSO ,LIVING>
<TELL CTHEO>
<IS-ARE>
<TELL "already wide awake." CR>
<RTRUE>)>
I think the SILLY-SPEAK? call should come after these, i.e. something like this:
<ROUTINE V-ALARM ()
<COND (<PRSO? ROOMS ME>
<TELL ,YOURE-ALREADY "wide awake." CR>
<RTRUE>)
(<PRSO? DSKINK DLEM DMEEP>
<THIS-IS-NOT "The Greatest Story Ever Told">
<RTRUE>)
(<IS? ,PRSO ,LIVING>
<TELL CTHEO>
<IS-ARE>
<TELL "already wide awake." CR>
<RTRUE>)
(<SILLY-SPEAK?>
<RFATAL>)>
<IMPOSSIBLE>
<RTRUE>>
V-THANK has this one:
<COND (<PRSO? ME>
<TELL "Self-congratulations">
<WONT-HELP>
<RTRUE>)>
Though in this case, "THANK ME" seems to be caught even earlier, in PERFORM:
(<AND <EQUAL? ,WINNER ,PLAYER>
<EQUAL? .O ,ME>
<VERB? TELL TELL-ABOUT ASK-ABOUT ASK-FOR
QUESTION REPLY THANK YELL HELLO GOODBYE
SAY ALARM>>
<COND (<ZERO? .WHO>
<TALK-TO-SELF>
<RFATAL>)
(T
<SETG WINNER .WHO>
<SPOKEN-TO .WHO>)>)>