abyss/top.zabstr
historicalsource 2ac9da82cb Final Revision
2019-04-14 16:25:39 -04:00

112 lines
5.6 KiB
Plaintext

<FLAGS-AND-DEFAULTS (("UNDO" T)("P-BE-VERB" T)("IN-ZILCH" T)(
"P-DEBUGGING-PARSER" T)) (("SPEAKING-VERB?" "DEFS" #WORD *13502340306*) (
"ASKING-VERB-WORD?" "DEFS" #WORD *22532376516*) ("NOT-HERE" "DEFS" #WORD
*15356621152*) ("CAPITAL-NOUN?" "DEFS" #WORD *23200723325*) ("ITAKE-CHECK"
"DEFS" #WORD *02210465225*) ("SEE-VERB?" "DEFS" #WORD *04241040772*) (
"TELL-SAID-TO" "DEFS" #WORD *30047521107*) ("FIND-A-WINNER" "DEFS" #WORD
*04477330146*) ("NO-M-WINNER-VERB?" "DEFS" #WORD *20532131111*) (
"VERB-ALL-TEST" "DEFS" #WORD *22564325057*) ("OWNERS" "DEFS" #WORD
*32225547276*))>
<INCLUDE "BASEDEFS" "PBITDEFS" "PDEFS">
<FILE-FLAGS MDL-ZIL?>
<BEGIN-SEGMENT 0>
<DEFAULTS-DEFINED ADJ-USED? ASKING-VERB-WORD? CANT-UNDO CAPITAL-NOUN?
FIND-A-WINNER ITAKE-CHECK META-LOC MORE-SPECIFIC NO-M-WINNER-VERB? NOT-HERE
NOUN-USED? OWNERS P-PRONOUNS SEE-VERB? SIBREAKS SPEAKING-VERB? TELL-PRONOUN
TELL-SAID-TO TELL-TOO-DARK VERB-ALL-TEST>
<DEFAULT-DEFINITION SIBREAKS <SETG20 SIBREAKS ".,\"'!?">>
<DEFAULT-DEFINITION OWNERS <CONSTANT OWNERS <TABLE (PURE LENGTH) PLAYER>>>
<DEFAULT-DEFINITION MORE-SPECIFIC <ROUTINE MORE-SPECIFIC>>
<SYNTAX \#DBG = V-PDEBUG>
<GLOBAL P-DBUG:FLAG <>>
<GLOBAL IDEBUG:FLAG <>>
<CONSTANT G-DEBUG 69>
<DEFINE-ROUTINE V-PDEBUG>
<GLOBAL P-PRSI <>>
<GLOBAL P-PRSO <>>
<GLOBAL PRSA 0 <OR VERB FALSE>>
<GLOBAL PRSQ 0>
<GLOBAL PRSS:OBJECT 0>
<GLOBAL PRSI:OBJECT 0>
<GLOBAL PRSO:OBJECT 0>
<GLOBAL P-MULT <>>
<GLOBAL OPRSO <>>
<GLOBAL P-CONT:NUMBER 0>
<CONSTANT P-LEXWORDS 1>
<CONSTANT P-LEXSTART 1>
<CONSTANT P-LEXELEN 2>
<CONSTANT P-WORDLEN 4>
<GLOBAL P-WON <>>
<DEFMAC RFATAL () '<PROG () <PUSH 2> <RSTACK>>>
<GLOBAL P-PRSA-WORD <>>
<GLOBAL PRSO-NP <>>
<GLOBAL PRSI-NP <>>
<GLOBAL CLOCKER-RUNNING:NUMBER 2>
<GLOBAL P-CAN-UNDO:NUMBER 0>
<DEFAULT-DEFINITION VERB-ALL-TEST <DEFINE VERB-ALL-TEST (O I "AUX" L) <SET L <
LOC .O>> <COND (<VERB? DROP GIVE> <COND (<EQUAL? .L ,WINNER> <RTRUE>) (T <
RFALSE>)>) (<VERB? PUT> <COND (<EQUAL? .O .I> <RFALSE>) (<NOT <IN? .O .I>> <
RTRUE>) (T <RFALSE>)>) (<VERB? TAKE> <COND (<AND <NOT <FSET? .O ,TAKEBIT>> <NOT
<FSET? .O ,TRYTAKEBIT>>> <RFALSE>)> <COND (<NOT <ZERO? .I>> <COND (<NOT <EQUAL?
.L .I>> <RFALSE>)>) (<EQUAL? .L ,HERE> <RTRUE>)> <COND (<OR <FSET? .L ,
PERSONBIT> <FSET? .L ,SURFACEBIT>> <RTRUE>) (<AND <FSET? .L ,CONTBIT> <FSET? .L
,OPENBIT>> <RTRUE>) (T <RFALSE>)>) (<NOT <ZERO? .I>> <COND (<NOT <EQUAL? .O .I>
> <RTRUE>) (T <RFALSE>)>) (T <RTRUE>)>>>
<DEFINE-ROUTINE FIX-HIM-HER-IT>
<DEFAULT-DEFINITION TELL-PRONOUN <ROUTINE TELL-PRONOUN>>
<DEFAULT-DEFINITION NO-M-WINNER-VERB? <CONSTANT NO-M-WINNER-VERB-TABLE <PLTABLE
V?TELL-ABOUT V?SGIVE V?SSHOW V?SRUB V?SPUT-ON>> <DEFINE NO-M-WINNER-VERB? () <
COND (<INTBL? ,PRSA <ZREST ,NO-M-WINNER-VERB-TABLE 2> <ZGET ,
NO-M-WINNER-VERB-TABLE 0>> <RTRUE>)>>>
<DEFAULT-DEFINITION FIND-A-WINNER <DEFINE FIND-A-WINNER ACT ("OPT" (RM ,HERE))
<COND (<AND <T? ,QCONTEXT> <IN? ,QCONTEXT .RM>> ,QCONTEXT) (T <REPEAT ((OTHER <
FIRST? .RM>) (WHO <>) (N 0)) <COND (<ZERO? .OTHER> <RETURN .WHO .ACT>) (<AND <
FSET? .OTHER ,PERSONBIT> <NOT <FSET? .OTHER ,INVISIBLE>> <NOT <EQUAL? .OTHER ,
PLAYER>>> <COND (<G? <SET N <+ 1 .N>> 1> <RETURN <> .ACT>)> <SET WHO .OTHER>)>
<SET OTHER <NEXT? .OTHER>>>)>>>
<DEFAULT-DEFINITION TELL-SAID-TO <DEFINE TELL-SAID-TO (PER) <TELL "[said to " D
.PER "]" CR>>>
<GLOBAL QCONTEXT:OBJECT <>>
<DEFINE-ROUTINE QCONTEXT-GOOD?>
<DEFAULT-DEFINITION META-LOC <ROUTINE META-LOC>>
<DEFAULT-DEFINITION P-PRONOUNS <GLOBAL P-IT-OBJECT:OBJECT <>> <GLOBAL
P-THEM-OBJECT:OBJECT <>> <GLOBAL P-HER-OBJECT:OBJECT <>> <GLOBAL P-HIM-OBJECT:
OBJECT <>>>
<DEFAULT-DEFINITION CANT-UNDO <IF-UNDO <ROUTINE CANT-UNDO>>>
<DEFINE-ROUTINE CANT-UNDO>
<GLOBAL NOW-PRSI:FLAG <>>
<GLOBAL OBJ-SWAP:FLAG <>>
<OBJECT NOT-HERE-OBJECT (CONTFCN 0) (THINGS 0)>
<DEFAULT-DEFINITION SEE-VERB? <DEFINE SEE-VERB? () <VERB? CHASTISE EXAMINE FIND
LOOK LOOK-BEHIND LOOK-DOWN LOOK-INSIDE LOOK-UNDER LOOK-UP READ SEARCH>>>
<DEFINE-ROUTINE PERFORM>
<DEFAULT-DEFINITION TELL-TOO-DARK <ROUTINE TELL-TOO-DARK>>
<DEFAULT-DEFINITION ITAKE-CHECK <DEFINE ITAKE-CHECK (OBJ BITS "AUX" (TAKEN <>))
<COND (<==? .OBJ ,IT> <SET OBJ ,P-IT-OBJECT>) (<==? .OBJ ,THEM> <SET OBJ ,
P-THEM-OBJECT>)> <COND (<AND <NOT <HELD? .OBJ ,WINNER>> <NOT <EQUAL? .OBJ ,
HANDS ,ROOMS>>> <COND (<FSET? .OBJ ,TRYTAKEBIT> T) (<NOT <==? ,WINNER ,PLAYER>>
<SET TAKEN T>) (<AND <BTST .BITS ,SEARCH-DO-TAKE> <==? <ITAKE <> .OBJ> T>> <SET
TAKEN T>)> <COND (<AND <NOT .TAKEN> <BTST .BITS ,SEARCH-MUST-HAVE> <NOT <BTST .
BITS ,SEARCH-MOBY>>> <TELL !\[> <COND (<EQUAL? ,WINNER ,PLAYER> <TELL "You are"
>) (T <TELL-CTHE ,WINNER> <TELL " is">)> <TELL "n't holding "> <TELL-THE .OBJ>
<THIS-IS-IT .OBJ> <TELL "!]" CR> <RTRUE>)>)>>>
<DEFINE-ROUTINE TELL-D-LOC>
<DEFINE-ROUTINE D-APPLY>
<DEFAULT-DEFINITION CAPITAL-NOUN? <DEFINE CAPITAL-NOUN? (NAM) <>>>
<DEFAULT-DEFINITION NOT-HERE <DEFINE NOT-HERE (OBJ "OPT" (CLOCK <>)) <COND (<
ZERO? .CLOCK> <SETG CLOCK-WAIT T> <TELL "[But">)> <TELL !\ > <TELL-THE .OBJ> <
IFFLAG (P-BE-VERB <PRINT-IS/ARE .OBJ>) (T <TELL " is">)> <TELL "n't "> <COND (<
VISIBLE? .OBJ> <TELL "close enough"> <COND (<SPEAKING-VERB?> <TELL
" to hear you">)> <TELL !\.>) (T <TELL "here!">)> <THIS-IS-IT .OBJ> <COND (<
ZERO? .CLOCK> <TELL !\]>)> <CRLF>>>
<DEFAULT-DEFINITION ASKING-VERB-WORD? <ADD-WORD ASK ASKWORD> <ADD-WORD ORDER
ASKWORD> <ADD-WORD TELL ASKWORD>>
<DEFAULT-DEFINITION SPEAKING-VERB? <DEFINE SPEAKING-VERB? ("OPT" (A ,PRSA)) <
COND (<EQUAL? .A ,V?ANSWER ,V?ASK-ABOUT ,V?ASK-FOR ,V?HELLO ,V?NO ,V?REPLY ,
V?TELL ,V?TELL-ABOUT ,V?YES> <COND (T <RTRUE>)>)>>>
<DEFINE-ROUTINE GET-OWNER>
<DEFINE-ROUTINE GET-NP>
<DEFAULT-DEFINITION NOUN-USED? <ROUTINE NOUN-USED?>>
<DEFAULT-DEFINITION ADJ-USED? <ROUTINE ADJ-USED?>>
<END-SEGMENT>