1592 lines
31 KiB
Plaintext
1592 lines
31 KiB
Plaintext
;"***************************************************************************"
|
|
; "game : Arthur"
|
|
; "file : GLOBAL.ZIL"
|
|
; "auth : $Author: RAB $"
|
|
; "date : $Date: 15 May 1989 18:49:26 $"
|
|
; "rev : $Revision: 1.123 $"
|
|
; "vers : 1.0"
|
|
;"---------------------------------------------------------------------------"
|
|
; "Global objects"
|
|
; "Copyright (C) 1989 Infocom, Inc. All rights reserved."
|
|
;"***************************************************************************"
|
|
|
|
<OBJECT ROOMS
|
|
(DESC "that")
|
|
(FLAGS FL-NO-ARTICLE ;FL-ROOMS)
|
|
>
|
|
|
|
<OBJECT GLOBAL-OBJECTS
|
|
(DESC "GO")
|
|
(FDESC 0)
|
|
(GENERIC 0)
|
|
(GLOBAL 0)
|
|
(OWNER 0)
|
|
(TEXT 0)
|
|
(THINGS 0)
|
|
(SIZE 0 CAPACITY 0)
|
|
(FLAGS
|
|
FL-AIR ; 1
|
|
FL-ALIVE ; 2
|
|
FL-ASLEEP ; 3
|
|
FL-AUTO-ENTER ; 4
|
|
FL-AUTO-OPEN ; 5
|
|
FL-BODY-PART ; 6
|
|
FL-BROKEN ; 7
|
|
FL-BURNABLE ; 8
|
|
FL-BY-HAND ; 9
|
|
FL-CLOTHING ; 10
|
|
FL-COLLECTIVE ; 11
|
|
FL-CONTAINER ; 12
|
|
FL-DOOR ; 13
|
|
FL-FEMALE ; 14
|
|
FL-FOOD ; 15
|
|
; FL-HAS-LDESC ; 16
|
|
FL-HAS-SDESC ; 17
|
|
FL-INDOORS ; 18
|
|
FL-INVISIBLE ; 19
|
|
FL-KEY ; 20
|
|
FL-KNIFE ; 21
|
|
FL-LAMP ; 22
|
|
FL-LIGHTED ; 23
|
|
FL-LOCKED ; 24
|
|
FL-NO-ALL ; 25
|
|
FL-NO-ARTICLE ; 26
|
|
FL-NO-DESC ; 27
|
|
FL-NO-LIST ; 28
|
|
FL-OPEN ; 29
|
|
FL-OPENABLE ; 30
|
|
FL-PERSON ; 31
|
|
FL-PLURAL ; 32
|
|
FL-READABLE ; 33
|
|
; FL-ROOMS ; 34
|
|
FL-SEARCH ; 35
|
|
FL-SEEN ; 36
|
|
FL-SURFACE ; 37
|
|
FL-TAKEABLE ; 38
|
|
FL-TOOL ; 39
|
|
FL-TOUCHED ; 40
|
|
FL-TRANSPARENT ; 41
|
|
FL-TRY-TAKE ; 42
|
|
FL-VEHICLE ; 43
|
|
FL-VOWEL ; 44
|
|
FL-WATER ; 45
|
|
FL-WEAPON ; 46
|
|
FL-WORN ; 47
|
|
FL-YOUR ; 48
|
|
)
|
|
>
|
|
|
|
<OBJECT LOCAL-GLOBALS
|
|
(LOC GLOBAL-OBJECTS)
|
|
(DESC "LG")
|
|
(SYNONYM L.G)
|
|
(FLAGS FL-NO-ARTICLE)
|
|
>
|
|
|
|
<OBJECT GLOBAL-HERE
|
|
(LOC GLOBAL-OBJECTS)
|
|
(DESC "here")
|
|
(FLAGS FL-NO-ARTICLE)
|
|
(SYNONYM HERE PLACE ROOM AREA)
|
|
(ACTION RT-GLOBAL-HERE)
|
|
>
|
|
|
|
<ROUTINE RT-GLOBAL-HERE ("OPT" (CONTEXT <>) "AUX" P)
|
|
<COND
|
|
(,HERE
|
|
<COND
|
|
(<SET P <GETP ,HERE ,P?ACTION>>
|
|
<APPLY .P .CONTEXT>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
>
|
|
|
|
<OBJECT IT
|
|
(LOC GLOBAL-OBJECTS)
|
|
(DESC "it")
|
|
(SYNONYM IT THIS)
|
|
(FLAGS FL-VOWEL FL-NO-ARTICLE)
|
|
>
|
|
|
|
<OBJECT THEM
|
|
(LOC GLOBAL-OBJECTS)
|
|
(DESC "them")
|
|
(SYNONYM THEM)
|
|
(FLAGS FL-NO-ARTICLE FL-PLURAL)
|
|
>
|
|
|
|
<OBJECT INTNUM
|
|
(LOC GLOBAL-OBJECTS)
|
|
(DESC "number")
|
|
(SYNONYM INT.NUM)
|
|
>
|
|
|
|
<OBJECT YOU
|
|
(LOC GLOBAL-OBJECTS)
|
|
(DESC "you")
|
|
(SYNONYM YOU YOURSELF)
|
|
(ACTION RT-YOU)
|
|
>
|
|
|
|
<ROUTINE RT-YOU ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(,NOW-PRSI
|
|
<PERFORM ,PRSA ,PRSO ,WINNER>
|
|
)
|
|
(T
|
|
<PERFORM ,PRSA ,WINNER ,PRSI>
|
|
)
|
|
>
|
|
>
|
|
|
|
<OBJECT HER
|
|
(LOC GLOBAL-OBJECTS)
|
|
(SYNONYM HER)
|
|
(DESC "her")
|
|
(FLAGS FL-NO-ARTICLE)
|
|
>
|
|
|
|
<OBJECT HIM
|
|
(LOC GLOBAL-OBJECTS)
|
|
(SYNONYM HIM)
|
|
(DESC "him")
|
|
(FLAGS FL-NO-ARTICLE)
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-HUMAN-BODY"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-HUMAN-BODY
|
|
(LOC GLOBAL-OBJECTS)
|
|
(DESC "their body")
|
|
(FLAGS FL-HAS-SDESC FL-NO-ARTICLE)
|
|
(SYNONYM
|
|
BODY
|
|
SKIN
|
|
ARM ARMS
|
|
HAND HANDS
|
|
LEG LEGS
|
|
ANKLE ANKLES
|
|
FOOT FEET
|
|
HEAD
|
|
HAIR
|
|
EYE EYES
|
|
EAR EARS
|
|
NOSE
|
|
FACE
|
|
CHEEK CHEEKS
|
|
LIP LIPS
|
|
MOUTH
|
|
NECK
|
|
SHOULDER SHOULDERS
|
|
CHEST
|
|
TORSO
|
|
BACK
|
|
; WAIST
|
|
)
|
|
(ADJECTIVE LEFT RIGHT)
|
|
(OWNER K-BODY-OWNER-TBL)
|
|
(GENERIC RT-GN-BODY)
|
|
(ACTION RT-TH-HUMAN-BODY)
|
|
>
|
|
|
|
<CONSTANT K-BODY-OWNER-TBL
|
|
<TABLE (PURE LENGTH)
|
|
CH-BLACK-KNIGHT
|
|
CH-BLUE-KNIGHT
|
|
CH-CELL-GUARD
|
|
CH-COOK
|
|
CH-DEMON
|
|
CH-FARMERS
|
|
CH-GIRL
|
|
CH-I-KNIGHT
|
|
CH-IDIOT
|
|
CH-LOT
|
|
CH-MERLIN
|
|
CH-NIMUE
|
|
CH-PEASANT
|
|
CH-PRISONER
|
|
CH-RED-KNIGHT
|
|
CH-RHYMER
|
|
CH-SOLDIERS
|
|
>
|
|
>
|
|
|
|
<CONSTANT K-NO-REFER-MSG "[You don't need to refer to ">
|
|
|
|
<ROUTINE RT-TH-HUMAN-BODY ("OPT" (CONTEXT <>) "AUX" (PERSON <>))
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(T
|
|
<COND
|
|
(<AND <SET PERSON <GET-OWNER ,TH-HUMAN-BODY>>
|
|
<NOT <VISIBLE? .PERSON>>
|
|
>
|
|
<NP-CANT-SEE>
|
|
)
|
|
(T
|
|
<TELL ,K-NO-REFER-MSG>
|
|
<COND
|
|
(<EQUAL? .PERSON
|
|
,CH-PRISONER
|
|
,CH-DEMON
|
|
,CH-GIRL
|
|
,CH-PEASANT
|
|
,CH-NIMUE
|
|
>
|
|
<TELL "that">
|
|
)
|
|
(T
|
|
<TELL "any">
|
|
)
|
|
>
|
|
<TELL " part of">
|
|
<COND
|
|
(.PERSON
|
|
<TELL the .PERSON "'">
|
|
<COND
|
|
(<OR <NOT <FSET? .PERSON ,FL-PLURAL>>
|
|
<FSET? .PERSON ,FL-COLLECTIVE>
|
|
>
|
|
<TELL "s">
|
|
)
|
|
>
|
|
)
|
|
(T
|
|
<TELL " their">
|
|
)
|
|
>
|
|
<TELL " body.]" CR>
|
|
)
|
|
>
|
|
<SETG CLOCK-WAIT T>
|
|
<RFATAL>
|
|
)
|
|
>
|
|
>
|
|
|
|
<ROUTINE RT-GN-BODY (TBL FINDER "AUX" (PART <>))
|
|
<REPEAT (
|
|
(PTR <REST-TO-SLOT .TBL FIND-RES-OBJ1>)
|
|
(N <FIND-RES-COUNT .TBL>)
|
|
)
|
|
<COND
|
|
(<DLESS? N 0>
|
|
<RFALSE>
|
|
)
|
|
(<NOT <SET PART <ZGET .PTR 0>>>)
|
|
(<FSET? .PART ,FL-YOUR>
|
|
<RETURN>
|
|
)
|
|
(<EQUAL? .PART ,TH-PLAYER-BODY ,TH-ANIMAL-BODY>
|
|
<RETURN>
|
|
)
|
|
(<NOT <EQUAL? .PART ,TH-HUMAN-BODY>>
|
|
<RETURN>
|
|
)
|
|
>
|
|
<SET PTR <ZREST .PTR 2>>
|
|
>
|
|
<RETURN .PART>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-PLAYER-BODY"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-PLAYER-BODY
|
|
(LOC GLOBAL-OBJECTS)
|
|
(DESC "body")
|
|
(FLAGS FL-BODY-PART FL-YOUR)
|
|
(SYNONYM
|
|
BODY
|
|
SKIN
|
|
ARM ARMS
|
|
ANKLE ANKLES
|
|
HAIR
|
|
EYE EYES
|
|
EAR EARS
|
|
NOSE
|
|
FACE
|
|
CHEEK CHEEKS
|
|
LIP LIPS
|
|
TONGUE
|
|
NECK
|
|
SHOULDER SHOULDERS
|
|
CHEST
|
|
TORSO
|
|
BACK
|
|
WAIST
|
|
)
|
|
(ADJECTIVE LEFT RIGHT)
|
|
(OWNER CH-PLAYER)
|
|
(GENERIC RT-GN-BODY)
|
|
(ACTION RT-TH-PLAYER-BODY)
|
|
>
|
|
|
|
<ROUTINE RT-TH-PLAYER-BODY ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<AND <NOT <MC-FORM? ,K-FORM-ARTHUR>>
|
|
<NOUN-USED? ,TH-PLAYER-BODY ,W?ARM ,W?ARMS>
|
|
>
|
|
<RT-NO-BODY-PART-MSG ,TH-PLAYER-BODY>
|
|
)
|
|
(T
|
|
<TELL ,K-NO-REFER-MSG "that part of your body.]" CR>
|
|
<SETG CLOCK-WAIT T>
|
|
<RFATAL>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-ANIMAL-BODY"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-ANIMAL-BODY
|
|
(LOC GLOBAL-OBJECTS)
|
|
(DESC "body")
|
|
(FLAGS FL-BODY-PART FL-YOUR)
|
|
(SYNONYM
|
|
FUR COAT FEATHER FEATHERS
|
|
WING WINGS
|
|
FIN FINS
|
|
SNOUT BEAK
|
|
TAIL
|
|
)
|
|
(ADJECTIVE LEFT RIGHT FUR)
|
|
(OWNER CH-PLAYER)
|
|
(GENERIC RT-GN-BODY)
|
|
(ACTION RT-TH-ANIMAL-BODY)
|
|
>
|
|
|
|
<ROUTINE RT-TH-ANIMAL-BODY ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<AND <ADJ-USED? ,TH-ANIMAL-BODY ,W?FUR>
|
|
<NOT <NOUN-USED? ,TH-ANIMAL-BODY ,W?COAT>>
|
|
>
|
|
<NP-CANT-SEE>
|
|
)
|
|
(<AND <MC-FORM? ,K-FORM-ARTHUR>
|
|
<NOUN-USED? ,TH-ANIMAL-BODY ,W?TAIL>
|
|
>
|
|
<RT-NO-BODY-PART-MSG ,TH-ANIMAL-BODY>
|
|
)
|
|
(<AND <NOT <MC-FORM? ,K-FORM-EEL>>
|
|
<NOUN-USED? ,TH-ANIMAL-BODY ,W?FIN ,W?FINS>
|
|
>
|
|
<RT-NO-BODY-PART-MSG ,TH-ANIMAL-BODY>
|
|
)
|
|
(<AND <NOT <MC-FORM? ,K-FORM-OWL>>
|
|
<OR
|
|
<NOUN-USED? ,TH-ANIMAL-BODY ,W?WING ,W?WINGS ,W?BEAK>
|
|
<NOUN-USED? ,TH-ANIMAL-BODY ,W?FEATHER ,W?FEATHERS>
|
|
>
|
|
>
|
|
<RT-NO-BODY-PART-MSG ,TH-ANIMAL-BODY>
|
|
)
|
|
(<AND <NOT <MC-FORM? ,K-FORM-TURTLE>>
|
|
<NOUN-USED? ,TH-ANIMAL-BODY ,W?SHELL>
|
|
>
|
|
<RT-NO-BODY-PART-MSG ,TH-ANIMAL-BODY>
|
|
)
|
|
(<AND <NOT <MC-FORM? ,K-FORM-BADGER>>
|
|
<NOUN-USED? ,TH-ANIMAL-BODY ,W?FUR ,W?COAT ,W?SNOUT>
|
|
>
|
|
<RT-NO-BODY-PART-MSG ,TH-ANIMAL-BODY>
|
|
)
|
|
(T
|
|
<TELL ,K-NO-REFER-MSG "that part of your body.]" CR>
|
|
<SETG CLOCK-WAIT T>
|
|
<RFATAL>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-MOUTH"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-MOUTH
|
|
(LOC GLOBAL-OBJECTS)
|
|
(DESC "mouth")
|
|
(FLAGS FL-BODY-PART FL-CONTAINER FL-OPENABLE FL-YOUR)
|
|
(SYNONYM MOUTH)
|
|
(OWNER CH-PLAYER)
|
|
(GENERIC RT-GN-BODY)
|
|
(ACTION RT-TH-MOUTH)
|
|
>
|
|
|
|
<ROUTINE RT-TH-MOUTH ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(,NOW-PRSI
|
|
<COND
|
|
(<VERB? PUT-IN>
|
|
<PERFORM ,V?EAT ,PRSO>
|
|
<RTRUE>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? PUT PUT-IN OPEN CLOSE>
|
|
<RT-WASTE-OF-TIME-MSG>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-SHELL"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-SHELL
|
|
(LOC GLOBAL-OBJECTS)
|
|
(DESC "shell")
|
|
(FLAGS FL-BODY-PART FL-YOUR)
|
|
(SYNONYM SHELL)
|
|
(OWNER CH-PLAYER)
|
|
(ACTION RT-TH-SHELL)
|
|
>
|
|
|
|
<ROUTINE RT-TH-SHELL ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<NOT <MC-FORM? ,K-FORM-TURTLE>>
|
|
<COND
|
|
(<FSET? ,CH-PLAYER ,FL-LOCKED>
|
|
<TELL The+verb ,CH-PLAYER "are" "n't a turtle." CR>
|
|
)
|
|
(T
|
|
<NP-CANT-SEE>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? ENTER>
|
|
<COND
|
|
(<AND <FSET? ,TH-HEAD ,FL-LOCKED>
|
|
<FSET? ,TH-LEGS ,FL-LOCKED>
|
|
>
|
|
<RT-ALREADY-MSG ,CH-PLAYER "inside your shell">
|
|
)
|
|
(T
|
|
<SETG CLOCK-WAIT T>
|
|
<TELL "Most of you is already inside" the ,TH-SHELL ". Only">
|
|
<COND
|
|
(<AND <NOT <FSET? ,TH-HEAD ,FL-LOCKED>>
|
|
<NOT <FSET? ,TH-LEGS ,FL-LOCKED>>
|
|
>
|
|
<TELL the ,TH-HEAD " and" the ,TH-LEGS " are">
|
|
)
|
|
(<NOT <FSET? ,TH-HEAD ,FL-LOCKED>>
|
|
<TELL the ,TH-HEAD " is">
|
|
)
|
|
(T
|
|
<TELL the ,TH-LEGS " are">
|
|
)
|
|
>
|
|
<TELL " sticking out." CR>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? EXIT>
|
|
<TELL "It's not the shedding season." CR>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-HEAD"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-HEAD
|
|
(LOC GLOBAL-OBJECTS)
|
|
(DESC "head")
|
|
(FLAGS FL-BODY-PART FL-YOUR)
|
|
(SYNONYM HEAD)
|
|
(OWNER CH-PLAYER)
|
|
(GENERIC RT-GN-BODY)
|
|
(ACTION RT-TH-HEAD)
|
|
>
|
|
|
|
; "TH-HEAD flags:"
|
|
; " FL-LOCKED - Head is retracted"
|
|
|
|
<ROUTINE RT-TH-HEAD ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(<AND <NOT ,NOW-PRSI>
|
|
<MC-PRSI? <> ,ROOMS ,TH-SHELL>
|
|
<VERB? RETRACT PUT-IN EXTEND TAKE>
|
|
>
|
|
<RT-RETRACT-EXTEND-MSG ,TH-HEAD>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-LEGS"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-LEGS
|
|
(LOC GLOBAL-OBJECTS)
|
|
(DESC "legs")
|
|
(FLAGS FL-BODY-PART FL-PLURAL FL-YOUR)
|
|
(SYNONYM LEG LEGS)
|
|
(OWNER CH-PLAYER)
|
|
(GENERIC RT-GN-BODY)
|
|
(ACTION RT-TH-LEGS)
|
|
>
|
|
|
|
; "TH-LEGS flags:"
|
|
; " FL-LOCKED - Legs are retracted"
|
|
|
|
<ROUTINE RT-TH-LEGS ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(<MC-FORM? ,K-FORM-EEL>
|
|
<RT-NO-BODY-PART-MSG ,TH-LEGS>
|
|
)
|
|
(<AND <NOT ,NOW-PRSI>
|
|
<MC-PRSI? <> ,ROOMS ,TH-SHELL>
|
|
<VERB? RETRACT PUT-IN EXTEND TAKE>
|
|
>
|
|
<RT-RETRACT-EXTEND-MSG ,TH-LEGS>
|
|
)
|
|
>
|
|
>
|
|
|
|
<ROUTINE RT-RETRACT-EXTEND-MSG (OBJ "AUX" RET?)
|
|
<SET RET? <VERB? RETRACT PUT-IN>>
|
|
<COND
|
|
(<MC-FORM? ,K-FORM-TURTLE>
|
|
<COND
|
|
(.RET?
|
|
<COND
|
|
(<FSET? .OBJ ,FL-LOCKED>
|
|
<RT-ALREADY-MSG .OBJ "in your shell">
|
|
<RTRUE>
|
|
)
|
|
(T
|
|
<FSET .OBJ ,FL-LOCKED>
|
|
<TELL "You pull" the .OBJ " into">
|
|
)
|
|
>
|
|
)
|
|
(T
|
|
<COND
|
|
(<NOT <FSET? .OBJ ,FL-LOCKED>>
|
|
<RT-ALREADY-MSG .OBJ "out of your shell">
|
|
<RTRUE>
|
|
)
|
|
(T
|
|
<FCLEAR .OBJ ,FL-LOCKED>
|
|
<TELL The+verb .OBJ "emerge" " from">
|
|
)
|
|
>
|
|
)
|
|
>
|
|
<TELL the ,TH-SHELL ".">
|
|
<COND
|
|
(<AND .RET?
|
|
<EQUAL? .OBJ ,TH-HEAD>
|
|
<IN? ,TH-BRACELET ,CH-PLAYER>
|
|
<FSET? ,TH-BRACELET ,FL-WORN>
|
|
>
|
|
<MOVE ,TH-BRACELET ,HERE>
|
|
<FCLEAR ,TH-BRACELET ,FL-WORN>
|
|
<FCLEAR ,TH-BRACELET ,FL-TRY-TAKE>
|
|
<FSET ,TH-BRACELET ,FL-TAKEABLE>
|
|
<SETG GL-UPDATE-WINDOW <BOR ,GL-UPDATE-WINDOW ,K-UPD-INVT ,K-UPD-OBJS>>
|
|
<THIS-IS-IT ,TH-BRACELET>
|
|
<TELL " " The ,TH-BRACELET " falls to" the ,TH-GROUND ".">
|
|
)
|
|
>
|
|
<COND
|
|
(<EQUAL? .OBJ ,TH-HEAD>
|
|
<SETG GL-UPDATE-WINDOW <BOR ,GL-UPDATE-WINDOW ,K-UPD-DESC>>
|
|
<COND
|
|
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-DESC>
|
|
<RT-UPDATE-DESC-WINDOW>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
<CRLF>
|
|
)
|
|
(T
|
|
<COND
|
|
(<NOT <MC-FORM? ,K-FORM-ARTHUR>>
|
|
<TELL "You are" aform ". ">
|
|
)
|
|
>
|
|
<TELL "You can't ">
|
|
<COND
|
|
(.RET?
|
|
<TELL "retract">
|
|
)
|
|
(T
|
|
<TELL "extend">
|
|
)
|
|
>
|
|
<TELL the .OBJ "." CR>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-FEET"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-FEET
|
|
(LOC GLOBAL-OBJECTS)
|
|
(DESC "feet")
|
|
(FLAGS FL-BODY-PART FL-PLURAL FL-YOUR)
|
|
(SYNONYM FOOT FEET TOE TOES)
|
|
(OWNER CH-PLAYER)
|
|
(GENERIC RT-GN-BODY)
|
|
(ACTION RT-TH-FEET)
|
|
>
|
|
|
|
<ROUTINE RT-TH-FEET ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(<MC-FORM? ,K-FORM-EEL>
|
|
<RT-NO-BODY-PART-MSG ,TH-FEET>
|
|
)
|
|
(<AND <NOT ,NOW-PRSI>
|
|
<MC-PRSI? <> ,ROOMS ,TH-SHELL>
|
|
<VERB? RETRACT PUT-IN EXTEND TAKE>
|
|
>
|
|
<RT-RETRACT-EXTEND-MSG ,TH-LEGS>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-HANDS"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-HANDS
|
|
(LOC GLOBAL-OBJECTS)
|
|
(FLAGS FL-BODY-PART FL-BY-HAND FL-HAS-SDESC FL-PLURAL FL-TOOL FL-WEAPON FL-YOUR)
|
|
(SYNONYM HAND HANDS TALON TALONS CLAW CLAWS)
|
|
(ADJECTIVE OWL BADGER)
|
|
(OWNER CH-PLAYER)
|
|
(GENERIC RT-GN-BODY)
|
|
(ACTION RT-TH-HANDS)
|
|
>
|
|
|
|
<ROUTINE RT-TH-HANDS ("OPT" (CONTEXT <>) (ART <>) (CAP? <>))
|
|
<COND
|
|
(<MC-CONTEXT? ,M-OBJDESC>
|
|
<COND
|
|
(.ART
|
|
<PRINT-ARTICLE ,TH-HANDS .ART .CAP?>
|
|
)
|
|
>
|
|
<COND
|
|
(<EQUAL? .ART <> ,K-ART-THE ,K-ART-A ,K-ART-ANY>
|
|
<COND
|
|
(.ART
|
|
<TELL " ">
|
|
)
|
|
>
|
|
<COND
|
|
(<MC-FORM? ,K-FORM-ARTHUR>
|
|
<TELL "hands">
|
|
)
|
|
(<MC-FORM? ,K-FORM-OWL>
|
|
<TELL "talons">
|
|
)
|
|
(<MC-FORM? ,K-FORM-BADGER>
|
|
<TELL "claws">
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<AND <NOT <MC-FORM? ,K-FORM-OWL>>
|
|
<NOUN-USED? ,TH-HANDS ,W?TALON ,W?TALONS>
|
|
>
|
|
<RT-NO-BODY-PART-MSG ,TH-HANDS>
|
|
)
|
|
(<AND <NOT <MC-FORM? ,K-FORM-BADGER>>
|
|
<NOUN-USED? ,TH-HANDS ,W?CLAW ,W?CLAWS>
|
|
>
|
|
<RT-NO-BODY-PART-MSG ,TH-HANDS>
|
|
)
|
|
(<MC-FORM? ,K-FORM-EEL ,K-FORM-SALAMANDER ,K-FORM-TURTLE>
|
|
<RT-NO-BODY-PART-MSG ,TH-HANDS>
|
|
)
|
|
>
|
|
>
|
|
|
|
<ROUTINE RT-NO-BODY-PART-MSG (OBJ "AUX" TBL CNT)
|
|
<TELL Form "s don't have ">
|
|
<COND
|
|
(<NOUN-USED? .OBJ ,W?FOOT>
|
|
<TELL "feet">
|
|
)
|
|
(T
|
|
<DIROUT ,D-TABLE-ON ,K-DIROUT-TBL>
|
|
<COND
|
|
(,NOW-PRSI
|
|
<NP-PRINT ,PRSI-NP>
|
|
)
|
|
(T
|
|
<NP-PRINT ,PRSO-NP>
|
|
)
|
|
>
|
|
<DIROUT ,D-TABLE-OFF>
|
|
<SET TBL <ZREST ,K-DIROUT-TBL 2>>
|
|
<SET CNT <ZGET ,K-DIROUT-TBL 0>>
|
|
<PRINTT .TBL .CNT>
|
|
<COND
|
|
(<AND <NOT <NOUN-USED? .OBJ ,W?FUR ,W?HAIR ,W?SKIN>>
|
|
<G? .CNT 0>
|
|
<NOT <EQUAL? <GETB .TBL <- .CNT 1>> !\s>>
|
|
>
|
|
<TELL "s">
|
|
)
|
|
>
|
|
)
|
|
>
|
|
<TELL "." CR>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-GROUND"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-GROUND
|
|
(LOC GLOBAL-OBJECTS)
|
|
(SYNONYM GROUND FLOOR DIRT)
|
|
(ADJECTIVE STONE DIRT)
|
|
(FLAGS FL-HAS-SDESC FL-SEARCH FL-SURFACE)
|
|
(ACTION RT-TH-GROUND)
|
|
>
|
|
|
|
<ROUTINE RT-TH-GROUND ("OPT" (CONTEXT <>) (ART <>) (CAP? <>) "AUX" (M? <>))
|
|
<COND
|
|
(<MC-CONTEXT? ,M-OBJDESC>
|
|
<COND
|
|
(.ART
|
|
<PRINT-ARTICLE ,TH-GROUND .ART .CAP?>
|
|
)
|
|
>
|
|
<COND
|
|
(<EQUAL? .ART <> ,K-ART-THE ,K-ART-A ,K-ART-ANY>
|
|
<COND
|
|
(.ART
|
|
<TELL " ">
|
|
)
|
|
>
|
|
<COND
|
|
(<FSET? ,HERE ,FL-INDOORS>
|
|
<TELL "floor">
|
|
)
|
|
(<MC-HERE? ,RM-FORD ,RM-SHALLOWS>
|
|
<TELL "bottom">
|
|
)
|
|
(T
|
|
<TELL "ground">
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(,NOW-PRSI
|
|
<RFALSE>
|
|
)
|
|
(<VERB? EXAMINE LOOK-ON>
|
|
<COND
|
|
(<OR <FSET? ,HERE ,FL-AIR>
|
|
<MC-HERE? ,RM-RAVEN-NEST>
|
|
>
|
|
<TELL "It looks like a long way down." CR>
|
|
)
|
|
(T
|
|
<COND
|
|
(<MC-HERE? ,RM-CRYSTAL-CAVE>
|
|
<SET M? T>
|
|
<TELL "The floor is decorated with mysterious symbols.">
|
|
)
|
|
(<MC-HERE? ,RM-SMALL-CHAMBER>
|
|
<SET M? T>
|
|
<TELL "The floor looks like it was laid by a Roman stonemason.">
|
|
)
|
|
>
|
|
<COND
|
|
(<SEE-ANYTHING-IN? ,HERE>
|
|
<COND
|
|
(.M?
|
|
<TELL " ">
|
|
)
|
|
>
|
|
<TELL "You see">
|
|
<PRINT-CONTENTS ,HERE>
|
|
<TELL " on" the ,TH-GROUND ".">
|
|
)
|
|
>
|
|
<CRLF>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? LAND-ON WALK-TO CLIMB-ON CLIMB-DOWN CLIMB-UP>
|
|
<COND
|
|
(<OR <FSET? ,HERE ,FL-AIR>
|
|
<MC-HERE? ,RM-RAVEN-NEST>
|
|
>
|
|
<COND
|
|
(<MC-HERE? ,RM-ABOVE-FOREST>
|
|
<SETG GL-TAKEOFF-ROOM ,RM-GROVE>
|
|
)
|
|
>
|
|
<RT-DO-WALK ,P?DOWN>
|
|
)
|
|
(T
|
|
<RT-ALREADY-MSG ,CH-PLAYER>
|
|
<TELL " on" the ,TH-GROUND "." CR>
|
|
<RT-AUTHOR-OFF>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-SKY"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-SKY
|
|
(LOC GLOBAL-OBJECTS)
|
|
(SYNONYM SKY CEILING)
|
|
(FLAGS FL-HAS-SDESC)
|
|
(ACTION RT-TH-SKY)
|
|
>
|
|
|
|
<ROUTINE RT-TH-SKY ("OPT" (CONTEXT <>) (ART <>) (CAP? <>) "AUX" RM)
|
|
<COND
|
|
(<MC-CONTEXT? ,M-OBJDESC>
|
|
<COND
|
|
(.ART
|
|
<PRINT-ARTICLE ,TH-SKY .ART .CAP?>
|
|
)
|
|
>
|
|
<COND
|
|
(<EQUAL? .ART <> ,K-ART-THE ,K-ART-A ,K-ART-ANY>
|
|
<COND
|
|
(.ART
|
|
<TELL " ">
|
|
)
|
|
>
|
|
<COND
|
|
(<FSET? ,HERE ,FL-INDOORS>
|
|
<TELL "ceiling">
|
|
)
|
|
(T
|
|
<TELL "sky">
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<VERB? ENTER WALK-TO>
|
|
<COND
|
|
(<FSET? ,HERE ,FL-INDOORS>
|
|
<RFALSE>
|
|
)
|
|
(<SET RM <RT-FLY-UP>>
|
|
<RT-GOTO .RM>
|
|
)
|
|
>
|
|
)
|
|
(<NOT <EVERYWHERE-VERB? <COND (,NOW-PRSI 2) (T 1)>>>
|
|
<COND
|
|
(<FSET? ,HERE ,FL-INDOORS>
|
|
<COND
|
|
(<NOUN-USED? ,TH-SKY ,W?SKY>
|
|
<NP-CANT-SEE>
|
|
)
|
|
>
|
|
)
|
|
(T
|
|
<COND
|
|
(<NOUN-USED? ,TH-SKY ,W?CEILING>
|
|
<NP-CANT-SEE>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-HOLE"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-HOLE
|
|
(LOC GLOBAL-OBJECTS)
|
|
(DESC "hole")
|
|
(SYNONYM HOLE)
|
|
(ACTION RT-TH-HOLE)
|
|
>
|
|
|
|
<ROUTINE RT-TH-HOLE ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<VERB? DIG>
|
|
<PERFORM ,V?DIG ,TH-GROUND>
|
|
<RTRUE>
|
|
)
|
|
(<NOT <EVERYWHERE-VERB? <COND (,NOW-PRSI 2) (T 1)>>>
|
|
<NP-CANT-SEE>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-WATER"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-WATER
|
|
(DESC "water")
|
|
(FLAGS FL-COLLECTIVE FL-PLURAL FL-WATER)
|
|
(SYNONYM WATER)
|
|
(ACTION RT-TH-WATER)
|
|
>
|
|
|
|
<ROUTINE RT-TH-WATER ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<VERB? DRINK EAT>
|
|
<TELL The+verb ,WINNER "take" " a small, refreshing sip of water." CR>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-TIME"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-TIME
|
|
(LOC GENERIC-OBJECTS)
|
|
(DESC "hour")
|
|
(SYNONYM
|
|
TURN TURNS MINUTE MINUTES MIN
|
|
HOUR HOURS MATINS LAUD PRIME TIERCE SEXT NONE VESPERS COMPLINE
|
|
CHRISTMAS EVE TOMORROW MORNING XMAS
|
|
)
|
|
(ADJECTIVE INT.NUM CHRISTMAS TOMORROW XMAS)
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-BELLS"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-BELLS
|
|
(LOC GLOBAL-OBJECTS)
|
|
(DESC "bells")
|
|
(SYNONYM BELL BELLS)
|
|
(ACTION RT-TH-BELLS)
|
|
>
|
|
|
|
<ROUTINE RT-TH-BELLS ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(,NOW-PRSI
|
|
<COND
|
|
(<NOT <EVERYWHERE-VERB? 2>>
|
|
<NP-CANT-SEE>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? LISTEN>
|
|
<COND
|
|
(<EQUAL? <MOD ,GL-MOVES 180> 1>
|
|
<TELL "The sound of the bells fades quickly." CR>
|
|
)
|
|
>
|
|
)
|
|
(<NOT <EVERYWHERE-VERB? 1>>
|
|
<NP-CANT-SEE>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-NAME"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-NAME
|
|
(LOC GENERIC-OBJECTS)
|
|
(DESC "name")
|
|
(SYNONYM NAME)
|
|
(ADJECTIVE SECRET) ;"For Thomas"
|
|
(OWNER K-NAME-OWNER-TBL)
|
|
>
|
|
|
|
<CONSTANT K-NAME-OWNER-TBL
|
|
<TABLE (PURE LENGTH)
|
|
CH-PLAYER
|
|
CH-BLACK-KNIGHT
|
|
CH-BLUE-KNIGHT
|
|
CH-CELL-GUARD
|
|
CH-COOK
|
|
CH-DEMON
|
|
CH-DRAGON
|
|
CH-FARMERS
|
|
CH-GIRL
|
|
CH-I-KNIGHT
|
|
CH-IDIOT
|
|
CH-KRAKEN
|
|
CH-LOT
|
|
CH-MERLIN
|
|
CH-NIMUE
|
|
CH-PEASANT
|
|
CH-PRISONER
|
|
CH-RED-KNIGHT
|
|
CH-RHYMER
|
|
CH-SOLDIERS
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-MASTER"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-MASTER
|
|
(LOC GENERIC-OBJECTS)
|
|
(DESC "master")
|
|
(SYNONYM MASTER)
|
|
(OWNER K-MASTER-OWNER-TBL)
|
|
>
|
|
|
|
<CONSTANT K-MASTER-OWNER-TBL
|
|
<TABLE (PURE LENGTH)
|
|
CH-PLAYER
|
|
CH-BLACK-KNIGHT
|
|
CH-BLUE-KNIGHT
|
|
CH-CELL-GUARD
|
|
CH-COOK
|
|
CH-DEMON
|
|
CH-DRAGON
|
|
CH-FARMERS
|
|
CH-GIRL
|
|
CH-I-KNIGHT
|
|
CH-IDIOT
|
|
CH-KRAKEN
|
|
CH-LOT
|
|
CH-MERLIN
|
|
CH-NIMUE
|
|
CH-PEASANT
|
|
CH-PRISONER
|
|
CH-RED-KNIGHT
|
|
CH-RHYMER
|
|
CH-SOLDIERS
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-MAGIC"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-MAGIC
|
|
(LOC GENERIC-OBJECTS)
|
|
(DESC "magic")
|
|
(FLAGS FL-NO-ARTICLE)
|
|
(SYNONYM MAGIC)
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-RIOTHAMUS"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-RIOTHAMUS
|
|
(LOC GENERIC-OBJECTS)
|
|
(DESC "Riothamus")
|
|
(FLAGS FL-NO-ARTICLE)
|
|
(SYNONYM RIOTHAMUS)
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-MOTHER"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-MOTHER
|
|
(LOC GENERIC-OBJECTS)
|
|
(DESC "mother")
|
|
(SYNONYM MOTHER MOM IGRAINE YGRAINE)
|
|
(OWNER K-NAME-OWNER-TBL)
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-SHERLOCK"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-SHERLOCK
|
|
(LOC GENERIC-OBJECTS)
|
|
(DESC "Sherlock")
|
|
(FLAGS FL-NO-ARTICLE)
|
|
(SYNONYM SHERLOCK HOLMES)
|
|
(ADJECTIVE SHERLOCK)
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-MERETZKY"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-MERETZKY
|
|
(LOC GENERIC-OBJECTS)
|
|
(DESC "Meretzky")
|
|
(FLAGS FL-NO-ARTICLE)
|
|
(SYNONYM MERETZKY STEVE STEVEN)
|
|
(ADJECTIVE STEVE STEVEN)
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-BATES"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-BATES
|
|
(LOC GENERIC-OBJECTS)
|
|
(DESC "Bates")
|
|
(FLAGS FL-NO-ARTICLE)
|
|
(SYNONYM BATES BOB ROBERT)
|
|
(ADJECTIVE BOB ROBERT)
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-BECK"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-BECK
|
|
(LOC GENERIC-OBJECTS)
|
|
(DESC "Beck")
|
|
(FLAGS FL-NO-ARTICLE)
|
|
(SYNONYM BECK DUANE)
|
|
(ADJECTIVE DUANE)
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "ZORK"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT ZORK
|
|
(LOC GENERIC-OBJECTS)
|
|
(DESC "Zork")
|
|
(FLAGS FL-NO-ARTICLE)
|
|
(SYNONYM ZORK TRILOGY ONE TWO THREE I II III)
|
|
(ADJECTIVE ZORK)
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "ENCHANTER"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT ENCHANTER
|
|
(LOC GENERIC-OBJECTS)
|
|
(DESC "Enchanter")
|
|
(FLAGS FL-NO-ARTICLE)
|
|
(SYNONYM ENCHANTER SORCERER SPELLBREAKER TRILOGY SERIES)
|
|
(ADJECTIVE ENCHANTER)
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-STATIONFALL"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-STATIONFALL
|
|
(LOC GENERIC-OBJECTS)
|
|
(DESC "game")
|
|
(FLAGS FL-NO-ARTICLE)
|
|
(SYNONYM STATIONFALL PLANETFALL)
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "INFOCOM"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT INFOCOM
|
|
(LOC GENERIC-OBJECTS)
|
|
(DESC "Infocom")
|
|
(FLAGS FL-NO-ARTICLE)
|
|
(SYNONYM INFOCOM)
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-ANYTHING"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-ANYTHING
|
|
(LOC GLOBAL-OBJECTS)
|
|
(DESC "anything")
|
|
(FLAGS FL-NO-ARTICLE FL-TRY-TAKE)
|
|
(SYNONYM ANYTHING EVERYTHING)
|
|
(ACTION RT-TH-ANYTHING)
|
|
>
|
|
|
|
<ROUTINE RT-TH-ANYTHING ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<NOT <EVERYWHERE-VERB? <COND (,NOW-PRSI 2) (T 1)>>>
|
|
<RT-AUTHOR-MSG "Please refer to specific objects.">
|
|
<SETG CLOCK-WAIT T>
|
|
<RFATAL>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-JOUST"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-JOUST
|
|
(LOC GENERIC-OBJECTS)
|
|
(DESC "joust")
|
|
(SYNONYM JOUST JOUSTING)
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-CHIVALRY"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-CHIVALRY
|
|
(LOC GENERIC-OBJECTS)
|
|
(DESC "chivalry")
|
|
(FLAGS FL-NO-ARTICLE)
|
|
(SYNONYM CHIVALRY)
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-ENGLAND"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-ENGLAND
|
|
(LOC GENERIC-OBJECTS)
|
|
(DESC "England")
|
|
(FLAGS FL-NO-ARTICLE FL-VOWEL)
|
|
(SYNONYM ENGLAND BRITAIN)
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-UTHER"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-UTHER
|
|
(LOC GENERIC-OBJECTS)
|
|
(DESC "Uther Pendragon")
|
|
(FLAGS FL-NO-ARTICLE FL-VOWEL)
|
|
(SYNONYM UTHER PENDRAGON)
|
|
(ADJECTIVE UTHER)
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-CELTIC-GODS"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-CELTIC-GODS
|
|
(LOC GENERIC-OBJECTS)
|
|
(DESC "gods")
|
|
(SYNONYM GODS)
|
|
(ADJECTIVE CELTIC GAELIC OLD)
|
|
(OWNER CH-MERLIN)
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-GOD"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-GOD
|
|
(LOC GENERIC-OBJECTS)
|
|
(DESC "God")
|
|
(SYNONYM GOD CHRIST JESUS)
|
|
(ADJECTIVE CHRISTIAN JESUS NEW)
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "LG-WALL"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT LG-WALL
|
|
(LOC LOCAL-GLOBALS)
|
|
(DESC "wall")
|
|
(FLAGS FL-SURFACE)
|
|
(SYNONYM WALL WALLS)
|
|
(ADJECTIVE STONE NORTH SOUTH EAST WEST)
|
|
(ACTION RT-LG-WALL)
|
|
>
|
|
|
|
<CONSTANT K-ROMAN-FORT-MSG "The wall is part of the old roman fort.">
|
|
|
|
<ROUTINE RT-LG-WALL ("OPT" (CONTEXT <>) "AUX" COUNT)
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(,NOW-PRSI
|
|
<COND
|
|
(<VERB? PUT>
|
|
<TELL "There isn't a place for" the ,PRSO " on the wall." CR>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? READ>
|
|
<FSET ,LG-WALL ,FL-SEEN>
|
|
<COND
|
|
(<MC-HERE? ,RM-CRACK-ROOM>
|
|
<TELL ,K-WALL-LETTERS-MSG CR>
|
|
)
|
|
(<MC-HERE? ,RM-CELLAR>
|
|
<RT-CELLAR-MSG>
|
|
)
|
|
(<MC-HERE? ,RM-BADGER-TUNNEL>
|
|
<RT-NUM-MARKS-MSG>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? EXAMINE>
|
|
<FSET ,LG-WALL ,FL-SEEN>
|
|
<COND
|
|
(<MC-HERE? ,RM-CHURCHYARD ,RM-TOWN-SQUARE>
|
|
<TELL "It is a high stone wall." CR>
|
|
)
|
|
(<MC-HERE? ,RM-TAVERN>
|
|
<TELL "Eerie shadows dance and leap across the walls." CR>
|
|
)
|
|
(<MC-HERE? ,RM-CRACK-ROOM>
|
|
<TELL ,K-WALL-LETTERS-MSG CR>
|
|
)
|
|
(<MC-HERE? ,RM-CELLAR>
|
|
<RT-CELLAR-MSG>
|
|
)
|
|
(<MC-HERE? ,RM-CELL ,RM-HOLE>
|
|
<TELL ,K-ROMAN-FORT-MSG>
|
|
<COND
|
|
(<NOT <FSET? ,TH-CELL-STONE ,FL-LOCKED>>
|
|
<TELL
|
|
" There is a hole in it where a stone has been pushed out."
|
|
>
|
|
)
|
|
>
|
|
<CRLF>
|
|
)
|
|
(<MC-HERE? ,RM-SMITHY ,RM-CASTLE-GATE ,RM-PARADE-AREA>
|
|
<TELL ,K-ROMAN-FORT-MSG CR>
|
|
)
|
|
(<MC-HERE? ,RM-CRYSTAL-CAVE>
|
|
<TELL "The walls seem to shimmer with their own light." CR>
|
|
)
|
|
(<MC-HERE? ,RM-ICE-ROOM>
|
|
<TELL "The walls are lined with ice." CR>
|
|
)
|
|
(<MC-HERE? ,RM-LANDING>
|
|
<COND
|
|
(<NOT <ADJ-USED? ,LG-WALL ,W?NORTH ,W?EAST ,W?SOUTH>>
|
|
<TELL "There is a crack in the west wall." CR>
|
|
)
|
|
>
|
|
)
|
|
(<MC-HERE? ,RM-TOWN-GATE ,RM-VILLAGE-GREEN>
|
|
<TELL
|
|
"It's an old stone wall that was built by the Romans to encircle the town." CR
|
|
>
|
|
)
|
|
(<MC-HERE? ,RM-BADGER-TUNNEL>
|
|
<RT-NUM-MARKS-MSG>
|
|
)
|
|
(<MC-HERE? ,RM-ARMOURY>
|
|
<TELL
|
|
"A few shields are fixed to the wall, and some pikestaffs are locked up as
|
|
well." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<AND <VERB? CLIMB-UP CLIMB-ON CLIMB-OVER>
|
|
<MC-HERE? ,RM-CHURCHYARD ,RM-TOWN-SQUARE>
|
|
>
|
|
<COND
|
|
(<MC-FORM? ,K-FORM-SALAMANDER>
|
|
<RT-CLIMB-ON-MSG ,LG-WALL>
|
|
)
|
|
(<MC-FORM? ,K-FORM-OWL>
|
|
<RT-DO-WALK ,P?UP>
|
|
)
|
|
(T
|
|
<TELL The ,LG-WALL " is too high to " vw "." CR>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? LOOK-BEHIND>
|
|
<RT-YOU-CANT-MSG "look behind">
|
|
)
|
|
(<AND <VERB? EAT>
|
|
<MC-HERE? ,RM-ICE-ROOM>
|
|
>
|
|
<TELL ,K-EAT-ICE-MSG CR>
|
|
)
|
|
(<AND <TOUCH-VERB?>
|
|
<MC-HERE? ,RM-ICE-ROOM>
|
|
>
|
|
<TELL "The rock-solid ice remains unaffected by your actions." CR>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "LG-STAIRS"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT LG-STAIRS
|
|
(LOC LOCAL-GLOBALS)
|
|
(DESC "stairs")
|
|
(SYNONYM STAIRS STAIRCASE)
|
|
(ACTION RT-LG-STAIRS)
|
|
>
|
|
|
|
<ROUTINE RT-LG-STAIRS ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<VERB? CLIMB-UP CLIMB-ON>
|
|
<RT-DO-WALK ,P?UP>
|
|
)
|
|
(<VERB? CLIMB-DOWN DISMOUNT>
|
|
<RT-DO-WALK ,P?DOWN>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "LG-PATH"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT LG-PATH
|
|
(LOC LOCAL-GLOBALS)
|
|
(DESC "path")
|
|
(SYNONYM PATH ROAD)
|
|
(ADJECTIVE NORTH NE EAST SE SOUTH SW WEST NW)
|
|
(ACTION RT-LG-PATH)
|
|
>
|
|
|
|
<ROUTINE RT-LG-PATH ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<MC-HERE? ,RM-FIELD-OF-HONOUR>
|
|
<COND
|
|
(<FSET? ,RM-MID-LAKE ,FL-WATER>
|
|
<COND
|
|
(<NOT <EVERYWHERE-VERB? <COND (,NOW-PRSI 2) (T 1)>>>
|
|
<NP-CANT-SEE>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? ENTER>
|
|
<RT-DO-WALK ,P?SOUTH>
|
|
)
|
|
(<VERB? EXAMINE>
|
|
<TELL
|
|
"The path leads between two walls of water into the middle of the lake." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<MC-HERE? ,RM-FOOT-OF-MOUNTAIN>
|
|
<COND
|
|
(<VERB? ENTER>
|
|
<RT-DO-WALK ,P?NE>
|
|
)
|
|
(<VERB? EXAMINE LOOK-UP>
|
|
<TELL "It is dangerously narrow, and perilously steep." CR>
|
|
)
|
|
>
|
|
)
|
|
(<MC-HERE? ,RM-EDGE-OF-BOG>
|
|
<COND
|
|
(<VERB? ENTER>
|
|
<RT-DO-WALK ,P?NE>
|
|
)
|
|
(<VERB? EXAMINE>
|
|
<TELL
|
|
"The path leads a few feet into the swirling fog, and then disappears." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? ENTER WALK-TO>
|
|
<COND
|
|
(<ADJ-USED? ,LG-PATH ,W?NORTH>
|
|
<RT-DO-WALK ,P?NORTH>
|
|
)
|
|
(<ADJ-USED? ,LG-PATH ,W?NE>
|
|
<RT-DO-WALK ,P?NE>
|
|
)
|
|
(<ADJ-USED? ,LG-PATH ,W?EAST>
|
|
<RT-DO-WALK ,P?EAST>
|
|
)
|
|
(<ADJ-USED? ,LG-PATH ,W?SE>
|
|
<RT-DO-WALK ,P?SE>
|
|
)
|
|
(<ADJ-USED? ,LG-PATH ,W?SOUTH>
|
|
<RT-DO-WALK ,P?SOUTH>
|
|
)
|
|
(<ADJ-USED? ,LG-PATH ,W?SW>
|
|
<RT-DO-WALK ,P?SW>
|
|
)
|
|
(<ADJ-USED? ,LG-PATH ,W?WEST>
|
|
<RT-DO-WALK ,P?WEST>
|
|
)
|
|
(<ADJ-USED? ,LG-PATH ,W?NW>
|
|
<RT-DO-WALK ,P?NW>
|
|
)
|
|
(T
|
|
<TELL ,K-WHICH-DIR-MSG>
|
|
<SETG CLOCK-WAIT T>
|
|
<RFATAL>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"***************************************************************************"
|
|
; "end of file"
|
|
;"***************************************************************************"
|
|
|