Annotation of 42BSD/games/ddl/doc/tiny.ddl, revision 1.1

1.1     ! root        1: NOUN startrm;
        !             2: NOUN brightroom;
        !             3: 
        !             4: NOUN .ME(startrm);
        !             5: 
        !             6: VAR Obj;
        !             7: SEEN = 1;
        !             8: 
        !             9: Looker = (($ldisc ($loc .ME)))         { CALL Ldisc of room }
        !            10:         ($setg Obj ($cont ($loc .ME))) { start with first obj in room }
        !            11:         (WHILE @Obj :
        !            12:                (($ldisc @Obj) :        { If it has a description, }
        !            13:                        (($ldisc @Obj)) {  then say it. }
        !            14:                )
        !            15:                ($setg Obj ($link @Obj))        { Continue with sibling }
        !            16:         )
        !            17:        ;
        !            18: 
        !            19: 
        !            20: Slook =  (($sdisc ($loc .ME)))         { CALL Ldisc of room }
        !            21:         ($setg Obj ($cont ($loc .ME))) { start with first obj in room }
        !            22:         (WHILE @Obj :
        !            23:                (($ldisc @Obj) :        { If it has a description, }
        !            24:                        (($ldisc @Obj)) {  then say it. }
        !            25:                )
        !            26:                ($setg Obj ($link @Obj))        { Continue with sibling }
        !            27:         )
        !            28:        ;
        !            29: 
        !            30: Rdesc =                        { Room description }
        !            31:        ($say "\n")
        !            32:        (($prop ($loc .ME) SEEN) :              { Have I been here? }
        !            33:                        (Slook)                 { Yes, be brief. }
        !            34:        :{else}         (Looker)                { Otherwise, do the spiel, }
        !            35:                        ($setp ($loc .ME) SEEN 1)       { but only once. }
        !            36:        )
        !            37:        ($say "\n> ")   { Prompt player }
        !            38:        ;
        !            39: 
        !            40: VERB look;
        !            41: look(ACTION) = Looker;
        !            42: 
        !            43: VERB inventory;
        !            44: inven = inventory;
        !            45: 
        !            46: inven(ACTION) = (($not ($cont .ME)):   { Null "contents" field }
        !            47:                        ($say "You are empty-handed.\n")
        !            48:                :{else}
        !            49:                        ($say "You are carrying:\n")
        !            50:                        ($setg Obj ($cont .ME))
        !            51:                        (WHILE @Obj :
        !            52:                                (($sdisc @Obj))
        !            53:                                ($say "\n")
        !            54:                                ($setg Obj ($link @Obj))
        !            55:                        )
        !            56:                )
        !            57:                ;
        !            58: 
        !            59: VERB take;
        !            60: VERB drop;
        !            61: get=take;
        !            62: 
        !            63: take(PREACT) = (($ne ($loc .ME) ($loc ($dobj))):       { Dobj in same room? }
        !            64:                ($say "I don't see ")           { No, report the fact }
        !            65:                (($sdisc ($dobj)))
        !            66:                ($say " here.\n")
        !            67:                ($exit 1));                     { and end the turn. }
        !            68: 
        !            69: drop(PREACT) = (($ne ($loc ($dobj)) .ME) :     { Must be carrying the dobj }
        !            70:                ($say "You aren't carrying it!\n")
        !            71:                ($exit 1));
        !            72: 
        !            73: take (ACTION) = ($move ($dobj) .ME)
        !            74:                ($say "Taken.\n")
        !            75:                ;
        !            76: 
        !            77: drop(ACTION) = ($move ($dobj) ($loc .ME))
        !            78:                ($say "Dropped.\n")
        !            79:                ;
        !            80: 
        !            81: DWIMD = (($and ($eq ($verb) take)
        !            82:               ($ne ($loc ($dobj)) ($loc .ME))):
        !            83:                        ($rtrn 0))
        !            84:        (($and ($eq ($verb) drop)
        !            85:               ($ne ($loc ($dobj)) .ME)):
        !            86:                        ($rtrn 0))
        !            87:        ($rtrn 1);
        !            88: startrm (LDESC) =
        !            89:                ($say 
        !            90: "You are in a small but comfortable room.  You hardly want
        !            91: to leave, but there is a door leading east, if you insist.\n")
        !            92:                ;
        !            93: startrm (SDESC) =
        !            94:                ($say "Comfortable room.\n");
        !            95: 
        !            96: brightroom(LDESC) =
        !            97:                ($say
        !            98: "You are in a brightly lit room.  The walls sparkle with
        !            99: scintillating lights.  There is a darker room to the west.\n");
        !           100: 
        !           101: brightroom(SDESC) = ($say "Bright room.\n");
        !           102: 
        !           103: 
        !           104: ADJECTIVE red, blue;
        !           105: NOUN red pillow(startrm);
        !           106: NOUN blue pillow(startrm);
        !           107: red pillow(LDESC) = ($say "There is a red pillow here.\n");
        !           108: red pillow(SDESC) = ($say "A red pillow");
        !           109: blue pillow(LDESC) = ($say "There is a blue pillow here.\n");
        !           110: blue pillow(SDESC) = ($say "A blue pillow");
        !           111: 
        !           112: 
        !           113: NOUN platinum(brightroom); bar=platinum;
        !           114: platinum(LDESC) = ($say "There is a bar of platinum here!\n");
        !           115: platinum(SDESC) = ($say "Platinum bar");
        !           116: platinum(ACTION) = 
        !           117:                (($eq ($verb) drop) :
        !           118:                        (($eq ($loc .ME) ($loc [red pillow])):
        !           119:                                ($say 
        !           120: "The bar falls onto the red pillow, breaking it!  The symbolism
        !           121: impresses itself upon you, and you go back to work instead of
        !           122: playing these silly games!\n")
        !           123:                                ($spec 3 0 0 0 0)
        !           124:                        )
        !           125:                );
        !           126: 
        !           127: VERB north, south, east, west;
        !           128: n=north; s=south; e=east; w=west;
        !           129: 
        !           130: cg = ($say "You can't go that way.\n");
        !           131: n(ACTION) = cg;
        !           132: s(ACTION) = cg;
        !           133: e(ACTION) = cg;
        !           134: w(ACTION) = cg;
        !           135: 
        !           136: startrm(ACTION) =  (($eq ($verb) east) : 
        !           137:                                ($move .ME brightroom)
        !           138:                                ($exit 1)               { bypass default }
        !           139:                        );
        !           140: brightroom(ACTION) = (($eq ($verb) west) : ($move .ME startrm)($exit 1));
        !           141: 
        !           142: START = ($sdem Rdesc);

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.