[comp.sources.games] v05i093: monster - multiuser adventure game for VMS, Part06/06

games@tekred.TEK.COM (12/01/88)

Submitted by: Richard Skrenta <skrenta@nuacc.acns.nwu.edu>
Comp.sources.games: Volume 5, Issue 93
Archive-name: monster/Part06



#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 6 (of 6)."
# Contents:  announce.txt guts.pas mon2.doc
# Wrapped by billr@saab on Wed Nov 30 11:29:00 1988
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'announce.txt' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'announce.txt'\"
else
echo shar: Extracting \"'announce.txt'\" \(2164 characters\)
sed "s/^X//" >'announce.txt' <<'END_OF_FILE'
X    Trudging home from the Libes late one night, you notice a figure darting
Xfurtively through the shadows, obviously trying not to be seen, yet your
Xeyes seemed to have been alerted to his presence, as if by instinct.  There's
Xsomething disturbingly peculiar about him, so you decide to follow him to see
Xwhat he's doing on campus.  He flashes across Sheridan road onto Emerson, then
Xtakes a quick cut to the north.  Again your gaze seems to be riveted to his
Xform, so much so that you are hardly aware of threading your way in and out of
Xthe Plex's courtyards, then back across Emerson again.  Why does this guy keep
Xdoubling back on himself?  Does he know you are following??  Faster and faster
Xthe two of you race; now you're trying not to be seen as well, either by him
Xor anyone else who would be wondering what sort of activities you had been 
Xengaged in while out on the lakefill that would cause you to be running about 
Xlike a decapitated chicken.
X    You've just about caught up with him, when suddenly he rounds a corner and
Xstops in front of a large doorway.  Is it Willard?  You stay behind some 
Xbushes so that he won't notice you, and you observe him to be fumbling in his
Xbackpack.  A couple of things fall out as he yanks his hand out, clutching a
Xsmall, tattered slip of paper.  The objects look like a large gold key and --
Xis that a crystal ball?!  Hastily, he scoops them back into his pack, glances
Xat the slip of paper, mumbles something -- and vanishes in a burst of
Xbrilliant, multicolored light! 
X    Now you wish you'd have gone straight home: obviously you need some rest 
Xafter concentrating so hard under those harsh fluorescent lights in Reserve.
XBut wait, you don't remember seeing this part of the sorority quads before. 
XThat doorway is NOT Willard's.  Then you notice that he dropped that slip of
Xpaper. You decide to pick it up, since you don't know if you can find your way
Xback here in the daylight.  For that matter, you don't know if you can find
Xyour way HOME.  You look at the paper, trying to decipher the scrawled words... 
X
X	RUN USERD:[CON00907.DOLPHER]MONSTER
X
XWhat the --?  Guess there's only one way to find out...
END_OF_FILE
if test 2164 -ne `wc -c <'announce.txt'`; then
    echo shar: \"'announce.txt'\" unpacked with wrong size!
fi
# end of 'announce.txt'
fi
if test -f 'guts.pas' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'guts.pas'\"
else
echo shar: Extracting \"'guts.pas'\" \(9732 characters\)
sed "s/^X//" >'guts.pas' <<'END_OF_FILE'
X[inherit ('sys$library:starlet')]
X 
Xmodule guts(input,output);
X 
Xconst
X        SHORT_WAIT = 0.1;
X        LONG_WAIT = 0.2;
X        maxcycle = 15;          { attempting to fine tune nextkey }
X 
Xtype
X        $uword = [word] 0 .. 65535;
X        string = varying[80] of char;
X        ident = packed array[1..12] of char;
X 
X        iosb_type = record
X                cond: $uword;
X                trans: $uword;
X                junk: unsigned; {longword}
X        end;
X 
X        il3 = record
X             buflen : $uword;
X             itm    : $uword;
X             baddr  : unsigned;
X             laddr  : unsigned;
X        end;
X 
X 
Xvar
X        pbrd_id:        unsigned;       { pasteboard id    }
X        kbrd_id:        unsigned;
X        pbrd_volatile:  [volatile] unsigned;
X        mbx:            [volatile] packed array[1..132] of char;
X        mbx_in,                                 { channels for input and   }
X        mbx_out:        [volatile] $uword;      { output to the subprocess }
X        pid:            integer;
X        iosb:           [volatile] iosb_type;   { i/o status block         }
X        status:         [volatile] unsigned;
X        save_dcl_ctrl:  unsigned;
X        trap_flag:      [global,volatile] boolean;
X        trap_msg:       [global,volatile] string;
X        out_chan:       $uword;
X        vaxid:          [global] packed array[1..12] of char;
X        advise:         [external] string;
X        line:           [global] string;
X        old_prompt: [global] string;
X 
X        seed: integer;
X 
X        user,uname:varying[31] of char;
X        sts:integer;
X        il:array[1..2] of il3;
X        key:$uword;
X 
X        userident: [global] ident;
X 
X 
X[asynchronous, external (lib$signal)]
Xfunction lib$signal (
X   %ref status : [unsafe] unsigned) : unsigned; external;
X 
X[asynchronous, external (str$trim)]
Xfunction str$trim (
X   destination_string : [class_s] packed array [$l1..$u1:integer] of char;
X   source_string : [class_s] packed array [$l2..$u2:integer] of char;
X   %ref resultant_length : $uword) : unsigned; external;
X 
X[asynchronous, external (smg$read_keystroke)]
Xfunction smg$read_keystroke (
X    %ref keyboard_id : unsigned;
X    %ref word_integer_terminator_code : $uword;
X    prompt_string : [class_s] packed array [$l3..$u3:integer] of char := %immed
X0;
X    %ref timeout : unsigned := %immed 0;
X    %ref display_id : unsigned := %immed 0;
X    %ref rendition_set : unsigned := %immed 0;
X    %ref rendition_complement : unsigned := %immed 0) : unsigned; external;
X 
X[asynchronous, external (smg$create_virtual_keyboard)]
Xfunction smg$create_virtual_keyboard (
X    %ref keyboard_id : unsigned;
X    filespec : [class_s] packed array [$l2..$u2:integer] of char := %immed 0;
X    default_filespec : [class_s] packed array [$l3..$u3:integer] of char := %immed 0;
X    resultant_filespec : [class_s]
X    packed array [$l4..$u4:integer] of char := %immed 0) : unsigned; external;
X 
X[asynchronous, external (lib$disable_ctrl)]
Xfunction lib$disable_ctrl (
X    %ref disable_mask : unsigned;
X    %ref old_mask : unsigned := %immed 0) : unsigned; external;
X 
X[asynchronous, external (lib$enable_ctrl)]
Xfunction lib$enable_ctrl (
X    %ref enable_mask : unsigned;
X    %ref old_mask : unsigned := %immed 0) : unsigned; external;
X 
X 
Xprocedure syscall( s: [unsafe] unsigned );
X 
Xbegin
X   if not odd( s ) then begin
X      lib$signal( s );
X   end;
Xend;
X 
X 
X[external,asynchronous]
Xfunction mth$random(var seed: integer): real;
Xexternal;
X 
X[global]
Xfunction random: real;
X 
Xbegin
X        random := mth$random(seed);
Xend;
X 
X[global]
Xfunction rnd100: integer;       { random int between 0 & 100, maybe }
X 
Xbegin
X        rnd100 := round(mth$random(seed)*100);
Xend;
X 
X 
X[external] function lib$wait(seconds:[reference] real):integer;
Xexternal;
X 
X[global]
Xprocedure wait(seconds: real);
X 
Xbegin
X        syscall( lib$wait(seconds) );
Xend;
X 
X[external] procedure checkevents(silent: boolean := false);
Xextern;
X 
X 
X[global]
Xprocedure doawait(time: real);
X 
Xbegin
X        syscall( lib$wait(time) );
Xend;
X 
X 
X[global]
Xfunction trim(s: string): string;
Xvar
X        tmp: [static] string := '';
X 
Xbegin
X        syscall( str$trim(tmp.body,s,tmp.length) );
X        trim := tmp;
Xend;
X 
X 
X[global]
Xfunction get_userid: string;
X 
Xbegin
X  il:=zero;
X  il[1].itm    := jpi$_username;
X  il[1].buflen := size(user.body);
X  il[1].baddr  := iaddress(user.body);
X  il[1].laddr  := iaddress(user.length);
X  syscall($getjpiw(,,,il));
X  syscall( str$trim(uname.body,user,uname.length) );
X  userident := user;
X  get_userid := uname;
Xend;
X 
X 
X[global]
Xprocedure putchars(s: string);
Xvar
X        msg: packed array[1..128] of char;
X        len: integer;
X 
Xbegin
X        msg := s;
X        len := length(s);
X        syscall($qiow(,out_chan,io$_writevblk,,,,msg,len,,,,));
Xend;
X 
X[global]
Xfunction keyget: char;
Xvar
X        term: [static] $uword := 0;
X        i: integer;
X 
Xbegin
X        if (smg$read_keystroke(kbrd_id,term,,0,,,) mod 2) = 0 then
X                keyget := chr(0)
X        else begin
X                i := term;
X                keyget := chr(i);
X        end;
Xend;
X 
X[global] function firstkey:char;
Xvar
X        ch: char;
X 
Xbegin
X        ch := keyget;
X        if ch = chr(0) then begin
X                repeat
X                        checkevents;
X                        doawait(LONG_WAIT);
X                        ch := keyget;
X                until ch <> chr(0);
X        end;
X        firstkey := ch;
Xend;
X 
X[global] function nextkey:char;
Xvar
X        ch: char;
X        cycle: integer;
X 
Xbegin
X        cycle := 0;
X        ch := keyget;
X        if ch = chr(0) then begin
X                repeat
X                        if cycle = maxcycle then begin
X                                checkevents;
X                                doawait(SHORT_WAIT);
X                                cycle := 0;
X                        end;
X                        cycle := cycle + 1;
X 
X        { should doawait(SHORT_WAIT) be in the cycle check, or should
X          it be only in the repeat loop (done every repeat) ?
X          When the system gets slow, character input gets VERY slow.
X          Is this because of the checkevents, the wait, or is it
X          just a symptom of a slow VAX? }
X 
X                        ch := keyget;
X                until ch <> chr(0);
X        end;
X        nextkey := ch;
Xend;
X 
X 
X[global]
Xprocedure grab_line(prompt:string; var s:string;echo:boolean := true);
Xvar
X        ch: char;
X        pos: integer;
X        i: integer;
X 
Xbegin
X        old_prompt := prompt;
X        putchars(chr(10)+prompt);
X        line := '';
X        ch := firstkey;
X        while (ch <> chr(13)) do begin
X{ del char }    if (ch = chr(8)) or (ch = chr(127)) then begin
X                        case length(line) of
X                                0: ch := firstkey;
X                                1:begin
X                                        line := '';
X                                        if echo then
X                                                putchars(chr(8)+' '+chr(8));
X                                        ch := nextkey;
X                                  end;
X                                2:begin
X                                        line := line[1];
X                                        if echo then
X                                                putchars(chr(8)+' '+chr(8));
X                                        ch := nextkey;
X                                  end;
X                                otherwise begin
X                                        line := substr(line,1,length(line)-1);
X                                        if echo then
X                                                putchars(chr(8)+' '+chr(8));
X                                        ch := nextkey;
X                                end;
X                        end;    { CASE }
X{ cancel line } end { if } else if ch = chr(21) then begin
X                        putchars(chr(13)+chr(27)+'[K');
X{                       pos := length(prompt) + length(line);
X                        if pos > 0 then
X                                for i := 1 to pos do
X                                        putchars(chr(8)+' '+chr(8));    }
X                        putchars(prompt);
X                        line := '';
X                        ch := firstkey;
X{line too long} end else if length(line) > 76 then begin
X                        putchars(chr(7));
X                        ch := nextkey;
X{ no ctrls }    end else if ord(ch) > 31 then begin
X                        line := line + ch;
X                        if echo then
X                                putchars(ch);
X                        ch := nextkey;
X                end else
X                        ch := nextkey;
X{ ***           ch := nextkey;           *** }
X        end;    { WHILE }
X        pos := length(prompt) + length(line);
X 
X{       if pos > 0 then
X                for i := 1 to pos do
X                        putchars(chr(8));       }
X 
X        putchars(chr(13));
X 
X        s := line;
Xend;
X 
X 
X[global]
Xprocedure setup_guts;
Xvar
X        border: unsigned;
X        rows,cols: integer;
X        mask: unsigned;
X 
Xbegin
X        seed := clock;
X        old_prompt := '';
X 
X{   border := 1;
X   smg$create_pasteboard(pbrd_id,,rows,cols,border);    }
X 
X   smg$create_virtual_keyboard(kbrd_id);
X   pbrd_volatile := pbrd_id;
X 
X   syscall($assign('SYS$OUTPUT',out_chan));
X 
X   mask := %X'02000000';        { CTRL/Y  Just for DCL }
X{ mask := ...21... for ctrl-t too }
X   syscall( lib$disable_ctrl( mask, save_dcl_ctrl ));
X 
X   mask := %X'02000008';        { nuke CTRL/Y & CTRL/C completely }
X{   syscall( smg$set_out_of_band_asts(pbrd_id,mask,trapper)); }
Xend;
X 
X[global]
Xprocedure finish_guts;
X 
Xbegin
X        syscall( lib$enable_ctrl(save_dcl_ctrl));       { re-enable dcl ctrls }
Xend;
X 
Xend.
END_OF_FILE
if test 9732 -ne `wc -c <'guts.pas'`; then
    echo shar: \"'guts.pas'\" unpacked with wrong size!
fi
# end of 'guts.pas'
fi
if test -f 'mon2.doc' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'mon2.doc'\"
else
echo shar: Extracting \"'mon2.doc'\" \(26227 characters\)
sed "s/^X//" >'mon2.doc' <<'END_OF_FILE'
X
XAppendix B:  Monster Command List
X
XAccept/Refuse #  Allow others to Link an exit here at direction # | Undo Accept
XBrief            Toggle printing of room descriptions
XCustomize [#]    Customize this room | Customize exit # | Customize object #
XDescribe [#]     Describe this room | Describe a feature (#) in detail
XDestroy #        Destroy an instance of object # (you must be holding it)
XDuplicate #      Make a duplicate of an already-created object.
XForm/Zap #       Form a new room with name # | Destroy room named #
XGet/Drop #       Get/Drop an object
X#,Go #           Go towards # (Some: N/North S/South E/East W/West U/Up D/Down)
XHealth           Show how healthy you are
XHide/Reveal [#]  Hide/Reveal yoursef | Hide object (#)
XI,Inventory      See what you or someone else is carrying
XLink/Unlink #    Link/Unlink this room to/from another via exit at direction #
XLook,L [#]       Look here | Look at something or someone (#) closely
XMake #           Make a new object named #
XName #           Set your game name to #
XPlayers          List people who have played Monster
XPunch #          Punch person #
XQuit             Leave the game
XRelink           Move an exit
XRooms            Show information about rooms you have made
XSay, ' (quote)   Say line of text following command to others in the room
XSearch           Look around the room for anything hidden
XSelf #           Edit a description of yourself | View #'s self-description
XShow #           Show option # (type SHOW ? for a list)
XUnmake #         Remove the form definition of object #
XUse #            Use object #
XWear #           Wear the object #
XWield #          Wield the weapon #;  you must be holding it first
XWhisper #        Whisper something (prompted for) to person #
XWho              List of people playing Monster now
XWhois #          What is a player's username
X?,Help           This list
X. (period)       Repeat last command
X
X
XAppendix C:  Customization Subsystem Menus
X
XRoom Customization:
X-------------------
X
XCustom> ?
X
XD       Alter the way the room description prints
XN       Change how the room Name prints
XP       Edit the Primary room description [the default one] (same as desc)
XS       Edit the Secondary room description
XX       Define a mystery message
X
XG       Set the location that a dropped object really Goes to
XO       Edit the object drop description (for drop effects)
XB       Edit the target room (G) "bounced in" description
X
XT       Set the direction that the Trapdoor goes to
XC       Set the Chance of the trapdoor functioning
X
XM       Define the magic object for this room
XR       Rename the room
X
XV       View settings on this room
XE       Exit (same as quit)
XQ       Quit (same as exit)
X?       This list
X
X
XExit customization:
X-------------------
X
XCustom [direction]> ?
X
XA       Set an Alias for the exit
XC       Conceal an exit
XD       Edit the exit's main Description
XE       EXIT custom (saves changes)
XF       Edit the exit's failure line
XI       Edit the line that others see when a player goes Into an exit
XK       Set the object that is the Key to this exit
XL       Automatically look [default] / don't look on exit
XO       Edit the line that people see when a player comes Out of an exit
XQ       QUIT Custom (saves changes)
XR       Require/don't require alias for exit; ignore direction
XS       Edit the success line
XT       Alter Type of exit (passage, door, etc)
XV       View exit information
XX       Require/don't require exit name to be a verb
X?       This list
X
X
XObject Customization:
X---------------------
X
XCustom object> ?
X
XA       "a", "an", "some", etc.
XD       Edit a Description of the object
XF       Edit the GET failure message
XG       Set the object required to pick up this object
X1       Set the get success message
XK       Set the Kind of object this is
XL       Edit the label description ("There is a ... here.")
XP       Program the object based on the kind it is
XR       Rename the object
XS       Toggle the sticky bit
X
XU       Set the object required for use
X2       Set the place required for use
X3       Edit the use failure description
X4       Edit the use success description
XV       View attributes of this object
X
XX       Edit the extra description
X5       Edit extra desc #2
XE       Exit (same as Quit)
XQ       Quit (same as Exit)
X?       This list
X
X
XAppendix D:  Monster Playerlist as of June 5, 1988
X
Xdolpher       ! Monster Manager        5-JUN-1988  1:48pm * great baths
Xdasun_c       ! Iceman                 4-JUN-1988 10:30pm * the transporter room
Xkirsten       ! Kirsten                4-JUN-1988 11:20pm * ffoirefirma
Xisakson       ! Satan                  3-JUN-1988 10:13am * satan's private hell
Xtlb05405      ! Tlb05405               3-JUN-1988 11:59am * east hall
Xnate          ! Smaug                  3-JUN-1988  7:41pm * platform 1
Xskrenta       ! Faust                  3-JUN-1988  8:37pm * tower room
Xgary          ! Monster Vice Manager   2-JUN-1988  9:50pm * inner office
Xlaura         ! Laura                  2-JUN-1988 10:36pm * turbolift chamber
Xjames         ! James                  1-JUN-1988  7:54pm * chuk's elevator
Xchuk          ! SoulStorm              1-JUN-1988  9:57pm * east hall
Xpeter_t       ! Peter_t               31-MAY-1988  8:33pm * pine forest
Xcary          ! Cary                  31-MAY-1988 11:20pm * maelstrom
Xfrancisco     ! Prof. Anthrax         30-MAY-1988  3:54pm * waterbed
Xsundeep       ! Sundeep               29-MAY-1988  2:21pm * mta office
Xbkc04916      ! Cheekster             28-MAY-1988 10:51am * the 'ell stop
Xktl04905      ! Corwin                28-MAY-1988 11:44am * west hall
Xperry         ! Bufu Master!!!        28-MAY-1988  8:40pm * pinkie's place
Xmaryahn       ! pinkie                27-MAY-1988 12:39pm * the sewer tunnel
Ximmell        ! hurricane eye         26-MAY-1988  2:25am * post office 3
Xrobert        ! Hungry Wolf           26-MAY-1988  2:26am * roll6
Xlinda         ! linlop                26-MAY-1988 10:47am * terminal room
Xjeff          ! Pringle               25-MAY-1988  7:12pm * ic
Xmic00229      ! Mic00229              22-MAY-1988  8:33pm * great hall
Xjeffoire      ! Ffoire Zen Salad      20-MAY-1988  1:41pm * bar
Xschroder      ! Schroder              19-MAY-1988 10:09am * burrow
Xlunde         ! Purple Peril          18-MAY-1988 12:55pm * cloud 9.5
Xpib           ! Great Pib             17-MAY-1988 11:51pm * great pib's lair
Xahrens        ! it                    15-MAY-1988  4:56pm * landing
Xmborsetti     ! Mborsetti             12-MAY-1988 10:20pm * sewer crossroads
Xbrian         ! Mr. Raven             11-MAY-1988 11:24am * a damp and dark hole
Xwen05563      ! Gary                  11-MAY-1988  9:00pm * great hall
Xjimbo         ! Jimbo                  8-MAY-1988 10:02pm * great hall
Xlentz         ! Lentz                  7-MAY-1988  8:24am * front of isp noyes
Xmiller        ! Mungus                 5-MAY-1988  1:14pm * starbase
Xotto          ! Otto                   4-MAY-1988  8:45pm * heidi's nightmare
Xchris         ! House Manager          3-MAY-1988  3:54am * home base
Xliao          ! Liao                  30-APR-1988  1:21pm * white house
Xchaz          ! Chaz                  29-APR-1988  4:05pm * post office 2
Xjmc           ! Run JMC               29-APR-1988  4:37pm * isp heaven
Xrod           ! Rod                   29-APR-1988  9:00pm * great hall
Xchoi          ! Choi                  28-APR-1988  8:25pm * east hall
Xbo            ! God                   26-APR-1988  1:58pm * great hall
Xjonathan      ! Jonathan              26-APR-1988  5:26pm * eye of the hurricane
Xswift         ! Swift                 26-APR-1988  8:53pm * post office hall
Xric05787      ! Deadhead              26-APR-1988 10:57pm * nightmarish room
Xmccoy         ! The Scribe            26-APR-1988 11:41pm * scribe home
Xg_wenslow     ! Gary II               24-APR-1988 11:58pm * east hall
Xkri04333      ! Kri04333              18-APR-1988 12:11am * great hall
Xdissett       ! Kronos                18-APR-1988 10:13pm * kronos' room
Xwantz         ! Wantz                 17-APR-1988  2:51pm * great hall
Xcheezer       ! Cheezer               16-APR-1988  7:55pm * the pine forest
Xahr04465      ! Ivo                   16-APR-1988  7:56pm * sewer transport
Xjoey          ! geek                  15-APR-1988  8:03pm * forest crossroads
Xwargaski      ! Wargaski              14-APR-1988  4:01pm * toxicated
Xeric          ! Eric                  13-APR-1988  3:51pm * the hall of chuk
Xrwc00220      ! Rwc00220              12-APR-1988  1:32pm * great hall
Xkstull        ! Kstull                12-APR-1988  5:01pm * post office 3
Xtim           ! Tim                   11-APR-1988  8:26pm * great hall
Xsean          ! Sean                  10-APR-1988  4:27pm * great hall
Xsam           ! Sam                   10-APR-1988 12:54pm * great hall
Xdean          ! Artagel                9-APR-1988  8:21am * turbolift chamber
Xsupercom      ! Cursor                 8-APR-1988 12:00am * forest paths
Xanne          ! Anne                   7-APR-1988  6:55pm * great hall
Xlisa          ! Lisa                   7-APR-1988  6:56pm * great hall
Xmouse         ! Mouse                  3-APR-1988 11:26pm * west hall
Xmca04477      ! Mca04477               2-APR-1988  8:56pm * burrow
Xsajiv         ! Sajiv                 30-MAR-1988  6:06pm * great hall
Xchad          ! Chad                  30-MAR-1988  6:37pm * chuk's elevator
Xjennifer      ! Jennifer              30-MAR-1988  7:22pm * east hall
Xlasonia       ! Lasonia               29-MAR-1988 11:22am * west hall
Xbrian_t       ! Brian_t               29-MAR-1988 11:59am * maelstrom
Xmikk          ! Random                29-MAR-1988 11:19pm * ledge
Xtopher        ! Topher                28-MAR-1988  1:19pm * great hall
Xspectre       ! Ghost in the machine  28-MAR-1988 11:43pm * ghost's mailroom
Xdave          ! Dave                  18-MAR-1988 10:14am * post office hall
Xpenguins      ! Penguins Amok         18-MAR-1988 11:52pm * chuk's elevator
Xlawson        ! Space Cowboy          18-MAR-1988 12:23pm * great hall
Xheidi         ! Heidi                 17-MAR-1988  1:11am * digital purgatory
Xbueno         ! Bueno                 17-MAR-1988  7:49pm * post office hall
Xdan           ! Grando                16-MAR-1988  8:18am * eye of the hurricane
Xeric_yue      ! Samsok                16-MAR-1988  9:29pm * the yueguy's joint
Xcra01453      ! Cra01453              15-MAR-1988  3:01am * great hall
Xadam          ! Adam                  14-MAR-1988  6:45pm * round room
Xwas04906      ! Milt                  14-MAR-1988  9:48pm * great hall
Xwatson        ! Watson                14-MAR-1988 10:22pm * chuk's elevator
Xbrianw        ! Brianw                12-MAR-1988         * ffoirefirma
Xmike          ! Mike                  12-MAR-1988         * toxicated
Xpredator      ! Predator              12-MAR-1988         * east hall
Xdaniel        ! Daniel                11-MAR-1988         * west hall
Xdav08345      ! Dav08345              11-MAR-1988         * great hall
Xvlahos        ! otis                  11-MAR-1988         * post office
Xginter        ! Ginter                10-MAR-1988         * living room
Xrob09549      ! Rob09549               9-MAR-1988         * great hall
Xdora          ! Dora                   8-MAR-1988         * toxicated
Xkim           ! kim                    8-MAR-1988         * post office 2
Xmichael       ! Prabdib                7-MAR-1988         * tunnel of love
Xbradley       ! Bradley               29-FEB-1988         * eye of the hurricane
Xjohn          ! Raunchmeister         29-FEB-1988         * underhall
Xmelvin        ! Killer Melvin         27-FEB-1988         * chuk's elevator
Xcliff         ! Cliff                 26-FEB-1988         * east hall
X
X
XAppendix E:  An Actual Monster Game Log
X
X$ monster
XWelcome to Monster!  Hit return to start:
X
XWelcome back, Faust.  Your last play was on 1-JUN-1988 at 10:47pm.
X
XYou're in Great Hall
XYou're in the middle of a vast hall stretching out of sight to the
Xeast and west.  Strange shadows play across the high vaulted ceiling.
XThe floor is set with smooth rectangular stones.  The walls feel slightly
Xcold to the touch, and damp with condensation.  A copper plaque, slightly
Xgreen with age, is set into one wall.
X
XMonster Manager is here.
X>
XMonster Manager vanishes in a brilliant burst of multicolored light.
X> l
XYou're in Great Hall
XYou're in the middle of a vast hall stretching out of sight to the
Xeast and west.  Strange shadows play across the high vaulted ceiling.
XThe floor is set with smooth rectangular stones.  The walls feel slightly
Xcold to the touch, and damp with condensation.  A copper plaque, slightly
Xgreen with age, is set into one wall.
X
X>
XMonster Manager appears in a brilliant burst of multicolored light.
X> who
X                   Monster Status
X                 1-JUN-1988 10:48pm
X
XUsername        Game Name                 Where
Xdolpher         Monster Manager           great hall
Xskrenta         Faust                     great hall
X> look plaque
X
XThe plaque looks very old and corroded.   However, you can still make out
Xthe writing:
X
X " Monster, created by Rich Skrenta, 1988.  Play at your own risk. "
X
X> show details
XDetails here that you may inspect:
X    stones
X    plaque
X> look stones
XThe stones are rough and black, and cold to the touch.  Although the
Xmortar work appears to have been expertly done, it has decayed with time.
XMany stones are cracked, and narrow spaces fracture the carefully laid
Xpattern.  Some of the stones are quite loose.  You might be able to lift
Xone of them with some effort.
X>
XMonster Manager is looking at the stones.
X>
XMonster Manager is looking at the plaque.
X>
XMonster Manager says, "Hey Faust, let's go down to the Underhall."
X>
XMonster Manager manages to lift a stone in the floor and descends.
X> lift
XWith great effort, you manage to lift the stone enought to fit inside.
X
XOnce below the stone, it falls back into place, sealing out the light
Xfrom above.  You squirm down the narrow tunnel . . .
X
XYou're in UnderHall
XThis is a cramped, humid room beneath the Great Hall.  The walls are
Xdripping with water condensed from mist rising from the baths.  Some
Xof the mist follows the ceiling and dissappears up the narrow tunnel.
X
XStairs lead north down to the Great Baths.
XA neon sign flashes "Great PIB's Lair" over a door to the South.
XYou could manage a crawl through a narrow tunnel leading upwards.
X
XMonster Manager is here.
X> look Monster Manager
XMonster Manager is the stereotype of a computer hacker.  He is wearing
Xa flannel shirt with several snickers bars in the breast pocket.  On
Xhis belt is an ASCII-HEX conversion chart.  On his feet are a scuffed
Xpair of hiking boots so he can tackle those dangerous mountains that
Xcrop up in operations.  Also dangling from his belt is a battered box
Xwith many buttons on the front and wires with sockets on the ends protruding
Xfrom the back.  The switches seem to have been placed haphazardly, but
Xthe object is unmistakably one of great power nonetheless.
X
XMonster Manager is in perfect health.
XMonster Manager is empty handed.
X>
XMonster Manager is looking at you.
X>
XMonster Manager swings at you but misses.
X>
XYou duck in time to avoid Monster Manager's punch.
X>
XYou see stars as Monster Manager bashes you in the face.
X>
XYou parry Monster Manager's attack.
X> punch Monster Manager
XYou can't punch the Monster Manager.
X> l
XYou're in UnderHall
XThis is a cramped, humid room beneath the Great Hall.  The walls are
Xdripping with water condensed from mist rising from the baths.  Some
Xof the mist follows the ceiling and dissappears up the narrow tunnel.
X
XStairs lead north down to the Great Baths.
XA neon sign flashes "Great PIB's Lair" over a door to the South.
XYou could manage a crawl through a narrow tunnel leading upwards.
X
XMonster Manager is here.
X> n
XYou're in Great Baths
XThese are the luxurious Great Baths where tired adventurers may come
Xto relax and try to regain their health and youth from the mineral waters.
XFrom where you stand at the entrance, you can see below you the bubbling
Xsoapy pools of water churning violently in tile-lined pits.  The pools
Xare fed by hot springs from deep in the rock beneath you.  Steam and
Xhuge soapy bubbles rise out of the hot pools of water.  The bubbles
Xdance through the air, climbing higher and higher, until they either
Xburst on the sharp walls of the cave or are lost in the mist above you.
X
XShallow tiled steps, wet and slick from the hot soapy waters of the
Xsprings, lead down to the pools.
X
XRough stone stairs lead up to the south.
X
X>
XIn an explosion of orange smoke Monster Vice Manager poofs into the room.
X>
XMonster Manager has come down the stairs from the Underhall.
X>
XMonster Vice Manager produces a "who" list and reads it.
X> system
XSystem> v
X
X               used   free   total
XBlock file    1008     92    1100
XLine file     1501    109    1610
XRoom file      283     27     310
XObject file    139     41     180
XInteger file     6      0       6
X
XSystem>
XMonster Vice Manager is in system maintenance mode.
XSystem> exit
X>
XMonster Vice Manager is no longer in system maintenance mode.
X> 'Hey Gary
X>
XMonster Vice Manager says, "Hi, Faust."
X> look Monster Vice Manager
XThe Monster Vice Manager is dressed in a conservative three piece
Xsuit.  The stern expression on his face is just a facade, he really
Xis a warm and sensitive guy underneath.  He is willing to answer
Xany questions and help out with any problems.  He can best be
Xdescribed by the phrase:
X
X            "Do what thou wilt, so mete it be."
X
XHe returns your gaze with a hint of understanding and amusement.
X
XMonster Vice Manager is in perfect health.
XMonster Vice Manager is empty handed.
X>
XMonster Vice Manager is looking at you.
X> punch Monster Vice Manager
XYou swing wild and miss.
X> .
XMonster Vice Manager ducks and avoids your punch.
X> .
XA quick punch, but it only grazes Monster Vice Manager.
X>
XYou only feel the breeze as Monster Vice Manager swings wildly.
X> .
XYou swing wild and miss.
X>
XYou see stars as Monster Vice Manager bashes you in the face.
X>
XYou only feel the breeze as Monster Vice Manager swings wildly.
X> .
XYou deliver a quick jab to Monster Vice Manager's jaw.
X>
XMonster Vice Manager's swing misses you by a yard.
X> .
XYour roundhouse blow sends Monster Vice Manager reeling.
X>
XYou double over after Monster Vice Manager lands a mean jab to your stomach!
XMonster Vice Manager looks a little dazed.
X>
XMonster Vice Manager vanishes from the room in a cloud of orange smoke.
X> who
X                   Monster Status
X                 1-JUN-1988 10:56pm
X
XUsername        Game Name                 Where
Xdolpher         Monster Manager           great baths
Xskrenta         Faust                     great baths
Xgary            Monster Vice Manager      inner office
X> poof inner office
X
XThis rooms is a conservatively decorated office.  A large
Xdesk dominates the room.  Several pictures hang on the walls
Xand a silver service is on a stand off to the left.  Two plush
Xchairs beckon for you to sit down.
X
XThere are stairs leading down.
X
XMonster Vice Manager is here.
XMonster Vice Manager looks a little dazed.
X> sh det
XDetails here that you may inspect:
X    bin
X    plaque
X    pictures
X    stand
X> look bin
X
XThe bin has a sign on it saying, "Leave mail for the Monster
XVice Manager here.  Thank you."
X
X> look plaque
X
XThe plaque reads:
X
X         Gary Wenslow, Monster Vice Manager
X
X> look pictures
X
XThese are very nice pictures of landscapes.  They look expensive.
X
X> look stand
X
XThe silver service on this stand is of fine workmanship.
XThere are also crystal goblets and flasks containing very
Xfine wine, brandy, and whiskey.
X
X> l
X
XThis rooms is a conservatively decorated office.  A large
Xdesk dominates the room.  Several pictures hang on the walls
Xand a silver service is on a stand off to the left.  Two plush
Xchairs beckon for you to sit down.
X
XThere are stairs leading down.
X
XMonster Vice Manager is here.
XMonster Vice Manager looks a little dazed.
X> rooms gary
Xgary:
X    tunnel of love            more tunnel of love       end of tunnel
X    hot dog stand             picnic                    window
X    mvm office                inner office              hall1
X    hall2                     hall3                     hall4
X    hall5                     hall6                     hall7
X    hall8                     hall9                     concession
X    roll1                     roll2                     roll3
X    roll4                     roll5                     roll6
X    roll7                     roll8                     roll9
X    roll10                    worker's ledge            railing
X    rope                      mvm mail room
X
X> rooms dolpher
Xdolpher:
X    void                      pit of fire               underhall
X    great baths               pools                     in the pool
X    in the bubble             higher bubble             highest bubble
X    ledge                     tower ledge               circular staircase
X    behind house              kitchen                   living room
X    bottom of stairs          manager's mailbox         tower room
X    on the scaffolding        round room                mountain pass
X    roof of tower             west passageway           castle entrance
X    center hall               outside the gate          east passageway
X    narrow passage
X
X> poof behind house
XYou're at Behind House
XThe back door of the house is boarded up, but the windows have not been
Xblocked.  One window at ground level leads into what appears to be the
Xkitchen.  All of the other windows are too far above the ground for you
Xto reach.
X
XA path leads west to the front of the house.
X
X> form Study
X> poof studty
XThere is no room named studty.
X> poof study
XYou're in Study
X
XA note on the east wall says "Your exit here."
X
X> refuse east
XExits east will be refused.
X> l
XYou're in Study
X
X> desc
X[ Editing the primary room description ]
XEnter text.  Terminate with ** at the beginning of a line.
XYou have 10 lines maximum.
X
X 1: This is a luxurious study walled with fine oak paneling.  A window
X 2: looks out of the east wall.  It is surrounded by purple curtains.
X 3: There is a small sign on the wall.
X 4: **
X
X* e
X> l
XYou're in Study
XThis is a luxurious study walled with fine oak paneling.  A window
Xlooks out of the east wall.  It is surrounded by purple curtains.
XThere is a small sign on the wall.
X
X> desc sign
X[ Editing detail "sign" of this room ]
XEnter text.  Terminate with ** at the beginning of a line.
XYou have 10 lines maximum.
X
X 1: The note seems to have been hurriedly scrawled.  It reads:
X 2:
X 3:    "  This room for demonstration purposes only!  "
X 4:
X 5: **
X
X* ?
X
XA       Append text to end
XC       Check text for correct length with parameter substitution (#)
XD #     Delete line #
XE       Exit & save changes
XI #     Insert lines before line #
XP       Print out description
XQ       Quit: THROWS AWAY CHANGES
XR #     Replace text of line #
XZ       Zap all text
X@       Throw away text & exit with the default description
X?       This list
X
X
X* p
X
X 1: The note seems to have been hurriedly scrawled.  It reads:
X 2:
X 3:    "  This room for demonstration purposes only!  "
X 4:
X
X* e
X> sh det
XDetails here that you may isspect:
X    sign
X> look sign
XThe note seems to have been hurriedly scrawled.  It reads:
X
X   "  This room for demonstration purposes only!  "
X
X> l
XYou're in Study
XThis is a luxurious study walled with fine oak paneling.  A window
Xlooks out of the east wall.  It is surrounded by purple curtains.
XThere is a small sign on the wall.
X
X> desc sign
X[ Editing detail "sign" of this room ]
X
X* i 1
X1:
X2: **
X
X* p
X
X 1:
X 2: The note seems to have been hurriedly scrawled.  It reads:
X 3:
X 4:    "  This room for demonstration purposes only!  "
X 5:
X
X* e
X> look sign
X
XThe note seems to have been hurriedly scrawled.  It reads:
X
X   "  This room for demonstration purposes only!  "
X
X> l
XYou're in Study
XThis is a luxurious study walled with fine oak paneling.  A window
Xlooks out of the east wall.  It is surrounded by purple curtains.
XThere is a small sign on the wall.
X
X> form Behind the Curtains
X> link west
XHit return alone at any prompt to terminate exit creation.
X
XRoom to link to? behind the curtains
XExit comes out in target room
Xfrom what direction? east
XExit created.  Use CUSTOM west to customize your exit.
X> l
XYou're in Study
XThis is a luxurious study walled with fine oak paneling.  A window
Xlooks out of the east wall.  It is surrounded by purple curtains.
XThere is a small sign on the wall.
X
XThere is a passage leading west.
X
X> custom west
XCustomizing west exit
XIf you would rather be customizing this room, type CUSTOM with no arguments
XIf you would rather be customizing an object, type CUSTOM <object name>
X
XType ** for any line to leave it unchanged.
XType return for any line to select the default.
X
XCustom west> ?
X
XA       Set an Alias for the exit
XC       Conceal an exit
XD       Edit the exit's main Description
XE       EXIT custom (saves changes)
XF       Edit the exit's failure line
XI       Edit the line that others see when a player goes Into an exit
XK       Set the object that is the Key to this exit
XL       Automatically look [default] / don't look on exit
XO       Edit the line that people see when a player comes Out of an exit
XQ       QUIT Custom (saves changes)
XR       Require/don't require alias for exit; ignore direction
XS       Edit the success line
XT       Alter Type of exit (passage, door, etc)
XV       View exit information
XX       Require/don't require exit name to be a verb
X?       This list
X
XCustom west> a
XAlternate name for the exit? curtains
XCustom west> r
XThe alias for this exit will be required to reference it.
XCustom west> d
XEnter a one line description of the exit.
X
XType ** to leave line unchanged, * to make [no line]
X*
XCustom west> exit
X> l
XYou're in Study
XThis is a luxurious study walled with fine oak paneling.  A window
Xlooks out of the east wall.  It is surrounded by purple curtains.
XThere is a small sign on the wall.
X
X> go curtains
XYou're in Behind the Curtains
X
XThere is a passage leading east.
XA note on the floor says "Your exit here."
X
X> e
XYou're in Study
XThis is a luxurious study walled with fine oak paneling.  A window
Xlooks out of the east wall.  It is surrounded by purple curtains.
XThere is a small sign on the wall.
X
END_OF_FILE
if test 26227 -ne `wc -c <'mon2.doc'`; then
    echo shar: \"'mon2.doc'\" unpacked with wrong size!
fi
# end of 'mon2.doc'
fi
echo shar: End of archive 6 \(of 6\).
cp /dev/null ark6isdone
MISSING=""
for I in 1 2 3 4 5 6 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 6 archives.
    rm -f ark[1-9]isdone
    ./fixup.sh
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0