"(c) Copyright 1978, Massachusetts Institute of Technology. All rights reserved." > >>> > ;"newtypes for oblist hack" [REST LIST]>> ;"applicables" > ;"newtypes for parser" \ ;"generalized oflags tester" > FIX> 0>> > FIX> 0>> > FIX> 0>> > FIX>>> .BIT> FIX>>> > FIX>>> .BIT> FIX>>> .BIT> FIX>>> .BIT> FIX>>> > FIX> 0>> > FIX>>> .BIT> FIX>>> \ ;"room definition" ;"objects in room" RACTION RAPPLIC ;"room-action" RBITS FIX ;"random flags" RPROPS > ;"Slots for room" ;"value for entering" ;"globals for room" ;"exit" [REST DIRECTION ]>> ;"conditional exit" ;"description" CXACTION RAPPLIC ;"exit function"> ;"what to print if closed" DACTION RAPPLIC ;"what to call to decide"> ;"unusable exit description" \ ;"PARSER related types" ;"VSPEC -- uvector of syntaxes for a verb" [REST SYNTAX]>> ;"SYNTAX -- a legal syntax for a sentence involving this verb" ;"SFLAGS of a SYNTAX" ;"STRNN -- test a bit in the SFLAGS slot of a SYNTAX" > FIX> 0>> ; "VARG -- types and locations of objects acceptable as args to verbs, these go in the SYN1 and SYN2 slots of a SYNTAX." ;"preposition that must precede(?) object" VWORD FIX ;"locations object may be looked for in"> ;"flagbit definitions for VWORD of a VARG" try to take the object" VCBIT ;"1 => care if can't take object" VFBIT ;"1 => care if can't reach object"> ;"VTRNN -- test a bit in the VWORD slot of a VARG" > FIX> 0>> "VTBIT & VCBIT interact as follows: vtbit vcbit 1 1 = TAKE -- try to take, care if can't ('TURN WITH x') 1 0 = TRY -- try to take, don't care if can't ('READ x') 0 1 = MUST -- must already have object ('ATTACK TROLL WITH x') 0 0 = NO-TAKE (default) -- don't try, don't care ('TAKE x') " ;"VERB -- name and function to apply to handle verb" ;"ORPHANS -- mysterious vector of orphan data" OVERB OSLOT1 OPREP ONAME > ;"prepositional phrases" \ ;"BITS FOR 2ND ARG OF CALL TO TELL (DEFAULT IS 1)" > > ;"adventurer" ;"what he's carrying" ASCORE FIX ;"score" AVEHICLE ;"what he's riding in" AOBJ OBJECT ;"what he is" AACTION RAPPLIC ;"special action for robot, etc." ASTRENGTH FIX ;"fighting strength" AFLAGS FIX ;"flags THIS MUST BE SAME OFFSET AS OFLAGS!"> "bits in : bit-name" ;"object" ;"synonyms" OADJS ;"adjectives for this" ODESC2 STRING ;"short description" OFLAGS FIX ;"flags THIS MUST BE SAME OFFSET AS AFLAGS!" OACTION RAPPLIC ;"object-action" OCONTENTS ;"list of contents" OCAN ;"what contains this" OROOM ;"what room its in" OPROPS ;"property list"> ;"For funny slots in objects" ;"value when placed in trophy case" ;"value when found" ;"size" ;"capacity" <>> ;"first description" ;"long description" <>> ;"reading material" ;"global bit for this object" ;"vehicle's type spec" > ;"adventurer for actors" > <>> ;"light interrupts" ;"# of matches" <>> ;"melee messages" <>> ;"bunch verb" ;"strength for melee" >> ;"bits in : bit-name bit-tester" "extra stuff for flagword for objects" "can i be opened?" >> "complement of the bit state" >> "if object is a light or aflame, then flaming" ))
.CONST> FIX> .CONST>> "if object visible and open or transparent, can see inside it" >>> > FIX>>>> \ ;"demons" "REST" HROOMS HROOM ROOM HOBJ OBJECT HFLAG ANY> ;"Clock interrupts" CFLAG CID ATOM CDEATH > ;"Questions for end game" \ "SET WHEN IN LONG TELL" "SET BY CTRL-S HANDLER TO CAUSE TELL TO FLUSH" (STARS OBJECTS WEAPONS NASTIES) (PRSVEC) > (WINNER PLAYER) ADV (HERE) ROOM (INCHAN OUTCHAN) CHANNEL (DEMONS) LIST (MOVES DEATHS) FIX (DUMMY YUKS) (SWORD-DEMON) HACK (CPOBJS) UVECTOR (CPHERE) FIX> \ ; "SUBTITLE POBLIST HACKS" > > (OBL) POBLIST (BUCK) FIX) >) (> >)> >>> <2 .TL>)>> (OBL) POBLIST) <+ 1 >>> \ "UTILITY MACROS" "TO CHECK VERBS" > > >>) (ELSE >)) #DECL ((VA) PSTRING) >> .AL>>>)>> >> #DECL ((EL) ROOM) > ) ()>>> "APPLY AN OBJECT FUNCTION" )) #DECL ((FOO) RAPPLIC) > <>) ( ATOM> >>) (>)>>> >> > )) .MUMBLE>) (>)>) (T .MUMBLE>) (>)>) (T )>)>> (P) ATOM (V) ) >) (ELSE >)> >) (<==? <1 .V> .P> >) (ELSE >)>>> ) "AUX" V) #DECL ((O) (P) ATOM (V) (X) ANY (ADD?) ) >) (ELSE >)> ) ()>)> ) (<==? <1 .VV> .P> ) (ELSE >)>>> ) ( T] VERB>>)>> ) ()>> ) ()>> > (VALUE) ROOM) ) ()>> >) ()>> >) ()>> > (VALUE) OBJECT) ) ()>> ) TD) #DECL ((L) < [REST DIRECTION ]>) >) (> DOOR> <==? .OBJ>> )> >>> FIX> 2>>