733 lines
17 KiB
Plaintext
733 lines
17 KiB
Plaintext
"GLOBALS for
|
|
The Lurking Horror
|
|
(c) Copyright 1986 Infocom, Inc. All Rights Reserved."
|
|
|
|
"SOUND sound-id,[action],[volume]"
|
|
|
|
<ROUTINE SOUNDS (N "OPT" (OP ,S-START) (VOL 8))
|
|
<COND (<ZERO? .OP> <SET OP ,S-START>)>
|
|
<COND (<AND <L? <GET ,SOUND-FLAG 0> 0>
|
|
<EQUAL? .OP ,S-START>>
|
|
<PUT ,SOUND-FLAG 0 1>
|
|
<TELL CR
|
|
"[Use $SOUND to toggle sound usage on and off.]" CR CR>)>
|
|
<COND (<EQUAL? .N ,S-DRONE ,S-ATTACK ,S-PSYCHO ,S-MONSTR
|
|
,S-VOICE ,S-ZOMBIE ,S-CRETIN>
|
|
<PUT ,SOUND-FLAG 1 <+ <* .N 16> .VOL>>)>
|
|
<COND (<GET ,SOUND-FLAG 0>
|
|
<COND (<EQUAL? .OP ,S-STOP>
|
|
<PUT ,SOUND-FLAG 0 1>
|
|
<PUT ,SOUND-FLAG 1 0>)
|
|
(<EQUAL? .N ,S-DRONE ,S-ATTACK ,S-PSYCHO ,S-MONSTR
|
|
,S-VOICE ,S-ZOMBIE ,S-CRETIN>
|
|
<PUT ,SOUND-FLAG 0 <+ <* .N 16> .VOL>>
|
|
<PUT ,SOUND-FLAG 1 <+ <* .N 16> .VOL>>)
|
|
(ELSE
|
|
<PUT ,SOUND-FLAG 0 1>
|
|
<PUT ,SOUND-FLAG 1 0>)>
|
|
<COND (<EQUAL? .OP ,S-START>
|
|
<SOUND .N .OP .VOL>)
|
|
(ELSE
|
|
<SOUND .N .OP>)>)>>
|
|
|
|
<ROUTINE KILL-SOUNDS ()
|
|
<SOUNDS 0 ,S-STOP>
|
|
<SOUNDS 0 ,S-CLEANUP>>
|
|
|
|
<SYNTAX $SOUND = V-$SOUND>
|
|
|
|
<GLOBAL SOUND-FLAG <TABLE -1 0>>
|
|
|
|
<ROUTINE V-$SOUND ("AUX" X Y)
|
|
<SET X <GET ,SOUND-FLAG 1>>
|
|
<SET Y <GET ,SOUND-FLAG 0>>
|
|
<TELL "Sound ">
|
|
<COND (.Y
|
|
<KILL-SOUNDS>
|
|
<COND (<N==? .Y 1> <PUT ,SOUND-FLAG 1 .Y>)
|
|
(ELSE <PUT ,SOUND-FLAG 1 0>)>
|
|
<PUT ,SOUND-FLAG 0 0>
|
|
<TELL "off." CR>)
|
|
(ELSE
|
|
<PUT ,SOUND-FLAG 0 1>
|
|
<COND (.X
|
|
%<IFSOUND <SOUNDS </ .X 16>
|
|
,S-START
|
|
<MOD .X 16>>>)>
|
|
<TELL "on." CR>)>>
|
|
|
|
;"sound operations"
|
|
<CONSTANT S-INIT 1>
|
|
<CONSTANT S-START 2>
|
|
<CONSTANT S-STOP 3>
|
|
<CONSTANT S-CLEANUP 4>
|
|
|
|
;"sound ids (sounds marked with a * are looping sounds)"
|
|
<CONSTANT S-BEEP 1>
|
|
<CONSTANT S-BOOP 2>
|
|
<CONSTANT S-DRONE 10> ;"33K * drone of frob worshippers in dream"
|
|
<CONSTANT S-BLOOD 3> ;"50K axe hitting m.m."
|
|
<CONSTANT S-HATCH 6> ;"46K rusty hatch opening"
|
|
<CONSTANT S-ATTACK 4> ;"21K * rats attacking"
|
|
<CONSTANT S-ELCRSH 7> ;"60K elevator crashing"
|
|
<CONSTANT S-DIE 12> ;"44K screeching bird-like howl -- flier"
|
|
<CONSTANT S-PSYCHO 13> ;"57K * weird psychotic voice -- demon"
|
|
<CONSTANT S-MONSTR 18> ;"50K * sick pigs -- pit in altar area"
|
|
<CONSTANT S-VOICE 15> ;"52K * electronic one-two-three -- urchins"
|
|
<CONSTANT S-ZOMBIE 17> ;"39K * electronic frogs and grasshoppers -- frob"
|
|
<CONSTANT S-SPARKY 11> ;"40K electrical zap -- line in water"
|
|
<CONSTANT S-CRETIN 16> ;"25K * monster from the id -- frob frying"
|
|
<CONSTANT S-CRACK 8> ;" 8K crack of stone"
|
|
<CONSTANT S-GHIDRA 9> ;"58K frob flapping away"
|
|
|
|
;"sounds cut for reasons of space"
|
|
;<CONSTANT S-SQUEAL 5> ;"23K single rat"
|
|
;<CONSTANT S-STORMY 14> ;"54K * storm"
|
|
|
|
<DIRECTIONS ;"Do not change the order of the first 8 without consulting MARC!"
|
|
NORTH NE EAST SE SOUTH SW WEST NW UP DOWN IN OUT>
|
|
|
|
<SYNONYM NORTH N>
|
|
<SYNONYM SOUTH S>
|
|
<SYNONYM EAST E>
|
|
<SYNONYM WEST W>
|
|
<SYNONYM DOWN D>
|
|
<SYNONYM UP U>
|
|
<SYNONYM NE NORTHEAST>
|
|
<SYNONYM NW NORTHWEST>
|
|
<SYNONYM SE SOUTHEAST>
|
|
<SYNONYM SW SOUTHWEST>
|
|
<SYNONYM IN AHEAD>
|
|
|
|
<GLOBAL HERE <>>
|
|
|
|
<GLOBAL LIT <>>
|
|
|
|
<GLOBAL MOVES 0>
|
|
|
|
<GLOBAL SCORE 0>
|
|
|
|
;<GLOBAL DIR-TABLE
|
|
<PLTABLE 1 P?NORTH "north"
|
|
2 P?EAST "east"
|
|
4 P?WEST "west"
|
|
8 P?SOUTH "south"
|
|
16 P?NE "northeast"
|
|
32 P?NW "northwest"
|
|
64 P?SE "southeast"
|
|
128 P?SW "southwest">>
|
|
|
|
<CONSTANT DIR-BIT 1>
|
|
<CONSTANT DIR-DIR 2>
|
|
<CONSTANT DIR-NAME 3>
|
|
|
|
;<ROUTINE DIR-BASE (DIR I O "AUX" (L <GET ,DIR-TABLE 0>))
|
|
<DO (CNT 0 .L 3)
|
|
<COND (<EQUAL? <GET ,DIR-TABLE <+ .CNT .I>> .DIR>
|
|
<RETURN <GET ,DIR-TABLE <+ .CNT .O>>>)>>>
|
|
|
|
"global objects and associated routines"
|
|
|
|
<OBJECT GLOBAL-OBJECTS
|
|
(FLAGS AN
|
|
CONTBIT
|
|
DOORBIT
|
|
INVISIBLE
|
|
LOCKED
|
|
NDESCBIT
|
|
NOABIT
|
|
NOTHEBIT
|
|
ONBIT
|
|
OUTSIDE
|
|
OPENBIT
|
|
PERSON
|
|
POWERBIT
|
|
;RAIRBIT
|
|
READBIT
|
|
RLANDBIT
|
|
RMUNGBIT
|
|
;RWATERBIT
|
|
SEARCHBIT
|
|
SLIMEBIT
|
|
SURFACEBIT
|
|
TAKEBIT
|
|
THE
|
|
TOOLBIT
|
|
TOUCHBIT
|
|
TRANSBIT
|
|
TRYTAKEBIT
|
|
VEHBIT
|
|
WEAPONBIT
|
|
WEARBIT)>
|
|
|
|
<OBJECT LOCAL-GLOBALS
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM ZZMGCK) ;"Yes, this needs to exist."
|
|
(DESCFCN 0)
|
|
(CONTFCN 0)
|
|
(GLOBAL GLOBAL-OBJECTS)
|
|
(FDESC "F")
|
|
(LDESC "F")
|
|
;(NAME 0)
|
|
;(PSEUDO "FOOBAR" V-WALK)
|
|
(THINGS 0)
|
|
(COUNT 0)
|
|
(SIZE 0)
|
|
(TEXT "")
|
|
(CAPACITY 0)>
|
|
|
|
<OBJECT ROOMS
|
|
(IN TO ROOMS)>
|
|
|
|
<GLOBAL P-DIRECTION <>>
|
|
|
|
<OBJECT INTDIR
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "direction")>
|
|
|
|
<OBJECT INTNUM
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "number")
|
|
(SYNONYM INTNUM)
|
|
(ADJECTIVE NUMBER)
|
|
(ACTION INTNUM-F)>
|
|
|
|
<ROUTINE INTNUM-F ()
|
|
<COND (<PRSO? ,INTNUM>
|
|
<COND (<HERE? ,CS-ELEVATOR-ROOM>
|
|
<REDIRECT ,INTNUM ,FLOOR-BUTTON>
|
|
<RTRUE>)
|
|
(<HERE? ,KITCHEN>
|
|
<PUT ,P-ADJW 0 ,W?INTNUM>
|
|
<REDIRECT ,INTNUM ,CONTROLS>
|
|
<RTRUE>)
|
|
(<VERB? PUSH>
|
|
<TELL S "There's no number ""to push here." CR>)>)>>
|
|
|
|
<OBJECT PSEUDO-OBJECT
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "pseudo")
|
|
(ACTION RANDOM-PSEUDO)>
|
|
|
|
<OBJECT IT
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM IT THEM OBJECT FROB)
|
|
(DESC "it")
|
|
(FLAGS AN NOABIT NOTHEBIT NDESCBIT TOUCHBIT)>
|
|
|
|
<OBJECT HIM
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM HIM HER)
|
|
(DESC "him")
|
|
(FLAGS NOABIT NOTHEBIT NDESCBIT TOUCHBIT)>
|
|
|
|
<OBJECT NOT-HERE-OBJECT
|
|
(DESC "it")
|
|
(FLAGS NOABIT NOTHEBIT)
|
|
(ACTION NOT-HERE-OBJECT-F)>
|
|
|
|
"NOT-HERE-OBJECT-F returns false if it was successful in substituting
|
|
an object for the not-here-object. if it returns true, it failed for
|
|
some reason."
|
|
|
|
<ROUTINE NOT-HERE-OBJECT-F ("AUX" TBL (PRSO? T) (X <>))
|
|
<COND (<AND <PRSO? ,NOT-HERE-OBJECT>
|
|
<PRSI? ,NOT-HERE-OBJECT>>
|
|
<TELL "Those things aren't here!" CR>
|
|
<RTRUE>)
|
|
(<PRSO? ,NOT-HERE-OBJECT>
|
|
<SET TBL ,P-PRSO>
|
|
<COND (<VERB? FOLLOW WAIT-FOR FIND
|
|
TELL WHAT WHERE WHO>
|
|
<SET X T>)>)
|
|
(T
|
|
<SET TBL ,P-PRSI>
|
|
<COND (<VERB? ASK-ABOUT ASK-FOR TELL-ABOUT>
|
|
<SET X T>)>
|
|
<SET PRSO? <>>)>
|
|
<COND (<AND .X <NOT <FIND-NOT-HERE .TBL .PRSO?>>>
|
|
<COND (<VERB? FOLLOW>
|
|
<TELL
|
|
"I'm afraid that's not possible." CR>
|
|
<RTRUE>)
|
|
(<VERB? WAIT-FOR>
|
|
<COND (<AND <PRSO? ,RATS>
|
|
<IN-TUNNEL? ,RATS>
|
|
<IN-TUNNEL?>>
|
|
<TELL "All in good time..." CR>
|
|
<RTRUE>)
|
|
(ELSE
|
|
<COND (<PLURAL? ,PRSO>
|
|
<TELL "They're">)
|
|
(ELSE
|
|
<TELL "He's">)>
|
|
<TELL " not expected any time soon." CR>
|
|
<RTRUE>)>)
|
|
(<AND <VERB? TELL>
|
|
<OR <NOT <EQUAL? <LOC ,PRSO>
|
|
,INF-1 ,INF-2 ,INF-3
|
|
,INF-4 ,INF-5>>
|
|
<NOT <HERE? ,INF-1 ,INF-2 ,INF-3
|
|
,INF-4 ,INF-5>>>>
|
|
;<CANT-SEE-ANY-HERE .PRSO?>
|
|
;<RTRUE>)
|
|
(ELSE
|
|
<RFALSE>)>)>
|
|
;"Here is the default 'cant see any' printer"
|
|
<CANT-SEE-ANY-HERE .PRSO?>>
|
|
|
|
<ROUTINE CANT-SEE-ANY-HERE (PRSO?)
|
|
<COND (<WINNER? ,PLAYER>
|
|
<TELL "You">)
|
|
(ELSE
|
|
<TELL CTHE ,WINNER>)>
|
|
<TELL " can't see any ">
|
|
<COND (,P-OFLAG
|
|
<COND (<PRINT-ADJT ,P-XADJNT>)>
|
|
<COND (,P-XNAM <PRINTB ,P-XNAM>)>)
|
|
(ELSE
|
|
<THING-PRINT .PRSO?>)>
|
|
<TELL " here." CR>
|
|
<END-QUOTE>>
|
|
|
|
<ROUTINE FIND-NOT-HERE (TBL PRSO? "AUX" M-F OBJ)
|
|
;"Special-case code goes here. <MOBY-FIND .TBL> returns # of matches. If 1,
|
|
then P-MOBY-FOUND is it. You can treat the 0 and >1 cases alike or differently.
|
|
Always return RFALSE (not handled) if you have resolved the problem."
|
|
<SET M-F <MOBY-FIND .TBL>>
|
|
%<DEBUG-CODE
|
|
<COND (,ZDEBUG
|
|
<TELL "[Found " N .M-F " obj]" CR>)>>
|
|
<COND (<EQUAL? 1 .M-F>
|
|
%<DEBUG-CODE
|
|
<COND (,ZDEBUG
|
|
<TELL "[Namely: " D ,P-MOBY-FOUND "]" CR>)>>
|
|
<COND (.PRSO?
|
|
<SETG PRSO ,P-MOBY-FOUND>)
|
|
(T
|
|
<SETG PRSI ,P-MOBY-FOUND>)>
|
|
<RFALSE>)
|
|
(T
|
|
,NOT-HERE-OBJECT)>>
|
|
|
|
<OBJECT LIGHT
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "light")
|
|
(SYNONYM LIGHT LIGHTS)
|
|
(ACTION LIGHT-F)>
|
|
|
|
<ROUTINE LIGHT-F ()
|
|
<COND (<VERB? LAMP-ON>
|
|
<COND (,LIT
|
|
<TELL ,IT-IS-ALREADY "light" ,PERIOD>)
|
|
(T
|
|
<TELL
|
|
"You need a light source!" CR>)>)
|
|
(<VERB? LAMP-OFF>
|
|
<TELL ,WASTE-OF-TIME>)>>
|
|
|
|
<OBJECT GLOBAL-HOLE
|
|
(IN LOCAL-GLOBALS)
|
|
(FLAGS NDESCBIT TOUCHBIT)
|
|
(DESC "hole")
|
|
(SYNONYM HOLE)
|
|
(ADJECTIVE MUDDY)
|
|
(ACTION GLOBAL-HOLE-F)>
|
|
|
|
<ROUTINE GLOBAL-HOLE-F ()
|
|
<COND (<P? DIG GLOBAL-HOLE *>
|
|
<PERFORM ,V?DIG ,PRSI>
|
|
<RTRUE>)
|
|
(<VERB? REACH-IN>
|
|
<TELL ,YOU-FIND-NOTHING " of interest." CR>)>>
|
|
|
|
<OBJECT CEILING
|
|
(IN GLOBAL-OBJECTS)
|
|
(FLAGS NDESCBIT TOUCHBIT)
|
|
(DESC "ceiling")
|
|
(SYNONYM CEILIN ROOF)
|
|
(ACTION CEILING-F)>
|
|
|
|
<ROUTINE CEILING-F ()
|
|
<COND (<VERB? LOOK-UNDER>
|
|
<NEW-VERB ,V?LOOK>
|
|
<RTRUE>)>>
|
|
|
|
<OBJECT AIR
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "air")
|
|
(SYNONYM AIR COLD)
|
|
(FLAGS AN NOABIT)>
|
|
|
|
<OBJECT FEET
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM FEET FOOT)
|
|
(DESC "your feet")
|
|
(FLAGS NDESCBIT TOOLBIT TOUCHBIT NOABIT NOTHEBIT)>
|
|
|
|
<OBJECT HANDS
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM HANDS HAND)
|
|
(ADJECTIVE BARE MY)
|
|
(DESC "your hand")
|
|
(FLAGS NDESCBIT TOOLBIT TOUCHBIT NOABIT NOTHEBIT)
|
|
(GENERIC GENERIC-HAND-F)>
|
|
|
|
<ROUTINE GENERIC-HAND-F ()
|
|
,HAND>
|
|
|
|
<OBJECT HEAD
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "your head")
|
|
(SYNONYM HEAD FACE)
|
|
(ADJECTIVE YOUR MY)
|
|
(FLAGS NOABIT NOTHEBIT)>
|
|
|
|
<OBJECT EYES
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "your eyes")
|
|
(SYNONYM EYE EYES)
|
|
(ADJECTIVE YOUR MY)
|
|
(FLAGS NOABIT NOTHEBIT)
|
|
(ACTION EYES-F)>
|
|
|
|
<ROUTINE EYES-F ()
|
|
<COND (<VERB? OPEN>
|
|
<TELL "They are." CR>)
|
|
(<VERB? CLOSE>
|
|
<TELL "That won't help." CR>)
|
|
(<NOT ,LIT>
|
|
<TELL ,TOO-DARK>)>>
|
|
|
|
<OBJECT PLAYER
|
|
(IN TERMINAL-ROOM)
|
|
(SYNONYM PROTAG)
|
|
(DESC "it")
|
|
(FLAGS NDESCBIT INVISIBLE PERSON CONTBIT TRANSBIT)
|
|
(ACTION PLAYER-F)>
|
|
|
|
<ROUTINE PLAYER-F ("AUX" DOOR)
|
|
<COND (,ON-CABLE?
|
|
<COND (<OR <P? DROP ROOMS>
|
|
<VERB? DISEMBARK TAKE TAKE-OFF>
|
|
<HOSTILE-VERB?>
|
|
<AND <VERB? WALK>
|
|
<EQUAL? ,P-WALK-DIR ,P?DOWN>>>
|
|
<SETG ON-CABLE? <>>
|
|
<TELL "You let go of the cable and drop to the floor">
|
|
<COND (,RATS-HERE
|
|
<COND (<L? ,RATS-HERE 2>
|
|
<SETG RATS-HERE 2>)>
|
|
<TELL
|
|
" among the now-frenzied rats">)>
|
|
<TELL ,PERIOD>)>)
|
|
(,HOLDING-DOORS?
|
|
<SET DOOR <THIS-FLOOR-DOOR>>
|
|
<COND (<AND <NOT <PRSO? ,ELEVATOR-DOOR .DOOR>>
|
|
<NOT <PRSI? ,ELEVATOR-DOOR .DOOR>>
|
|
<NOT <GAME-VERB?>>
|
|
<NOT <PASSIVE-VERB?>>>
|
|
<TELL ,HOLDING-IS-ALL CR>)>)
|
|
(ELSE <RFALSE>)>>
|
|
|
|
<OBJECT ME
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM ME MYSELF SELF)
|
|
(DESC "yourself")
|
|
(FLAGS PERSON TOUCHBIT NOABIT NOTHEBIT)
|
|
(ACTION ME-F)>
|
|
|
|
<ROUTINE MENTAL-COLLAPSE ()
|
|
<TELL
|
|
"Talking to yourself is a sign of impending mental collapse." CR>>
|
|
|
|
<ROUTINE ME-F ("AUX" OLIT)
|
|
<COND (<P? EXAMINE ,ME>
|
|
<V-DIAGNOSE>)
|
|
(<VERB? TELL HELP>
|
|
<MENTAL-COLLAPSE>
|
|
<END-QUOTE>)
|
|
(<VERB? LISTEN>
|
|
<TELL "Yes?" CR>)
|
|
(<VERB? WAKE>
|
|
<TELL ,YOU-ARE>
|
|
<TELL ,PERIOD>)
|
|
(<AND <WINNER? ,PLAYER>
|
|
<VERB? GIVE>>
|
|
<COND (<PRSO? ,ME>
|
|
<TELL ,WASTE-OF-TIME>)
|
|
(<PRSI? ,ME>
|
|
<COND (<IN? ,PRSO ,PLAYER>
|
|
<PRE-TAKE>)
|
|
(T
|
|
<PERFORM ,V?TAKE ,PRSO>
|
|
<RTRUE>)>)>)
|
|
(<VERB? MOVE>
|
|
<V-WALK-AROUND>)
|
|
(<VERB? SEARCH>
|
|
<V-INVENTORY>
|
|
<RTRUE>)
|
|
(<VERB? KILL MUNG BURY SMELL>
|
|
<JIGS-UP
|
|
"Verdict: suicide while the balance of the mind was disturbed.">
|
|
<RTRUE>)
|
|
(<VERB? WHO>
|
|
<V-WHAT>)
|
|
(<VERB? FOLLOW>
|
|
<TELL
|
|
"You're getting ahead of yourself." CR>)
|
|
(<VERB? LOOK-BEHIND>
|
|
<TELL
|
|
"You look back over your shoulder. ">
|
|
<COND (<PROB 80>
|
|
<TELL
|
|
S "There's nothing ""there." CR>)
|
|
(<PROB 80>
|
|
<TELL
|
|
"Was that a flicker of movement in the distance?" CR>)
|
|
(ELSE
|
|
<TELL
|
|
"You see something duck back into the shadows." CR>)>)>>
|
|
|
|
<OBJECT GLOBAL-ROOM
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "room")
|
|
(SYNONYM ROOM CHAMBER PLACE BASEMENT)
|
|
(ADJECTIVE AREA)
|
|
(ACTION GLOBAL-ROOM-F)>
|
|
|
|
<ROUTINE GLOBAL-ROOM-F ()
|
|
<COND (<VERB? LOOK EXAMINE LOOK-INSIDE>
|
|
<V-LOOK>
|
|
<RTRUE>)
|
|
(<P? PUT * ,GLOBAL-ROOM>
|
|
<PERFORM ,V?DROP ,PRSO>
|
|
<RTRUE>)
|
|
(<VERB? THROUGH WALK-TO>
|
|
<V-WALK-AROUND>)
|
|
(<VERB? DROP LEAVE EXIT>
|
|
<DO-WALK ,P?OUT>)
|
|
(<VERB? WALK-AROUND>
|
|
<TELL
|
|
"Walking around the room reveals nothing new. To move elsewhere, just type
|
|
the desired direction." CR>)
|
|
(<VERB? LAMP-ON>
|
|
<NEW-PRSO ,LIGHT>
|
|
<RTRUE>)>>
|
|
|
|
|
|
<SETG C-NORTH 1>
|
|
<SETG C-EAST 2>
|
|
<SETG C-WEST 4>
|
|
<SETG C-SOUTH 8>
|
|
<SETG C-NE 16>
|
|
<SETG C-NW 32>
|
|
<SETG C-SE 64>
|
|
<SETG C-SW 128>
|
|
|
|
<CONSTANT C-NORTH 1>
|
|
<CONSTANT C-EAST 2>
|
|
<CONSTANT C-WEST 4>
|
|
<CONSTANT C-SOUTH 8>
|
|
<CONSTANT C-NE 16>
|
|
<CONSTANT C-NW 32>
|
|
<CONSTANT C-SE 64>
|
|
<CONSTANT C-SW 128>
|
|
|
|
<OBJECT NORTH-WALL
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "north wall")
|
|
(SYNONYM WALL)
|
|
(ADJECTIVE NORTH)
|
|
(GENERIC GENERIC-WALL-F)
|
|
(ACTION WALL-F)>
|
|
|
|
<OBJECT EAST-WALL
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "east wall")
|
|
(SYNONYM WALL)
|
|
(ADJECTIVE EAST)
|
|
(FLAGS AN)
|
|
(GENERIC GENERIC-WALL-F)
|
|
(ACTION WALL-F)>
|
|
|
|
<OBJECT WEST-WALL
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "west wall")
|
|
(SYNONYM WALL)
|
|
(ADJECTIVE WEST)
|
|
(GENERIC GENERIC-WALL-F)
|
|
(ACTION WALL-F)>
|
|
|
|
<OBJECT SOUTH-WALL
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "south wall")
|
|
(SYNONYM WALL)
|
|
(ADJECTIVE SOUTH)
|
|
(GENERIC GENERIC-WALL-F)
|
|
(ACTION WALL-F)>
|
|
|
|
<OBJECT WALL
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "wall")
|
|
(SYNONYM WALL WALLS)
|
|
(GENERIC GENERIC-WALL-F)
|
|
(ACTION WALL-F)>
|
|
|
|
<ROUTINE GENERIC-WALL-F ()
|
|
,WALL>
|
|
|
|
<ROUTINE WALL-F ()
|
|
<COND (<VERB? EXAMINE>
|
|
<TELL ,IT-LOOKS-LIKE "a wall." CR>)
|
|
(<VERB? LOWER MUNG>
|
|
<TELL ,YOU-CANT "pull down a wall that easily." CR>)>>
|
|
|
|
<OBJECT DIRT
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "dirt")
|
|
(SYNONYM RUBBLE DEBRIS DUST DIRT)
|
|
(FLAGS NOABIT)>
|
|
|
|
<OBJECT GROUND
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM FLOOR GROUND FIELD)
|
|
(ADJECTIVE STONE SANDY TINY LEVEL)
|
|
(DESC "floor")
|
|
;(FLAGS NOABIT)
|
|
(ACTION GROUND-F)>
|
|
|
|
<ROUTINE GROUND-F ()
|
|
<COND (<VERB? EXAMINE>
|
|
<COND ;(<FSET? ,HERE ,RAIRBIT>
|
|
<TELL
|
|
"It's a long way down." CR>)
|
|
(ELSE
|
|
<TELL
|
|
"It's still there." CR>)>)
|
|
(<P? PUT * ,GROUND>
|
|
<PERFORM ,V?BURY ,PRSO>
|
|
<RTRUE>)
|
|
(<VERB? CLIMB-UP CLIMB-ON CLIMB-FOO BOARD>
|
|
<TELL ,WASTE-OF-TIME>)
|
|
(<VERB? LOOK-UNDER>
|
|
<TELL
|
|
"You never did master X-rays. Freshman physics was such a drag." CR>)>>
|
|
|
|
<OBJECT CORRIDOR
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "passage")
|
|
(SYNONYM PASSAGE CORRIDOR EXIT TUNNEL)
|
|
(ADJECTIVE LONG DARK STEAM)
|
|
(ACTION CORRIDOR-F)>
|
|
|
|
<ROUTINE CORRIDOR-F ()
|
|
<COND (<VERB? THROUGH WALK-TO>
|
|
<V-WALK-AROUND>)
|
|
(<AND <VERB? FOLLOW CLIMB-DOWN>
|
|
<HERE? ,YUGGOTH ,BOWL-ROOM ,PLATFORM-ROOM>>
|
|
<DO-WALK ,P?DOWN>)
|
|
(<VERB? CLIMB-DOWN>
|
|
<COND (<HERE? ,DEAD-STORAGE>
|
|
<DO-WALK ,P?EAST>)>)>>
|
|
|
|
;<OBJECT LOCAL-WATER
|
|
(SYNONYM WATER)
|
|
(ADJECTIVE FRESH SALT SEA)
|
|
(DESC "water")
|
|
(FLAGS NOABIT)
|
|
(ACTION WATER-F)>
|
|
|
|
;<OBJECT WATER
|
|
(IN LOCAL-GLOBALS)
|
|
(SYNONYM WATER)
|
|
(DESC "water")
|
|
(FLAGS NDESCBIT NOABIT)
|
|
(ACTION WATER-F)>
|
|
|
|
;<ROUTINE WATER-F ()
|
|
<COND (<P? (POUR THROW) ,LOCAL-WATER>
|
|
<COND (<AND <LOC ,PRSO>
|
|
<IN? <LOC ,PRSO> ,WINNER>>
|
|
<PERFORM ,V?POUR <LOC ,PRSO>>
|
|
<RTRUE>)
|
|
(ELSE
|
|
<DONT-HAVE-THAT>)>)
|
|
(<VERB? EAT DRINK DRINK-FROM>
|
|
<COND (<PRSO? ,LOCAL-WATER>
|
|
<COND (<IN? <LOC ,PRSO> ,WINNER>
|
|
<COND (<FSET? <LOC ,PRSO> ,OPENBIT>
|
|
<REMOVE ,PRSO>)
|
|
(ELSE
|
|
<TELL-OPEN-CLOSED <LOC ,PRSO>>
|
|
<RTRUE>)>)
|
|
(<NOT <GLOBAL-IN? ,WATER ,HERE>>
|
|
<TELL ,YOU-DONT-HAVE THE <LOC ,PRSO> ,PERIOD>
|
|
<RTRUE>)>)>
|
|
<COND (<OR <AND <PRSO? ,LOCAL-WATER>
|
|
<FSET? ,PRSO ,RMUNGBIT>>
|
|
;<AND <PRSO? ,WATER>
|
|
<HERE? ;"ROOM WITH WATER">>>
|
|
<TELL
|
|
"It's bitter and you spit it out immediately.">)
|
|
(ELSE
|
|
<TELL
|
|
"That was refreshing, but you shouldn't drink untested water.">)>
|
|
<CRLF>)
|
|
(<VERB? REACH-IN RUB>
|
|
<TELL
|
|
"It's wet." CR>)
|
|
(<VERB? LOOK-INSIDE LOOK-UNDER>
|
|
<MAKE-OUT>)
|
|
;(<VERB? THROUGH LEAP>
|
|
<COND (<FSET? ,HERE ,RWATERBIT>
|
|
<TELL ,YOU-ARE ,PERIOD>)>)>>
|
|
|
|
<ROUTINE RANDOM-PSEUDO ()
|
|
<COND (<AND <EQUAL? ,P-PNAM ,W?SHAFT>
|
|
<VERB? EXAMINE LOOK-UP>>
|
|
<LIKE-A-SHAFT>)
|
|
(<AND <EQUAL? ,P-PNAM ,W?TRIANGLE>
|
|
<VERB? EXAMINE>>
|
|
<TELL
|
|
"It's \"Floppy Triangles,\" a work of modern sculpture." CR>)
|
|
(<VERB? EXAMINE LOOK-INSIDE LOOK-BEHIND>
|
|
<TELL S "You see nothing special about " "it." CR>)
|
|
(<VERB? TAKE>
|
|
<YOU-CANT-X-THAT "take">)>>
|
|
|
|
"sleep, hunger, etc."
|
|
|
|
;<GLOBAL LAST-SLEPT 40> ;"move when you last woke-up, for purposed of V-TIME"
|
|
|
|
<OBJECT GLOBAL-SLEEP
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "sleep")
|
|
(SYNONYM SLEEP NAP)
|
|
(FLAGS NOABIT NOTHEBIT)
|
|
(ACTION GLOBAL-SLEEP-F)>
|
|
|
|
<ROUTINE GLOBAL-SLEEP-F ()
|
|
<COND (<VERB? WALK-TO TAKE>
|
|
<NEW-VERB ,V?SLEEP>
|
|
<RTRUE>)
|
|
(<VERB? FIND>
|
|
<TELL "Sleep anywhere." CR>)>>
|
|
|
|
<OBJECT NOISE
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "noise")
|
|
(SYNONYM NOISE SOUND)>
|
|
|
|
<OBJECT SNOW
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "snow")
|
|
(SYNONYM SNOW SNOWSTORM BLIZZARD)
|
|
(ACTION SNOW-F)>
|
|
|
|
<ROUTINE SNOW-F ()
|
|
<COND (<VERB? EXAMINE>
|
|
<COND (<FSET? ,HERE ,OUTSIDE>
|
|
<TELL "It's still coming down." CR>)
|
|
(ELSE <TELL "You are inside." CR>)>)>>
|