trinity icon indicating copy to clipboard operation
trinity copied to clipboard

Special cases shadowed by the SILLY-SPEAK? routine

Open eriktorbjorn opened this issue 5 years ago • 1 comments
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>>

eriktorbjorn avatar Sep 07 '20 06:09 eriktorbjorn

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>)>)>

eriktorbjorn avatar Sep 07 '20 10:09 eriktorbjorn