Revision 27 (Original Source)
commit
ad6dc28bb2
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,82 @@
|
|||
"CLOCK for
|
||||
DEADLINE
|
||||
Copyright 1982 Infocom, Inc. All rights reserved.
|
||||
"
|
||||
|
||||
<CONSTANT C-TABLELEN 300>
|
||||
|
||||
<GLOBAL C-TABLE <ITABLE NONE 300>>
|
||||
|
||||
<GLOBAL C-DEMONS 300>
|
||||
|
||||
<GLOBAL C-INTS 300>
|
||||
|
||||
<CONSTANT C-INTLEN 6>
|
||||
|
||||
<CONSTANT C-ENABLED? 0>
|
||||
|
||||
<CONSTANT C-TICK 1>
|
||||
|
||||
<CONSTANT C-RTN 2>
|
||||
|
||||
<ROUTINE DEMON (RTN TICK "AUX" CINT)
|
||||
#DECL ((RTN) ATOM (TICK) FIX (CINT) <PRIMTYPE VECTOR>)
|
||||
<PUT <SET CINT <INT .RTN T>> ,C-TICK .TICK>
|
||||
.CINT>
|
||||
|
||||
<ROUTINE QUEUE (RTN TICK "AUX" CINT)
|
||||
#DECL ((RTN) ATOM (TICK) FIX (CINT) <PRIMTYPE VECTOR>)
|
||||
<PUT <SET CINT <INT .RTN>> ,C-TICK .TICK>
|
||||
.CINT>
|
||||
|
||||
<ROUTINE INT (RTN "OPTIONAL" (DEMON <>) E C INT)
|
||||
#DECL ((RTN) ATOM (DEMON) <OR ATOM FALSE> (E C INT) <PRIMTYPE
|
||||
VECTOR>)
|
||||
<SET E <REST ,C-TABLE ,C-TABLELEN>>
|
||||
<SET C <REST ,C-TABLE ,C-INTS>>
|
||||
<REPEAT ()
|
||||
<COND (<==? .C .E>
|
||||
<SETG C-INTS <- ,C-INTS ,C-INTLEN>>
|
||||
<AND .DEMON <SETG C-DEMONS <- ,C-DEMONS ,C-INTLEN>>>
|
||||
<SET INT <REST ,C-TABLE ,C-INTS>>
|
||||
<PUT .INT ,C-RTN .RTN>
|
||||
<RETURN .INT>)
|
||||
(<==? <GET .C ,C-RTN> .RTN> <RETURN .C>)>
|
||||
<SET C <REST .C ,C-INTLEN>>>>
|
||||
|
||||
<GLOBAL CLOCK-WAIT <>>
|
||||
|
||||
;"SCORE INDICATES HOURS / MOVES = MINUTES"
|
||||
|
||||
<GLOBAL SCORE 8>
|
||||
<GLOBAL MOVES 0>
|
||||
|
||||
<ROUTINE CLOCKER ("AUX" C E TICK (FLG <>))
|
||||
#DECL ((C E) <PRIMTYPE VECTOR> (TICK) FIX (FLG) <OR FALSE ATOM>)
|
||||
<COND (,CLOCK-WAIT <SETG CLOCK-WAIT <>> <RFALSE>)>
|
||||
<SETG PRESENT-TIME <+ ,PRESENT-TIME 1>>
|
||||
<COND (<G? ,PRESENT-TIME 1199>
|
||||
<TELL
|
||||
"Chief Inspector Klutz walks up to you, seemingly from out of nowhere.
|
||||
\"I'm sorry, Inspector, but your time is up here. I'm sorry that you
|
||||
didn't have any more time to investigate the case. Maybe next time...\"
|
||||
He escorts you to a waiting police car, in which you go off into the
|
||||
sunset." CR>
|
||||
<QUIT>)>
|
||||
<COND (<G? <SETG MOVES <+ ,MOVES 1>> 59>
|
||||
<SETG MOVES 0>
|
||||
<COND (<G? <SETG SCORE <+ ,SCORE 1>> 23>
|
||||
<SETG SCORE 0>)>)>
|
||||
<SET C <REST ,C-TABLE <COND (,P-WON ,C-INTS) (T ,C-DEMONS)>>>
|
||||
<SET E <REST ,C-TABLE ,C-TABLELEN>>
|
||||
<REPEAT ()
|
||||
<COND (<==? .C .E> <RETURN .FLG>)
|
||||
(<NOT <0? <GET .C ,C-ENABLED?>>>
|
||||
<SET TICK <GET .C ,C-TICK>>
|
||||
<COND (<0? .TICK>)
|
||||
(T
|
||||
<PUT .C ,C-TICK <- .TICK 1>>
|
||||
<COND (<AND <NOT <G? .TICK 1>>
|
||||
<APPLY <GET .C ,C-RTN>>>
|
||||
<SET FLG T>)>)>)>
|
||||
<SET C <REST .C ,C-INTLEN>>>>
|
|
@ -0,0 +1,16 @@
|
|||
"(c) Copyright 1983 Infocom, Inc. All Rights Reserved."
|
||||
|
||||
<ROUTINE THIS-IT? (OBJ TBL "AUX" SYNS)
|
||||
<COND (<FSET? .OBJ ,INVISIBLE> <RFALSE>)
|
||||
(<AND ,P-NAM
|
||||
<NOT <ZMEMQ ,P-NAM
|
||||
<SET SYNS <GETPT .OBJ ,P?SYNONYM>>
|
||||
<- </ <PTSIZE .SYNS> 2> 1>>>>
|
||||
<RFALSE>)
|
||||
(<AND ,P-ADJ
|
||||
<OR <NOT <SET SYNS <GETPT .OBJ ,P?ADJECTIVE>>>
|
||||
<NOT <ZMEMQB ,P-ADJ .SYNS <- <PTSIZE .SYNS> 1>>>>>
|
||||
<RFALSE>)
|
||||
(<AND <NOT <0? ,P-GWIMBIT>> <NOT <FSET? .OBJ ,P-GWIMBIT>>>
|
||||
<RFALSE>)>
|
||||
<RTRUE>>
|
|
@ -0,0 +1,53 @@
|
|||
"COMPILE FILE for
|
||||
DEADLINE
|
||||
Copyright 1982 Infocom, Inc. All rights reserved.
|
||||
"
|
||||
|
||||
;<SNAME "INFOCOM.DEADLINE">
|
||||
|
||||
<COND (<GASSIGNED? PREDGEN>
|
||||
<PRINC "Compiling">
|
||||
<ID 0>)
|
||||
(T <PRINC "Loading">)>
|
||||
|
||||
<PRINC " DEADLINE: An INTERLOGIC Mystery
|
||||
">
|
||||
|
||||
<BLOAT 90000 0 0 3500 0 0 0 0 0 512>
|
||||
|
||||
<SET REDEFINE T>
|
||||
|
||||
<GLOBAL BIGFIX 10000>
|
||||
|
||||
<OR <GASSIGNED? ZILCH>
|
||||
<SETG WBREAKS <STRING !\" !,WBREAKS>>>
|
||||
|
||||
<OR <GASSIGNED? INSERT-CRUFTY>
|
||||
<DEFINE INSERT-CRUFTY (STR) <IFILE .STR T>>>
|
||||
|
||||
<DEFINE IFILE (STR "OPTIONAL" (FLOAD? <>) "AUX" (TIM <TIME>))
|
||||
<INSERT-FILE .STR .FLOAD?>>
|
||||
|
||||
<IFILE "DUNGEON" T>
|
||||
|
||||
<PROPDEF SIZE 5>
|
||||
<PROPDEF CAPACITY 0>
|
||||
|
||||
<IFILE "SYNTAX" T>
|
||||
<ENDLOAD>
|
||||
<IFILE "MACROS" T>
|
||||
<IFILE "CLOCK" T>
|
||||
<IFILE "MAIN" T>
|
||||
<IFILE "PARSER" T>
|
||||
<INSERT-CRUFTY "CRUFTY">
|
||||
<IFILE "VERBS" T>
|
||||
<IFILE "ACTIONS" T>
|
||||
<IFILE "GOAL" T>
|
||||
|
||||
<GC-MON T>
|
||||
<GC 0 T 5>
|
||||
|
||||
|
||||
|
||||
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,730 @@
|
|||
"GOAL for
|
||||
DEADLINE
|
||||
Copyright 1982 Infocom, Inc. All rights reserved.
|
||||
"
|
||||
|
||||
"This code is the local T system. There are four transit lines:
|
||||
TOP-OF-THE-LINE, BOTTOM-LINE, FOOD-LINE, and OUTSIDE-LINE,
|
||||
corresponding to upstairs, downstairs, kitchen area, and outside.
|
||||
There are routes for each of these lines and transfer points. Much of
|
||||
this is done for the general case, except transfers. Sigh."
|
||||
|
||||
<GLOBAL DIR-STRINGS
|
||||
<TABLE P?NORTH "north" P?SOUTH "south"
|
||||
P?EAST "east" P?WEST "west"
|
||||
P?NW "northwest" P?NE "northeast"
|
||||
P?SW "southwest" P?SE "southeast"
|
||||
P?DOWN "downstairs" P?UP "upstairs"
|
||||
P?IN "in" P?OUT "out">>
|
||||
|
||||
<GLOBAL TOP-OF-THE-LINE
|
||||
<TABLE 0 LIBRARY-BALCONY P?SOUTH
|
||||
P?NORTH LIBRARY P?SOUTH
|
||||
P?NORTH CORRIDOR-4 P?EAST
|
||||
P?WEST CORRIDOR-3 P?EAST
|
||||
P?WEST CORRIDOR-2 P?EAST
|
||||
P?WEST CORRIDOR-1 P?EAST
|
||||
P?WEST STAIR-TOP P?SOUTH
|
||||
P?NORTH SHALL-11 P?EAST
|
||||
P?WEST SHALL-12 0 >>
|
||||
|
||||
<GLOBAL BOTTOM-LINE
|
||||
<TABLE 0 FOYER P?NORTH
|
||||
P?SOUTH NFOYER P?NORTH
|
||||
P?WEST STAIR-BOTTOM P?SOUTH
|
||||
P?NORTH SHALL-1 P?EAST
|
||||
P?WEST SHALL-2 P?EAST
|
||||
P?WEST SHALL-3 0>>
|
||||
|
||||
<GLOBAL OUTSIDE-LINE
|
||||
<TABLE 0 FRONT-PATH P?EAST
|
||||
P?WEST EAST-OF-DOOR P?NE
|
||||
P?SOUTH EAST-SIDE P?EAST
|
||||
P?WEST EAST-LAWN P?NW
|
||||
P?SE ORCHARD P?NORTH
|
||||
P?SE NORTH-LAWN P?SOUTH
|
||||
P?NORTH ROSE-GARDEN P?WEST
|
||||
P?NE WEST-LAWN P?EAST
|
||||
P?WEST WEST-SIDE P?SOUTH
|
||||
P?NW WEST-OF-DOOR P?SOUTH
|
||||
P?NORTH SOUTH-LAWN 0>>
|
||||
|
||||
<GLOBAL FOOD-LINE
|
||||
<TABLE 0 DINING-ROOM P?EAST
|
||||
P?WEST CORNER P?NORTH
|
||||
P?SOUTH KITCHEN P?EAST
|
||||
P?WEST PANTRY 0>>
|
||||
|
||||
"Rapid Transit Line Identifiers"
|
||||
|
||||
<CONSTANT TOP-OF-THE-LINE-C 0>
|
||||
<CONSTANT BOTTOM-LINE-C 1>
|
||||
<CONSTANT OUTSIDE-LINE-C 2>
|
||||
<CONSTANT FOOD-LINE-C 3>
|
||||
|
||||
<ROUTINE UNPRIORITIZE (PERSON "AUX" GT)
|
||||
<SET GT <GET ,GOAL-TABLES <GETP .PERSON ,P?CHARACTER>>>
|
||||
<PUT .GT ,GOAL-PRIORITY <>>
|
||||
<COND (<GET .GT ,GOAL-QUEUED>
|
||||
<ESTABLISH-GOAL .PERSON <GET .GT ,GOAL-QUEUED>>
|
||||
<PUT .GT ,GOAL-QUEUED <>>)>>
|
||||
|
||||
<ROUTINE ESTABLISH-GOAL (PERSON GOAL "OPTIONAL" (PRIORITY <>)
|
||||
"AUX" (HERE <LOC .PERSON>) HL GL GT)
|
||||
#DECL ((PERSON GOAL HERE) OBJECT (HL GL) FIX
|
||||
(PRIORITY) <OR FALSE ATOM>)
|
||||
<SET GT <GET ,GOAL-TABLES <GETP .PERSON ,P?CHARACTER>>>
|
||||
<COND (.PRIORITY
|
||||
<PUT .GT ,GOAL-ENABLE T>
|
||||
<PUT .GT ,GOAL-PRIORITY T>
|
||||
<PUT .GT ,GOAL-QUEUED .HERE>)>
|
||||
<COND (<==? <SET HL <GETP .HERE ,P?LINE>>
|
||||
<SET GL <GETP .GOAL ,P?LINE>>>
|
||||
<PUT .GT ,GOAL-I <>>)
|
||||
(<==? .HL ,TOP-OF-THE-LINE-C>
|
||||
<PUT .GT ,GOAL-I ,STAIR-TOP>)
|
||||
(<==? .HL ,OUTSIDE-LINE-C>
|
||||
<PUT .GT ,GOAL-I ,FRONT-PATH>)
|
||||
(<==? .HL ,FOOD-LINE-C>
|
||||
<PUT .GT ,GOAL-I ,CORNER>)
|
||||
(<==? .GL ,TOP-OF-THE-LINE-C>
|
||||
<PUT .GT ,GOAL-I ,STAIR-BOTTOM>)
|
||||
(<==? .GL ,FOOD-LINE-C>
|
||||
<PUT .GT ,GOAL-I ,NFOYER>)
|
||||
(T
|
||||
<PUT .GT ,GOAL-I ,FOYER>)>
|
||||
<PUT .GT ,GOAL-S <GETP .GOAL ,P?STATION> ;CHOMP>
|
||||
<PUT .GT ,GOAL-F .GOAL>
|
||||
<LOC .PERSON>>
|
||||
|
||||
<ROUTINE FOLLOW-GOAL (PERSON "AUX" (HERE <LOC .PERSON>) LINE LN RM GT GOAL FLG
|
||||
(GOAL-FLAG <>) (IGOAL <>) LOC (CNT 1) DIR)
|
||||
#DECL ((PERSON HERE LOC RM) OBJECT (LN CNT) FIX
|
||||
(GOAL-FLAG IGOAL) <OR ATOM FALSE>)
|
||||
<SET GT <GET ,GOAL-TABLES <GETP .PERSON ,P?CHARACTER>>>
|
||||
<COND (<==? .HERE <GET .GT ,GOAL-F>>
|
||||
<SET FLG <GOAL-REACHED .PERSON>>
|
||||
<PUT .GT ,GOAL-S <>>
|
||||
<RETURN .FLG>)
|
||||
(<NOT <GET .GT ,GOAL-ENABLE>> <RFALSE>)>
|
||||
<COND (<NOT <==? <SET LOC <GETP .HERE ,P?STATION> ;CHOMP> .HERE>>
|
||||
<RETURN <MOVE-PERSON .PERSON .LOC>>)>
|
||||
<COND (<SET GOAL <GET .GT ,GOAL-I>>
|
||||
<SET IGOAL T>)
|
||||
(T <SET GOAL <GET .GT ,GOAL-S>>)>
|
||||
<COND (<NOT .GOAL> <RFALSE>)
|
||||
(<==? .HERE ,STAIRS>
|
||||
<RETURN <TRANSFER .PERSON .HERE <GET .GT ,GOAL-F>>>)
|
||||
(<==? .HERE .GOAL>
|
||||
<COND (.IGOAL
|
||||
<RETURN <TRANSFER .PERSON .GOAL <GET .GT ,GOAL-F>>>)
|
||||
(<NOT <==? .HERE <GET .GT ,GOAL-F>>>
|
||||
<SET FLG <MOVE-PERSON .PERSON <GET .GT ,GOAL-F>>>
|
||||
<PUT .GT ,GOAL-S <>>
|
||||
<COND (.FLG <GOAL-REACHED .PERSON>)
|
||||
(T <SET FLG <GOAL-REACHED .PERSON>>)>
|
||||
<RETURN .FLG>)
|
||||
(T
|
||||
<PUT .GT ,GOAL-S <>>
|
||||
<RETURN <GOAL-REACHED .PERSON>>)>)>
|
||||
<SET LN <GETP .GOAL ,P?LINE>>
|
||||
<SET LINE
|
||||
<COND (<==? .LN ,TOP-OF-THE-LINE-C> ,TOP-OF-THE-LINE)
|
||||
(<==? .LN ,BOTTOM-LINE-C> ,BOTTOM-LINE)
|
||||
(<==? .LN ,FOOD-LINE-C> ,FOOD-LINE)
|
||||
(T ,OUTSIDE-LINE)>>
|
||||
<REPEAT ()
|
||||
<COND (<==? <SET RM <GET .LINE .CNT>> .HERE>
|
||||
<COND (.GOAL-FLAG
|
||||
<SET LOC <GET .LINE <- .CNT 3>>>)
|
||||
(T
|
||||
<SET LOC <GET .LINE <+ .CNT 3>>>)>
|
||||
<RETURN <MOVE-PERSON .PERSON .LOC>>)
|
||||
(<==? .RM .GOAL>
|
||||
<SET GOAL-FLAG T>)>
|
||||
<SET CNT <+ .CNT 3>>>>
|
||||
|
||||
<ROUTINE GOAL-REACHED (PERSON)
|
||||
#DECL ((PERSON) OBJECT)
|
||||
<APPLY <GET <GET ,GOAL-TABLES <GETP .PERSON ,P?CHARACTER>>
|
||||
,GOAL-FUNCTION> ,G-REACHED>>
|
||||
|
||||
<ROUTINE MOVE-PERSON (PERSON WHERE "AUX" DIR GT OL COR PCOR CHR NC WT (CNT 0)
|
||||
(FLG <>) EX)
|
||||
#DECL ((PERSON WHERE) OBJECT)
|
||||
<SET GT <GET ,GOAL-TABLES <SET CHR <GETP .PERSON ,P?CHARACTER>>>>
|
||||
<SET NC .CHR>
|
||||
<SET OL <LOC .PERSON>>
|
||||
<SET DIR <DIR-FROM .OL .WHERE>>
|
||||
<COND (<==? <PTSIZE <SET EX <GETPT .OL .DIR>>> ,DEXIT>
|
||||
<COND (<NOT <FSET? <SET EX <GETB .EX ,DEXITOBJ>> ,OPENBIT>>
|
||||
<FSET .EX ,OPENBIT>)
|
||||
(T <SET EX <>>)>)
|
||||
(T <SET EX <>>)>
|
||||
<PUT .GT ,GOAL-LDIR .DIR>
|
||||
<COND (<==? .OL ,HERE>
|
||||
<SET FLG T>
|
||||
<TELL D .PERSON>
|
||||
<COND (<==? .DIR ,P?OUT>
|
||||
<TELL " walks out of the room." CR>)
|
||||
(<EQUAL? .DIR ,P?DOWN> <TELL " is going downstairs." CR>)
|
||||
(<EQUAL? .DIR ,P?UP> <TELL " is going upstairs." CR>)
|
||||
(<EQUAL? .DIR ,P?IN>
|
||||
<COND (.EX <TELL " opens the " D .EX " and">)>
|
||||
<TELL " goes into another room.">)
|
||||
(T
|
||||
<COND (.EX <TELL " opens the " D .EX " and">)>
|
||||
<TELL " heads off to ">
|
||||
<DIR-PRINT .DIR>
|
||||
<TELL "." CR>)>)
|
||||
(<==? .WHERE ,HERE>
|
||||
<SET FLG T>
|
||||
<TELL D .PERSON>
|
||||
<COND (<NOT <==? ,HERE <GET .GT ,GOAL-F>>>
|
||||
<TELL " is walking past you." CR>)
|
||||
(<==? <GETP ,HERE ,P?LINE> ,OUTSIDE-LINE-C>
|
||||
<TELL " stops here." CR>)
|
||||
(T <TELL " steps into the room." CR>)>)
|
||||
(<SET COR <GETP ,HERE ,P?CORRIDOR>>
|
||||
<COND (<AND <SET PCOR <GETP .OL ,P?CORRIDOR>>
|
||||
<NOT <==? <BAND .COR .PCOR> 0>>>
|
||||
<SET FLG T>
|
||||
<COND (<==? .WHERE ,STAIRS>
|
||||
<TELL D .PERSON
|
||||
" steps onto the stairs." CR>)
|
||||
(<NOT <GETP .WHERE ,P?CORRIDOR>>
|
||||
<TELL D .PERSON ", off to ">
|
||||
<DIR-PRINT <COR-DIR ,HERE .OL>>
|
||||
<TELL ",">
|
||||
<COND (.EX
|
||||
<TELL " opens a door and">)>
|
||||
<COND (<==? <GETP ,HERE ,P?LINE>
|
||||
,OUTSIDE-LINE-C>
|
||||
<TELL " leaves your view">)
|
||||
(<==? .WHERE ,SHED-ROOM>
|
||||
<TELL " darts into the shed">)
|
||||
(T
|
||||
<TELL " ducks into a room">)>
|
||||
<TELL " to ">
|
||||
<DIR-PRINT <DIR-FROM .OL .WHERE>>
|
||||
<TELL "." CR>)
|
||||
(<0? <BAND .COR <GETP .WHERE ,P?CORRIDOR>>>
|
||||
<TELL D .PERSON
|
||||
", off to ">
|
||||
<DIR-PRINT <COR-DIR ,HERE .OL>>
|
||||
<TELL ", disappears from sight ">
|
||||
<SET PCOR <DIR-FROM .OL .WHERE>>
|
||||
<COND (<==? .PCOR ,P?UP>
|
||||
<TELL "up the stairs">)
|
||||
(<==? .PCOR ,P?DOWN>
|
||||
<TELL "down the stairs">)
|
||||
(T
|
||||
<TELL "to ">
|
||||
<DIR-PRINT .PCOR>)>
|
||||
<TELL "." CR>)
|
||||
(T
|
||||
<TELL D .PERSON " is to ">
|
||||
<DIR-PRINT <COR-DIR ,HERE .WHERE>>
|
||||
<TELL ", heading toward ">
|
||||
<DIR-PRINT <DIR-FROM .OL .WHERE>>
|
||||
<TELL "." CR>)>)
|
||||
(<AND <SET PCOR <GETP .WHERE ,P?CORRIDOR>>
|
||||
<NOT <==? <BAND .COR .PCOR> 0>>>
|
||||
<SET FLG T>
|
||||
<TELL "To ">
|
||||
<DIR-PRINT <COR-DIR ,HERE .WHERE>>
|
||||
<TELL " " D .PERSON>
|
||||
<COND (<OR <==? <GETP .WHERE ,P?LINE> ,OUTSIDE-LINE-C>
|
||||
<==? .WHERE ,STAIRS>>
|
||||
<TELL " comes into view from ">)
|
||||
(T
|
||||
<TELL " enters the hallway from ">)>
|
||||
<DIR-PRINT <DIR-FROM .WHERE .OL>>
|
||||
<TELL "." CR>)>)>
|
||||
<SET WT <GET ,WHERE-TABLES .CHR>>
|
||||
<REPEAT ()
|
||||
<COND (<G? .CNT ,CHARACTER-MAX> <RETURN>)
|
||||
(T
|
||||
<COND (<==? <SET CHR <GET ,CHARACTER-TABLE .CNT>>
|
||||
.PERSON> T)
|
||||
(<OR <AND <0? .CNT> .FLG>
|
||||
<IN? <GET ,CHARACTER-TABLE .CNT> .OL>>
|
||||
<PUT .WT .CNT ,PRESENT-TIME>
|
||||
<PUT <GET ,WHERE-TABLES .CNT>
|
||||
.NC
|
||||
,PRESENT-TIME>)>
|
||||
<SET CNT <+ .CNT 1>>)>>
|
||||
<MOVE .PERSON .WHERE>
|
||||
.FLG>
|
||||
|
||||
<ROUTINE DIR-FROM (HERE THERE "AUX" P L T O)
|
||||
#DECL ((HERE THERE O) OBJECT (P L) FIX)
|
||||
<SET P 0>
|
||||
<REPEAT ()
|
||||
<COND (<0? <SET P <NEXTP .HERE .P>>>
|
||||
<RFALSE>)
|
||||
(<EQUAL? .P ,P?IN ,P?OUT> T)
|
||||
(<NOT <L? .P ,LOW-DIRECTION>>
|
||||
<SET T <GETPT .HERE .P>>
|
||||
<SET L <PTSIZE .T>>
|
||||
<COND (<AND <EQUAL? .L ,DEXIT ,UEXIT ,CEXIT>
|
||||
<==? <GETB .T ,REXIT> .THERE>>
|
||||
<RETURN .P>)>)>>>
|
||||
|
||||
<ROUTINE COR-DIR (HERE THERE "AUX" COR RM (PAST 0) (CNT 2))
|
||||
<SET COR <GET-COR <BAND <GETP .THERE ,P?CORRIDOR>
|
||||
<GETP .HERE ,P?CORRIDOR>>>>
|
||||
<REPEAT ()
|
||||
<COND (<==? <SET RM <GET .COR .CNT>> .HERE>
|
||||
<SET PAST 1>
|
||||
<RETURN>)
|
||||
(<==? .RM .THERE>
|
||||
<RETURN>)>
|
||||
<SET CNT <+ .CNT 1>>>
|
||||
<GET .COR .PAST>>
|
||||
|
||||
<ROUTINE GET-COR (NUM)
|
||||
#DECL ((NUM) FIX)
|
||||
<COND (<==? .NUM 1> ,COR-1)
|
||||
(<==? .NUM 2> ,COR-2)
|
||||
(<==? .NUM 4> ,COR-4)
|
||||
(<==? .NUM 8> ,COR-8)
|
||||
(<==? .NUM 16> ,COR-16)
|
||||
(<==? .NUM 32> ,COR-32)
|
||||
(<==? .NUM 64> ,COR-64)
|
||||
(<==? .NUM 128> ,COR-128)
|
||||
(<==? .NUM 256> ,COR-256)
|
||||
(<==? .NUM 512> ,COR-512)
|
||||
(<==? .NUM 1024> ,COR-1024)
|
||||
(T ,COR-2048)>>
|
||||
|
||||
<ROUTINE TRANSFER (PERSON IGOAL FGOAL "AUX" V (FLG <>))
|
||||
#DECL ((PERSON IGOAL FGOAL) OBJECT)
|
||||
<COND (<==? .IGOAL ,STAIR-TOP>
|
||||
<COND (<OR <EQUAL? ,HERE ,STAIR-BOTTOM ,NFOYER ,ROURKE-ROOM>
|
||||
<EQUAL? ,HERE ,LIVING-ROOM ,FOYER ,CORNER>>
|
||||
<TELL
|
||||
"You can hear footsteps on the staircase." CR>
|
||||
<SET FLG T>)>
|
||||
<OR <MOVE-PERSON .PERSON ,STAIRS> .FLG>)
|
||||
(<==? .IGOAL ,STAIR-BOTTOM>
|
||||
<COND (<OR <EQUAL? ,HERE ,STAIR-TOP ,CORRIDOR-1>
|
||||
<EQUAL? ,HERE ,CORRIDOR-2 ,CORRIDOR-3>>
|
||||
<TELL
|
||||
"You can hear footsteps on the staircase." CR>
|
||||
<SET FLG T>)>
|
||||
<OR <MOVE-PERSON .PERSON ,STAIRS> .FLG>)
|
||||
(T
|
||||
<SET V
|
||||
<COND (<==? .IGOAL ,STAIRS>
|
||||
<COND (<==? <GETP .FGOAL ,P?LINE> 0>
|
||||
<MOVE-PERSON .PERSON ,STAIR-TOP>)
|
||||
(T <MOVE-PERSON .PERSON ,STAIR-BOTTOM>)>)
|
||||
(<==? .IGOAL ,FRONT-PATH>
|
||||
<FSET ,FRONT-DOOR ,OPENBIT>
|
||||
<MOVE-PERSON .PERSON ,FOYER>)
|
||||
(<==? .IGOAL ,FOYER>
|
||||
<FSET ,FRONT-DOOR ,OPENBIT>
|
||||
<MOVE-PERSON .PERSON ,FRONT-PATH>)
|
||||
(<==? .IGOAL ,NFOYER>
|
||||
<MOVE-PERSON .PERSON ,CORNER>)
|
||||
(T
|
||||
<MOVE-PERSON .PERSON ,NFOYER>)>>
|
||||
<ESTABLISH-GOAL .PERSON .FGOAL>
|
||||
.V)>>
|
||||
|
||||
<ROUTINE DIR-PRINT (DIR "AUX" (CNT 0))
|
||||
#DECL ((DIR CNT) FIX)
|
||||
<REPEAT ()
|
||||
<COND (<==? <GET ,DIR-STRINGS .CNT> .DIR>
|
||||
<COND (<NOT <EQUAL? .DIR ,P?UP ,P?DOWN>>
|
||||
<TELL "the ">)>
|
||||
<PRINT <GET ,DIR-STRINGS <+ .CNT 1>>>
|
||||
<RTRUE>)>
|
||||
<SET CNT <+ .CNT 1>>>>
|
||||
|
||||
"Here is the code for goal motivation for the various characters.
|
||||
Each character has a tendency to move from one place to another
|
||||
at certain times. They all converge on the living room at about
|
||||
noon."
|
||||
|
||||
"Constants used as table offsets for each character, including
|
||||
the player."
|
||||
|
||||
<CONSTANT PLAYER-C 0>
|
||||
<CONSTANT GARDENER-C 1>
|
||||
<CONSTANT BAXTER-C 2>
|
||||
<CONSTANT DUNBAR-C 3>
|
||||
<CONSTANT GEORGE-C 4>
|
||||
<CONSTANT MRS-ROBNER-C 5>
|
||||
<CONSTANT ROURKE-C 6>
|
||||
<CONSTANT COATES-C 7>
|
||||
<CONSTANT CHARACTER-MAX 7>
|
||||
|
||||
<GLOBAL CHARACTER-DESCS
|
||||
<TABLE 0
|
||||
"Mr. McNabb is an elderly Scottish man with a deeply lined face.
|
||||
He is wearing overalls."
|
||||
"Baxter is an immaculately dressed middle-aged man with rugged good
|
||||
looks."
|
||||
"Ms. Dunbar, wearing a fashionable pants suit, is a rather attractive
|
||||
woman in her early thirties."
|
||||
"George is a young man in his mid-twenties. He is poorly dressed in
|
||||
that each item he is wearing clashes with the others. His attire is
|
||||
of the highest quality, however. He is wearing various pieces of
|
||||
jewelry."
|
||||
"Mrs. Robner is a middle-aged woman of great beauty. She is dressed
|
||||
in black."
|
||||
"Mrs. Rourke is a short woman, more than a bit overweight. She is
|
||||
wearing a maid's outfit."
|
||||
"Mr. Coates is a rather homely man of advancing years.">>
|
||||
|
||||
"Goal tables for the 8 characters (including PLAYER), offset
|
||||
by the preceding constants, which, for a given character,
|
||||
is the P?CHARACTER property of the object."
|
||||
|
||||
<GLOBAL GOAL-TABLES
|
||||
<TABLE <TABLE <> <> <> <> 1 <> <> I-FOLLOW 4 4>
|
||||
<TABLE <> <> <> <> 1 <> <> I-GARDENER 3 3>
|
||||
<TABLE <> <> <> <> 1 <> <> I-BAXTER 4 4>
|
||||
<TABLE <> <> <> <> 1 <> <> I-DUNBAR 3 3>
|
||||
<TABLE <> <> <> <> 1 <> <> I-GEORGE 2 2>
|
||||
<TABLE <> <> <> <> 1 <> <> I-MRS-ROBNER 4 4>
|
||||
<TABLE <> <> <> <> 1 <> <> I-ROURKE 6 6>
|
||||
<TABLE <> <> <> <> 1 <> <> I-COATES 2 2>>>
|
||||
|
||||
<GLOBAL ATTENTION-TABLE <TABLE 0 0 0 0 0 0 0 0>>
|
||||
|
||||
"Offsets into GOAL-TABLEs"
|
||||
|
||||
<CONSTANT GOAL-F 0>
|
||||
<CONSTANT GOAL-S 1>
|
||||
<CONSTANT GOAL-I 2>
|
||||
<CONSTANT GOAL-LDIR 3>
|
||||
<CONSTANT GOAL-ENABLE 4>
|
||||
<CONSTANT GOAL-PRIORITY 5>
|
||||
<CONSTANT GOAL-QUEUED 6>
|
||||
<CONSTANT GOAL-FUNCTION 7>
|
||||
<CONSTANT ATTENTION-SPAN 8>
|
||||
<CONSTANT ATTENTION 9>
|
||||
|
||||
"Goal-function constants, similar to M-xxx in MAIN"
|
||||
|
||||
<CONSTANT G-REACHED 1>
|
||||
<CONSTANT G-ENROUTE 2>
|
||||
|
||||
"Here's how the movement goals are done: For each player is
|
||||
a table which consists of triplets, a number of minutes until
|
||||
the next movement (an clock interrupt number), a number of
|
||||
minutes allowed variation (for a bit of randomness), and a
|
||||
room toward which to start. All movement is controlled by
|
||||
the GOAL-ENABLE flag in the GOAL-TABLE for a character."
|
||||
|
||||
"Time starts at 8AM. Characters are at that point in their
|
||||
starting positions, as reflected in DUNGEON."
|
||||
|
||||
<GLOBAL CHARACTER-TABLE
|
||||
<TABLE PLAYER GARDENER BAXTER DUNBAR GEORGE MRS-ROBNER ROURKE
|
||||
COATES>>
|
||||
|
||||
<GLOBAL GLOBAL-CHARACTER-TABLE
|
||||
<TABLE PLAYER GLOBAL-GARDENER GLOBAL-BAXTER GLOBAL-DUNBAR GLOBAL-GEORGE
|
||||
GLOBAL-MRS-ROBNER GLOBAL-ROURKE GLOBAL-COATES>>
|
||||
|
||||
<GLOBAL MOVEMENT-GOALS <TABLE
|
||||
;"PLAYER"
|
||||
<TABLE 0 0 0>
|
||||
;"GARDENER"
|
||||
<TABLE 0
|
||||
60 10 NORTH-LAWN ;"9-10AM"
|
||||
60 10 EAST-LAWN ;"10-11AM"
|
||||
60 10 ROSE-GARDEN ;"11AM-1PM"
|
||||
60 10 ORCHARD ;"1-2PM"
|
||||
60 15 SOUTH-LAWN ;"2-3PM"
|
||||
120 15 WEST-LAWN ;"3-5PM"
|
||||
0>
|
||||
;"BAXTER"
|
||||
<TABLE 0
|
||||
120 2 LIVING-ROOM ;"Arrival at 9:55"
|
||||
360 10 SOUTH-LAWN ;"Leave at 4PM"
|
||||
0>
|
||||
;"DUNBAR"
|
||||
<TABLE 0
|
||||
60 10 DUNBAR-BATH ;"9-9:30AM"
|
||||
30 10 DUNBAR-ROOM ;"9:30-11:30AM"
|
||||
135 20 LIVING-ROOM ;"11:30AM-2PM"
|
||||
135 20 DUNBAR-ROOM
|
||||
0>
|
||||
;"GEORGE"
|
||||
<TABLE 0
|
||||
80 10 KITCHEN ;"9:20-9:50AM"
|
||||
30 10 DINING-ROOM ;"9:50-11AM"
|
||||
70 20 GEORGE-ROOM ;"11-11:45AM"
|
||||
45 15 LIVING-ROOM ;"11:45AM-12:30PM"
|
||||
60 10 EAST-LAWN ;"12:30-2PM"
|
||||
75 20 LIVING-ROOM ;"2-3PM"
|
||||
60 15 GEORGE-ROOM
|
||||
0>
|
||||
;"MRS-ROBNER"
|
||||
<TABLE 0
|
||||
30 10 DINING-ROOM ;"8:30-9AM"
|
||||
100 15 DINING-ROOM ;"10:10-11:10"
|
||||
60 20 LIVING-ROOM ;"11:10-12:40"
|
||||
90 20 MASTER-BEDROOM ;"12:40-1:50"
|
||||
70 30 LIVING-ROOM
|
||||
0>
|
||||
;"ROURKE"
|
||||
<TABLE 0
|
||||
60 10 KITCHEN ;"9-10AM"
|
||||
60 20 DINING-ROOM ;"10-11AM"
|
||||
60 10 KITCHEN ;"11AM-1PM"
|
||||
120 20 LIVING-ROOM ;"1PM-2PM"
|
||||
60 30 ROURKE-ROOM
|
||||
0>>>
|
||||
|
||||
<ROUTINE START-MOVEMENT ()
|
||||
<ENABLE <QUEUE I-GARDENER 1>>
|
||||
<ENABLE <QUEUE I-BAXTER 1>>
|
||||
<ENABLE <QUEUE I-DUNBAR 1>>
|
||||
<ENABLE <QUEUE I-GEORGE 1>>
|
||||
<ENABLE <QUEUE I-MRS-ROBNER 1>>
|
||||
<ENABLE <QUEUE I-ROURKE 1>>
|
||||
<ENABLE <QUEUE I-FOLLOW -1>>
|
||||
<ENABLE <QUEUE I-ATTENTION -1>>>
|
||||
|
||||
<ROUTINE I-G-I-G ()
|
||||
<SETG G-I-G ,PRESENT-TIME>
|
||||
<COND (<AND <==? ,HERE ,ROSE-GARDEN> <NOT ,HOLE-SHOWN>>
|
||||
<SETG HOLE-TELL T>
|
||||
<TELL
|
||||
"All of a sudden, Mr. McNabb starts talking to himself quite
|
||||
loudly about his poor roses being ruined. He walks up to you and
|
||||
says \"You canna believe the holes someone's made. Crushed my
|
||||
roses. It'll take me plenty a time to set it right. I just
|
||||
canna believe it!\" He shakes his head dejectedly." CR>)>>
|
||||
|
||||
<ROUTINE I-GARDENER ("OPTIONAL" (GARG <>) "AUX" (GL <LOC ,GARDENER>))
|
||||
<COND (<NOT .GARG> <IMOVEMENT ,GARDENER I-GARDENER>)
|
||||
(<==? .GARG ,G-REACHED>
|
||||
<COND (<==? .GL ,ROSE-GARDEN>
|
||||
<ENABLE <QUEUE I-G-I-G <+ 2 <RANDOM 10>>>>
|
||||
<RFALSE>)
|
||||
(<==? .GL ,ORCHARD>
|
||||
<COND (<NOT <IN? ,LADDER ,ORCHARD>>
|
||||
<FCLEAR ,LADDER ,NDESCBIT>
|
||||
<SETG LADDER-FLAG <>>
|
||||
<SETG LADDER-FLAG-2 <>>
|
||||
<FSET ,LADDER ,TOUCHBIT>
|
||||
<COND (<IN? ,LADDER ,WINNER>
|
||||
<MOVE ,LADDER ,ORCHARD>
|
||||
<TELL
|
||||
"McNabb comes over to you and takes the ladder. He walks off
|
||||
toward the orchard." CR>
|
||||
<RTRUE>)
|
||||
(<IN? ,LADDER ,HERE>
|
||||
<MOVE ,LADDER ,ORCHARD>
|
||||
<TELL
|
||||
"McNabb picks up the ladder and walks away toward the orchard." CR>
|
||||
<RTRUE>)
|
||||
(<==? ,HERE ,ORCHARD>
|
||||
<MOVE ,LADDER ,ORCHARD>
|
||||
<TELL
|
||||
"McNabb places the ladder he was carrying on the ground." CR>
|
||||
<RTRUE>)>
|
||||
<MOVE ,LADDER ,ORCHARD>
|
||||
<RFALSE>)>)
|
||||
(<==? .GL ,IN-ROSES>
|
||||
<UNPRIORITIZE ,GARDENER>
|
||||
<COND (<==? ,HERE .GL>
|
||||
<GRAB-ATTENTION ,GARDENER>
|
||||
<SHOW-HOLE>
|
||||
<RTRUE>)
|
||||
(T
|
||||
<ENABLE <QUEUE I-SHOW-HOLE -1>>
|
||||
<RFALSE>)>)>)>>
|
||||
|
||||
<ROUTINE I-BAXTER ("OPTIONAL" (GARG <>) "AUX" (BL <LOC ,BAXTER>))
|
||||
<COND (<NOT .GARG> <IMOVEMENT ,BAXTER I-BAXTER>)
|
||||
(<AND <==? .GARG ,G-REACHED> <==? .BL ,LIVING-ROOM>>
|
||||
<COND (<IN? ,RECURSIVE-BOOK ,LIVING-ROOM>
|
||||
<MOVE ,RECURSIVE-BOOK ,BAXTER>
|
||||
<FSET ,RECURSIVE-BOOK ,NDESCBIT>
|
||||
<RFALSE>)>)
|
||||
(<AND <==? .GARG ,G-REACHED>
|
||||
<==? .BL ,DUNBAR-ROOM>
|
||||
<==? ,HERE ,DUNBAR-ROOM>>
|
||||
<TELL
|
||||
"Baxter looks at the body of Ms. Dunbar, lying on the floor, and
|
||||
falls to his knees. He starts to sob. \"I knew she would do this,\"
|
||||
he says, sobbing, \"but I couldn't stop her. She killed Marshall.
|
||||
She just told me a few minutes ago. She said that he was going to fire her,
|
||||
just like that, after all of these years. She was so hysterical,
|
||||
I couldn't understand everything she said, something about having
|
||||
stolen some money. I don't know.\" With that, he breaks down again." CR>
|
||||
<ENABLE <QUEUE I-BAXTER-END-1 10>>)
|
||||
(<AND <==? .GARG ,G-REACHED> <==? .BL ,SHED-ROOM>>
|
||||
<COND (<==? ,HERE ,BEHIND-SHED>
|
||||
<TELL
|
||||
"The sound of quick footsteps precedes someone into the shed.
|
||||
You can make out two voices in rapid conversation. The voices
|
||||
are muffled, however, and cannot be made out." CR>)>)
|
||||
(<AND <==? .GARG ,G-REACHED> <==? .BL ,SOUTH-LAWN>>
|
||||
<COND (<==? ,HERE ,SOUTH-LAWN>
|
||||
<REMOVE ,BAXTER>
|
||||
<TELL
|
||||
"A limousine comes up the drive and picks up Mr. Baxter." CR>
|
||||
<RTRUE>)
|
||||
(<EQUAL? ,HERE ,FRONT-PATH ,EAST-OF-DOOR ,WEST-OF-DOOR>
|
||||
<REMOVE ,BAXTER>
|
||||
<TELL
|
||||
"To the south, you observe a limousine picking up Mr. Baxter." CR>
|
||||
<RTRUE>)>
|
||||
<REMOVE ,BAXTER>
|
||||
<RFALSE>)>>
|
||||
|
||||
<ROUTINE I-DUNBAR ("OPTIONAL" (GARG <>) "AUX" (DL <LOC ,DUNBAR>))
|
||||
<COND (<NOT .GARG> <IMOVEMENT ,DUNBAR I-DUNBAR>)
|
||||
(<AND <==? .GARG ,G-REACHED> <==? .DL ,SHED-ROOM>>
|
||||
<COND (<==? ,HERE ,BEHIND-SHED>
|
||||
<TELL
|
||||
"You hear soft footsteps approaching. Someone has entered the shed!" CR>)>)>>
|
||||
|
||||
<ROUTINE I-GEORGE ("OPTIONAL" (GARG <>) "AUX" (GL <LOC ,GEORGE>))
|
||||
<COND (<AND <==? .GARG ,G-REACHED> <==? .GL ,EAST-LAWN>>
|
||||
<UNPRIORITIZE ,GEORGE>
|
||||
<RFALSE>)
|
||||
(<AND <==? .GARG ,G-REACHED> <==? .GL ,GEORGE-ROOM>>
|
||||
<SETG STEREO-ON T>
|
||||
<SETG TUNE-ON <PICK-ONE ,RECORD-TABLE>>
|
||||
<ENABLE <QUEUE I-TUNE-OFF 25>>
|
||||
<COND (<==? ,HERE .GL>
|
||||
<TELL
|
||||
"George walks over to his stereo and puts on a record. He turns
|
||||
to you. \"I naturally assume that you would like to hear a
|
||||
" ,TUNE-ON ".\" he says, barely concealing his clear distaste
|
||||
for you and your profession." CR>)>)
|
||||
(<AND <==? .GARG ,G-REACHED> <==? .GL ,NORTH-LAWN>>
|
||||
<REMOVE ,NEW-WILL>
|
||||
<MOVE ,SOGGY-WILL ,LAKE>
|
||||
<SETG GEORGE-RUN 0>
|
||||
<UNPRIORITIZE ,GEORGE>
|
||||
<COND (<==? ,HERE ,NORTH-LAWN>
|
||||
<TELL
|
||||
"You catch, out of the corner of one eye, George motioning with
|
||||
his arm toward the lake." CR>)>)
|
||||
(<NOT .GARG> <IMOVEMENT ,GEORGE I-GEORGE>)>>
|
||||
|
||||
<ROUTINE I-ROURKE ("OPTIONAL" (GARG <>))
|
||||
<COND (<AND <==? .GARG ,G-REACHED> <IN? ,ROURKE ,ROURKE-ROOM>>
|
||||
<UNPRIORITIZE ,ROURKE>
|
||||
<RFALSE>)
|
||||
(<NOT .GARG> <IMOVEMENT ,ROURKE I-ROURKE>)>>
|
||||
|
||||
<ROUTINE I-MRS-ROBNER ("OPTIONAL" (GARG <>) "AUX" (ML <LOC ,MRS-ROBNER>))
|
||||
<COND (<AND <==? .GARG ,G-REACHED> <==? .ML ,MASTER-BEDROOM>>
|
||||
<COND (<AND <NOT ,HC-ROBNER>
|
||||
<FSET? ,HIDDEN-DOOR-B ,OPENBIT>>
|
||||
<SETG HC-ROBNER T>
|
||||
<COND (<EQUAL? ,HERE ,HIDDEN-CLOSET ,MASTER-BEDROOM>
|
||||
<TELL
|
||||
"Mrs. Robner stares in complete surprise at the hidden closet. \"I had
|
||||
no idea that such a place existed!\" She sits down on her bed." CR>)>)>)
|
||||
(<NOT .GARG> <IMOVEMENT ,MRS-ROBNER I-MRS-ROBNER>)>>
|
||||
|
||||
;"This routine does the interrupt-driven goal establishment
|
||||
for the various characters, using the MOVEMENT-GOALS table."
|
||||
|
||||
<CONSTANT MG-ROOM 0>
|
||||
<CONSTANT MG-TIME 1>
|
||||
<CONSTANT MG-VARIATION 2>
|
||||
<CONSTANT MG-LENGTH <* 3 2>>
|
||||
<CONSTANT MG-NEXT 4>
|
||||
|
||||
<ROUTINE IMOVEMENT (PERSON INT "AUX" TB VAR DIS TIM ID RM GT)
|
||||
#DECL ((PERSON) OBJECT (TB) <PRIMTYPE VECTOR> (ID VAR DIS TIM) FIX)
|
||||
<SET TB <GET ,MOVEMENT-GOALS <SET ID <GETP .PERSON ,P?CHARACTER>>>>
|
||||
<SET GT <GET ,GOAL-TABLES .ID>>
|
||||
<COND (<NOT <==? <SET RM <GET .TB ,MG-ROOM>> 0>>
|
||||
<COND (<GET .GT ,GOAL-PRIORITY>
|
||||
<PUT .GT ,GOAL-QUEUED .RM>)
|
||||
(T
|
||||
<ESTABLISH-GOAL .PERSON .RM>)>)>
|
||||
<COND (<NOT <==? <SET TIM <GET .TB ,MG-TIME>> 0>>
|
||||
<SET VAR <GET .TB ,MG-VARIATION>>
|
||||
<SET DIS <RANDOM <* .VAR 2>>>
|
||||
<QUEUE .INT <+ .TIM <- .DIS .VAR>>>
|
||||
<PUT ,MOVEMENT-GOALS .ID <REST .TB ,MG-LENGTH>>
|
||||
<COND (<NOT <==? <GET .TB ,MG-NEXT> 0>>
|
||||
<PUT .TB
|
||||
,MG-NEXT
|
||||
<+ <GET .TB ,MG-NEXT> <- .VAR .DIS>>>)>)>
|
||||
<RFALSE>>
|
||||
|
||||
<ROUTINE I-FOLLOW ("AUX" (FLG <>) (CNT 0) GT)
|
||||
<REPEAT ()
|
||||
<COND (<G? <SET CNT <+ .CNT 1>> ,CHARACTER-MAX>
|
||||
<RETURN>)
|
||||
(<AND <GET <SET GT <GET ,GOAL-TABLES .CNT>> ,GOAL-S>
|
||||
<OR <GET .GT ,GOAL-ENABLE>
|
||||
<0? <GET .GT ,ATTENTION>>>>
|
||||
<PUT .GT ,GOAL-ENABLE T>
|
||||
<COND (<FOLLOW-GOAL <GET ,CHARACTER-TABLE .CNT>>
|
||||
<SET FLG T>)>)>>
|
||||
.FLG>
|
||||
|
||||
<ROUTINE I-ATTENTION ("AUX" (FLG <>) (CNT 0) ATT)
|
||||
<REPEAT ()
|
||||
<COND (<G? <SET CNT <+ .CNT 1>> ,CHARACTER-MAX> <RETURN>)
|
||||
(<==? <SET ATT <- <GET ,ATTENTION-TABLE .CNT> 1>> 1>
|
||||
<COND (<IN? <GET ,CHARACTER-TABLE .CNT> ,HERE>
|
||||
<TELL D <GET ,CHARACTER-TABLE .CNT>
|
||||
" starts to move about distractedly." CR>
|
||||
<SET FLG T>)>)
|
||||
(<==? .ATT 0>
|
||||
<PUT <GET ,GOAL-TABLES .CNT> ,GOAL-ENABLE T>)>
|
||||
<PUT ,ATTENTION-TABLE .CNT .ATT>>
|
||||
.FLG>
|
||||
|
||||
<ROUTINE GRAB-ATTENTION (PERSON "AUX" (CHR <GETP .PERSON ,P?CHARACTER>) GT ATT)
|
||||
#DECL ((PERSON) OBJECT (ATT) FIX)
|
||||
<SET GT <GET ,GOAL-TABLES .CHR>>
|
||||
<COND (<GET .GT ,GOAL-S>
|
||||
<PUT ,ATTENTION-TABLE .CHR <SET ATT <GET .GT ,ATTENTION-SPAN>>>
|
||||
<COND (<==? .ATT 0>
|
||||
<PUT .GT ,GOAL-ENABLE T>
|
||||
<RFALSE>)
|
||||
(<GET .GT ,GOAL-ENABLE>
|
||||
<PUT .GT ,GOAL-ENABLE <>>)>)>
|
||||
<SETG QCONTEXT .PERSON>
|
||||
<SETG QCONTEXT-ROOM ,HERE>
|
||||
<RTRUE>>
|
||||
|
||||
<GLOBAL WHERE-TABLES
|
||||
<TABLE <TABLE 0 0 0 0 0 0 0 0>
|
||||
<TABLE 0 0 0 0 0 0 0 0>
|
||||
<TABLE 0 0 0 0 0 0 0 0>
|
||||
<TABLE 0 0 0 0 0 0 0 0>
|
||||
<TABLE 0 0 0 0 0 0 0 0>
|
||||
<TABLE 0 0 0 0 0 0 0 0>
|
||||
<TABLE 0 0 0 0 0 0 0 0>
|
||||
<TABLE 0 0 0 0 0 0 0 0>>>
|
||||
|
||||
<ROUTINE I-COATES ("OPTIONAL" (RARG <>))
|
||||
<COND (<==? .RARG ,G-REACHED>
|
||||
<COND (<IN? ,COATES ,SOUTH-LAWN>
|
||||
<REMOVE ,COATES>
|
||||
<SETG POST-WILL <>>
|
||||
<COND (<OR <EQUAL? ,HERE ,SOUTH-LAWN ,FRONT-PATH
|
||||
,EAST-OF-DOOR>
|
||||
<EQUAL? ,HERE ,WEST-OF-DOOR ,EAST-LAWN
|
||||
,WEST-LAWN>>
|
||||
<TELL
|
||||
"A car pulls up the drive. Coates enters the vehicle, motions
|
||||
to the driver, and the car starts up and leaves the grounds." CR>)>)
|
||||
(<IN? ,COATES ,LIVING-ROOM>
|
||||
<COND (<==? ,HERE ,LIVING-ROOM>
|
||||
<TELL
|
||||
"Mr. Coates shakes your hand. \"I'm glad you're here, Inspector.
|
||||
We'll begin the reading soon.\"" CR>)>
|
||||
<ENABLE <QUEUE I-WILL-READING 0>>
|
||||
<I-WILL-READING>)>)>>
|
|
@ -0,0 +1,97 @@
|
|||
"MACROS for
|
||||
DEADLINE
|
||||
Copyright 1982 Infocom, Inc. All rights reserved.
|
||||
"
|
||||
|
||||
<SETG C-ENABLED? 0>
|
||||
<SETG C-ENABLED 1>
|
||||
<SETG C-DISABLED 0>
|
||||
|
||||
<DEFMAC TELL ("ARGS" A)
|
||||
<FORM PROG ()
|
||||
!<MAPF ,LIST
|
||||
<FUNCTION ("AUX" E P O)
|
||||
<COND (<EMPTY? .A> <MAPSTOP>)
|
||||
(<SET E <NTH .A 1>>
|
||||
<SET A <REST .A>>)>
|
||||
<COND (<TYPE? .E ATOM>
|
||||
<COND (<OR <=? <SET P <SPNAME .E>>
|
||||
"CRLF">
|
||||
<=? .P "CR">>
|
||||
<MAPRET '<CRLF>>)
|
||||
(<=? .P "PRSO">
|
||||
<MAPRET '<PRSO-PRINT>>)
|
||||
(<=? .P "PRSI">
|
||||
<MAPRET '<PRSI-PRINT>>)
|
||||
(<EMPTY? .A>
|
||||
<ERROR INDICATOR-AT-END? .E>)
|
||||
(ELSE
|
||||
<SET O <NTH .A 1>>
|
||||
<SET A <REST .A>>
|
||||
<COND (<OR <=? <SET P <SPNAME .E>>
|
||||
"DESC">
|
||||
<=? .P "D">
|
||||
<=? .P "OBJ">
|
||||
<=? .P "O">>
|
||||
<MAPRET <FORM PRINTD .O>>)
|
||||
(<OR <=? .P "NUM">
|
||||
<=? .P "N">>
|
||||
<MAPRET <FORM PRINTN .O>>)
|
||||
(<OR <=? .P "CHAR">
|
||||
<=? .P "CHR">
|
||||
<=? .P "C">>
|
||||
<MAPRET <FORM PRINTC .O>>)
|
||||
(ELSE
|
||||
<MAPRET
|
||||
<FORM PRINT
|
||||
<FORM GETP .O .E>>>)>)>)
|
||||
(<TYPE? .E STRING>
|
||||
<MAPRET <FORM PRINTI .E>>)
|
||||
(<TYPE? .E FORM>
|
||||
<MAPRET <FORM PRINT .E>>)
|
||||
(ELSE <ERROR UNKNOWN-TYPE .E>)>>>>>
|
||||
|
||||
<DEFMAC VERB? ("TUPLE" ATMS "AUX" (O ()) (L ()))
|
||||
<REPEAT ()
|
||||
<COND (<EMPTY? .ATMS>
|
||||
<RETURN!- <COND (<LENGTH? .O 1> <NTH .O 1>)
|
||||
(ELSE <FORM OR !.O>)>>)>
|
||||
<REPEAT ()
|
||||
<COND (<EMPTY? .ATMS> <RETURN!->)>
|
||||
<SET ATM <NTH .ATMS 1>>
|
||||
<SET L
|
||||
(<FORM GVAL <PARSE <STRING "V?" <SPNAME .ATM>>>>
|
||||
!.L)>
|
||||
<SET ATMS <REST .ATMS>>
|
||||
<COND (<==? <LENGTH .L> 3> <RETURN!->)>>
|
||||
<SET O (<FORM EQUAL? ',PRSA !.L> !.O)>
|
||||
<SET L ()>>>
|
||||
|
||||
<DEFMAC RFATAL ()
|
||||
'<PROG () <PUSH 2> <RSTACK>>>
|
||||
|
||||
<DEFMAC PROB ('BASE? "OPTIONAL" 'LOSER?)
|
||||
<COND (<ASSIGNED? LOSER?> <FORM ZPROB .BASE?>)
|
||||
(ELSE <FORM G? .BASE? '<RANDOM 100>>)>>
|
||||
|
||||
<ROUTINE ZPROB (BASE)
|
||||
<G? .BASE <RANDOM 100>>>
|
||||
|
||||
<ROUTINE PICK-ONE (FROB)
|
||||
<GET .FROB <RANDOM <GET .FROB 0>>>>
|
||||
|
||||
<DEFMAC ENABLE ('INT) <FORM PUT .INT ,C-ENABLED? 1>>
|
||||
|
||||
<DEFMAC DISABLE ('INT) <FORM PUT .INT ,C-ENABLED? 0>>
|
||||
|
||||
<DEFMAC FLAMING? ('OBJ)
|
||||
<FORM AND <FORM FSET? .OBJ ',FLAMEBIT>
|
||||
<FORM FSET? .OBJ ',ONBIT>>>
|
||||
|
||||
<DEFMAC OPENABLE? ('OBJ)
|
||||
<FORM OR <FORM FSET? .OBJ ',DOORBIT>
|
||||
<FORM FSET? .OBJ ',CONTBIT>>>
|
||||
|
||||
<DEFMAC ABS ('NUM)
|
||||
<FORM COND (<FORM L? .NUM 0> <FORM - 0 .NUM>)
|
||||
(T .NUM)>>
|
|
@ -0,0 +1,190 @@
|
|||
"MAIN for
|
||||
DEADLINE
|
||||
Copyright 1982 Infocom, Inc. All rights reserved.
|
||||
"
|
||||
|
||||
<GLOBAL P-WON <>>
|
||||
|
||||
<CONSTANT M-FATAL 2>
|
||||
|
||||
<CONSTANT M-HANDLED 1>
|
||||
|
||||
<CONSTANT M-NOT-HANDLED <>>
|
||||
|
||||
<CONSTANT M-BEG 1>
|
||||
|
||||
<CONSTANT M-END <>>
|
||||
|
||||
<CONSTANT M-ENTER 2>
|
||||
|
||||
<CONSTANT M-LOOK 3>
|
||||
|
||||
<CONSTANT M-FLASH 4>
|
||||
|
||||
<CONSTANT M-OBJDESC 5>
|
||||
|
||||
<GLOBAL P-HIM-HER <>>
|
||||
<GLOBAL P-HIM-HER-LOC <>>
|
||||
|
||||
<ROUTINE GO ()
|
||||
<SETG LIT T>
|
||||
<SETG SCORE 8>
|
||||
<SETG WINNER ,PLAYER>
|
||||
<SETG HERE ,SOUTH-LAWN>
|
||||
<SETG P-IT-LOC ,HERE>
|
||||
<SETG P-IT-OBJECT <>>
|
||||
<SETG P-HIM-HER ,MRS-ROBNER>
|
||||
<SETG P-HIM-HER-LOC ,FOYER>
|
||||
<COND (<NOT <FSET? ,HERE ,TOUCHBIT>>
|
||||
<ENABLE <QUEUE I-NEWSPAPER <+ 175 <RANDOM 40>>>>
|
||||
<ENABLE <QUEUE I-MAIL <+ 70 <RANDOM 60>>>>
|
||||
<ENABLE <QUEUE I-CALL <+ 60 <RANDOM 10>>>>
|
||||
<ENABLE <QUEUE I-BAXTER-ARRIVE 115>>
|
||||
<ENABLE <QUEUE I-COATES-ARRIVE <+ 230 <RANDOM 5>>>>
|
||||
<START-MOVEMENT>
|
||||
<V-VERSION>
|
||||
<CRLF>)>
|
||||
<MOVE ,WINNER ,HERE>
|
||||
<V-LOOK>
|
||||
<MAIN-LOOP>
|
||||
<AGAIN>>
|
||||
|
||||
|
||||
<ROUTINE MAIN-LOOP ("AUX" ICNT OCNT NUM CNT OBJ TBL V PTBL OBJ1 TMP)
|
||||
#DECL ((CNT OCNT ICNT NUM) FIX (V) <OR 'T FIX FALSE> (OBJ) <OR FALSE OBJECT>
|
||||
(OBJ1) OBJECT (TBL) TABLE (PTBL) <OR FALSE ATOM>)
|
||||
<REPEAT ()
|
||||
<SET CNT 0>
|
||||
<SET OBJ <>>
|
||||
<SET PTBL T>
|
||||
<COND (<SETG P-WON <PARSER>>
|
||||
<SET ICNT <GET ,P-PRSI ,P-MATCHLEN>>
|
||||
<SET NUM
|
||||
<COND (<0? <SET OCNT <GET ,P-PRSO ,P-MATCHLEN>>> .OCNT)
|
||||
(<G? .OCNT 1>
|
||||
<SET TBL ,P-PRSO>
|
||||
<COND (<0? .ICNT> <SET OBJ <>>)
|
||||
(T <SET OBJ <GET ,P-PRSI 1>>)>
|
||||
.OCNT)
|
||||
(<G? .ICNT 1>
|
||||
<SET PTBL <>>
|
||||
<SET TBL ,P-PRSI>
|
||||
<SET OBJ <GET ,P-PRSO 1>>
|
||||
.ICNT)
|
||||
(T 1)>>
|
||||
<COND (<NOT <==? ,QCONTEXT-ROOM ,HERE>>
|
||||
<SETG QCONTEXT <>>)>
|
||||
<COND (<AND <NOT .OBJ> <1? .ICNT>> <SET OBJ <GET ,P-PRSI 1>>)>
|
||||
<COND (<==? ,PRSA ,V?WALK>
|
||||
<SET V <PERFORM ,PRSA ,PRSO>>)
|
||||
(<0? .NUM>
|
||||
<COND (<0? <BAND <GETB ,P-SYNTAX ,P-SBITS> ,P-SONUMS>>
|
||||
<SET V <PERFORM ,PRSA>>
|
||||
<SETG PRSO <>>)
|
||||
(T
|
||||
<TELL "There isn't anything to ">
|
||||
<SET TMP <GET ,P-ITBL ,P-VERBN>>
|
||||
<COND (,P-OFLAG
|
||||
<PRINTB <GET .TMP 0>>)
|
||||
(T
|
||||
<WORD-PRINT <GETB .TMP 2> <GETB .TMP 3>>)>
|
||||
<TELL "!" CR>
|
||||
<SET V <>>)>)
|
||||
(<AND .PTBL <==? .NUM 2> <==? ,PRSA ,V?ARREST>>
|
||||
<SET V <PERFORM ,PRSA ,OBJECT-PAIR>>)
|
||||
(T
|
||||
<REPEAT ()
|
||||
<COND (<G? <SET CNT <+ .CNT 1>> .NUM> <RETURN>)
|
||||
(T
|
||||
<COND (.PTBL <SET OBJ1 <GET ,P-PRSO .CNT>>)
|
||||
(T <SET OBJ1 <GET ,P-PRSI .CNT>>)>
|
||||
<COND (<G? .NUM 1>
|
||||
<COND (<==? .OBJ1 ,PLAYER> <AGAIN>)
|
||||
(<FSET? .OBJ1 ,DUPLICATE>
|
||||
<AGAIN>)>
|
||||
<PRINTD .OBJ1>
|
||||
<TELL ": ">)>
|
||||
<SET V <QCONTEXT-CHECK <COND (.PTBL .OBJ1)
|
||||
(T .OBJ)>>>
|
||||
<SET V
|
||||
<PERFORM ,PRSA
|
||||
<COND (.PTBL .OBJ1) (T .OBJ)>
|
||||
<COND (.PTBL .OBJ) (T .OBJ1)>>>
|
||||
<COND (<==? .V ,M-FATAL> <RETURN>)>)>>)>
|
||||
<COND (<==? .V ,M-FATAL> <SETG P-CONT <>>)>)
|
||||
(T
|
||||
<SETG P-CONT <>>)>
|
||||
<COND (,P-WON
|
||||
<COND (<VERB? TELL BRIEF SUPER-BRIEF VERBOSE TIME SAVE SPACE
|
||||
UNSPACE> T)
|
||||
(T <SET V <CLOCKER>>)>)>>>
|
||||
|
||||
<ROUTINE QCONTEXT-CHECK (PRSO)
|
||||
<COND (<AND ,QCONTEXT
|
||||
<IN? ,QCONTEXT ,HERE>
|
||||
<==? ,QCONTEXT-ROOM ,HERE>
|
||||
<==? ,WINNER ,PLAYER>>
|
||||
<COND (<OR <VERB? WHAT>
|
||||
<VERB? FIND>
|
||||
<AND <VERB? TELL-ME> <==? .PRSO ,PLAYER>>
|
||||
<AND <VERB? SHOW> <==? .PRSO ,PLAYER>>>
|
||||
<SETG WINNER ,QCONTEXT>
|
||||
<TELL "(said to " D ,QCONTEXT ")" CR>)>)>>
|
||||
|
||||
<GLOBAL L-PRSA <>>
|
||||
|
||||
<GLOBAL L-PRSO <>>
|
||||
|
||||
<GLOBAL L-PRSI <>>
|
||||
|
||||
|
||||
<ROUTINE PERFORM (A "OPTIONAL" (O <>) (I <>) "AUX" V OA OO OI)
|
||||
#DECL ((A) FIX (O) <OR FALSE OBJECT FIX> (I) <OR FALSE OBJECT> (V) ANY)
|
||||
<SET OA ,PRSA>
|
||||
<SET OO ,PRSO>
|
||||
<SET OI ,PRSI>
|
||||
<SETG PRSA .A>
|
||||
<COND (<AND <EQUAL? ,IT .I .O>
|
||||
<NOT <EQUAL? ,P-IT-LOC ,HERE>>>
|
||||
<TELL "I don't see what you are referring to." CR>
|
||||
<RFATAL>)
|
||||
(<AND <EQUAL? ,HIM-HER .I .O>
|
||||
<NOT <EQUAL? ,P-HIM-HER-LOC ,HERE>>>
|
||||
<SET V <GET ,GLOBAL-CHARACTER-TABLE
|
||||
<GETP ,P-HIM-HER ,P?CHARACTER>>>
|
||||
<COND (<==? ,HIM-HER .O> <SET O .V>)
|
||||
(<==? ,HIM-HER .I> <SET I .V>)>)>
|
||||
<COND (<==? .O ,IT> <SET O ,P-IT-OBJECT>)
|
||||
(<==? .O ,HIM-HER> <SET O ,P-HIM-HER>)>
|
||||
<COND (<==? .I ,IT> <SET I ,P-IT-OBJECT>)
|
||||
(<==? .I ,HIM-HER> <SET I ,P-HIM-HER>)>
|
||||
<SETG PRSO .O>
|
||||
<COND (<AND ,PRSO <NOT <VERB? WALK>>>
|
||||
<COND (<FSET? ,PRSO ,PERSON>
|
||||
<SETG P-HIM-HER ,PRSO>
|
||||
<SETG P-HIM-HER-LOC ,HERE>)
|
||||
(T
|
||||
<SETG P-IT-OBJECT ,PRSO>
|
||||
<SETG P-IT-LOC ,HERE>)>)>
|
||||
<SETG PRSI .I>
|
||||
<COND (<NOT <==? .A ,V?AGAIN>>
|
||||
<SETG L-PRSA .A>
|
||||
<COND (<==? .A ,V?WALK> <SETG L-PRSO <>>)
|
||||
(T <SETG L-PRSO .O>)>
|
||||
<SETG L-PRSI .I>)>
|
||||
<COND (<SET V <APPLY <GETP ,WINNER ,P?ACTION>>> .V)
|
||||
(<SET V <APPLY <GETP <LOC ,WINNER> ,P?ACTION> ,M-BEG>> .V)
|
||||
(<SET V <APPLY <GET ,PREACTIONS .A>>> .V)
|
||||
(<AND .I <SET V <APPLY <GETP .I ,P?ACTION>>>> .V)
|
||||
(<AND .O
|
||||
<NOT <==? .A ,V?WALK>>
|
||||
<SET V <APPLY <GETP .O ,P?ACTION>>>>
|
||||
.V)
|
||||
(<SET V <APPLY <GET ,ACTIONS .A>>> .V)>
|
||||
<COND (<NOT <==? .V ,M-FATAL>>
|
||||
<SET V <APPLY <GETP <LOC ,WINNER> ,P?ACTION> ,M-END>>)>
|
||||
<SETG PRSA .OA>
|
||||
<SETG PRSO .OO>
|
||||
<SETG PRSI .OI>
|
||||
.V>
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,605 @@
|
|||
"SYNTAX for
|
||||
DEADLINE
|
||||
Copyright 1982 Infocom, Inc. All rights reserved.
|
||||
"
|
||||
|
||||
"SUBTITLE VOCABULARY"
|
||||
|
||||
<BUZZ A AN THE IS ARE AND OF THEN ALL ONE BUT EXCEPT \. \, \" Y NUMBER
|
||||
MINUTE BACK PAGE CAREFULLY QUIETLY SLOWLY QUICKLY BRIEFLY
|
||||
DO YOU HAVE WAS WERE YOUR>
|
||||
|
||||
<SYNONYM WITH USING THROUGH>
|
||||
<SYNONYM IN INSIDE INTO>
|
||||
<SYNONYM UNDER UNDERNEATH BENEATH>
|
||||
|
||||
<SYNONYM NORTH N>
|
||||
<SYNONYM SOUTH S>
|
||||
<SYNONYM EAST E>
|
||||
<SYNONYM WEST W>
|
||||
<SYNONYM DOWN D DOWNSTAIRS>
|
||||
<SYNONYM UP U UPSTAIRS>
|
||||
<SYNONYM NW NORTHWEST>
|
||||
<SYNONYM NE NORTHEAST>
|
||||
<SYNONYM SW SOUTHWEST>
|
||||
<SYNONYM SE SOUTHE>
|
||||
|
||||
\
|
||||
|
||||
"ZORK game commands"
|
||||
|
||||
<SYNTAX BRIEF = V-BRIEF>
|
||||
|
||||
<SYNTAX SUPER = V-SUPER-BRIEF>
|
||||
<SYNONYM SUPER SUPERBRIEF>
|
||||
|
||||
<SYNTAX SPACE = V-SPACE>
|
||||
|
||||
<SYNTAX UNSPACE = V-UNSPACE>
|
||||
|
||||
<SYNTAX DIAGNOSE = V-DIAGNOSE>
|
||||
|
||||
<SYNTAX INVENTORY = V-INVENTORY>
|
||||
<SYNONYM INVENTORY I>
|
||||
|
||||
<SYNTAX TIME = V-TIME>
|
||||
<SYNONYM TIME T>
|
||||
|
||||
<SYNTAX QUIT = V-QUIT>
|
||||
<SYNONYM QUIT Q>
|
||||
|
||||
<SYNTAX RESTART = V-RESTART>
|
||||
|
||||
<SYNTAX RESTORE = V-RESTORE>
|
||||
|
||||
<SYNTAX SAVE = V-SAVE>
|
||||
|
||||
<SYNTAX SCORE = V-SCORE>
|
||||
|
||||
<SYNTAX VERSION = V-VERSION>
|
||||
|
||||
<SYNTAX VERBOSE = V-VERBOSE>
|
||||
|
||||
\
|
||||
|
||||
"SUBTITLE REAL VERBS"
|
||||
|
||||
<SYNTAX ACCUSE OBJECT (FIND PERSON) WITH OBJECT = V-ACCUSE PRE-ACCUSE>
|
||||
<SYNTAX ACCUSE OBJECT (FIND PERSON) = V-ACCUSE PRE-ACCUSE>
|
||||
<SYNTAX AGAIN = V-AGAIN>
|
||||
|
||||
<SYNTAX ANALYZE OBJECT FOR OBJECT = V-ANALYZE>
|
||||
<SYNTAX ANALYZE OBJECT = V-ANALYZE>
|
||||
<SYNTAX ANALYZE OFF OBJECT = V-ANALYZE>
|
||||
<SYNONYM ANALYZE ANALYSE CHECK TEST DUST>
|
||||
|
||||
<SYNTAX ANSWER = V-ANSWER>
|
||||
<SYNTAX ANSWER OBJECT = V-REPLY>
|
||||
<SYNONYM ANSWER REPLY>
|
||||
|
||||
<SYNTAX APPLY OBJECT TO OBJECT = V-PUT PRE-PUT>
|
||||
|
||||
<SYNTAX ARREST OBJECT (FIND PERSON) (MANY) FOR OBJECT = V-ARREST>
|
||||
<SYNTAX ARREST OBJECT (FIND PERSON) (MANY) = V-ARREST>
|
||||
|
||||
<SYNTAX ASK OBJECT (FIND PERSON) ABOUT OBJECT = V-ASK-ABOUT>
|
||||
;<SYNTAX ASK OBJECT (FIND PERSON) ABOUT OBJECT = V-ASK-ABOUT>
|
||||
<SYNTAX ASK OBJECT (FIND PERSON) FOR OBJECT = V-ASK-FOR>
|
||||
<SYNTAX ASK OBJECT (FIND PERSON) = V-TELL>
|
||||
<SYNONYM ASK QUESTION INQUIRE>
|
||||
|
||||
<SYNTAX ATTACK
|
||||
OBJECT (FIND PERSON) (ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE)
|
||||
= V-ATTACK>
|
||||
<SYNONYM ATTACK FIGHT HURT INJURE HIT>
|
||||
|
||||
<SYNTAX BRUSH OBJECT (HELD CARRIED ON-GROUND IN-ROOM) = V-BRUSH ;*>
|
||||
<SYNTAX BRUSH OFF OBJECT (HELD CARRIED) = V-BRUSH>
|
||||
<SYNTAX BRUSH
|
||||
OBJECT (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
WITH OBJECT
|
||||
= V-BRUSH>
|
||||
<SYNONYM BRUSH CLEAN WIPE>
|
||||
|
||||
<SYNTAX BUG = V-BUG>
|
||||
|
||||
<SYNTAX BURN
|
||||
OBJECT (FIND BURNBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT (FIND FLAMEBIT) (HELD CARRIED ON-GROUND IN-ROOM HAVE)
|
||||
= V-BURN PRE-BURN>
|
||||
<SYNTAX BURN
|
||||
DOWN
|
||||
OBJECT (FIND BURNBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT (FIND FLAMEBIT) (HELD CARRIED ON-GROUND IN-ROOM HAVE)
|
||||
= V-BURN PRE-BURN>
|
||||
<SYNONYM BURN INCINERATE IGNITE>
|
||||
|
||||
<SYNTAX CALL = V-CALL-LOSE>
|
||||
<SYNTAX CALL OBJECT = V-CALL>
|
||||
<SYNTAX CALL UP OBJECT = V-PHONE>
|
||||
<SYNONYM CALL HEY DIAL>
|
||||
|
||||
<SYNTAX CLIMB ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
|
||||
<SYNTAX CLIMB UP OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-UP>
|
||||
<SYNTAX CLIMB DOWN OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-DOWN>
|
||||
<SYNTAX CLIMB OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-FOO>
|
||||
;<SYNTAX CLIMB IN OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-BOARD PRE-BOARD>
|
||||
<SYNONYM CLIMB SIT HATCH>
|
||||
|
||||
<SYNTAX CLOSE
|
||||
OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-CLOSE>
|
||||
|
||||
<SYNTAX CONFRONT OBJECT (FIND PERSON) WITH OBJECT = V-CONFRONT>
|
||||
|
||||
<SYNTAX COUNT OBJECT = V-COUNT>
|
||||
<SYNONYM COUNT>
|
||||
|
||||
<SYNTAX CROSS OBJECT = V-CROSS>
|
||||
<SYNONYM CROSS FORD>
|
||||
|
||||
<SYNTAX CUT OBJECT WITH OBJECT (FIND WEAPONBIT) (CARRIED HELD) = V-CUT>
|
||||
<SYNONYM CUT SLICE PIERCE>
|
||||
|
||||
<SYNTAX CURSE = V-CURSES>
|
||||
<SYNTAX CURSE OBJECT (FIND PERSON) = V-CURSES>
|
||||
<SYNONYM CURSE DAMN>
|
||||
|
||||
<SYNTAX DRINK
|
||||
OBJECT (FIND DRINKBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-DRINK>
|
||||
<SYNONYM DRINK IMBIBE SWALLOW>
|
||||
|
||||
<SYNTAX DROP OBJECT (HELD MANY HAVE) = V-DROP ;*>
|
||||
<SYNTAX DROP OBJECT (HELD MANY HAVE) DOWN OBJECT = V-PUT PRE-PUT>
|
||||
<SYNTAX DROP OBJECT (HELD MANY HAVE) IN OBJECT = V-PUT PRE-PUT>
|
||||
<SYNTAX DROP OBJECT (HELD MANY HAVE) ON OBJECT = V-PUT PRE-PUT>
|
||||
<SYNONYM DROP RELEASE>
|
||||
|
||||
<SYNTAX EAT
|
||||
OBJECT (FIND FOODBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE MANY)
|
||||
= V-EAT>
|
||||
<SYNONYM EAT CONSUME>
|
||||
|
||||
<SYNTAX ENTER = V-ENTER>
|
||||
<SYNTAX ENTER OBJECT = V-THROUGH>
|
||||
<SYNTAX EXIT = V-EXIT>
|
||||
<SYNTAX EXIT OBJECT = V-EXIT>
|
||||
|
||||
<SYNTAX EXAMINE OBJECT (HELD CARRIED IN-ROOM ON-GROUND)
|
||||
= V-EXAMINE PRE-EXAMINE>
|
||||
<SYNONYM EXAMINE DESCRIBE>
|
||||
|
||||
<SYNTAX EXTINGUISH
|
||||
OBJECT (FIND LIGHTBIT) (MANY HELD CARRIED ON-GROUND IN-ROOM TAKE HAVE)
|
||||
= V-LAMP-OFF>
|
||||
<SYNONYM EXTINGUISH DOUSE>
|
||||
|
||||
<SYNTAX FILL
|
||||
OBJECT (FIND CONTBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT
|
||||
= V-FILL>
|
||||
<SYNTAX FILL
|
||||
OBJECT (FIND CONTBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-FILL>
|
||||
|
||||
<SYNTAX FIND OBJECT = V-FIND PRE-FIND>
|
||||
<SYNONYM FIND WHERE THERE SEEN>
|
||||
|
||||
<SYNTAX FINGERPRINT OBJECT (HELD CARRIED IN-ROOM ON-GROUND) = V-FINGERPRINT>
|
||||
|
||||
<SYNTAX FLUSH OBJECT (ON-GROUND IN-ROOM) = V-FLUSH>
|
||||
|
||||
<SYNTAX FOLLOW OBJECT = V-FOLLOW>
|
||||
<SYNONYM FOLLOW PURSUE CHASE>
|
||||
|
||||
<SYNTAX GIVE
|
||||
OBJECT (MANY HELD CARRIED ON-GROUND IN-ROOM)
|
||||
TO
|
||||
OBJECT (FIND PERSON) (ON-GROUND)
|
||||
= V-GIVE PRE-GIVE>
|
||||
<SYNTAX GIVE
|
||||
OBJECT (FIND PERSON) (ON-GROUND)
|
||||
OBJECT (MANY)
|
||||
= V-SGIVE PRE-SGIVE>
|
||||
<SYNONYM GIVE HAND DONATE OFFER>
|
||||
|
||||
<SYNTAX GOODBYE = V-GOODBYE>
|
||||
<SYNTAX GOODBYE OBJECT = V-GOODBYE>
|
||||
|
||||
<SYNTAX HELLO = V-HELLO ;*>
|
||||
<SYNTAX HELLO OBJECT = V-HELLO>
|
||||
<SYNONYM HELLO HI>
|
||||
|
||||
<SYNTAX HIDE = V-HIDE>
|
||||
<SYNTAX HIDE BEHIND OBJECT = V-HIDE-BEHIND>
|
||||
<SYNTAX HIDE ON OBJECT = V-THROUGH>
|
||||
|
||||
<SYNTAX BLOW OUT OBJECT = V-LAMP-OFF>
|
||||
|
||||
<SYNTAX JUMP = V-LEAP>
|
||||
<SYNTAX JUMP OVER OBJECT = V-LEAP>
|
||||
<SYNTAX JUMP ACROSS OBJECT = V-LEAP>
|
||||
<SYNTAX JUMP IN OBJECT = V-LEAP>
|
||||
<SYNONYM JUMP LEAP>
|
||||
|
||||
<SYNTAX KICK OBJECT = V-KICK>
|
||||
<SYNONYM KICK BITE TAUNT>
|
||||
|
||||
<SYNTAX KILL OBJECT (FIND PERSON) (ON-GROUND IN-ROOM) = V-KILL>
|
||||
<SYNTAX KILL
|
||||
OBJECT (FIND PERSON) (ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE)
|
||||
= V-KILL>
|
||||
<SYNONYM KILL DISPATCH STRANGLE>
|
||||
|
||||
<SYNTAX KISS OBJECT (FIND PERSON) (ON-GROUND IN-ROOM) = V-KISS>
|
||||
|
||||
<SYNTAX KNOCK ON OBJECT = V-KNOCK>
|
||||
<SYNTAX KNOCK AT OBJECT = V-KNOCK ;*>
|
||||
<SYNTAX KNOCK DOWN OBJECT (FIND PERSON) (ON-GROUND IN-ROOM) = V-ATTACK>
|
||||
<SYNONYM KNOCK RAP>
|
||||
|
||||
<SYNTAX LEAN OBJECT AGAINST OBJECT = V-LEAN>
|
||||
<SYNTAX LEAN OBJECT ON OBJECT = V-LEAN>
|
||||
<SYNTAX LEAN OBJECT UP OBJECT = V-LEAN>
|
||||
<SYNTAX LEAN = V-STAND>
|
||||
<SYNTAX LEAN UP OBJECT (FIND RMUNGBIT) = V-STAND>
|
||||
<SYNONYM LEAN STAND PROP>
|
||||
|
||||
<SYNTAX LEAVE = V-LEAVE>
|
||||
<SYNTAX LEAVE OBJECT = V-DROP>
|
||||
|
||||
<SYNTAX LIGHT
|
||||
OBJECT (FIND LIGHTBIT)
|
||||
(HELD CARRIED ON-GROUND IN-ROOM TAKE HAVE)
|
||||
= V-LAMP-ON ;*>
|
||||
<SYNTAX LIGHT
|
||||
OBJECT (FIND LIGHTBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT (FIND FLAMEBIT) (HELD CARRIED TAKE HAVE)
|
||||
= V-BURN PRE-BURN>
|
||||
|
||||
<SYNTAX LISTEN TO OBJECT = V-LISTEN>
|
||||
<SYNTAX LISTEN AT OBJECT = V-LISTEN>
|
||||
|
||||
<SYNTAX LOCK
|
||||
OBJECT (ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT (FIND TOOLBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE)
|
||||
= V-LOCK>
|
||||
|
||||
<SYNTAX LOOK = V-LOOK>
|
||||
<SYNTAX LOOK AROUND OBJECT (FIND RMUNGBIT) = V-LOOK>
|
||||
<SYNTAX LOOK UP OBJECT (FIND RMUNGBIT) = V-LOOK-UP>
|
||||
<SYNTAX LOOK DOWN OBJECT (FIND RMUNGBIT) = V-LOOK-DOWN>
|
||||
<SYNTAX LOOK AT OBJECT (HELD CARRIED ON-GROUND IN-ROOM MANY)
|
||||
= V-EXAMINE PRE-EXAMINE>
|
||||
<SYNTAX LOOK OVER OBJECT (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-EXAMINE PRE-EXAMINE>
|
||||
<SYNTAX LOOK WITH OBJECT = V-LOOK-INSIDE>
|
||||
<SYNTAX LOOK THROUGH OBJECT = V-LOOK-INSIDE>
|
||||
<SYNTAX LOOK OUT OBJECT = V-LOOK-INSIDE>
|
||||
<SYNTAX LOOK UNDER OBJECT = V-LOOK-UNDER>
|
||||
<SYNTAX LOOK BEHIND OBJECT = V-LOOK-BEHIND>
|
||||
<SYNTAX LOOK IN OBJECT (HELD CARRIED ON-GROUND IN-ROOM) = V-LOOK-INSIDE>
|
||||
<SYNTAX LOOK ON OBJECT (ON-GROUND IN-ROOM) = V-LOOK-ON>
|
||||
<SYNTAX LOOK AT OBJECT (HELD CARRIED MANY) WITH OBJECT = V-READ PRE-READ>
|
||||
<SYNTAX LOOK FOR OBJECT = V-FIND>
|
||||
<SYNTAX LOOK NEAR OBJECT = V-SEARCH-AROUND>
|
||||
<SYNONYM LOOK L STARE GAZE>
|
||||
|
||||
<SYNTAX WATCH OBJECT = V-EXAMINE>
|
||||
|
||||
<SYNTAX SEARCH OBJECT = V-SEARCH PRE-SEARCH>
|
||||
<SYNTAX SEARCH IN OBJECT = V-SEARCH PRE-SEARCH>
|
||||
<SYNTAX SEARCH FOR OBJECT = V-FIND>
|
||||
<SYNTAX SEARCH OBJECT AROUND OBJECT = V-SEARCH-GROUND-AROUND>
|
||||
<SYNTAX SEARCH OBJECT UNDER OBJECT = V-SEARCH-GROUND-UNDER>
|
||||
<SYNTAX SEARCH AROUND OBJECT = V-SEARCH-AROUND>
|
||||
<SYNTAX SEARCH NEAR OBJECT = V-SEARCH-AROUND>
|
||||
<SYNTAX SEARCH OBJECT NEAR OBJECT = V-SEARCH-GROUND-AROUND>
|
||||
<SYNTAX SEARCH OBJECT FOR OBJECT = V-SEARCH-OBJECT-FOR>
|
||||
<SYNTAX SEARCH UP OBJECT = V-SEARCH PRE-SEARCH>
|
||||
<SYNONYM SEARCH DIG>
|
||||
|
||||
<SYNTAX LOWER OBJECT = V-LOWER>
|
||||
|
||||
<SYNTAX MOVE OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
|
||||
<SYNTAX ROLL UP OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
|
||||
<SYNONYM MOVE>
|
||||
|
||||
<SYNTAX PLAY OBJECT = V-PLAY>
|
||||
|
||||
<SYNTAX PULL OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE ; *>
|
||||
<SYNTAX PULL ON OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
|
||||
<SYNONYM PULL TUG>
|
||||
|
||||
<SYNTAX MUMBLE = V-MUMBLE>
|
||||
<SYNONYM MUMBLE SIGH>
|
||||
|
||||
<SYNTAX DESTROY
|
||||
OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
|
||||
WITH
|
||||
OBJECT (HELD CARRIED TAKE)
|
||||
= V-MUNG>
|
||||
<SYNTAX DESTROY
|
||||
DOWN
|
||||
OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
|
||||
WITH
|
||||
OBJECT (HELD CARRIED TAKE)
|
||||
= V-MUNG>
|
||||
<SYNONYM DESTROY DAMAGE BREAK SMASH>
|
||||
|
||||
<SYNTAX OPEN
|
||||
OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-OPEN ;*>
|
||||
<SYNTAX OPEN
|
||||
UP
|
||||
OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-OPEN ;*>
|
||||
<SYNTAX OPEN
|
||||
OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT (FIND TOOLBIT) (ON-GROUND IN-ROOM HELD CARRIED HAVE)
|
||||
= V-OPEN>
|
||||
|
||||
<SYNTAX PEEK IN OBJECT = V-LOOK-INSIDE>
|
||||
|
||||
<SYNTAX PICK OBJECT = V-PICK>
|
||||
<SYNTAX PICK OBJECT WITH OBJECT = V-PICK>
|
||||
|
||||
<SYNTAX PICK UP
|
||||
OBJECT (FIND TAKEBIT)
|
||||
(ON-GROUND MANY)
|
||||
= V-TAKE PRE-TAKE>
|
||||
|
||||
<SYNTAX POKE
|
||||
OBJECT (FIND PERSON) (ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE)
|
||||
= V-MUNG>
|
||||
<SYNONYM POKE JAB BLIND>
|
||||
|
||||
<SYNTAX POUR OBJECT (HELD CARRIED) = V-DROP ;*>
|
||||
<SYNTAX POUR OBJECT (HELD CARRIED) IN OBJECT = V-DROP>
|
||||
<SYNTAX POUR OBJECT (HELD CARRIED) ON OBJECT = V-POUR-ON PRE-POUR-ON>
|
||||
<SYNTAX POUR OBJECT (HELD CARRIED) FROM OBJECT = V-DROP>
|
||||
<SYNONYM POUR SPILL>
|
||||
|
||||
<SYNTAX PUSH OBJECT (IN-ROOM ON-GROUND MANY) = V-PUSH>
|
||||
<SYNTAX PUSH ON OBJECT (IN-ROOM ON-GROUND MANY) = V-PUSH>
|
||||
<SYNTAX PUSH OBJECT UNDER OBJECT = V-PUT-UNDER>
|
||||
<SYNONYM PUSH PRESS>
|
||||
|
||||
<SYNTAX PUT OBJECT (HELD MANY HAVE) IN OBJECT = V-PUT PRE-PUT ;*>
|
||||
<SYNTAX PUT OBJECT (HELD MANY HAVE) ON OBJECT = V-PUT PRE-PUT>
|
||||
<SYNTAX PUT DOWN OBJECT (HELD MANY HAVE) = V-DROP>
|
||||
<SYNTAX PUT OBJECT (CARRIED HELD HAVE) UNDER OBJECT = V-PUT-UNDER>
|
||||
<SYNTAX PUT OBJECT (CARRIED HELD HAVE) AGAINST OBJECT = V-LEAN>
|
||||
<SYNONYM PUT STUFF INSERT PLACE>
|
||||
|
||||
<SYNTAX RAISE OBJECT = V-RAISE ;*>
|
||||
<SYNTAX RAISE UP OBJECT = V-RAISE>
|
||||
<SYNTAX RAISE OBJECT OFF OBJECT = V-TAKE>
|
||||
<SYNONYM RAISE LIFT>
|
||||
|
||||
<SYNTAX RAPE OBJECT (FIND PERSON) = V-RAPE>
|
||||
<SYNONYM RAPE MOLEST>
|
||||
|
||||
<SYNTAX READ
|
||||
OBJECT (FIND READBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE)
|
||||
= V-READ PRE-READ ; *>
|
||||
<SYNTAX READ OBJECT (FIND READBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE)
|
||||
OBJECT = V-READ PRE-READ>
|
||||
<SYNTAX READ
|
||||
OBJECT (FIND READBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE)
|
||||
WITH
|
||||
OBJECT
|
||||
= V-READ PRE-READ>
|
||||
<SYNONYM READ SKIM>
|
||||
|
||||
<SYNTAX RING OBJECT (TAKE) = V-RING ;*>
|
||||
<SYNTAX RING OBJECT (TAKE) WITH OBJECT = V-RING>
|
||||
<SYNONYM RING PEAL>
|
||||
|
||||
<SYNTAX RUB OBJECT = V-RUB>
|
||||
<SYNTAX RUB OBJECT WITH OBJECT (TAKE HAVE) = V-RUB>
|
||||
<SYNTAX RUB OBJECT (TAKE HAVE) OVER OBJECT = V-RUB-OVER PRE-RUB-OVER>
|
||||
<SYNTAX RUB OBJECT (TAKE HAVE) ON OBJECT = V-RUB-OVER PRE-RUB-OVER>
|
||||
<SYNONYM RUB TOUCH FEEL SHADE>
|
||||
|
||||
<SYNTAX SCRIPT = V-SCRIPT>
|
||||
<SYNTAX UNSCRIPT = V-UNSCRIPT>
|
||||
|
||||
<SYNTAX SEND FOR OBJECT = V-SEND-FOR>
|
||||
|
||||
<SYNTAX SHAKE OBJECT = V-SHAKE>
|
||||
|
||||
<SYNTAX SHOW OBJECT TO OBJECT (FIND PERSON) = V-SSHOW PRE-SSHOW>
|
||||
<SYNTAX SHOW OBJECT (FIND PERSON) OBJECT = V-SHOW>
|
||||
|
||||
<SYNTAX SLIDE OBJECT UNDER OBJECT = V-PUT-UNDER>
|
||||
|
||||
<SYNTAX SKIP = V-SKIP>
|
||||
<SYNONYM SKIP HOP>
|
||||
|
||||
<SYNTAX SMELL OBJECT = V-SMELL>
|
||||
<SYNONYM SMELL SNIFF>
|
||||
|
||||
<SYNTAX SQUEEZE OBJECT = V-SQUEEZE>
|
||||
<SYNTAX SQUEEZE OBJECT ON OBJECT = V-PUT PRE-PUT>
|
||||
|
||||
<SYNTAX STRIKE
|
||||
OBJECT (FIND PERSON) (ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT (FIND WEAPONBIT) (HELD CARRIED ON-GROUND IN-ROOM HAVE)
|
||||
= V-ATTACK>
|
||||
<SYNTAX STRIKE
|
||||
OBJECT (FIND PERSON) (ON-GROUND IN-ROOM)
|
||||
= V-ATTACK ;*>
|
||||
<SYNTAX STRIKE OBJECT (ON-GROUND IN-ROOM HELD CARRIED) = V-LAMP-ON>
|
||||
|
||||
<SYNTAX SWIM = V-SWIM>
|
||||
<SYNTAX SWIM IN OBJECT = V-SWIM>
|
||||
<SYNONYM SWIM BATHE WADE>
|
||||
|
||||
<SYNTAX SWING
|
||||
OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE)
|
||||
= V-SWING>
|
||||
<SYNTAX SWING
|
||||
OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE)
|
||||
AT
|
||||
OBJECT (FIND PERSON) (ON-GROUND IN-ROOM)
|
||||
= V-SWING>
|
||||
<SYNONYM SWING THRUST>
|
||||
|
||||
<SYNTAX TAKE
|
||||
OBJECT (FIND TAKEBIT)
|
||||
(ON-GROUND MANY)
|
||||
= V-TAKE PRE-TAKE ;*>
|
||||
;<SYNTAX TAKE IN OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-BOARD PRE-BOARD>
|
||||
<SYNTAX TAKE OUT OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-DISEMBARK>
|
||||
<SYNTAX TAKE ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
|
||||
<SYNTAX TAKE
|
||||
OBJECT (FIND TAKEBIT) (CARRIED IN-ROOM MANY)
|
||||
OUT
|
||||
OBJECT
|
||||
= V-TAKE PRE-TAKE>
|
||||
<SYNTAX TAKE
|
||||
OBJECT (FIND TAKEBIT) (CARRIED IN-ROOM MANY)
|
||||
OFF
|
||||
OBJECT
|
||||
= V-TAKE PRE-TAKE>
|
||||
<SYNTAX TAKE
|
||||
OBJECT (FIND TAKEBIT) (IN-ROOM CARRIED MANY)
|
||||
FROM
|
||||
OBJECT
|
||||
= V-TAKE PRE-TAKE>
|
||||
<SYNTAX TAKE OBJECT (FIND TAKEBIT) (IN-ROOM CARRIED TAKE HAVE)
|
||||
UP OBJECT = V-HOLD-UP>
|
||||
<SYNTAX TAKE UP OBJECT (FIND RMUNGBIT) = V-STAND>
|
||||
<SYNTAX TAKE OBJECT TO OBJECT = V-SHOW>
|
||||
<SYNONYM TAKE GET HOLD CARRY REMOVE LEAD>
|
||||
|
||||
<SYNTAX TASTE OBJECT = V-TASTE>
|
||||
|
||||
<SYNTAX TELL OBJECT (FIND PERSON) (IN-ROOM) = V-TELL>
|
||||
<SYNTAX TELL OBJECT (FIND PERSON) ABOUT OBJECT = V-TELL-ME>
|
||||
|
||||
<SYNTAX SAY TO OBJECT (FIND PERSON) (IN-ROOM) = V-TELL>
|
||||
<SYNTAX SAY = V-SAY>
|
||||
<SYNONYM SAY TALK>
|
||||
|
||||
<SYNTAX THROW
|
||||
OBJECT (HELD CARRIED HAVE)
|
||||
AT
|
||||
OBJECT (FIND PERSON) (ON-GROUND IN-ROOM)
|
||||
= V-THROW-AT>
|
||||
<SYNTAX THROW
|
||||
OBJECT (HELD CARRIED HAVE)
|
||||
WITH
|
||||
OBJECT (FIND PERSON) (ON-GROUND IN-ROOM)
|
||||
= V-THROW-THROUGH>
|
||||
|
||||
<SYNTAX THROW OBJECT (HELD CARRIED HAVE) IN OBJECT = V-PUT PRE-PUT>
|
||||
<SYNTAX THROW OBJECT (HELD CARRIED HAVE) ON OBJECT = V-PUT PRE-PUT>
|
||||
<SYNTAX THROW OBJECT (HELD CARRIED HAVE) OVER OBJECT = V-PUT PRE-PUT>
|
||||
<SYNONYM THROW HURL CHUCK TOSS>
|
||||
|
||||
<SYNTAX TIE OBJECT TO OBJECT = V-TIE PRE-TIE>
|
||||
<SYNTAX TIE UP
|
||||
OBJECT (FIND PERSON) (ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT (FIND TOOLBIT) (ON-GROUND IN-ROOM HELD CARRIED HAVE)
|
||||
= V-TIE-UP>
|
||||
<SYNONYM TIE FASTEN SECURE ATTACH>
|
||||
|
||||
<SYNTAX TURN OBJECT (FIND TURNBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-TURN PRE-TURN>
|
||||
<SYNTAX TURN IN OBJECT (FIND TURNBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-TURN PRE-TURN>
|
||||
<SYNTAX TURN TO OBJECT (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-TURN PRE-TURN>
|
||||
<SYNTAX TURN ON
|
||||
OBJECT (FIND LIGHTBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-LAMP-ON>
|
||||
<SYNTAX TURN OFF
|
||||
OBJECT (FIND LIGHTBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-LAMP-OFF>
|
||||
<SYNTAX TURN UP OBJECT = V-TURN-UP>
|
||||
<SYNTAX TURN DOWN OBJECT = V-TURN-DOWN>
|
||||
|
||||
<SYNONYM TURN FLIP SHUT>
|
||||
|
||||
<SYNTAX UNLOCK OBJECT (ON-GROUND IN-ROOM) = V-UNLOCK>
|
||||
|
||||
<SYNTAX UNTIE
|
||||
OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
|
||||
= V-UNTIE PRE-UNTIE ;*>
|
||||
<SYNTAX UNTIE
|
||||
OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
|
||||
FROM
|
||||
OBJECT
|
||||
= V-UNTIE PRE-UNTIE>
|
||||
<SYNONYM UNTIE FREE UNFASTEN UNATTACH UNHOOK>
|
||||
|
||||
<SYNTAX USE OBJECT = V-USE>
|
||||
|
||||
<SYNTAX WAIT = V-WAIT>
|
||||
<SYNTAX WAIT OBJECT = V-WAIT-FOR>
|
||||
<SYNTAX WAIT UNTIL OBJECT = V-WAIT-UNTIL>
|
||||
<SYNTAX WAIT FOR OBJECT = V-WAIT-FOR>
|
||||
|
||||
<SYNTAX WAKE OBJECT (FIND PERSON) (ON-GROUND IN-ROOM) = V-ALARM ;*>
|
||||
<SYNTAX WAKE UP OBJECT (FIND PERSON) (ON-GROUND IN-ROOM) = V-ALARM>
|
||||
<SYNONYM WAKE AWAKE SURPRISE STARTLE>
|
||||
|
||||
<SYNTAX WALK OBJECT = V-WALK>
|
||||
<SYNTAX WALK TO OBJECT = V-THROUGH>
|
||||
<SYNTAX WALK IN OBJECT = V-THROUGH>
|
||||
<SYNTAX WALK WITH OBJECT = V-THROUGH>
|
||||
<SYNTAX WALK AROUND OBJECT = V-WALK-AROUND>
|
||||
<SYNTAX WALK UP OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-UP>
|
||||
<SYNTAX WALK DOWN OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-DOWN>
|
||||
<SYNTAX WALK BEHIND OBJECT = V-HIDE-BEHIND>
|
||||
<SYNTAX WALK OBJECT OVER OBJECT = V-RUN-OVER>
|
||||
<SYNONYM WALK GO RUN PROCEED>
|
||||
|
||||
<SYNTAX WAVE OBJECT (HELD CARRIED) = V-WAVE>
|
||||
<SYNTAX WAVE OBJECT (HELD CARRIED) AT OBJECT = V-WAVE>
|
||||
<SYNONYM WAVE BRANDISH>
|
||||
|
||||
<SYNTAX WRITE WITH OBJECT = V-WRITE>
|
||||
<SYNTAX WRITE ON OBJECT WITH OBJECT = V-WRITE>
|
||||
|
||||
;"Simple questions"
|
||||
|
||||
<SYNTAX WHAT OBJECT = V-WHAT>
|
||||
<SYNTAX WHAT ABOUT OBJECT = V-WHAT>
|
||||
<SYNTAX WHAT IN OBJECT (HELD CARRIED IN-ROOM ON-GROUND MANY) = V-LOOK-INSIDE>
|
||||
<SYNTAX WHAT ON OBJECT (HELD CARRIED IN-ROOM ON-GROUND MANY) = V-LOOK-INSIDE>
|
||||
<SYNONYM WHAT WHATS WHO>
|
||||
|
||||
<SYNTAX KNOW ABOUT OBJECT = V-WHAT>
|
||||
<SYNTAX KNOW WHERE OBJECT = V-FIND PRE-FIND>
|
||||
|
||||
;"Yes,no"
|
||||
|
||||
<SYNTAX YES = V-YN>
|
||||
<SYNONYM YES NO MAYBE>
|
||||
|
||||
<SYNTAX THANKS = V-THANKS>
|
||||
<SYNTAX THANKS OBJECT = V-THANKS>
|
||||
<SYNONYM THANKS THANK>
|
||||
|
||||
<SYNTAX $VERIFY = V-$VERIFY>
|
||||
|
||||
<SYNTAX WHEN = V-THANKS>
|
||||
<SYNONYM WHEN DID WHY HOW>
|
Loading…
Reference in New Issue