BDg#Gt" +GamesA@@ @ @  x% xExample BlockFileadvBpatSV8V8FAArtilleryerArtillery 2.0.2APPLRTIL!+Gt CArtillery Infofttrottxt pj+aU!DDesktop Folder> Desktop DF)DTFLDMGR@ǰTDǰdDesktop FolderD!EAmpsy Foldermpsy FolderǰTDǰTD`EAmpsy FolderEAmpsy Folder%GamesA%Desktop% Desktop DF%Amps 3.0%Example BlockFileb8Amps 3.0 APPLAMPS!46\eGt`AAdventureMakerAdventureMaker 1.0.APPLpatS! !&(_JGt{!AdventureMaker InstructionsAPPLDocR!NP ǰT: GamesAg#>GamesAAdventureMakerev~>>p Ampsyg&Kg&WRArtillerye D D>pFb DesktopFNDRERIK@ @g#@  Desktop DB)BTFLDMGR@ǰTDǰ DesktopFNDRERIK@FNDRERIK@g# Finder 1.04patSICN#cy\J>@FREFHK/P5w##?PH-xH99C[v " 0A x  ?Px??PHI88΀  ︀v  ??s@@ s APPLadvDadvBadvHDocRICN#FREFw#20?acQYD<e c"02頀PT* |>APPLjRTILArtillery 2.0.2DocRAdventureMaker InstructionspatSAdventureMaker 1.0AMPSAmps 3.0RTILICN#gFREFYw#nx""@""ADH""@"@@Ⱦ@@2@? @APPL,ttxtICN#>/0hFREF:^w#D@ !"BABQ"%TJP!*BUDD@! @ @@  @?>???@ {݈@^{@^d{^{@@NH %+@B cJ%+@@Uk[@?_U@*_U@*_U@_@@??APPLTEXTttro STR JAPPLVBNDLbpatSICN#FREF DocRvRTILttxt^#$2$n$4D$m$Gcy$Q\J$U>$Y@$]$g$^>/$0$h$ .H$aK/$lP$w5$$Y$b:$ ^$ $ $$TZ$2515h decimal word:Single characAmps 3.0 APPLAMPS!APPLAMPS!\e4e:   $~ #~ 2 #V kT  H /`    JChoose New Game from the Game menuPress any key to startRun for your life!You got FRIED!!!You WON!!!%Amps collided in ampmove; impossible.Temporary Electronic TruceHere they come!GetNewDialog failed in doParamsGetResource of a SICNAMPSNewWindow failed in MacInitGetNewDialog failed in MacInitGetCursor failure$NzrQNV/N BmBmBmBm~~ HyN,X?<Ua0@<0HAJf40HAp0A"1G0A"1FREmrmUa0H@B@H@H@>Ua0@<0HAJf;Gl;Fn0HApLN^NuSETBOARDNVH n n(>.`?.`?<?N X?<N TRGn op=@Jnl(<. `??.`&??N 8X0HAH?N jTRGn oRFnoLN^NuSHOWBOARNV?-~?<N\X?-?<NNX?-?<N@X?-?< N2XJmg0mHxd/NB0m//NZ`p??< NXJmg00m~Hxd/NB0m2mr/ /-@NB/ nHPNZ`p??< NX?-?<NX?-?<NXN^NuSHOWSTATNVH>.<. ?-n?-lN XBgN LT0-lHAnB GfV0-mxmp`pd6Ua0H@B@H@H@;@l:Ua0@;@n8SCJCo$0HAJf`ml:-lmn8-n?-n?-lN rX?<N TJEmJDm El Dmp`,0HAH=@0HAp0.LN^NuYOUMOVE NVH>.<. Fl0G `0LN^NuMIN NVBn`0.A"HPNXRn0.m mNXBn`80.A"Jhm 0.A"HPNX @fp`Rn0.m mpN^NuAMPMOVE NVH>- |`n0A"C"20S@:` 0R@A"0C" 0SEJEm0A"0.Pm0R@A"C 0RFGmLN^NuAMPSORT NVH n0(ml> n0(mn<02A n0LN^NuCALCDISTNVHnHn?-n?-l n?( n?(NTO n?( n?(NHXBgNT n0(HA"nB?.?.NX0.HAHN:@ n1n n1n0.HAp?<NTp`?<NT?<N TSm 0- A""n"2Ua0H@B@H@dH@ @1c$0.HAB?.?.NhX`?.?.N0.n <?N T:?N T8Dop@`DlB.`mJ-WDH@Ua0H@B@H@ H@mvR@=@ n op =@?NT>?NT<J.gv`0A0n:JFf0A0. h8`0A0(n 8JEmF El@JDm< Dl60HAJg0HA f n0 n0`RCnmd`v`JGf0A0.h:`0A0(n:0A0n 8JEmD El>JDm: Dl40HAJg0HA f n0 n0`LRCnmf0.G:0. F80HA g n0 n0` n0 n0 LN^NuTHINK NVJnmJngp`p`pN^NuSIGN NV nf ?<N T` nf`?<N^NuFILEMENUNVN^NuEDITMENUNV0.N:8b/-?<9/-?<:/-?<:/-?<9`py@zBm|/-?<:/-?<9/-?<:`rp;@|/-?<:/-?<9HyN X`HBm|/-?<:/-?<9HyN X`"N,`Bm~BmBmBmBmBmNN^NuGAMEMENUNVY?<BHx| _-HJfHy?8 `N \`?-t?</.NP?-p?</.NP?-v?</.NP?-x?< /.NPBHn ng` nf?</.N \;@t?</.N\;@p mKpopK;@p?</.N\;@v?< /.N\;@x/.N^NuDOPARAMSNVA-Hp!NP+xj~HmBgBg?<`?< AC Hn?<?<(YBHnHy<?<HxBgB _+HJfHyBgN\Y?<BB| _+HJfHy?8 `N\YHySICN?<멠 _+HJx `g/.?8 `Nt\YHySICN?<ꩠ _+HJx `g/.?8 `NL\YHySICN?<驠 _+HJx `g/.?8 `N$\p(;@pp ;@rp;@tp;@vp;@xY?<I _+HJg/-?<:/-?<:/-?<:N^NuMACINIT NV nhzN^NuDOKEY NV n h PCT""0n S@=@0n S@=@0n S@=@0n S@=@ nHh?.?.?.?.NPPN^NuDOUPDATENVN^NuDOGROW NVN^NuDOCONTENNVN^NuDOSPECIANVN^NuDOGOAWAY/-sHm樣Hm(NuNV;n&;n (0. R@@;@0.R@@;@ 0-@;@"0- @;@$N^NuATB NVHnt/-s0.N: RtHm`N&`Ua0@;@*0-*@ mHА+@Hm mHhHmHmBgB`H m+PHm mHhHmHmBgB`$ m+PHm mHhHmHm?<B/.sN^NuPUTA NVH>.<. 0S@:`Z0S@8`F??NXJEm, El&JDm" Dl0HAH?NT` ?<NTRD0R@@oRE0R@@oLN^NuFRYWALL NVH>-&<-( m+PHm mHhHmHmBgB??NX:f"=m=m =m"0.X@=@Hnf"=m=m 0.X@=@=m$Hnf"=m0-$Y@=@=m"=m$Hnf"0-"Y@=@=m =m"=m$HnLN^NuPUTWALL NVH>.<. zJGl"JFm Fg A fz`z ` Gf"JFm Fg A fz`z`JFl0HA gp`p:` Ff 0HA (gp `p:`JGg0S@HA fEJFg0HA (fE0R@ @g0R@HA fE0R@ @g0HA (fE0LN^NuSURROUNDNVB-z`NJm|f0.tHиj-@`NJ-zfJm|fN 8je-zHN^NuMYGETC Jm gF0-,R@H H@;@,0-,A"0-,C"?)?(NX?<NTNuNVBnY$ _g/-V0- N: p=@`p=@`p=@?.N T=@JnnpS=@ nam nznn0.N*RSN5ZDV6dE`9pWl8zQv7A4Z1X2C3J@ nBP n BP` np0 n BP` np0 n p0` nBP n p0`x np0 n p0`d np0 n BP`R np0 n p0`@ nBP n p0`0 np0 n p0` np0 n p0` n BP nBPN^NuREADMOVENV?<N^NuNOISE NV/-?<HnHnHn/.NX/././.NXN^NuTELLEM NV/-?.HnHnHn0n /HnN/.HnީN^NuTELLNUMBNV/>.JGl0D@`0.N^NuABS NVY?<BHx| _-HJf?<`\0n/HnN\/.?<HnHnHn쩍/.Hn䩏/.?<HnHnHn쩍/./. BHn/.N^NuERROR2 NVY?< _+H./-.HyDRVRM/-.Bg5p=@`Y?. _HPBg5Rn0.mo7N^NuSETUPMENNV .r=@ <=@0.N:XpR0 nf ?<NjT`T/-.?.HnFUHn0`:J. g nnU0.S@?Jf0.U@HA?. PNTBg8N^NuGENMENUCNVY?.BHx| _-HJf?<`BHn/.N^NuSHOWINFONV䩴U? -@rJ@gBg/.N~\`|HnNX`n-nHnt/.s/."/.NX/.#/.s`< .rJ@g pd=@pd=@U/./.N0J@f HnNXN^NuGENDOEVENVH(n Tf,gY,H?> .rJ@gf r @fLY$ _-H <N:0 /.Nr`/.Nn`/.NV`/.N`Bg8`4U/ HnHnJg n-hJg?./. nN\LN^NuDODIALOGHmn0B{?/

HG0HG2Nu$&≲b2.HGHG҇ebDNuS@`22<`Y/?RG _U/0fP ^ (H/ K :><G`Y/?RG _ </ P"L.QNuA NuA fNuB @N p ?<(?<5Q4 )$W4 (<}E4 (6Z4 )#X4 )$CaUi0"/^a o0"0/aSgB0"]/a 0"/aTh0"]a 0"/aQe0"[a"0"071_w09 g1c  1 8#w 9! ?G0 '  About Amps-'FileHelpHQuitQHU`EditUndoZ-CutXCopyCPasteVClearUGameNewNPausePResumeR SettingsS- Clear ScoreX OK !j Error code:+ l 0m+t(message text)H9 Some messageC T3Kills:DTT\ lDGames:\Tlt PWon:tT PJumps:T P% Won:T P% Kills:T l In this game: 3Kills:T PJumps:T\Zn;OKYCK 1987 Paul A. Perkins (AM-WEB @ GENIE) 104-O Stephanie Dr. Cary, NC 27511 U$oAmps was written with BDS C under CP/M, then ported to UNIX, then ported to the Macintosh using LightSpeed C! Amps 3.0(B2)JThis is free software! Use it, give copies to friends, but don't sell it.$ OK,Cancel 08H0`p08(FAmp move delay. A larger number gives you more time to move. Try 20.08PmWall density. The approximate percentage of the playing area that will initially be part of a wall. Try 40.0X8x`Amp intelligence. The higher the number, the less likely an amp is to jump into a wall. Try 1.08zFree Jumps. In each game, you can jump this many times with no risk of getting fried. After that, you take your chances.KOK! "epEThe keys surrounding the S key move you in the indicated direction.gpmThe J key jumps you to a random new location. If you are unlucky, you may land on an Amp or Wall, and Fry!]How to Escape the Amps: pThe only way to kill an Amp is to trick it into running into a Wall. Conversely, if you run into a Wall or Amp, or an Amp catches you, you get Fried.6taoerrmsg<iRAmps$(D<@0`>@  @`1p@@ @>{߀_:{߀.yp ?#" "? ?@La  0  ????????2515hzSTRSzZERODATADRELCODECRELAMPSFREFBNDLPICTSICN MENU.DITL^DLOGICN#N(n(8 (#( $r $v $ $&'w''%'*(/(a4$() *b+@ -E /L$/V/\/e 0 01128 Arrow HelpAmpsSelf?WallAppleFileEditGame Debug errorHelpAbout DebuggingScoreSettingsHelp</ NTpf ?B/:.?<(_ f T"F""LN^ _\ONNST nVIR _"W.Nѡ/HN"_ _N"_ L.Nqp/ 1 Nup`"_ _#N"_ _)NtHm <NN"NV/. .NN^ _\ONOMPC NVH,. .BN&_B.NBgBg>pWJWg?<`dBgB/:?< (_ fN/ <B/:?<(_ W/Bg2 JAVf / / N/ N"!J2pDNo2DZAdventureMaker 1.0.APPLpatSAPPLpatS! !_J&Disk is locked. Save CancelňSave as:1.8J EjectRd 6r'L/NV-IHn/Hn?< n?fp-@`/ Hn/NN^NuH<NV*. n"n(RH$*jD,jD$&BBx㉰mRSDlJjDjDL|Nu1.2ANVH$n$RCI&n=|BnN n#J@f-nLJnN^ONu0<Hv6/(( Dfx "J@f<"o./o$./H2 P00*0, CfBPQ` KSC0QLO Nu0<NVH$n$RC(n (TG0.=@ @nN` @fN`N@ n#J@f n #J@f-nDLN^O Nu0<H4/($o$$RCN @ o&#J@f/o"(DL\ONu0<?| `?| `?| NVH$n $RC(n(TG=nN-H n #J@f n#J@f-n LN^ONu0<HpraP/J(LNuH0/(2a:/J*/o$&LTONuH0/*2/(@lpra/J,/o$(LXONuHN "J@fL$H"R222`0<tKSCx8D I0Q IAoNu °AgJDgSDSA`0t8<SA`0NuN>HzNN>NnN6NhXOpNupNuNHzNNLNXODNuDNuNHzNN*N(XODNuDNu0, @f/ UO&Opa0&_Nu KHS@r0QNHzNzNNXONNu=|NuH nF m>0*2*Bn2Bm.J@kp?NSD&2N@01v6CgDNuDNuN04.@o4JBktv6.Al6H0 "NDL "J@fH/$n $RC(n(TGH`$L"K P(HG000?.=|a=_La _Nu0<N2.4.6.SCNV2.SAA@t41 nfs` nfFBs`sJAgU@UA` nfH2.4.6.SCNR@CnC@Bs0CgUC`2.6.SCNS@k@BsJ@gU@`Nu2,0,=@=ANfN=B=C=D2*0*NJN~=B=C=DNu2.4.6.SCNt8R@@C@mJs0fj@gUC`0@23gtp0.@g fDRBS@`r2.4.6.SCN"@63g RAAp0<n@g fRAS@`Nu=|Nu2.4.Bo&6.SCNR@jp@CJq0gXONuCgUC`Nu2.4.Bo&6.SCNR@jpC@Js0gXONuCgUC`Nu2.4.6.SCNvCo0?2.4.6.SCN\J@jp?2.4.6.SCNB4Bn402AoNuB@A no ng`,7 @gUBUA`Nu61 sgXONu@gUBUA`Nu ng 63FCq ` 61 FCsgXONu@gUBUA`Nu2.nl*4.6.SCNS@@o6CJs0gXONuJCgUC`Nu2.nl*4.6.SCNnS@@o6CJq0gXONuJCgUC`Nu4Hj DD6HÖR(/?<a2(Nu6HjDD`ւSNu HH/?<a DЃNuHr2/ /jDD`/@/o LTONu/J@kpad&փ Nu1.2AWS/4/kn6/ kh"/ ob < NO O0000BXBXBX OO/|$?|B /H OJhoJ-SgJ-jBx0N0/C2I Q"HrRH`$atd Spr`QQL.IRA WN$0lp2n DARAAlpr _"W/tRBAltBo0`QNuL"WH@pQ$0lp2n DARAAlpr _/tARBoBo0@C`QNu 2HA2<"_ otQ"_ W`L/H0xpt6BAo6xHAJAnrSABo2RAE0G4 &JKDBm#QEARC@o6`QRDL Nur`rNVHn?<?<`HW?<TOA"n 0QHC a@?<HW?<grg<Hz.HP?<aHn?<N^ _NHPHQ?<(Nu?1.2A NVH8/-HI-L2AC-INu nLxN^"_.HNѹfNu0,@0;N`Z&ZrEx=lNINu$l=lxfJnf NINu?< $OxNTOINu$l8,=lNlINux$l=l,g gSfNDINux,g fE `E=lNINuFalseTrue ,=laINu0,H=laINu$OOx,lD&$BBHB *: HB&6HEE0RDJfJlRD<-6.Dkg SC< RDQBnNONu l=lO$O/ /Jlg?.?,N`* n"n"N^"_NNVA!n =@"n2N^"_PNNVA!n 1n=@N^"_\NNVA1n!n =@N^"_\NNVA!n1nB(J@fBh C "" =@N^"_NNVA!n1n B(B(B"n2=@N^ _ NNVA1n =@"n".N^"_\NNVA1n1n ,!n.D=@N^"_PNNVA1n =@"n"N^"_\NNVA1n !n=@N^"_\NNVA1n=@ N^ _TNNVA!n1n B(Bh =@A "np.N^"_ NNVA!n1n B(Bh C np.A =@N^"_ NNVA!n1n B(!n =@N^"_ NNVA!n 1nB( =@N^"_\NѠ,N"_ _WN"_ ON"_ _-Nx6Nt/HNj"_ _N^/xN\/xNR"_ ".N>"_ _#N4"_ _%.jBN$N"_  _$N"_ _&.N"_ _(.N"_  _'N"_ .N"_ _N"_ _!.jBNN"_  _ N"_ _H.N/@N"_" _ .N"_ L.N"_ @N~"_ MNt"_ _+Nj"_ _)N`"_ _*NV"_ _INL"_ _JNB"_ _KN8/x(Nu" "_ _."AN /xN?x Nu/x0N p/ 1 Nup`"_0/ F/HNu"_0 _/ GNu "_ _/;"Nu _0ɩAA"_ _dNJ8jL/H> fpNj(Ig0<`,x&n"¸"AQ")¸.Qpd4J)gj*"iJk" xp$<mB*O/A TQH/h /@ TNJf,"* Qe g e T"J  . L+`v|NN(N"* -A"J܀ .JgJ g"Qeg e T`%@L0#N#F|@/ NNN@"_H0`QQ g%@$I$ L$(pL|1 Nu g  @QH`A4"(¸J(g j"hJk $He` cNu -m C TǑ+@". L f+Nu PQH(P!@B!AӮ Nu <LNut _?/tNtNtN/x NuB?x Nu1 .NuQO/8 /N`PUOHmHmDHmRJg: -D4f Nb`& -D0f Nj` -D,f Nr` -D-p@mN=@@0.H+@p0.H+@l|޼- JgN- JgNRnQJ- g*AjCp"QYO?<N+_/-HmB- B- B-޼N` N`|JNB-J`YO$ $VD-Jg/-$/-$s+m$D|N`YO$ 8VD-Jg/-8/-8s+m8D|N`0-@J@VD -bVDJmVDJm`VDJg|޼N`TYO$ N`,UO/-Hm,0`Hm/-쩳`YO/-=NJ-g: -D4f Nb`& -D0f Nj` -D,fNr`/-/-Hm<%`/-N/-/-sN`xUO/-/-JgD -찭@f |L`. -찭- JgH-ˀ-Jg:B-LHmHzHzHz UO?<B;_N mNf |LB-- - -Jg/-@J-g/-4J-g/-0J-g/-,J-g/-UO/./.Bh=_/.N` @g@gS@gS@gS@g@g` n0 n (=@0.` nf/-XUO/-Xac`/-XUO/-Xbc/-XN` n0` n WD n 2(AJAVDJg/-X?<N"`/-X?<N` n WD n 2(AJAVDJg/-X?<N`/-X?<N``S@g2U@gbS@g&_@gbS@gS@gL@gPS@g@gDU@g@g8U@gv@g@g?< n Pf /-\?<]p/HnN/-\Bg]` S@ @d@0;N v v nJPg|N^ _O NNVH nC"" nCp?"Q nCp?"QAC""=| |0.n @w^D2.n Aw^D2.֒n4.nB^D2.Ԓn4.nB^DYO?<NYO?<N "$YO//N~YO?<N"$YO//NfYO?<N"$YO//NNYO?<N"$YO//N6"?./NUDJgLYO?<+_h/-hN/-hN mh P/QYO/YO/-TN/-T n P!mT> n P/YO/-T  _1@0,N`F0-`:0-R` /N`$/N`|`S@gS@g@g`S@gJ-gN`x0-`l0-R`L/N`V/N`LYO?-RN+_/-UO/-`0S@J@jD@?c` |`S@gS@g@g@g`S@gJ-gN`D0-`80-R` /N`"/N`|`S@gS@g[@g`S@gJ-g+m@DAC""""YO?<N+_/-HmN m P/QUOHmb?-`HmN/NUO?-HnN"/N .l(UO?-N*/NA Cp"QP`UO?-?< -D/N /NnUO?-HmtAr/N/NT;mrJp^D2-Hp\DJg*UO?-?< -pS//-NRN /N `UO?-?<BN /NUO?-HmtAr/N/NUO?-Hm mn/N/NUO?-Hm| mj/N/NUO?-Hmx mf/N/N;mr||| |||||||0-H/HnNHnHzHnHzfHmbHz\?<NXO?<HnHmNUO?-N*=_B- PJ-KgYO?<N+_/-HmNLN^Nu.) has been read into memory from the file Block 9There is a problem with this BlockFile. Input cancelled.Please wait...File Input Cancelled.NVNqNqHnBgBg?<?< Hn?<?<HzvHnHzZHzTHz?<NXOHnB<NBN^Nu0 1988 by Patricia B. Smith, All rights reserved AdventureMaker 1.0 NVHYO$ gh .4WD".0WD".,WDJg ~=|/-T?.9RnQ`~=|/-T?.:RnQLN^ _XONNVNqNq+m -g&/.NX/. /./.s+nDNN^ _XONNVNqNq;n ;n޾0-޾` mf Nj`6/-D?-HnFYO+_0UONR;_.UOHn=_/-LBg9` mf|L`0-`J|`XHmHzHzHzUO?<B;_N mNg|`$|`S@ @d@0;N`J0-`b/-@N`x/-UONZ;_T/-DN`(/-DN`W@ @d@0;N` @ @d@0;NBPVBg8N^ _XONNVNqNqACp"Q-H-Jg0HmHzHzHzUO?<B;_N mNf`B+m@DN0-R@;@A.Cp "QYO?<N+_/-HmNN^Nu-A new empty block has been created in memory."A new empty block was not created.NVNqNqJn g( n g|L|`?<HzPNJN^ _\ONNVH8-O- Jg4+m@D/-D?< HmPHmHm/-HmHmHmpN| Jmf N` JpWD2-Hp]DJgAbCp"Q?<`Jp^D2-RAHp^DJgACp"Q-H-Jg0HmHzHzHzੋUO?<B;_N mNf`fAC""""YO?<N+_/-HmN m P/QNUOHmb?-`HmN/NlUO?-?< -pS//-NRN /NHUO?-HmtAr/N/N.UO?-Hm mn/N/NUO?-Hm| mj/N/NUO?-Hmx mf/N/N;mr||| 0-H/HnNHnHzHnHzvHmbHzl?<NXO?<HnHmNB- UO?-N*/NrUOAb/?-`N/N\PYO?<N+_/-HmNLN^Nu. has been read from the file Block Please wait...Block input cancelled.That block doesn't exist.NVNqNqJn g|L|?<Hz$NJN^ _\ONNVvH8-Op-@+m@DAFCp"Q/-D?< HmPHmHm/-HnHnHnN;nJmf`-޽ JgHn?<d?<2-|advBv mRf./.HzHmbBHnNJ. Jg``: mRf0/.HzvB?<HnvBHnNB. Jg`j?<HnHmbN;n^UOAb/HmVN/NUOHmb?-^HnN;_T mTf&UOHmb?-^//-bN2HnHzP?<NXO?<HnHmNUO?-XN*;_TPYO?<Np+_/-HmNߨLN^Nu'A new header has been read into memory.Please wait...Header Input Cancelled.NVNqNqJn g4A8Cp"QUO?-XN*;_T/-bN2?<HzNJN^ _\ON;The was a problem saving the header file. Output canceled.NVH8-OA,Cp"QHn?<d?<2/.HzHmbBHnNJJ.g?<HnHmbN;nZUOA/HnN/NUOHmb?-ZHnN;_T mTf&UOHmb?-Z/(p@mV=@@ n0.@@00H/ n?( n0.@@?0Nrpd/Bg n?(NrRnQLN^ _XONNVNqNqYO?./.NH+_0. H/ nHhN/- nHhN^ _PONNVNqNqYO?. /.N+_/- nHh nHh nHhN n=hN^ _\ONNVHYO?<NjYO?<Nj "YO//NZYO?<Nj "YO//NZ ?. /Nbd~=| n0.@B0RnQYO?. /.NL+_ n0. Y@//UO/-`2 _ JAWD@~=|YO0.X@?/.N+_/- n0.r@0?cRnQYO?<#NjYO?<$Nj "YO//NZYO?<%Nj "YO//NZ ?. /Nbd~=| n0.@B0RnQYO?. /.Nf+_ n0. @//UO/-`2 _ JAWD@~=|YO0.@"?/.N+_/- n0.r@0?cRnQYO?<CNjYO?<DNj "YO//NZYO?<ENj "YO//NZ ?. /Nbd~=| n0.@B0RnQYO?. /.N|+_ n0. @//UO/-`2 _ JAWD@~=|YO0.@B?/.N0+_/- n0.r@0?cRnQLN^ _\ONNVHB.- Jg4YO?< Bp/|+_ +m D|B-|/-P?<9J-g mb PI/-bN:|, ,JgB.YO?</Nv+_/-p.?cYO?</NX+_/-p, ?cYO?</N:+_/-p,?c?<?, /N?< ?, /N?<e?,/N~ =| ?.0.@@@r?5/N~RnQ~ =|?.0.@@@&?4/NRRnQ|,A,@JgB.YO?<#/N+_/-p.?cYO?<$/Nd+_/-p,A?cYO?<%/NF+_/-p,@?c?<'?,D/N?<)?,B/N?<g?,F/N~ =|*?.0.@@@ފ?5/NRnQ~ =|6?.0.@@@^?4/N^RnQ|,y,xJgB.YO?<C/N+_/-p.?cYO?<D/Np+_/-p,y?cYO?<E/NR+_/-p,x?c?<G?,|/N?<I?,z/N?<i?,~/N~ =|J?.0.@@@ޢ?5/NRnQ~ =|V?.0.@@@?4/NjRnQ/-bN2/- B-- JgN/-Ds~=|/-T?.:RnQ0-` 0-R`UO?</NJ=_UO?< /N:=_UO?<e/N*=_~ =| BUO?./N=_Jno4YOHn-| HnHn?<(Hn?< HnN-_0.@@@=RnQ~ =|0.@@/UO?./N2 @=RnQ/N`4UO?<'/Nj=_UO?<)/NZ=_UO?<g/NJ=_~ =|*BUO?./N.=_Jno4YOHn-| HnHn?<(Hn?< HnN-_0.@@@=RnQ~ =|60.@@/UO?./N2 @=RnQ/N/N/N`HUO?<G/N~=_UO?<I/Nn=_UO?<i/N^=_~ =|JBUO?./NB=_Jno4YOHn-| HnHn?<(Hn?< HnN-_0.@@@=RnQ~ =|V0.@@/UO?./N2 @=RnQ/N`h|`^|`T?-R/N`FS@gY@gS@gS@g@gS@gS@g@gS@gS@g@g_@gS@gS@g`S@gJ.g mb PI|/-bN:YO?</N(+_UO/-` _WD@ YO?</N+_UO/-` _WD@UO?</N9_ UO?< /N9_ UO?<e/N9_~ =| 0.@@/UO?./N2 @r;YO0.@@@rHu-| HnHn?<(Hn?< HnN-_0.@@@9RnQ~ =|0.@@/UO?./N2 @&9RnQYO?<$/N+_UO/-` _WD@AYO?<%/N+_UO/-` _WD@@UO?<'/N9_DUO?<)/N9_BUO?<g/Nt9_F~ =|*0.@@/UO?./NP2 @ފ;YO0.@@@ފHu-| HnHn?<(Hn?< HnN-_0.@@@F9RnQ~ =|60.@@/UO?./N2 @^9RnQYO?<D/N+_UO/-` _WD@yYO?<E/N+_UO/-` _WD@xUO?<G/N`9_|UO?<I/NP9_zUO?<i/N@9_~~ =|J0.@@/UO?./N2 @ޢ;YO0.@@@ޢHu-| HnHn?<(Hn?< HnN-_0.@@@~9RnQ~ =|V0.@@/UO?./N2 @9RnQ/-bN2J-g"B-B-/-P?<:/- B NLN^NuNVNqNq/-8?. HmPHmHm-mN^ _\ONNVHB.- Jg4YO?<sBp/|+_8+m8D|B-|/-P?<9J-gP/-bN:~ =|YO?./Nf+_/- mb P0.@@HpRnQ/-bN2B-- JgX/-Ds~=|/-T?.:RnQ0-`,0-R`|`|` @gS@g`S@gJ.gR|/-bN:~ =|YO?./N+_/- mb P0.@@HpRnQ/-bN2J-g"B-B-/-P?<:/-8B8NLN^NuNVNqNq/-$?. HmPHmHm-mN^ _\ONNVHB.- Jg4YO?<Bp/|+_$+m$D|B-|/-P?<9J-g/-bN:YO?</Nn+_/- mb P/YO?</NP+_ mb P0(H/HnN/-HnYO?</N +_ mb P0(H/HnN/-HnYO?</N+_ mb P0(H/HnN/-HnYO?< /N+_ mb P0(H/HnN/-Hn/-bN2B-- JgH/-Ds~=|/-T?.:RnQ0-`0-R`|`|`YO?<Bp/|-_~=|/.?.HmPHmHm/- mb P0.U@ @HpRnQB.BHmN0-N`d|`b~=|/.?.HmPHmHm/-Hn mb P0.U@ ?< Hn@HpNRnQ` S@gS@gJ.g/.䩃`S@gS@g@g `S@gJ.g|/-bN:YO?</N+_/- mb P/YO?</N+_/-HnHnHnN mb P1nYO?</N+_/-HnHnHnN mb P1nYO?</N+_/-HnHnHnN mb P1nYO?< /Nf+_/-HnHnHnN mb P1n/-bN2J-g"B-B-/-P?<:/-$B$NLN^NuNVNqNqJn g~0. H/HnNHnHzHnHzf?<NXO?<HnHmN n/UO?-N*0 _1@Z/-nN2/-jN2/-fN2?<?<HzNJN^ _\ON1. Sorry, but you have to exit the program now. File Error NVNqNq/-bN: n!| ,UO?- nHh, mb P/N/.N/-bN2N^ _XONNVH8-Op-@(p-@$p-@ p -@p-@- Jg./-D?< HmPHmHm/-HnHnHmlN| ;mn0-H/HmNACp"QHn?<d?<2-|advD-޼ Jg mRf./.Hz@HmbBHn\NJ.\ Jg`J`: mRf0/.HzB?<HnBHn\NB.\ Jg`?<HnfHmbN;nb\UOAb/HmVN/NAC""""YO?<ND+_/-HmN^ m P/QB.UOHmb?-\HnJN=_Z nZf~ =|0.&@IBTBBBl Bl |=|0.@@GBBRnQ|=|0.@@GBBRnQRnQUOHmb?-\/HmHz 4?<NXO?<HnHmN?<UO?-N*/NH` plWD mRWD -IWDJg/NUO?-HnN"/N-nUO?-?</.N /NBBUO?-HnAB/N/N0-R@;@UO?-Hn(A/N/N/-nN:~ =|UO?-Hn( mn P0.@h/N/NhUO?-Hn mn P0.@j/N/N>UO?-Hn( mn P0.@/N/N|=|UO?-Hn( mn P0.2.AA@/N/NRnQ|=|UO?-Hn( mn P0.2.AA@/N/NRnQ| =|UO?-Hn( mn P0.2.AA@/N/NVRnQ mn P0.r@0RA=A6UO?-Hn(A6/N/N0.6H-@,UO?-Hn, mn P0.@/N/N mn P0.r0RA=A4UO?-Hn(A4/N/N0.4H-@,UO?-Hn, mn P0.A/N/N|RnQ/-nN2/-fN:Bn<~=| mf P0.<@Jpo 0..~=| mj P0.:@Jpo 0.>R@=@>RnQUO?-Hn(A>/N/NH>.>p@m=@@UO?-HnN/N"UO?-Hn( mj P0.:@/N/NUO?-Hn( mj P0.:@/N/NUO?-Hn( mj P0.:@/N/NUO?-Hn mj P0.:@/N/NzBn:|=| mj P0.:2. AHz @HpNzc 0.:R@=@:RnQUO?-Hn(A:/N/N<.:p@mD=@@UO?-Hn mj P0.:2. A@/N/NRnQ| =|UO?-Hn( mj P0.:2.AA@/N/NRnQ| =|UO?-Hn( mj P0.:2.AA@2/N/NLRnQ| =|UO?-Hn( mj P0.:2.AA@F/N/N RnQ mj P0.:r@\0RA=A6UO?-Hn(A6/N/N0.6H-@,UO?-Hn, mj P0.:@\/N/N mj P0.:r@\0RA=A2UO?-Hn(A2/N/N^0.2H-@,UO?-Hn, mj P0.:@\/N/N* mj P0.:r0RA=A0UO?-Hn(A0/N/N0.0H-@,UO?-Hn, mj P0.:A/N/NUO?-HnN/N0-&2.AA@+0-&2.AA".@+RnQ:/-jN2UO?-HnN"/NR .ސ-@BUO?-?</.N /N.UO?-HnAB/N/N0-&@;0-&@+0-&".ޒ@+0-&@;>0-&@;<UO?-?<BN /N-| |,UO?-Hn,A/N/N|UO?-?</.N /Nd0-H/HmNYO?<N+_/-HmHnHzHmbHzHmHz?<NXO?<HnHmNB- /-nN2/-fN2/-jN2J.g4UO?-N*/NUOAb/?-\N=_ZJnZg|LPYO?<Nr+_/-HmB-޼NLN^Nu. as Block 0The crunched data has been written to the file .RCrunched data must be written sequentially. The last block in this file is block Please wait...Name of new Crunch File: Output of Crunch File cancelled.% N*Nq'j?<,?<."?<0?<?<?<?<?<?<?<>?<t?<?<?<?<?<t?<?<?<?<?<?<z?<?<?<?<?<`?<?<&?<?<?<?<?<?<?<?<J?<$?< X?<?<2?<?<!?<'?<2?<4h?<9V?<?<,?<J?<?<?<?< ?<?<r?<?<?<?<2~ Welcome to AdventureMaker Version 1.0 Copyright 1988, Paticia B. Smith AdventureMaker is free for your personnal pleasure and use. However, you may not publically distribute the adventures you create with AdventureMaker unless you are a registered user. The registration fee is $30. AdventureMaker is copyrighted, and I reserve all rights to it. Please do not remove this notice. Thanks. Patricia Smith Epiboly SoftWare CIS: 70655,425 325 E. 79th Street, Apt. 13d MacNet: SmithPB New York, NY 10021 Genie: P-Smith AdventureMaker Help Adventure! is driven by flags. They are numerous, obscure and hard to remember. This help box gives brief descriptions of all of the flags for the different record sets. It is meant to be a 'crib sheet' only; full explanations are not included. Be forewarned. You will never, ever figure out what to do with these flags without reading the documentation for AdventureMaker. In what follows, any number referred to with "##" is a combination giving both block number and room or object number. Calculate these as follows: Room## = (Block#)*(10) + Room# Object## = (Block#)*(20) + Object# ROOM RECORDS Room Exits: 0 < num <= 10 go to room# 10 < num <= 110 go to room## (new block) Room ExitFlags: 20 < num <= 220 need object ## num = -1 just can't go num = -2 can't go with auxilary descripttion num = -3 can't go if have items in inventory num = -4 drop everything then go num = -7 cure Moss then go -220 <= num < -20 can't have the object## 0 < num 20 'go' is an action called by an object named 'num'. (If the 'N' exit is flagged with 12, then the parser interprets this as 'go 12'. It looks for an object named '12', then searches that object's Action List for an action named 'go'.) OBJECT RECORDS Get/Show Flags (Columns 1 and 2): Get Show Row 1 0 can't get 0 don't show 1 can get 1 do show -1 take is an action -2 drop is an action -3 both take and drop are actions Row 2 0 main description 0 main description 1 aux 1 description 1 aux 1 description 2 aux 2 description 2 aux 2 description Row 3 not used drop other object## The Action List (Row 1, Column 3 through Column 10): The Action List holds the action numbers of the actions that can be performed on or by the object. If you want to allow a one-word verb command, eg 'jump', then the action# called should have the name 'nil'. If you want a travel instruction to set flags and/or give a text response, then the action# called must have the name 'go' and the calling object must have its own object number as one of its names. If there are no restrictions on the action, the travel instruction will then be carried out as usual. If you want 'take' to set flags and/or give a text response, then the Get Flag of the ObjectRecord must be '-1' and the action# called should have the name 'take'. For 'drop', the Get Flag must be '-2' and the action name must be 'drop'. If the Get Flag is '-3', then the parser will consider both 'take' and 'drop' to be true actions. If there are no restrictions on the actions, both 'take' and 'drop' will also carry out their normal inventory functions. An Object's Action List is permanent. You can change action numbers with action setflags, but these changes won't 'travel' across block boundaries or through a save/restore. When a new block is read in from disk, the Action List will revert to its original form. An object's flags, on the other hand, will travel nicely, as will Get and Show. Only the Action List itself is permanent. Row 2 and Row 3 Flags (Column 3 through Column 10): In general Row 2 flags govern room interactions and Row 3 flags govern object interactions. Row 3 flags are checked _before_ Row 2 flags. If there is a Row 3 restriction (say, -1) then the Row 2 request will not be carried out (transport, for example). On the otherhand, if there is a Row 2 restriction ( -1 perhaps), then a Row 3 request (clear moss, say) _will_ be carried out, because this will happen before the Row 2 flag is examined by the parser. Row 2 Flags: num = 111 random travel 10 < num 110 travel to new Room## num = 6 remove object (it disappears) num = 5 drop object num = 4 take auxiliary object num = 3 take object num = 2 start timer /no sound num = 1 start timer /with sound num = -1 just can't do num = -7 clear moss num = -9 you're dead -110 num < -10 must be in Room## for action to take place. Row 3 Flags: 20 < num 220 need the object## for action to take place. num = 6 remove object (it disappears) num = 5 drop object num = 4 take auxiliary object num = 3 take object num = 2 start timer /no sound num = 1 start timer /with sound num = -1 just can't do num = -2 clear timer num = -3 can't do if not Time num = -4 can't do if Time num = -5 can't do if not Moss num = -6 can't do if Moss num = -7 clear Moss num = -8 Moss -220 num < -20 can't do if have the object##. Special Combinations: If the Row 2 flag is '-9' (dead) and the Row 3 flag is set, then player will die if the action _can't_ be done, but not otherwise. if a Row 2 'death' or 'travel' flag is set when Moss is invoked then the flagged result (death or travel) will take place at the last TimeCheck of the Moss sequence, and only if the Moss has not been 'cured' by then. ACTION RECORDS An action _must_ have at least one name, otherwise the record will not be written. Special Action Names: 'nil' - allows the calling object to be a stand-alone verb. 'take'/ 'drop' - allows standard inventory instructions to behave as true actions. (This works only if flagged in an object's Get Box ) 'go' - enables travel instructions to behave as true actions. SetFlags: Each action# can be called by up to 3 different objects. For each calling object, there is a row of setflag boxes, headed by the number of the calling object: calling room setflags object setflags obj# aux Rm col set# Obj row col set# Aux Num: 20 < aux Aux gives the object## for use in a prepositional phrase, 0 < aux <= 15 If a MossFlag is set in the calling object then aux = action# of the Moss action record. Room SetFlags: If the col# is negative, then Exits are set. If the col# is positive then ExitFlags are set: col < 0 sets Exits in Rm to set# col > 0 sets ExitFlags in Rm to set# Exits and ExitFlags are set only if the calling object is in its block of origin or if the calling object has a "must be in specific room" flag set on the action. Object SetFlags: Changes the value of the entry in the 'row' and 'col' of the 'obj' to the 'set# . For example, if the object setflags are [19, 2, 2, 1] then this will set row 2, column 2 of object 19 to '1'. Again, flags are set only if the calling object is in its block of origin or if the calling object has a "must be in specific room" flag set on the action. Text Boxes: A1 = text used if action is doable. A2 = text used if action can't be done. Special Action Records: Time Records: If a TimeFlag is set in the calling object, then Room and Object SetFlags will be set _only_ for the duration of the timer. Values then revert to the original settings when the timer expires. (An exception is if Exits are changed, the change is permanent.) TextBox A1 gives the text for timer activation. TextBox A2 gives the text for end of timer. The timer lasts for the number of moves given in the Game Info header dialog. The timer always expires if the player crosses a block boundary or saves a game. Moss Records: "Moss" is a long term timer function. It can invoke multiple interruptions, can survive a Save/Restore and can cross block boundaries. It differs from the simple "Time" function in that it cannot restore flags to their original setting before Moss started. Careful here! Moss records are very different from standard ActionRecords. They are never called directly by an object, but rather by an action. If an object calling an action has a MossFlag set, then the parser executes the action, but while it's doing that, it looks at the called action to see if its first Aux num is between 0 and 15. If this is the case, then the parser considers the action record with that number to be a MossRecord. It reads the data of a MossRecord as follows: Names: These are ignored. But remember, you can't leave them completely blank. You must fill in at least one name. A good name in this case is 'moss'. Then you know at a glance it's a MossRecord. Obj#'s: These are ignored. For your own reference you may want to include here the numbers of the calling objects or actions. Aux's: Only the first is used. This must give the number of Moss interruptions (which must equal the number of TimeChecks). Room and Object SetFlags: In the first row only, starting with the 'Rm' box, fill in up to 6 TimeChecks. These are integers that indicate after how manymoves a Moss interruption will occur. TextBoxes: Working _vertically_ (i.e. A1,A1,A1,then A2,A2,A2) fill in the MossText messages that will be displayed for each Moss interruption. ACKNOWLEDGEMENTS AdventureMaker is written in LightSpeed Pascal, thus portions Think Technologies. This scrolling help box uses the "About..." procedure created by John Wind, copyright 1988. *About AdvMaker-FileQuitQHEditUndoZ-CutXCopyCPasteVClearBqWindowsMainMSummarySRoomsRObjectsOActionsA Game InfoTHintsHSoundsNWRecordAdd Empty RecordDelete Last RecordZero This Records@@ ?PHI88΀  ︀v  ???PH-xH99C[v " 0A x  ??s APPLadvDadvBadvH&(OMake Room Records((TMake Object Records(*O Make Action Records#(OAdventureMaker'*0pHeader Information(OSummary#,(rqAbout MakeFile(T Sounds(TrHelp(XsHints!(Bh Prepositions,Xxp Read RecorddDoneP p1234 XEntranceHX0HX0HX0HX0H X@0$HHXh0D0000$0$0D0DPd0dp000fbYou have entered a large dark cavern. Moss hangs from the ceiling and mist curls about your feet.HHXpExitsx0@N0@S0@E0@ W0 @4U$0H@\D<Objects in RoomR(H Room Number `Extended Description Write Record Ј1234x( Last RecordR`(pp Exit Flags`p0`p0`p0`p0` p@0`Hph0`Auxilary Descriptionh xThe door is closed.o8H1238xHPoints!@RoomsR@Objectse @Actions 8 pQuit:Which data set in the memory block do you want to work on? @ Read Block @ Add BlockowInput/Output Block NumberepBlock Output Filel1232Xh1232VDefault Header}New Empty BlockcˆTNos is certainly the time for all good men to come to the aid of the grand old partyp123XhxBlock Input File 0Welcome to AdventureMaker` Add CrunchHY0 Read Headert` Game Infoa0@123`0 No AlertscHHZ Save Headere Summary``hCreate New CrunchFiled @hCreate New BlockFile` Sound@ Write Header@PhLast Block of:Crunch Output File`Hints` Build CrunchB Read Record Done*:11230@123`8pX-000``p0`p0`p0`p0`p00`8pX0``p0`p0`p0H>This is a moldy old chest filled with oddly shimmering jewels.%B Object Number Adjective:BDescribe`p,r1L>\Vgetb Write RecordR Ј123x( Last RecordRL]\showx8X0x`0x0x0x0x00x8X0x`0x0x08X0`0000008X0`000x,r2.r3:The chest is closed. 4Aux1 5Aux2:%The chest is open. P08PH 08H 0h8HhXPlural?Xhgolden1xAPointsM\c3M\ވc4M\c5M\.c6M?\Wc7Me\}c8M\c9M\̈c10?5 Read Recordd!Done/?7123GhxA1Ԉ Last Record  +D Action Number  Write Record123iThe watch pops open!h3You cannot open the watch without the proper tools.! P`(Obj #n(Obj # (Obj #cPx` Rm Flags:mx Rm Flags:ox Rm Flags: P(`p Obj Flags:(p Obj Flags:(p Obj Flags:P0_G24PP`o000P_0P_0P_0Px_0P`0P`0P`320H33Pp0000x000410H42Pp0000x0484950 ވA2` (`8 (8 p( 8pA1=wMobj row col #>Mrm col #>QLpaux A1hxA2A2|xGo Aheadx@CancelJSi׈!Are you sure you want to do that?t00 =D^04 8 Write Record Done HOpenTitle/Text 3p456 Opening Text(`Victory `room`block(hTopScoreTimecount for timer(@130 Check PrepsbaDone-Block(4RoomsP(4(P858PH6HPX7XPh8(9(8108H11 HX12Xh13<ObjectspX15X16X17X18X19p(20(21(22(23(24 pH25H26H27H28H29p<Actions x31 x32 x33 x34  x3536373839 40h41h42h43h44 h4546474849 50(6P(878H8HX9Xh10p@X1@X2X@X3X@X4X@X5XpЈ6XЈ7Ј8Ј9Ј10p0H110H120H130H140H15 1x 2X 3X 4X 5X6X789 1011121314 151E86xUpdate{#Click the item you wish to work on.o8(P1(88P288HP3H8XP4X8hP5p16p17p18p19p 20Oh Boy!PHelpt#Ĉ MakeFile '&9!#copyright 1988 by Patricia B. SmithH9m ;Make your own AdventureFiles to be played by Adventure! DA.krH(None of this will make any sense to you unless you read the docs. If you don't have them, you can get them by becoming a registered Adventure! user. See Adventure! for details.)plL|Writet(@Victory Sounds8lengthhx@volume0@@none@P@beepP`Cnotes0809Hp10000 H0p100008HHp10000PH`p10000hHxp10000Hp10000Hp10000Hp10000Hp10000Hp10000Hp10000H p21000x22000 x0100008xH10000Px`10000hxx10000x10000x10000x10000x10000x10000x10000x 33000( Timer Sounds0@none@PbeepP`noteshxvolume39؈length4142000 0100008H10000P`10000hx10000100001000010000100001000010000 53000@54000 0@100008H@10000P`@10000hx@10000@10000@10000@10000@10000@10000@10000 @65000H(Funeral Sounds0H@none@HPbeepPH`noteshHxvolumePp71HxlengthPp7374000 0100008H10000P`10000hx10000100001000010000100001000010000 8500086000 0100008H10000P`10000hx10000100001000010000100001000010000 97000# three repeatsHL(|Done8pauses01010؈pauses1030HxpausesPp1050(<V(<T((<F& Play Sndsd4p OKA,0 main desc 1 aux1 desc 2 aux2 desc Room Exit Flags  h߈~ = 1 can't go w/aux desc = -1 just can't go = -2 no possessions > 20 need object## < -20 can't have object##p Object OFlags 3 to 10 Ȉ| = -1 just can't do = -9 you're dead > 10 new room## < -10 need room## = 111 random travel -Object Get/Show (Flags 1 and 2)t ЈObject Need Flags 3 to 10e (l > 20 need object## = 1,2 timer w/wo sound = -1 remove object < -20 can't have object## @@`0 can't get 1 can get 0X@xget 0@show@`0 don't show 1 visible8X0Do Whate8OFlags'****************************************`8O-1 get has an Action# -2 drop has an Action# -3 both get/drop have Action#'soERoom## = (Block#)*(10) + Room# Object## = (Block#)*(20) + Object#O,0 main desc 1 aux1 desc 2 aux2 desc8"Sorry. You're on your own here...8"Sorry. You're on your own here...@p"Sorry. You're on your own here...@p"Sorry. You're on your own here...x"Sorry. You're on your own here...x"Sorry. You're on your own here..."Sorry. You're on your own here..."Sorry. You're on your own here..."Sorry. You're on your own here..."Sorry. You're on your own here...1 2o@P3o@P4x5sx6l7o8f9w10. Write Record.MDone)Done8 Write RecordH3 H048HH5PH`6hHx7H8H9H10H11H12013 00148H015P`016hx017018019020021022 0@prep2@prep18H@prep3P`@prep4hx@prep5@prep6@prep7@prep8@prep9@prep10؈prep11 0؈prep128H؈prep13P`؈prep14hx؈prep15؈prep16؈prep17؈prep18؈prep19؈prep20(hCancelContinue0HnBefore continuing, check your header! The current header in memory will be written to the output crunch file.P TAll set? Then click "Continue" and select an input Block File from the file dialog.0( .0pCancelContinue Next you need to give a name to your output Crunch File. Click "Continue", enter the name for the new file, then click "Save". All of the blocks of your input Block File will be sequentially read, crunched, and written to this output file.4patSICN#FREF <UU .r~DD :pDD"!z CODERTEXTpatSMENUICN#FREFDLOG 6DITL BNDLbALRTn4 6v l: V\ l$. +Z27ApI OrV>s[[aykq^x. Tq   vrs"!&!^!n!~AppleFileEditWindowsRecordroomobjectactionmain game infosummaryaboutsoundshelphints prep listroomschooseobjectsactionsalerttitlessummaryaboutsoundshelphintsprepsbuild1build2'save'build1build2fN/ <B/:?<(_ W/Bg2 JAVf / / N/ Nt//NX/ N?</ NTpf ?B/:.?<(_ f T"F""LN^ _\ONNST nVIR _"W.Nѡ/HN"_ _N"_ L.Nqp/ 1 Nup`"_ _#N"_ _)NdN NNV.NN^ _TONHEVIRUSNV/ (nBg/,A R/B@,H//,N9_Jlf/,N2Bg/,/,N9_(_N^.NuAYIT NV/ (n/,NJg/,N n,HN(_N^.NuYEXIT NVH8p.g`dBgHzHnN=_Jng?<`DB.t//NX/ N?</ NTpf ?B/:.?<(_ f T"F""LN^ _\ONNST nVIR _"W.Nѡ/HN"_ _N"_ L.Nqp/ 1 Nup`"_ _#N"_ _)NdN NNV.NN^ _TONHEVIRUSNV/ (nBg/,A R/B@,H//,N9_Jlf/,N2Bg/,/,N9_(_N^.NuAYIT NV/ (n/,NJg/,N n,HN(_N^.NuYEXIT NVH8p.g`dBgHzHnN=_Jng?<`DB./.Bg.NBBNn-_f/Nl`AC0 0/N/NNOLN^ _TONOVIRUS  Don't Panic."_ L.Nqp/ 1 Nup`"_ ".N"_ _#N"_ _)N/ pd""o"J@f )$Ppr J QBgHzʩ0j08 `$_/WP?@Nu5@JB'B/ 2 JAWg(/.N./.N0 n X/N/.N"BgB.NHS@gS@gS@gH`B/:?< -_fb/.쩣B/:?<-_gHB/:h?<-_g4`dB/:R?<-_f/.詣B/:B?< -_gB/:*?<-_g` </N`?<?<`B/:?<-_gB/:?<-_gpfB/:?<-_gpfB/:?<-_grpf?`Bg</.੢BgJ_fL/.੒/./:j?<Hz`BgJ_f*pfTB/:DBg-_gBp/Np-_g n P"n"QA""/./:?<HzBgJ_f/.詢BgJ_f/.詒pf/./:?<HzΩ`*jD,jD$&BBx㉰mRSDlJjDjDL|Nu1.2AH"o o/op4dSBmVfLPNu/ "o$o 0/4d`Q$_ _O NH o/o p2/SAS@eAL\Nu/ opr"o tBm$HRASBm VgRHS@`r$_ _PO>N0/C2I Q"HrRH`$atd Spr`QQL.IRA WN$0lp2n DARAAlpr _"W/tRBAltBo0`QNuL"WH@pQ$0lp2n DARAAlpr _/tARBoBo0@C`QNu 2HA2<"_ otQ"_ W`L/H0xpt6BAo6xHAJAnrSABo2RAE0G4 &JKDBm#QEARC@o6`QRDL Nu o?< o N o /?< _PONt _?/tNtNtN4<N4< N?x Nu1 Nua.Nua`a `a` oJhk"_/(NLN _1 N"_ / 2Nu/xNu/xNuQ`PNVA!n 1n"n !Q$Bh,B.Jf`=@"n "(N^"_ NNVA!n1nBh=@"n 2 (0>"n"N^"_NNVA!n =@"n2N^"_PNNVA!n 1n=@N^"_\NNVA1n!n =@N^"_\NNVA!n1nB(J@fBh C "" =@N^"_NNVA!n1n B(B(B"n2=@N^ _ NNVA1n =@"n".N^"_\NNVA1n1n ,!n.D=@N^"_PNNVA1n =@"n"N^"_\NNVA1n !n=@N^"_\NNVA1n=@ N^ _TNNVA!n1n B(Bh =@A "np.N^"_ NNVA!n1n B(Bh C np.A =@N^"_ NNVA!n1n B(!n =@N^"_ NNVA!n 1nB( =@N^"_\NѠ,N"_ _WN"_ ON"_ _-Nx6Nt/HNj"_ _N^/xN\/xNR"_ ".N>"_ _#N4"_ _%.jBN$N"_  _$N"_ _&.N"_ _(.N"_  _'N"_ .N"_ _N"_ _!.jBNN"_  _ N"_ _H.N/@N"_" _ .N"_ L.N"_ @N~"_ MNt"_ _+Nj"_ _)N`"_ _*NV"_ _INL"_ _JNB"_ _KN8/x(Nu" "_ _."AN /xN?x Nu/x0N p/ 1 Nup`"_0/ F/HNu"_0 _/ GNu "_ _/;"Nu _0ɩAAt _?/tNtNtN//| NR//|ND//|N6//| N(//|$N//|,N //|4N//|< N//|DN//|LN//|TN//|\N//|eN//|o N//|N//|N//|Nr//|Nd//|NV//|NH//|N://|N,//|N//|N//|NNVHr. gJ.kvt.ft8 F` n Pt(D8 F8 FB/ D`1 D21 Dr. p. g 4 OC .LN^ _XONp@ O1@B0(@Nu.Print NVNqNq n0.H/(/N-_ n0. H/(/N-_YO n/(/.hYO n"n (//.h П-@UO/.l=_N^ _PONNVHHnȨtHnĩ/.Ĩm/.ĨsHm ?<-|J.g2 nC""YO?<?<i-_YO?<?<'i-_`$ n C""YO?<?<i-_-nAC""AC""Hn訡~=|UO n?( n ?(/N=_UO n?( n ?(/N=_UO n? n ?/N=_UO n?( n ?(/Nh=_HnШHn訡AC""AC""AC""YO/./.h-_RnQNHn訡HnਡHnب/.ȨsLN^ _O NNVNqNq nC""AC""HnpHnp/./.Hnਬ n C N^ _XONNVNqNqHnԨt/. sHnBg?<Bg?< n AC""AC""Hn0.ސnH?0.ܐnH?HnHnN@XOAC""HnHnN&XOAC""J.g&HnHn<NnHnHn<N^`HnHnB'NLHnHnB'N>/.ԨsN^ _\ONNVNqNq|UO=_0.`ACp"Q`ACp"Q`AC""""`ACp "Q`AdC"""`ABC""""`vACp"Q`bACp"Q`NAC""""`:@g\U@gB@gb@gS@gjS@gW@g[@gU@glB.J.g(PHnHz&Hz HzUO?<B=_NN^NuOut of memory!8That volume is locked; you cant modify any files on it!8That volume is locked; you cant modify any files on it!Disk I/O error! Disk Full!)That file is locked; you cant modify it!Out of memory!Remove resource failed!Add resource failed!NVNqNq-| nC N^NuNVNqNqN^NuNVHN~ =|NRnQA"/n0A/{?Bg?< B.p.?A R/p.H/HnBg/.֨sN^ _PONNVNqNq n| n|x n|< n| n| n| n| n|N^ _XONNVH np(=@~Bn n0."n2.RAtA1@RnQ nnLN^ _XONNVNqNqHn?<?< n0(@ ??< Hn?<?<?< n0(@ ?Hn?< n0(R@? n0(@ ? n0(@ ?Hn n0(R@??< n0(@ ? n0(@ ? nHhHn訢HnਢHnبHnШN^ _XONNV|NqNqYO?<-_ n P/QHnΨtYO?<+-_YO?<ީ-_YO?<M-_YO?<-_YO?<d-_=|2 n P"n"Q0(in=@ n P"n"Q0(in=@ n P"n"Q0(in=@ n P"n"Q0(i@ =@Hnҩ n"n0(inH=@Hn?.?<(0.n?0.@(?Hn?<?< n P"n"Q0(iZ@? n P"n"Q0(iZ@? n P"n"Q0(i2.ܒ@H=AHn?.0.@? n P"n"Q0(in?0.@ n P"n"Q2(iA?0.[@ n P"n"Q2(iA=@Hn?<?. n P"n"Q0(iZ@? n P"n"Q0(in?0.@=@Hn0.Z@??.0.Z@ n P"n"Q2(iA? n P"n"Q0(in? n P?</HnNHn?-2p@m,=@ƞ@/.BN*?./N^/.NZRnQ/.Nz/-BBBHnNJUON:J_gXUON:0`.Hz~HzxHzrHzl`$HzRHzLHzFHz@`@lg@gUO?<B=_N/.ȩNbP/.̨sLN^NuOut of memory!IThere isnt enough free space on the startup disk to print this documentCMake sure you have the proper printer driver in your System FolderNVNqNqYON*pHoYOHnN:-_N^NuNVNqNqHntYO?.-_ n P"n"Q0(i=@ n P"n"Q0(i=@Hm?<2?<20.@2?0.@2?HmBgBg?.?.Jg/-}J.g /-.NYOHmNv+_/-sHm/.Hm/.sN^ _TONNVNqNq0-:H/HnN0-2H/HnNHnHz-_?.8p /HnNR/.N?< "?< H?< ?< ?< v?< L?< r?< d?< h?< 0?< Z?<?<?<Z?<h?<?<b?<B?<?<?<n?<|?< ?<p?<?<?<?<?<?< ?< v?< ?< V?< ?< t?< ?< ?<2?< ?< \$Tv|American Beauty2X#VjOK&P^0 PTransfer;PMHiddenPCancel';[DVPEject]oPDrive' '|}TetzP dVOKPdCancel$$ /Flip to what page number?2CL hZDp&H&JMIh @  ??o?? Fv`S   UUՠ))709 @777c <>g ffc ffc ~fc `fc bfc <>a? ! !Y;;<{0qbR!)6ۍٶBR!)xBR!) xA{xq   ! !Lvw<{0qR!)6ۍٶ^b!)x!) x t{xq  `x@!0̀ D@!9 D`;?ݳy$IA%!)6٘mEpO1=!)0x٘mEH !!)0x٘mxp&p0ͳxٌf ` R @R RR 8@``1q$ % q  F 0v9 @ @ @D D B B B B B B B 18 9D D D D D D D D $ $ $ <  $ B  d A0 U UP09 P.PPP> }@  xAP  ?T @D*   U?  B`8@ @B @_   r 0@T  *!$($U! (@ !P U@ HP  F@P @UP %R @T T L*( H$UP  I P AhH U@P"`HH@P@ZD`R@UP-RF PDDBT T*@   U@ 0`@@ @AhU@D L@ Z PD(-R0 ?B %t  T%.PPP*> "@5@C@ AhZ> I _@Z -R@wUW " TU@    MW@?  Ah :paà " `UPx! z<<xp iT |" < @ B!h<+ #jp၂ <?-$A5@Ç<LJ<ǀ. %  Ï>|χ83π,&j Pq×n\0ۇpa 0ۀ+#X4!ÇN0Ӈ a 0/$l`8Çpp/ #e8ÇqÇ|!ç@G_|!.P?ǀǏ?.  Za ?  5@j@A @"5 A $k@ 18|1U@ > Dk@QU@   jP@VDj>@V.PPP DmUDmP1U@DDjZ DDjP @Z  DDt qT  DDt T TDDP + DD  P DEP PP TEP PP TFP +P FP  P FP @P W@P @ P [@ .  DCPrinting in progress. Hold down the  key and type a . to cancel.V1.0250APPL0?acQYD<e c"02頀PT* |>DocRICN#FREF ( ( ((+2Welcome to AdventureMaker+0 Version 1.0(M!Copyright 1988, Paticia B. Smith(kPAdventureMaker is free for your own pleasure and use. However, if you create an* Xadventure that you are particularly proud of and wish to distribute publically, then you* >must pay the registration fee for AdventureMaker which is $30.*$XAdventureMaker is copyrighted, and I reserve all rights to it. Please do not remove this* notice. Thanks.+HPatricia Smith* Epiboly SoftWare)CIS: 70655,425(N325 E. 79th Street, Apt. 13d)MacNet: SmithPB(NNew York, NY 10021)Genie: P-Smith( INTRODUCTION*[AdventureMaker is an AdventureFile generator. It enables you to write text adventures that* Ucan then be played with the desk accessory Adventure! Writing an adventure can be a* Yrather involved project. You need to structure a plot of some kind. Then create a map of* Z'rooms', i.e. the locations in which your story takes place. The rooms must then be tied* Ztogether with objects and actions that direct the player through your story and ultimately* $to some kind of solution or victory.*-LWriting an adventure is not easy. I have tried to make it "convenient" with* SAdventureMaker, but it's still not easy. Before you begin I urge you to read these* Uinstructions through thoroughly. Learning to use AdventureMaker is a little bit like* Vlearning a programming language. You have to learn some of the commands and syntax of* 8the language before you can do much of anything with it.**ZAnd what can you do with it? My first AdventureFile was a very traditional adventure. I* `like the old colossal cave, magic and mazes, so that's what I wrote. But everyone is different,* Wand this is your chance to write the adventure you always wanted to see. Here are some* ideas for possible adventures:*'` - A historical adventure. This could be a learning experience for the player as well as* Wbeing fun and exciting. How about Napoleon's march into Russia from the perspective of* [one of the foot soldiers? Or the Gold Rush of 1849? How about great tales of exploration,* /Magellan's voyage around the world for example.*'[ - Adventures are a wonderful learning environment for children. They learn reading,* Yverbs and nouns, spelling, typing, and (hopefully) logical thinking. Create an adventure* _for your children. Perhaps you can use one of their favorite stories. Or better yet, have the ( ( ((+2_for your children. Perhaps you can use one of their favorite stories. Or better yet, have the* adventure be about your child!*[ - Try writing a "simulation", like running a small country or an entire planet. Or* Vbuilding a small company into a corporation. How about a sailing simulation, cruising* 9unknown small islands through coral reefs and hurricanes.*$^ - The adventure format lends itself nicely to murder mysteries. You know you've always* wanted to write one, so do it.*!a - An adventure is always a series a small puzzles. But why not try writing one big puzzle,* \a crossword puzzle for example. What fun! Each room could be a letter or word in the grid.*0[ - These are all suggestions for standard adventures. But you can use the Adventure!* Zdesk accessory for other things as well. Set up an interactive tour of your company. Use* Ythe Adventure! DA for an interactive help file or tutorial. Teachers could write history* \lessons in adventure format, or reading exercises or logic experiments. If anyone wants to* \pursue this, I would be glad to modify some of the internal responses in the program to meet* your needs.**`Let your creative juices flow. Relax all your inhibitions. Be sneaky, crafty, wily and obtuse.* \Stick in all your favorite brain teasers. Travel through your dreams. Writing an adventure* 2is the most exciting adventure of all. Good Luck!*$OVERVIEW: HOW ADVENTURE! WORKS*WAdventure! has a very simple structure. There are Rooms, within which there are Objects* Yupon which Actions can be performed. These three parameters - Rooms, Objects, Actions -* Vdetermine everything that happens and can happen in Adventure! Each parameter has its* Vown type of data record (RoomRecords, ObjectRecords, and ActionRecords) and all of the* arecords are linked. Rooms call objects, objects call actions, actions call objects, objects call* Xrooms. The hard part in writing an adventure is making sure that you have all the links* right.*0XThere is a fourth very important parameter in Adventure! and that is called a Block. In* Worder to minimize disk access while conserving memory, Adventure! groups sets of Rooms,* ]Objects, and Actions together in Blocks. Each block contains up to 10 rooms, up to 15 Actions* _and up to 20 Objects. An entire block (all of the Room, Object, and Action data) is loaded into* Ymemory at one time. As long as the player stays inside a block, there is no further disk* Xaccess. When the player leaves a block and travels to a new one, Adventure! goes to its* WAdventureFile and loads in an entirely new block, i.e. a new set of Rooms, Objects, and* VActions. Adventure! can have up to 10 blocks, which means your adventure can have 100* \Rooms, 200 objects and 150 actions. You'll find that you can actually have quite a few more* ]objects and actions than this because Adventure! allows six different 'names' for each object  ( ( ((+2\Rooms, 200 objects and 150 actions. You'll find that you can actually have quite a few more* ]objects and actions than this because Adventure! allows six different 'names' for each object* Wand for each action. This represents an extremely large vocabulary, 3000 words in all.*YThis large of a vocabulary, along with the descriptions for each room and object, and the* \responses for each action, represents a _lot_ of data, roughly 350K on disk. This is simply* Qtoo much baggage for a desk accessory to carry around with it. So AdventureMaker* Y"crunches" or compresses the data when it creates an AdventureFile. This compressed disk* file is called a Crunch File.**TWhile you are developing an adventure however, you will be working exclusively with* ]another type of disk file: a Block File. Block Files are non-compressed data sets. They are* [called Block Files because their internal structure is the same as the 'blocks' referred to* Yabove. A single block in a Block File is always the same size, 35K, even if the block is* Ycompletely empty. Crunch Files, on the other hand, are the compressed final product that* Xthe Adventure! desk accessory can read. The crunching process removes all empty records* _and blanks, so a sparse block, once crunched, is quite small, while a full block, in the limit,* Uapproaches 35K. Block Files can be revised non-sequentially; Crunch files cannot be* revised once written.*6TCrunch Files are not just compressed block data. They also include important header* Yinformation, including, among other things, the title and author of the adventure, sounds* Tfor dying and winning, and a set of hints. You can modify all of this information in* ^AdventureMaker. When you are satisfied with it, save it to disk as a Header File. Before you* Zcrunch a Block File, read in the header information you have prepared. The header will be* Kcrunched first, then the rest of your crunched Block File appended to this.*<]A Crunch File _is_ an AdventureFile. It is ready to be run by the Adventure! desk accessory.* \All you need to do to run it is to name it "AdventureFile" and put it in your System Folder.* PYou could, alternatively, save the Crunch File directly to your System Folder as* X"AdventureFile" rather than renaming it and moving it there. This is a little dangerous* Uhowever, because you don't want to inadvertently overwrite an existing AdventureFile.*9GETTING STARTED*TWhen you first open AdventureMaker, you will be presented with AdventureMaker's main* Xscreen. This is the control center of the program. From here, you can read blocks from* Ydisk Block Files, you can create and modify Room, Object, and Action records, and you can* Ymodify header information. Also, you can get a Summary of the current block that you are* Yworking on. When you are finished, you can save the block to disk as a new Block File or* ayou can write it to an existing Block File. Finally, after you have created a set of blocks, you* *will want to crunch them to a Crunch File. ( ( ((+2ayou can write it to an existing Block File. Finally, after you have created a set of blocks, you* *will want to crunch them to a Crunch File.*XYou do all your work in AdventureMaker on a block in memory. This is referred to as the* Tcurrent memory block. When you are satisfied with your changes and additions to the* [memory block, write the block to disk as a Block File or your work will be lost. Note that* XCrunch Files _cannot_ be read by AdventureMaker. So if you save your work as a Crunch* ,File only, you won't be able to retrieve it.**X(There are cautionary Alerts all over the place in AdventureMaker. Reminding you to save* _your work is one of them. If you get tired of all that nagging, you can turn the alerts off by* _checking the "No Alerts" check box. Don't do this if you are at all forgetful. I always leave* it unchecked myself.)*' The "Input/Output Block Number":*VThe numbering of blocks in a Block or Crunch File is very important. The numbers have* [two functions: First, they indicate the actual physical order of blocks in the disk files.* TSecond, the block numbers are the tags by which Adventure! moves around and calls up* Znew data. When you first start AdventureMaker, you will be working on Block 1 (unless you* Zhave read in a block from a larger existing file). When you have finished working on this* `block, you will want to write it to disk as a Block File. Type '1' in the Block Number box, then* ]click the "Create New BlockFile" button. Since this will be the first block in the new Block* `File, it _must_ be numbered '1'. Block Files must be built sequentially. If you tried to write* Pthis block to a new file as Block 3 or Block 8, AdventureMaker wouldn't let you.*EYWhen you have finished with Block 1, you will want to start on Block 2 of your adventure.* ZClick the "New Empty Block" button to zero out all of the Room, Object and Action Records,* Xthen fill in the records for the new block. When you are done, you may either save the* ^block to your existing Block File as block#2 (it will be, physically, the second block in the* bfile) or you may want to save it by itself in its own Block File. If you do this, be sure to give* `the file a distinctive name, like "Block 2". However, since this block will be, physically, the* ^first block in the file named "Block 2", you must save is as block #1. Later, you can combine* Zall of your separate single-block files into one big Block File with sequentially numbered* \blocks. When you do this, your Block 2 will need to be, physically, the second block in the* Vlarge combined file. It will be saved to the big Block File at that time as block#2.*HYWhen you have finished with a series of blocks, you will want to "crunch" them, i.e. turn* Othem into an AdventureFile, so that you can try out your new adventure with the* SAdventure! desk accessory. Before you do this, however, you must write the header* #information for your Adventurefile. ( ( ((+AHeader Information:*YAt the bottom of the main screen, you will see a set of buttons for modifying this header* Xinformation (Default Header, Game Info, Hints, and Sounds). AdventureMaker supplies you* Ywith default header material that you probably don't want to use. Be sure to remember to* Ymodify it to fit the needs of your own creation. However, if you have completely garbled* Zthe job and want to start over, you can click the "Default Header" button, which wipes out* 6your changes and loads in the original default header.*-`It is particularly important that you fill in the "Game Info" record if nothing else, since this* \sets the title and opening display of your adventure. The Hints dialog is self explanatory,* ]but you may have difficulty with the Sounds dialog. To fill this in, you will need a copy of* ZInside Macintosh. The numbers are the frequency counts for notes and the note's duration.* X"Length" tells Adventure! how many notes are in a sound. "Pause" indicates how long of a* [separator to put between notes. To hear your sounds, click the "Play Snds" buttons down in* _the lower left corner. A set of Sounds are included in the Default Header, so you don't need to* $fool with this if you don't want to.*3ZAfter you have finished writing your Header, save it to disk as a Header File. And before* Xyou crunch a Block File, be sure to first read in the Header information that you saved.*0Building a Crunch File:*ZThere are two ways to create a Crunch File. First, if you have been working with a single* Zlarge Block File, you can convert it to a Crunch File very quickly using the Build button.* YYou will be asked for an input Block File and for the name of an output Crunch File. The* \rest of the compression process will be done automatically. Alternatively, if you have been* Ykeeping all of your blocks in separate single-block files, then you must read them in and* Ythen write them out to the Crunch File one by one. Use the "Create New Crunch" button to* Xbegin with, then click the "Add Crunch" button for subsequent blocks. Remember that the* 6block numbering in the Crunch File must be sequential.*3VWhatever header information is in memory when you create a Crunch File or when you add* ^to a Crunch File is written to the file. If you don't want this to happen (you are appending* Wa block to an existing Crunch File and you don't want the header changed) then un-check* Vthe "Write Header" check box. A header will always be written when you first create a* QCrunch File; un-checking this box only works for when you are adding blocks to an* existing file.*-Revising Your Work: ( ( ((+2ZYou will _always_ find errors, inconsistencies, poor prose, etc. the first time through an* [adventure. So it is very important that you be able to revise your blocks easily. Suppose* Xyou want to make changes in Block 3 of your adventure. If you have saved your blocks in* [one large Block File, then type a '3' in the Block Number box, click the Read Block button* ^and select your Block File in the subsequent file dialog. Block 3 will be read from this file* \into memory. Alternatively, if you have kept separate single-block files, type a '1' in the* [number box, click the Read Block button and then again select the appropriate file from the* Zfile dialog. After you make whatever changes and modifications you wish to the block, you* ]will need to save it again. Type a '3' in the Block Number box, click the 'Add Block' button* [and save the block directly to your large combined BlockFile as block#3 (an Alert will ask* ]you if you really do want to overwrite an existing block of that file). Or you can save the* ]block as block#1 to its own single-block file. You cannot, however, write the block back to* \an existing Crunch File as block#3. The reason for this is that the block will have changed* asize, given any modification at all, so it will no longer fit in its original space in the Crunch* ZFile. Crunch Files can be added to on the end, but they must be built anew if an existing* block is modified.*ZOption Key Reads and Writes:*]There is a short cut for reading in block data and writing Block and Crunch Files. After you* ]first click the "Read Block" button, the name of your input Block File is kept in memory. If* Xyou want to read another block from that file, you can avoid the standard file dialog by* Yholding down the option key when you click "Read". The same short cut works for writing* [Block Files and Crunch Files. You must always go through the standard file dialog at least* Tonce, but again, the file names are kept in memory as designated output Block and/or* ZCrunch Files. Holding down the option key when you click "Add Block" will write the block* Yto your output Block File. Holding down the option key when you click "Add Crunch" will* +crunch to block to your output Crunch File.*EBUILDING AN ADVENTURE* RoomRecords*PThe simplest possible adventure would be just a set of rooms. Near the bottom of* XAdventureMaker's main dialog, it says "Which data set in the memory block do you want to* Ywork on?" Click the Rooms button. A blank RoomRecord will appear numbered '1'. Give a* \Title to the room and fill in the description box. When you have finished with the room, be* _sure to click 'Write Record' or your work will be lost. (The record is written to the block in* ]memory, not to a disk file.) Now go to the 'Records' menu and choose 'New Empty Record'. If* Vyou have just written room record #1, AdventureMaker will present you with a new empty* Zrecord numbered 2. Fill in this record, write it and continue until you have a nice set of* Vrooms. Don't go past 10 however (AdventureMaker won't let you) since only 10 rooms are* [allowed in a block. To create more than 10 rooms, you will need to save your current block t t( ( ((+2Vrooms. Don't go past 10 however (AdventureMaker won't let you) since only 10 rooms are* [allowed in a block. To create more than 10 rooms, you will need to save your current block* )to disk and start on an entirely new one.*Y(Note: Rather than calling "New Empty Record" from the menu, you can just type in '2' in* Wthe Room Number box, change the Room Title, clear the old description and type in a new* Xone, then write the new record. As with blocks, room, object and action records must be* Ybuilt sequentially. If you have only 3 rooms, you can't save the fourth room as room#8.)*6^The description of a room can only be 255 characters. It is _very_ easy to run over this. So* Yas a precaution, after you have written a record, read it (click the read record button).* ^Make sure that your whole description actually got written. If it was too long, you will find* 0that part of it has been chopped off at the end.*'[If you would like to see a summary of your adventure so far, go back to the main dialog and* ^click the Summary button. A page will appear listing all of the rooms, objects and actions in* Ythe current block. If you want to examine any of these, click directly on the name. The* ^record for that particular room, object or action will instantly appear. (This only works for* \records that already exist. If you click a blank on the Summary page, nothing will happen.)*9\Now that you have a set of rooms, you can indicate travel between them. In the Exit boxes in* Ueach room, indicate to which room travel in that direction will take the player. For* ]example, if 'N' leads to Room 2 then you would put '2' in the Exit box under 'N'. If travel* Ytakes the player out of the current Block into a new one, then you would indicate this by* Yputting a "Room##" in the Exit box. A Room## is the new Block number times 10 plus the* Xnew Room number. For example if you want to travel to Block 7 Room 3, then the Room##* Ywould be 73 (7*10 + 3). The parser assumes any exit number greater than 10 is a Room##.*?]At this point you might want to try your hand at a flag or two. Put '-2' in the ExitFlag box* Zdirectly underneath an Exit and fill in the Auxiliary text box in that room with something* Xshort but interesting like, "You would suffocate if you went in there." When the player* Utries to go in that direction, he will be prevented from doing so with this response.*6YThe player could wander around a long time in your adventure, if you put enough rooms in,* _but it would soon cease to be interesting. He couldn't do anything except travel. He couldn't* Vexamine objects, take them, drop them or do things with them. The next step ,then, is* Vincluding some objects. In each RoomRecord in AdventureMaker you will see a row of 10* \number boxes labeled 'Objects'. Before you can fill in these boxes, you need to create some* objects. \ \( ( ((+A ObjectRecords*XGo back to the Main dialog and click Objects. A blank ObjectRecord will appear numbered* c'1'. Give at least one name to the object and fill in the main description box. If the object is* _a plural, be sure to click the plural button. Also, if you want the object to have a modifying* \adjective, fill this in as well. AdventureMaker automatically assigns 5 points to each new* Yobject (and to each room). You can change this if you wish by changing the number in the* points box.*-VBelow the Names boxes and above the Description box, you will see a whole set of empty* Wnumber boxes. This is the object's information matrix. Columns 1 and 2 contain Get and* _Show information. If you want the object to be takeable ( the player can take it and put it in* Vinventory), then put a '1' in row 1, column 1 under Get. You will obviously want some* _objects to be takeable, like treasures, and others not, like houses. If you want the object to* Yshow separately when the player enters a room (Adventure! displays the message, "There is* Aa red ball here."), then put a '1' in row 1, column 2 under Show.*?]Row 1, column 3 through column10, is an object's Action List. This is where you will put the* Waction numbers of the actions that can be performed on, with or by the object. At this* ^point, you can't fill this in because you haven't created any actions yet. We'll come back to* this later.*'TRows 2 and 3 of the object information matrix are for flags. There are a great many* adifferent flags that you can use to put conditions or restrictions on actions, to kill people, to* `activate timers, etc. Here's a simple flag you might want to try right off. In row 2, column 1* aunder Get, put a '1'. Now fill in the first auxiliary text box (below the main description) with* \a short message, such as "The box burns when you touch it." From now on, until this flag is* ^removed, if the player tries to take this object, this is the response he will get. In row 2,* ]column 2 under Show, put a '2' , then write a short message in the second auxiliary text box,* Ysuch as "The box is empty". Now, when the player examines the object, the description he* _will get will be the auxiliary 2 description. For both of the row 2 Get and Show flags, if you* ]put a '1', then the response will be auxiliary 1; if you put a '2', then the response will be* auxiliary 2.*<\When you have finished with the object, be sure to click 'Write Record' or your work will be* \lost. Now go to the 'Records' menu and choose 'New Empty Record'. If you have just written* Wobject #1, AdventureMaker will present you with a new empty record numbered 2. Fill in* Zthis record, write it and continue until you have a nice set of objects. Don't go past 20* Thowever (AdventureMaker won't let you) since only 20 objects are allowed in a block. J J( ( ((+2VWhen you have finished defining a set of objects, you might want to check your work by* /clicking the Summary button in the main dialog.*![Now that you have a set of objects, you can put them in the rooms you created. If you want* Zobject#1 to be in room#1, open up the RoomRecord of room#1 and put a '1' in the "Objects i* \in Room" list. Put the numbers of any other objects that belong in that room in the list as* Vwell. When a player enters this room, he will now be able to examine object#1 and any* Zother object you included in the list. And if you marked the object as takeable, then the* /player will be able to take the object as well.*-QYou now have a pretty good adventure. The player can move around, explore rooms,* _examine objects, take them and drop them. But that's all the player can do. He can't 'read' a* \book, or 'open' a box, or do anything that's particularly interesting. The time has come to* define some Actions.*'\Before you do this however, it will be instructive to actually try playing the adventure you* ]have created so far. First, save your work to disk as a Block File. This is very important,* ]since once the block is crunched, you won't be able to retrieve it. After you have saved the* Xblock, crunch it. Exit AdventureMaker, rename the Crunch File "AdventureFile", put it in* Xyour System Folder, open up the Adventure! desk accessory and see how it looks. Travel* Ythrough your different rooms, examine your objects, take some objects and drop them. You* [really do have a miniature adventure at this point, and I hope you're a little bit proud of* yourself.*3 ActionRecords*VWhen you return to AdventureMaker, read in the block you have been working on from its* [Block File. Click the Summary button to get oriented. You may at this point want to print* Tthe Summary page - you'll find this a great help as your adventure grows and becomes* /complex. To print the page, press cmd-shift-4.*'\Now let's create some Actions. Actions tie everything together in Adventure! It is through* ]actions, and the interaction of actions on objects and rooms, that descriptions change, flags* Vare set or removed, timers are activated, exits open or disappear, players die or win.*3WIn the main AdventureMaker dialog, click the Actions button. A blank ActionRecord will* _appear numbered '1'. Give at least one name to the action. This particular action can act on,* `or be called by, up to three different objects. As a result, you will see that the ActionRecord* [has three sets of number and text boxes, one set for each calling object. The first number* Vbox in each set must contain the number of the object that is calling the action. For* ^example, suppose object 3 is a 'dog'. And suppose the action you are working on, action 1, is* `'pet'. You want the player to be able to "pet the dog". To do this, you would put a '3' in the* `object number box, since object 3, 'dog', calls the action, 'pet'. Later, you must remember to* breturn to the calling ObjectRecord, in this case object 3, and put a '1' in its Action List. This ( ( ((+2`object number box, since object 3, 'dog', calls the action, 'pet'. Later, you must remember to* breturn to the calling ObjectRecord, in this case object 3, and put a '1' in its Action List. This* Hidentifies 'pet' (action 1) as an action that can be performed on 'dog'.*^You now need to supply a response to the action. In text box A1, type in a suitable response,* \up to 200 characters long. Adventure! will always use the A1 text box response if an action* aactually takes place. Text box A2 is reserved for 'failed' actions. (When I refer to an action* _failing or taking place, I mean something very specific. An action will set flags _only_ if it* ^takes place. A failed action will not set flags.) For example, you might have a flag in your* _'dog' ObjectRecord restricting 'pet'. Perhaps the player needs to feed the dog first. In this* `case, if the player tries to "pet the dog", he won't be able to. The action will not take place* \and Adventure! will display the A2 response. You would therefore want to type in a suitable* Ynegative response in the A2 box. If an action will never 'fail', i.e. would never have a* *restriction on it, you can leave A2 blank.*H_To continue our example, you evidently want the player to be able to feed the dog. 'Feed' is a* ^new action, separate and distinct from 'pet'. Open up a new ActionRecord, action 2. (Be sure* `to write action 1 first.) Give it the name 'feed' and again put a '3' in the object number box* ain the first row (since object 3 is again the calling object). In your 'dog' ObjectRecord, add a* V'2' to the Action List. Now 'dog' calls both 'pet' (action 1) and 'feed' (action 2).*9^Our 'pet'/'feed' example is a good place to begin exploring the power of flags. Everything in* WAdventure! is driven by flags. And this dynamic takes place primarily through actions.*0\I suggested above that there might be a restriction on "pet the dog". How would we set this* ^restriction? The easiest way is to put a '-1' in row 2 of the ObjectRecord directly under the* _'pet' action number in the Action List. A flag of '-1' simply means the action can't be done.* YRemember that the Action List is row 1, column 3 through column 10. Suppose that you put* c'1', for action 1 ('pet'), in row 1, column 3. Then to restrict this action, put a '-1' in row 2,* ccolumn 3, directly under the '1'. I know this sounds a little complicated, but it's not. Give it* a try.*0\"Pet the dog" is now restricted and cannot be done. When the player tries to do so, he will* ]get the A2 text box response. How can we remove this restriction? If the player first feeds* Zthe dog, he should then be allowed to pet the dog. So 'feeding' the dog should remove the* _restriction on 'pet'. We do this with the room and object flags in the action record. Open up* aActionRecord 2 ('feed') and look at the first row of number boxes. '3' is in the very first box,* \since this is the object# of the calling object. Ignore the second number box (labeled Aux)* Wfor now. There are seven more boxes in the row. The first three number boxes, labeled* aRoom Flags, set room flags; the last four boxes, labeled Object Flags, set object flags. I will* ]refer to these boxes as the 'setflag' boxes from now on. And that's what we want to do here.* cWe want to set the '-1' flag on 'pet the dog' to '0'. In other words, if the player feeds the dog, X X( ( ((+2]refer to these boxes as the 'setflag' boxes from now on. And that's what we want to do here.* cWe want to set the '-1' flag on 'pet the dog' to '0'. In other words, if the player feeds the dog,* [then the restriction on 'pet' is removed and the player can then pet the dog. In the first* ]object setflag box (labeled 'obj) put the object number of the object that you want to affect* `('3' in this case). The flag that we want to change is in row 2, column 3 of this ObjectRecord,* eso put '2' in the "row" box, '3' in the "col" box. Finally, in the box labeled "#", put a '0'. What* `this series of numbers says is that the action "feed the dog" will set row 2, column 3 of object* `3 to 0. This removes the restriction on "pet the dog". From now on the player will be able to* !pet the dog as much as he wishes.*XYou might also want an action to open up a new exit to a room. For example, perhaps you* \had a '-2' flag on the east exit from room 4, with an auxiliary room description of "The dog* ^won't let you pass." You want "feed the dog" to open up this exit. To remove the restriction* _on the exit, fill in the room setflag boxes in the 'feed' ActionRecord. Put the room# ('4') in* dthe box labeled "rm", put a '3' in the "col" box ('east' is column 3 in a room's exit list), and put* ^'0' in the box labeled '#'. This sets the east exitflag in room 4 to '0'. The player can now* travel east from that room.*0YIn many cases, you will want an action to set more than one object flag and/or room flag.* \To set more flags, move down to the second row of setflag boxes in the ActionRecord. Again,* [in the first box, fill in the number of the calling object (you must always do this or the* `parser will simply skip that row of setflags). Fill in the room and object setflag boxes as you* `wish. You do _not_ want to put any text in the A1/A2 text boxes in this second set of setflags.* 8The parser will use the text you already supplied above.*<[You can now move down to the third row of setflags, heading it with the same object# if you* _wish. Or you can use this third row to respond to an entirely new object. Or you can leave it* ]blank. If this is a new object, you must again supply some text in the A1/A2 response boxes.* ^For example, suppose you want to be able to "feed the bears" in your adventure. If 'bears' is* _object 4, then you would head the setflag row with '4'. You would fill in the A1/A2 text boxes* ^with appropriate responses. You would fill in the setflag boxes giving the results of feeding* \the bears. And in the "bears" ObjectRecord, you would put '2' (for action 2, 'feed') in the* Action List.*3YThe single most important thing to remember in writing ActionRecords is to make sure that* \all of your cross-references are correct. In the ActionRecords, you must be sure to fill in* Wthe numbers of the calling objects. In the ObjectRecords, you must be sure to put the* ^numbers of the called actions in the Action List. Also, make sure that an object doesn't call* Xtwo different actions with the same name. Since six action names are allowed, this does* 7happen sometimes. The results are never what you want.*-`As you can see, actions are the driving force in Adventure! Actions set flags. And it is flags* Wthat give all the interest, the challenge and the frustration to a good adventure game. ( ( ((+AYSo far, I have only mentioned a couple of different flags. Adventure! recognizes a large* \number of flags, all having different consequences. But before continuing, you should fill* Zin a few action records, save your work as a Crunch File and try playing the adventure you* Whave developed so far. See if your actions work. Try setting a few of the simple flags* [already discussed. If you feel comfortable with your results, then read on. If not, don't* ?venture further until you've gotten the basics under your belt.*-ADVANCED ACTIONS*SSo far we have discussed the basic interplay of actions on objects and rooms. Most* YActionRecords that you write will behave in the way just discussed. However, there are a* Ynumber of "special" actions that are written differently and behave differently. We will* look at those here.*'&Special actions in Adventure! include:* 1] the object as a verb* 2] prepositional phrases* 3] 'go' as an action*$ 4] 'take' or 'drop' as actions* 5] the Time function* 6] the Moss function*he Object as a Verb: Sometimes, you'll want to be able to respond to single-word sentences* Ysuch as "jump" or "dig" or "search". The parser will interpret these commands as objects* R(even though you and I know they are verbs). So in rooms where such commands are* \likely, you should include objects with the relevant verb as one of its names. For example,* Wyou might have an object with the name "swim". In order to provide a response when the* Wplayer types "swim", the object 'swim' must call an action, since only actions can give* aresponses and set flags. The way to deal with this is to name the called action "nil". In other* ^words, the parser interprets the player's instruction as "nil swim". It will look through the* XAction List of the object "swim" until it encounters an action named "nil" and will then* Ccarry out the appropriate response given in the "nil" ActionRecord.*HYYou might think this is a waste of object space, but you can cleverly do some doubling up* ]here. No player is going to "examine swim", or at least it's unlikely. So "swim" can be but* _one of the six possible names for, say, "lake". Then one of the actions called by "lake" (aka* T"swim") would be the action "nil". Thus, in one ObjectRecord, you can combined two* %separate objects: "lake" and "swim". ( ( ((+2XPrepositional Phrases: Suppose you want the player to be able to "throw the axe over the* [cliff". This is not your standard verb/noun sentence. In fact, it has two nouns, 'axe' and* T'cliff', separated by the preposition 'over'. When the parser in Adventure! finds a* aprepositional phrase like this, it will interpret it as follows: The first noun in the sentence,* b'axe' is considered to be the primary object, i.e. it is the object that calls the action 'throw'.* R'Throw' must therefore be an action in 'axe"s Action List. The noun following the* [preposition is considered to be an 'auxiliary noun', so in this case, the auxiliary noun is* ]'cliff'. The parser will then look at the ActionRecord for 'throw', will look for the row of* Zsetflags starting with the object number of 'axe' and will then check to see if there is a* Ynumber in the Aux box of that row. (The Aux box is the the second box in a setflag row.)* ZThat number must be the object## for 'cliff'. An object## is the original block number of* Xthe object times 20 plus the original object number of the object. For example, suppose* ^'cliff' is object number 5 in block 7. The the object## for cliff would be 145 ( = 20*7 + 5).* [The parser will now examine all of the objects in the room and in the player's inventory to* Zsee if one of them has an object## of 145. If one of them does, then the action will take* Iplace. If the parser can't find object## 145, then the action will fail.*ZVIn a nutshell then, if you want an action to depend on a prepositional phrase, put the* Lobject## of the auxiliary object in the Aux box. That's all there is to it.*!^By the way, Adventure! recognizes a preposition _only_ if it is in the Preposition List. This* ^is a list in the header information of a Crunch File. You can modify this list if you need to.* 5Click the "Prep List" button in the Game Info dialog.*3V'Go' is an Action: This is a very powerful action function and you will want to use it* Yfrequently. Normally, when a player travels from room to room, the parser recognizes the* ]player's travel instruction as being just that and goes straight to a 'travel' procedure. No* [flags are set, and the only response a player gets is either the new room description, or a* T"you can't go there" type response. However, sometimes you want the player's travel* Yinstruction to set flags and/or give a unique response. To do this, you need to turn the* -normal travel instruction into a true action.*0_The way to do this is to have the travel instruction call an action. But only objects can call* ]actions, so you have to turn the travel instruction into an object. When the parser looks at* _the ExitFlags in a room, if it finds an ExitFlag between 1 and 20, it will automatically assume* athat this is an object calling a 'go' action. It will then look in the room's object list for an* Yobject _named_ that particular ExitFlag number. For example, if the ExitFlag is '9', the* \parser will look for an object named '9'. Note that any object could have '9' as one of its* \names -the parser doesn't care- but to minimize confusion for your own sake, I suggest that* you give object#9 the name '9'. ( ( ((+2]Once the parser has found the appropriate object, it will search the object's Action List for* aan action named 'go'. It will then execute the instructions in the 'go' ActionRecord, just as it* ]would any called action. If the action is non-restricted, the parser will set flags and then* Ydisplay the action's A1 text followed by More. It will then complete the original travel* `instruction given by the player. If the action is restricted (e.g. there is a flag on it in the* _ObjectRecord of the calling object) then the parser will display the action's A2 text, will not* Yset flags, and will not complete the player's travel instruction. If you leave the A1/A2* _textboxes blank, the parser will set flags (or not) invisibly, using standard travel responses.*B_This does get a bit confusing, so here is an example. Suppose you put '3' in the ExitFlag box.* [Then of the six possible names for object#3, one would have to be '3'. When you put '3' in* [the ExitFlag box, you are basically telling Adventure! to "go 3". The parser looks for the* [object named '3', then looks at 3's Action List to find an action named 'go'. It then does* `whatever 'go' tells it to, i.e. it sets flags, displays text, kills people or whatever, and then* _travels to the new room. Remember, the action 'go' is subject to all the flags that any action* [would be, so if you have restrictions on the action, then neither will the action will take* Dplace, nor will Adventure! complete the original travel instruction.*B_A final note: this function is highly error prone. Not by the parser, but by you. Make sure* _that the object is in the room, make sure that one of the object's names is the object# itself,* Qand make sure that one of the actions that the object calls has the name of 'go'.*BZ'Take' and 'Drop' as Actions: The verbs "take" and "drop" are built in to Adventure! When* ]the parser encounters these, it goes straight to the Inventory procedure. If you want 'take'* _or 'drop' to behave like true actions, you need to tell the parser that this is the case. It's* avery easy to do so. Just put '-1' in an object's Get Box (row 1, column 1) if you want 'take' to* _be an action. The parser will then search the object's Action List for an action named 'take'.* ^It the action is non-restricted, it will set flags, give the A1 response if provided, and then* [complete the original inventory instruction. If 'take' is restricted, then the A2 response* \will be given, no flags will be set, and the inventory instruction will not carried out. In* Oboth cases, if A1/A2 are left blank, standard Inventory responses will be used.*EbIf you want 'drop' to be an action, put '-2' in the object's Get Box and be sure to include 'drop'* 2as one of the actions in the object's Action LIst.*!`Finally, if you want both 'take' and 'drop' to be actions, put '-3' in the object's Get Box. In* athis case, both 'take' and 'drop' should be in the object's Action List as two separate actions. ( ( ((+PWThe Time Function: Adventure! has two different timer functions: a short one and a long* bone. The short one is Time. It is called with an ObjectRecord flag of '1' or '2'. The action that* \has been flagged in this way becomes a Time record and is treated by the parser in a special* ^way. The parser sets the flags indicated in the ActionRecord, gives the action's A1 response* ]and starts a timer ticking. The flags set by the Time record are set _only_ for the duration* Wof the timer. When the timer expires, the room and object flags set by the Time record* _revert to their original values and the action's A2 text is displayed indicating the end of the* Time function.*3`You can also set Exits (as opposed to ExitFlags) with the Time record, but these will not revert* Wwhen the timer expires. The change is permanent. This is an unfortunate exception, but* &was necessary due to size limitations.*$[The timer lasts only a few moves. (You set the number of moves, the TimeCount, in the Game* ]Info header dialog.) Note that each character typed by the player is counted as a 'move', so* ]'n' is 1 move, while 'go north' is 8 moves. The timer always expires if the player crosses a* block boundary or saves a game.*']Do not allow the player to do an action while the timer is activated that will set any of the* \flags affected by the Time record. Otherwise, when the timer expires, the flags will revert* Vto the values saved by the time function when it began. This would then wipe out your* player's actions.*'\A number of flags work off of the Time function. (See the Flag list below.) You can specify* Wthat an action can or cannot take place if or if not Time. An example of a flagged Time* Zfunction is the apples in "The Temple of Goth". Eating the apples starts a Time function.* SThe player can enter the hole in the base of the tree only while Time is in effect.*EXThe Moss Function: The long term timer function in Adventure! is Moss. Moss can invoke* Vmultiple interruptions, can survive a Save/Restore and can cross block boundaries. It* _differs from the simple Time function in that it cannot restore flags to their original setting* before Moss started.*'UCareful here! Moss records are very different from standard ActionRecords. They are* Znever called directly by an object, but rather by an action. Here's the way it works: An* ^object calling an action has a MossFlag set (row 3 = -8). The parser executes the action, but* ]while it's doing that, it looks at the called action to see if it has an Aux number between 1* Yand 15. If it does, then the parser considers the action record with that number to be a* :MossRecord. It reads the data of a MossRecord as follows:( ( ((+AV Names: These are ignored. But remember, you can't leave an action's name list* Zcompletely blank (the record would not be written to the Crunch File if it were nameless).* \You must fill in at least one name. A good name in this case is 'moss'. Then you know at a* glance it's a MossRecord.*'[ Obj#'s: These are ignored. For your own reference you may want to include here the* *numbers of the calling objects or actions.*!_ Aux#'s: Only the first is used. This must give the number of Moss interruptions (which* Umust equal the number of TimeChecks and the number of MossText messages). It is very* Ximportant that you set this number. If you leave it blank, the Moss sequence will never* take place.*'` Room and Object SetFlags: In the first row only, starting with the Rm box, fill in up to* Ysix TimeChecks. These are integers that indicate after how many moves a Moss interruption* Vwill occur. You should include as many TimeChecks as the number indicated in the Aux* box.*'[ TextBoxes: Working _vertically_ (i.e. A1,A1,A1,then A2,A2,A2) fill in the MossText* Vmessages that will be displayed for each Moss interruption. You should include as many* WMossText messages as TimeChecks. Remember, the number of interruptions is indicated in* the Aux box.*'WIf you want something interesting to happen at the end of a Moss sequence, this must be* ]indicated by the calling object when Moss is first invoked. You invoke Moss by putting a '-8'* Yin row 3 under the relevant action. If you want a player to die if he doesn't succeed in* Y"curing" Moss, then put a '-9' in row 2. If you want the player to be transported, put a* Room## in row 2.**]As with Time, there is a set of flags contingent on Moss. See the Flag list below. The most* [important of these is '-7' which will cure Moss (cancel the timing function) whenever it is* encountered.*$VThere are a number of Moss timer functions in "The Temple of Goth". The original Moss* ]function is, of course, the moss disease in Block 1. Other examples of Moss are the creature* Zin the fog , the processions of monks, and the destruction of the Temple at the end of the* game. ( ( ((+2ALLOWED TEXT SIZES*FI've already mentioned some of these, but here's a list for reference:* )] Objects:(u names(u& 10 characters( adjective(& 10 characters(" main description(&255 characters( aux1(& 80 characters( aux2(& 80 characters( Rooms:*  name(& 20 characters(" main description(&255 characters( auxiliary(& 80 characters( Actions:*  names(& 10 characters( A1(&200 characters( A2(&200 characters( Other:*  prepositions(& 10 characters( Opening Text(&255 characters(% Hints(%&255 characters (@WThe parser will always truncate a player's verbs, adjectives and nouns to 10 characters* Zeach. This means you can too in your name lists. For example, if you want use the action* \"concentrate", this will get truncated in the action record to "concentrat". But that's all* \right. When the player types "concentrate", his instruction will also be truncated and will* $thus match up with your action name.**]Don't allow _any_ name that will be displayed to be truncated, however. For example, if you* ]have a "Fiddlefaddle" object that can be taken and put in inventory, when the Fiddlefaddle is* =dropped, it will appear in the room as a "FiddleFadd". Oops.*$ZAdventure! always uses the first name in an object's name list as the display name. So be* Jcareful to make this a good descriptive name, 10 or fewer characters long.*!FLAGS*YAdventure! is driven by flags. They are numerous, obscure and hard to remember. In this* _section , I provide brief descriptions of all of the flags for the different record sets. But* \rather than my trying to tell you, in detail, what each of these does, the best way to learn* Yabout them is by example and by trial and error. Open up the example BlockFile supplied* Ywith AdventureMaker. (This happens to be Block 1 of the "Temple of Goth". If you haven't* ]solved "The Temple of Goth" yet, be forewarned that this BlockFile will reveal some solutions* Zto puzzles in the game.) Study how the flags are used there. And try using some of these* >flags in your own adventure. You'll soon get a feel for them.((( ( ((+2TIn what follows, any number referred to with "##" is a combination giving both block* >number and room or object number. Calculate these as follows:*!3 Room## = (Block#)*(10) + Room#*5 Object## = (Block#)*(20) + Object#* ROOM RECORDS * Room Exits:+$ /0 < num <= 10 go to room#* =10 < num <= 110 go to room## (new block)(Room ExitFlags:+$20 < num <= 220)need object ##(*0 < num <= 20)('go' is an action called by object 'num'(* num = -1) just can't go(* num = -2)#can't go with auxiliary description(* num = -3)#can't go if have items in inventory((* num = -4)drop everything then go(3* num = -7)cure Moss then go(>*-220 <= num < -20)can't have the object## (YOBJECT RECORDS * "Get/Show Flags (Columns 1 and 2):+ Get) ) ) ) )$ ) )$ ) )$ ) )$ ) )$ ) )$Show({Row 1)l0 can't get)0)$ don't show(r 1 can get)1)$do show(N -1)Htake is an action(N -2)Hdrop is an action(N -3)H both take and* drop are actions((Row 2 0 main description(n0)$main description(r1 aux 1 description)1)$aux 1 description(r2 aux 2 description)2)$aux 2 description(Row 3)not used)drop other object## (&[The Row 3, Column 3 flag, "drop other object##" is very useful if you have two objects that* ]you want to travel together in inventory. For example, if you want water to travel only in a* Tbucket, then when the player drops the bucket, the water should get dropped as well.* RIndicate this by putting the object## of water in Row 3, Column 3 of the bucket's* information matrix.{{( ( ((+20The Action List (Row 1, Column 3 to Column 10):*ZThe Action List holds the action numbers of the actions that can be performed on or by the* object.*!VIf you want to allow a one-word verb command, eg 'jump', then the action called should* have the name 'nil'.*!ZIf you want a travel instruction to set flags and/or give a text response, then the action* Xcalled must have the name 'go' and the calling object must have its own object number as* _one of its names. If there are no restrictions on the action, the travel instruction will then* be carried as usual.*'VIf you want 'take' to set flags and/or give a text response, then the Get Flag of the* ]ObjectRecord must be '-1' and the action called should have the name 'take'. For 'drop', the* \Get Flag must be '-2' and the action name must be 'drop'. If the Get Flag is '-3', then the* aparser will consider both 'take' and 'drop' to be true actions. If there are no restrictions on* Ythe actions, both 'take' and 'drop' will also carry out their normal inventory functions.*9ZOne thing to remember is that an object's Action List is permanent. You can change action* Ynumbers with action setflags, but these changes won't 'travel' across block boundaries or* [through a save/restore. When a new block is read in from disk, the Action List will revert* _to its original form. An object's Row 2 and Row 3 flags, on the other hand, will travel nicely,* Eas will any Get/Show flag. Only the Action List itself is permanent.*H/Row 2 and Row 3 Flags (Column 3 to Column 10):*]There is quite a bit of duplication here (you'll wish there were more), but in general Row 2* Jflags govern room interactions and Row 3 flags govern object interactions.*!XIt is very important to remember that Row 3 flags are checked _before_ Row 2 flags. If* Uthere is a Row 3 restriction (say, -1) then the Row 2 request will not be carried out* ](transport, for example). On the other hand, if there is a Row 2 restriction ( -1 perhaps),* Wthen a Row 3 request (clear moss, say) _will_ be carried out, because this will happen* 0before the Row 2 flag is examined by the parser. ( ( ((+2 Row 2 Flags:*7 num = 111 random travel*; 10 < num <= 110 travel to new Room##*= num = 6 remove the object*; num = 5 drop the object*E num = 4 take the auxiliary object*; num = 3 take the object*A num = 2 start timer /no sound*C num = 1 start timer /with sound*8 num = -1 just can't do*5 num = -7 clear moss*6 num = -9 you're dead*P -110 <= num < -10 must be in Room## for action to take place.*[Notes: The "remove object" flag makes an object in inventory disappear. It is removed from* [inventory and from the game. The "drop object" flag, on the otherhand, literally drops the* >object in the room. The player can retrieve the object later.*$]The "take auxiliary object" flag works with a prepositional phrase. It enables you to "fill* ^the bucket with water". "Water" is an auxiliary object indicated in the "fill" action record.* aIf the action "fill" is flagged with 4 in the "bucket" object record, then "water" will be put in* inventory.*6 Row 3 Flags:*S 20 < num <= 220 need the object## for action to take place.*O num = 6 remove the object (it disappears)*< num = 5 drop the object*F num = 4 take the auxiliary object*< num = 3 take the object*B num = 2 start timer /no sound*D num = 1 start timer /with sound*9 num = -1 just can't do*7 num = -2 clear timer*@ num = -3 can't do if not Time*< num = -4 can't do if Time*@ num = -5 can't do if not Moss*< num = -6 can't do if Moss*6 num = -7 clear Moss*0 num = -8 Moss*C -220 <= num < -20 can't do if have the object##kk( ( ((+2Special Combinations:*bIf an action is flagged with '-9' (death) in Row 2 and a Row 3 flag for that action is set, then* ^player will die if the action _can't_ be done, but not otherwise. For example, the Row 3 flag* Ymight be an object## indicating that a certain object is needed, a gas mask let's say, in* [order for the flagged action to take place. If the player doesn't have the gas mask and he* atries to do that action, he will die. If he does have the gas mask, he won't die, and the action* will take place as requested*-_If a Row 2 'death' or 'travel' flag is set when Moss is invoked then the flagged result (death* \or travel) will take place at the last TimeCheck of the Moss sequence, and only if the Moss* has not been 'cured' by then.*$YBy the way, try not to kill off your players with too much abandon. A little danger adds* ^spice, but senseless, illogical, gratuitous deaths get very frustrating for the player and add* nothing to an adventure.*$ACTION RECORDS*TAn action _must_ have at least one name, otherwise the record will not be written.*Special Action Names:*V 'nil' - allows the calling object to be a stand-alone verb.*Q 'take'/ 'drop' - allows standard inventory instructions to behave as*T true actions. (This works only if flagged in an*7 object's Get Box ).*O 'go' - enables travel instructions to behave as true*[ actions. (If the 'N' exit is flagged with 12, then the*W parser interprets this as 'go 12'. It looks for an*R object named '12', then searches that object's*J action list for an action named 'go'.)oo( ( ((+2 SetFlags:*`Each action can be called by up to three different objects. For each calling object, there is a* Arow of setflag boxes, headed by the number of the calling object:*!SCalling Room setflags Object setflags*Y obj# aux Rm col set# Obj row col set#*_ *-Aux Num:*I 20 < aux <= 220 Aux gives the object## for use in a*] prepositional phrase. For 'put note in box',*U then aux would be the object## of box.*V 0 < aux <= 15 If a MossFlag is set in the calling object then*W aux must contain the number of the action*P that is serving as the MossRecord.*-YRoom SetFlags: If the col# is negative, then Exits are set. If the col# is positive then* ExitFlags are set:*!> col < 0 sets Exits in Rm to set#*B col > 0 sets ExitFlags in Rm to set#*dFor example, if the room setflags are [3, 4, -2] then this will set the West Exitflag (col 4) to '(-(Z2' in Room 3. From now on, when the player tries to go west in that room, he will get the* aauxiliary text in that room record. If the room setflags are [7, -2, 43], then this will set the* ]South Exit (col 2) in Room 7 to '43'. From now on, when the player travels south out of Room* %7, he will end up in Block 4, Room 3.*9_Object SetFlags: Changes the values of the obj's information matrix to the set#. For example,* cif the object setflags are [19, 2, 2, 1] then this will set Row 2, Column 2 of object 19 to '1'.* ]From now on, when the player 'examines' object 19, he will get the description in object 19's* aux1 textbox.*6 Text Boxes:*5 A1 = text used if action is doable.*9 A2 = text used if action can't be done. ( ( ((+2\Note that actions _cannot_ set the flags of objects or rooms in other blocks! This is not a* Sproblem for stationary objects, but can be a bother for traveling objects (those in* \inventory). The action parser will always check to see that an object originates in a block* _before it will go ahead and set any flags. The reason for this is that when the player crosses* Va block boundary, all non-resident actions and objects get renumbered. Only a Supreme* VPower, or a much larger Adventure! desk accessory, could keep track of what action was* -setting what object after such a renumbering.*0[There is one exception to this. If you specify with an object flag that an action can only* Wtake place in a specific room, then the action parser will go ahead and set flags, even* _though the object is no longer in its originating block. It is up to you to make sure that you* 0know just what flags are being set in this case.*6Special Action Records:*]Time Records: If a TimeFlag is set in the calling object, then Room and Object SetFlags will* ^be set _only_ for the duration of the timer. Values then revert to the original settings when* Uthe timer expires. (An exception is if Exits are changed - the change is permanent.)*3[TextBox A1 gives the text for timer activation. TextBox A2 gives the text for end of timer.*-WThe timer lasts only a few moves. (You set the number of moves in the Game Info header* Zdialog.) The timer always expires if the player crosses a block boundary or saves a game.*?ZMoss Records: "Moss" is a long term timer function. It can invoke multiple interruptions,* Vcan survive a Save/Restore and can cross block boundaries. It differs from the simple* ^"Time" function in that it cannot restore flags to their original setting before Moss started.*3^If an object calling an action has a MossFlag set, then when the parser executes the action it* ]looks at the called action to see if it has an Aux number between 0 and 15. If it does, then* Ythe parser considers the action record with that number to be a MossRecord. It reads the* data of a MossRecord as follows:*'U-Names: These are ignored, but you need to put something there or the record will be* 9skipped. A good practice is to name a MossRecord "moss".  ( ( ((+2U-Obj#'s: These are ignored. For your own reference you may want to include here the* *numbers of the calling objects or actions.*!`-Aux's: Only the first Aux number in the first row is used. It is very important that you fill* Wthis in. It must give the number of Moss interruptions (which must equal the number of* WTimeChecks and the number of text responses). If you leave this blank, the parser will* Aassume there are zero moss interruptions and nothing will happen.*'^-Room and Object SetFlags: In the first row only, starting with the Rm box, fill in up to six* UTimeChecks. These are integers that indicate after how many moves a Moss interruption* Twill occur. The number of TimeChecks must equal the number you put in the Aux box.*3U-TextBoxes: Working _vertically_ (i.e. A1,A1,A1,then A2,A2,A2) fill in the MossText* Zmessages that will be displayed for each Moss interruption. The number of messages should* Fbe the same as the number of TimeChecks and the number in the Aux box.*3]In the calling ObjectRecord, if a Row 2 'death' or 'travel' flag is set when Moss is invoked* [then the flagged result (death or travel) will take place at the last TimeCheck of the Moss* 3sequence if the Moss has not been 'cured' by then.( ( ((+2&YOU'RE ON YOUR OWN NOW. WELL SORT OF.*'m sure I've forgotten to mention many things. But I do believe that once you get started* Yyou will get a feel for how the flags and interactions work and will only need to look at* Tthese instructions for reference. By the way, the Flag list, which is impossible to* Sremember, is included in the "About..." box under the Apple Menu in AdventureMaker.*6VIf you have questions, and I'm sure you will, feel free to ask. I can be contacted on* WCompuServe, Genie and MacNet, or you can write to the address given at the beginning of* `these instructions. You don't need to pay the registration fee just to get help. I really do* Swant to see some good adventures created and will do what I can to get you started.*6_If you succeed if writing a super adventure and wish to distribute it publically, I do ask that* Zyou pay the $30 registration fee before you do so. Among other things, this will enable me* Jto keep track of who is publishing what with my program. Also, registered* VAdventureMaker users will be kept informed of revisions and updates to both Adventure!* and AdventureMaker.+H*Patricia Smith*Epiboly SoftWare)CIS: 70655,425(yN325 E. 79th Street, Apt. 13d)MacNet: SmithPB(NNew York, NY 10021)Genie: P-Smith(KAdventureMaker, Version 1.0, Copyright 1988, portions Think Technologies.%  $ + 91988 Preferred Publishers, Inc., Makers of Vantage and * :DAtabase. Want to create documents like this one? Call * /(800) 446-6393 and ask about Document Builder.@G @G"!?t??!??! " #######  @G # ###"4 t4&4&& "&## #####  @G ## ##"!Ft*.F8!F.8 *8 "8## #####  @G ## ##" #t-# #- "## #####  @G ## ##"25t#?5#'25?'1#' "#'## #####  @G ## ##" 4t.4& 4.'& "&###### #  @G #### 1. 6.8!1988 Preferred Publishers, Inc.KJ CODEjSIZEDLOGDITLCURSALRTICONPICTSTR bFREFICN#BNDLDocR 4R 264@33 3`S 34| 45G 5 5M 6# 9P :FPr\)h;t~a 9  l ߢW /"S)25;9@G E+ F, E6d E~ E E E F J L.Nqp/ 1 Nup`"_ _#N"_ _)NtHm <NN"NV/. .NN^ _\ONOMPC NVH,. .BN&_B.NBgBg>pWJWg?<`dBgB/:?< (_ fN/ <B/:?<(_ W/Bg2 JAVf / / N/ Nt//NX/ N?</ NTpf ?B/:.?<(_ f T"F""LN^ _\ONNST nVIR _"W.Nѡ/HN"_ _N"_ /.Bg.NBBNn-_f/Nl`AC0 0/N/NNOLN^ _TONOVIRUS  Don't Panic."_ L.Nqp/ 1 Nup`"_ ".N"_ _#N"_ _)N/ pd""o"J@f )$Ppr J QBgHzʩ0j08 `$_/WP?@Nu5@JB'B/ 2 JAWg(/.N./.N0 n X/N/.N"BgB.NHS@gS@gS@gH`B/:?< -_fb/.쩣B/:?<-_gHB/:h?<-_g4`dB/:R?<-_f/.詣B/:B?< -_gB/:*?<-_g` </N`?<?<`B/:?<-_gB/:?<-_gpfB/:?<-_gpfB/:?<-_grpf?`Bg</.੢BgJ_fL/.੒/./:j?<Hz`BgJ_f*pfTB/:DBg-_gBp/Np-_g n P"n"QA""/./:?<HzBgJ_f/.詢BgJ_f/.詒pf/./:?<HzΩ`s[[aykq^x. Tq   vrs"!&!^!n!~!# ڤ#&[)jڰAppleFileEditWindowsRecordroomobjectactionmain game infosummaryaboutsoundshelphints prep listroomschooseobjectsactionsalerttitlessummaryaboutsoundshelphintsprepsbuild1build2'save'build1build2 E E F JJ&QL1&QL=&qlO'&QR&Qp Misty Cavern{You are in a large misty cavern. Rows of giant stalagmites, glowing in a dim green light, disappear into the distance. There is an archway to the north. A tree looms nearby in the mist.UOHm\?-XHnN;_N mNf&UOHm\?-X/~=| md P0.:@Jpo 0.>R@=@>RnQUO?-PHn(A>/N/N^>.>p@m=@@UO?-PHnN/IThe dirt walls are soft and crumbling, supported by the network of roots./NNUO?-PHn( md P0.:@/N/NUO?-PHn md P0.:@/N AJAf HA sphere <lightրkballQ energy0<):R@=@:RnUO?-PHnUThis is a beautiful shimmering ball of energy. Your skin tingles as you approach it./NRnQ| =|UO?-PHn( md P0.:2.AA@2/N/NbRnQ| =|UO?-PHn( md P0.:2.AA@F/N/N RnQ md P0.:r@\07The sphere is all energy and light. It can't be taken.d P0.:@\/N/ md P0.:r@\0RA=A2UO?-PHn(A2/N/Nt0.2H-@,UO?-PHn, m <&0<$keyE0.md P0.:r0RA=A0UO?-PHn(0/N/ 0.0H-@  This is an old wrought-iron key.&2.AA".@+RnQ:/-dN2UO?-PHnN"/Nh .ސ-@BUO?-P?</.N /NDUO?-PHnAB/N/N*0-&@;0-&@+0-&".ޒ@+0-&@;>0-&@;<UO-P?<BN /N-| |,UO?-PHn,A/N/NUO?-P?</.N /Nz0-+@~/-~HmNYO?<Nd+_/-HmHnHzHm\HzHmHz?<NXO?<Hn  beautiful _harpB 2/-dN2.g4UO?-PN*/NOA\/?-T=_ZJnZ This is an ancient harp fashioned of ebony and strung with silver. A carved dragon coils about its base. The vibrating strings echo your voice and every movement. It is very lovely and very precious. what file? Output of Crunch File cancelled.NVNqNqFThere is nothing left of the harp but a pile of splinters and strings. n/UO?-9The harp is anchored to the pedestal. It can't be taken. _\ONTESTERR 1. Sorrgolden2J@g applesP apples//fruit NqNq/-\N: n!| UO?-P n]These apples are a deep golden color, shot through with veins of green. They look delicious.p -@p-@/-/-<"/-0.H0D2.2&4.AuVDJg`(;nl/-hN:~ =|UO?-PHn mh P0.loose oflockdebrises# mrubbleeNrocksge@passage?-PP0.@There are a few large boulders, but the rubble is mainly gravel, dirt and sand, along with some small rocks that have become dislodged from walls and ceiling. HnA:/N/N0.:H-@UO?-PHn mh P0.@/N/NdUO?-PHnA8/N/NCThe lock is severely corroded, but it looks like it may still work./-`N:UO?-PnA@/N/N>.@p@m=@@UO?-PHn m` P0.<@/N/NUOblackstonezyglyxEword ` P0.<. A@/N/This is a small round stone, deep black in color and worn smooth by the ages. A single word carved in ancient script on its surface seems to glow in the dim light of the tunnel. Hmm... This must be a magic word. The stone says, "zyglyx". -PHn mdP0.:@/N/NUO?-PHn md P0.:@/N/NUO?-PHn md P0.:@/N/NUO?-PHn md P0.:@/N/NxUO?-PHngoldDD@@buttonlabel18:UO?-PHnbuttonsQA@/N/NRnAA little sign on the gold button says, "Press this button first."RnQ| =|UO?-PHn md P0.:2.AA@F/N/NRRnQUO?-PHnA:/N/N00.:H-@UO?-PHn md P0.:@\/N/NUO?-PHnA6/N/N0.6H-@O?-PHn md P0.:@\/N/NUO?-PHnA4/N/N0.4H-@UO?-PHn md P0.:A/N/NbRnQ0/A bell tinkles meclimbNNVgoatYou limb down te ladder thoug a darkYou are able to climb high into the upper branches of the tree. From there you see, off in the distance, a small dark passage to the east. You climb back down again.This door leads to a long hall ined with niches containing golden urns. As you step into the hall, there is a strange twist and tingle. You find yourself in an office.You get a glimpse of a long hallway, then a brown robed monkrushes up to you. "Hey there! Tourists aren't allowed in here!" He ushers you back to the temple.The door leads to a broad stairway b[When you enter the hole you find that a large tunnel eads deep into the roots of the tree.wn the resulting hole. The flagstone falls back into place.As you start to descend the ladder, you hear"You are much too large to do that.ys "ladder" and thee is a grating sound. Someone is climbing up! You step quickly away from the flagstone hole. 0/The ladder retracts behind you as you climb it.The path winds downward through fog and mist. It endsbefore the entrance to an old mine. A battered sign says, "Temple of Goth Property. Keep Out." It looks abandoned, so you go on in.ladder throug a dark concrete shaft that leads eventually to an ementerN"_goğ&clearzsearch$::moved$;sdigly$<  [When you enter the hole you find that a large tunnel leads deep into the roots of the tree. away, you discover a carved panel set into the wall of the passage. a strange twist and tingle. You find you"You are much too large to do that.mpse of a long hallway, then a brown robed monk rushes up to you. "Hey there! Tourists aren't allowed in here!" He ushers you back to the temple.The door leads The path winds downward through fog and mist. It ends before the entrance to an old mine. A battered sign says, "Temple of Goth Property. Keep Out." It looks abandoned, so you go on in.you start to escend the ladder, you hearfootsteps below. A bored voice says "ladder" and there is a grating sound. Someone is climbing up! You step quickly away from the flagstone hole. 0/The ladder retracts The rubble is particularly loose against the western wall. Clearing it away, you discover a carved panel set into the wall of the passage. bell tinkles merrily as you enter the shop...You limb down the ladder throug a dark concrete shaft that leads eventually to an empty room. The ladder retracts into the ceiling after you step off.golno /pushpressmovesello /Thi door leadskThe clerk quickly backs away from the counter. "That treasure is contaminated with moss! It's worthless."get a glimpse of a long hallway, then a brown robed monk rushes up to you. "Hey there! Tourits aren't allowed in here!" He ushers you back to the temple.The door leads to a broad stairway b-It says, "Two of the buttons are mislabeled."he flagstones paving the plaza an disappear don the resulting hole. The flagstone falls back into place.As you start to descend the ladder, you hearfootsteps below. A bored voice says "ladder" and there is a grating sound. Someone is climing up! You step quickly away from the flagstone hole. 0/The ladder retracts behind you as you climb it."It says, "Don't pick the flowers."b$(enter$)>0/A bell tinkles merrily as you enter the shop...You climb down the ladder throug a dark concrete shaft that leads eventually to an empty room. The ladder retracts into th ceiling after you step off.golno /pushpressmove This door leads to a long hall lined with niches containing greadggoyd$(0to the hall there is astrange twit and tingl  -It says, "Two of the buttons are mislabeled."ushes up to you. "Hey there! Tourists aren't allowed in here!" He ushers you back to the temple.The door leads to a broad stairway b,Brushing side the moss, you open the chest.the flagstones paving the plaza an disappear down the resulting hole. The flagstone falls back into place.As you start to descend the ladder, you hear1You can't"It says, "Don't pick the flowers."cked. there is a grating sound. Someone is climbing up! You step quickly away from the flagstone hole. 0/The ladder retracts behind you as you climb it.gofch"_look$&climb$(enter$)>0/A bell tinkles merrily as you enter the shop...You climb down the ladder throug a dark cncrete shaft that leads eventually to an empty room. The ladder retracts into the ceiling after you step off.golno /pushpressmove This door leads to a long hall lined with niches containing golden urns. As you step into the hall, there is a strange twist and tingle. You find yourself in an office.You get open|+_NNlong hallwa, then a brwn robed mok rushes upto you. "H,Brushing aside the moss, you open the chest.o a broad stairway b}When you press the gold button, a painfully high piercing tone fills the air and echoes through the room. The harp shatters!one 1You can't open the chest. It seems to be locked.d the ladder, you hearfootsteps below. A bored voice says "ladder" and there is a grating sound. Someone is climbing up! You step quickly away from th flagstone hole. 0/The ladder retracts behind you as you climb it.goftch"_look$&climb$(enter$)>0/A bell tinkles merrly as you enter the shop...You climb down the ladder throug a dark concrete shaft that leads eventually to an empty room. The ladder retracts into the ceiling after you step off.glno /pushpressmove This door leads to a long hall lined with niches containing golden urns. As you step into the hall there is a strange twist and tingle. You find yourself in an office.You get a glimpse of a long hallway, then a brown robed monk rushes up to you. "Hey there! Tourists aren't allowed in here!" pressNGN^Nutouch!feel"rub$# to a broadstairway   }When you press the gold button, a painfully high piercing tone fills the air and echoes through the room. The harp shatters!descend the ladder, you hearYou are your normal size again. says "ladder" ad there is a grating sound. Someone is climbing up! You step quickly away from the flagstone hole. 0/The ladder retracts behind you as you climb it.goftch"_look$&climb$(enter$)>0/A bell tinkles merrily as you enter the shop...You climb down the ladder throug a dark concrete shaft that leads eventually toan empty room. The ladder retracts into the ceiling after you step off.golno /pushpressmove This door leads t a long hall lined with niches containing golden urns. As you step into the hall, there is a strange twist and tingle. You find yourself in an office.You get a glimpse of a long hallway, then a brwn robed monk rushes up to you. "Hey there! Tourists aren't allowed in here!" He ushers you back to the temple.The door leads to a broad stairway 8_8 eatNNH|playcx N4_ rThe apple tastes wonderful. But it makes you feel strange. You suddenly notice that everything looks very large. playing Adventure! You scored 45 points out of a possible 700. ] You are your normal size again.re_ u t_L             _         4^ 1re!- l! J_ (^3@3j7ހ1 D_ D_<$:h..//0VfpushNfpull0-R@turnl NNtouch?<saych$fnil.   sWhen you turn the knob, the carved panel slides away revealing a perfectly square brightly lit opening to the west../56FG.6F..//0TUghUVf I only see piles of rubble here./&.*&bp+%&bcop,$%cdno8$%cdno9%&bcop:&bp to AdvenWhen you touch the sphere, a surge of energy rushes up your arm. The horrible plague of moss withers and flakes away. You are moss free!@Tdhh`xx``When you touch the sphere, a surge of energy rushes up your arm. A feeling of well-being and health washes over you. You feel strong, hopeful and joyous.&5'(lFor a shining instant, your mind and eyes become crystal clear. You discover an hidden doorway to the west.+X,_&( IV!<<ZSaveFor a shining instant, your mind and eyes become crystal clear, but nothing else happens. Maybe it's not a magic word after all.QuitNS 4E pickhNN[NtakehNN[ -getfNNtouchet8movefsearcha  When you reach to pick a flower, the bed of moss from which it grows quivers. Strands of moss attach themselves to your arm. You can't get them off!(4)WL@" H000Score:LXe*cX\+c+X,$ bsWhen you turn the knob, the carved panel slides away revealing a perfectly square brightly lit opening to tWhen you reach to take the treasure, the moss that envelops it quivers. Strands of moss attach themselves to your arm. You can't get them off!there is a grating sound. Someone is climbing up! You ste quickly away from the flagstone hole. 0/The ladder retracts behind you as you climb it.When you touch the sphere, a surge of energy rushes up your arm. The horrible plague of moss withers and BEvery bone of the skeleton that you touch instantly turns to dust.limb down the ladder througWhen you touch the sphere, a surge of energy rushes up your arm. A feeling of well-being and health washesover you. You feel strong, hopeful and joyous.ssmove lFor a shining instant, your mind and eyes become crystal clear. You discover an hidden doorway to the west unlock""putstudykle concentratdigA nilA  $ The lock is very corroded. After jiggling the key and applying some force, you hear the tumblers click. The chest is now unlocked.The door leads to a broad stairway ]  ] 4You can't unlock the chest. You don't have the key.  y]  u]  y] ur_Have a nice day.]-[^ ng to the soutThe lock is very corroded. After jiggling the key and applying some force, you hear the tumblers click. The chest is now unlocked. echoing place. On the post is a sign. It says, "Thieves can't lea$What do you want to do with the key?ure!_  =H8PL$?$?t gDigging at the soft crumbling dirt and roots, you discover the remains of an old passage leading south.you for playing Adventure! You scored 45 points out of a possible 700. p-$?$?kYou dig and dig. Great piles of dirt build around you. But all you succeed in doing is enlarging the room.u for playing Adventure! You scored 45 points out of a possible 700.  c ^ mosse curre  l the mrble wall t the west m<dxeYour arms and legs have become somewhat green and fuzzy. It looks like moss is growing on your skin!^The beautiful music of the harp echoes through the chamber. As you play the marble wall t[The moss is creeping toward your head. You feel weak and your vision is beginning to blur.`w#u`w#[`w#%m d `w#+4`w#V\4Moss is crawling up your arms. It burns and itches.$c@XPL`UUUUD`  @ HHI think you've about had it. The moss has almost covered you completely. You can't breath. You can barely stand. Better do something quickly or you will soon die a gruesome death.ikeICN#4YMoss has begun to cover your back and your legs. You are being slowly covered with moss! )f@Home(a.Pg{Well, that's that. The moss has covered you completely. You've been digested into a writhing mound of moss. You're dead.jbx!2eXtr2DM012SETC2BnHq2NavC2QD992PIT 2UPIT2EdF! playgoteryWKS3&4D0232MMTE3>DPS3JPJ3D3VBW0B3b The beautiful music of the harp echoes through the chamber. As you play the marble wall to the west melts away revealing an exit before concealed.PO4STO14MPNT4FAFO4Scav4Vass4LAYU49The beautiful music of the harp echoes through the room. Dp5BKJH 5NLEBf5ZR2im5fNONE5rrSCR5~SDWN5DOOM5SSRA5muU05DCCZ5BRKL5HABC5TANK5BUGS5SNAK5SBUB6COPT6BID6CSID6&ZGRV62MIL16>MPRK6JI}r86VBlob6bMIKE6nMIKA6z62rX6TRIP6Watc6CONC6JRM!6DALK6BOB36KWIN6HSTL6Phrz6RVRS6THNK7 TreK7WEBR7"WHBB7.TDED7:MPHP7FAEDP7RMMPB7^Atkn7jSHOW7vTHRW7SHD17VANL7WiFM7JRSP7LEVN7MCS17RRYD7IWRT7EDIT7CLEA7FTRX8MWR18RMRT8MAXW8*MCOM86MEDT8BSLIC8NXXXX8ZRGPs8fSPDTrRGPt8~TALT8CECL8VEW18YOAP8LIBR8ICNX8ImAk8WALT8LICN8VIR8MSNP9ME869oaSS9GANr9& 92WSTA9>PRVW9JPyro9VRem?9bcolr9nmacs9zCdTH9sysc9apFt9SDa9CEKM9DSH19FIXT9MFIM9FLdr9Cach9KEYC9keyb: WF :mime:"wmap:.cdsc::mous:FMoir:RIWRX:^LWRT:jprmt:vCELN:soun:boot:dMob:MACS:ttxt:THK+:MA takeJDM1JMM:FCMT:LNCH;6KEY;BBKPR;NVYEW;ZBBR;fRYPT    A key was hidden under the harp!S;SIT!<F$V$v$<$3$ O"$ t7$$V~K$|$V$: $Q$ }$~$XSP$!$"!$%1&$*!$2x$4x$C&!$D_Oo$K $M[Gg$Nv1$QeS$S42$Yq?$\0q$^pb$_$`8$cB4$d{$eR$f $jT+4$k$mv$p- u$qf4$v/$x4#$yms $z$|&$F<$9!$S $pj$AV$z0D$$d$<AD$u$9$,"$ex}$U$b$q$I$C$Z$ ,$D C$}C$BJ$ $?l$R$a$/RD$h$<$CZ$!L:$h$$<9$uF$uu$^]$7b$%$r$:$2D$kt$Ƥh#$x$-C($fCpress$'k&(OaYҚ`,6%    vWhen you press the silver button, a crystal chime reverberates through the hall. The harp is freed from the pedestal.-$zJ$L$HY$1$P;$f4$ $$($x$$8i$ $hF$)a$ Bg$ *>$ zp$,$$j#$9$$C8 $|$L$ $"l$#9$$.$&Or$'P=$)! $*e$,T,$-Kf$.n$0($2 4$3F=Z$5vK6A $8$9Ar$:zf$;/$<qc$>%l!$?^;$@Z$A>5$C H$EYjG$HQ$Ig$K2X$Lk $M),$N\$S[$V`"$W1x$Y4T$Zmr$[\$a;`$d?$e#m$jY`$tJ8\$| $}J$~2R$$$ED$~[$$ x$@@G$$G%$J$Op$'$r6$(%m$$?,@;$I2$$Mu$Qpresser 1.0$D$$1$5$   When you press the bronze button, a painfully high piercing tone fills the air and echoes through the room. The harp explodes!$+]Q$/"$3I$|$ $!z#T$$S$%{CL$&B$'[^$($)9$+ -$,$g$-(>$.,g3$/0xi$04$186$2$3%p$5c^$6g$7k<$8oR,$9sz$:w6]$;{f$< |$=me$> $?*f$@p$Ak$CP5$D-$Eb7$F2e$G $H,$I?$K= $LA$M+p$NQd$Ou=$P7Q$R% $S=n$T6$Um$V#$W+$XP`\0-mo*HmNbX/Hy*HnNFO HmNjX`(HmNbX/HyFHnNEO HmNjXHnNjXHyb/HydHyfB?<#(BHx| _-HHm/.NP/.?<Nv*TBHn nn/./.0.N:: p@`0N.N,NHnt/-s mHh(/.s`p@N^NuENDGAME NVB?<@BHx| _-HJfp`,?-xHyhHnNDO /.?<HnHnHnꩍHnNjX/.//.?<Bg?<~Hm/.NP/.HmHn nf/.?<HnHnHnꩍ/.Hn꩐HnNbXHnHyl/NRO JnnD?<?-xHypHnND"O HnNjX/.//.?<Bg?<~p=@ ng nfT/./. nf;nxN^NuGETLASTMNVBu 0mbxHnt/-s0-HAXJg4J-g0-HAXHmh/`0-HAXHmh/KRm0m H@;@/.sBu +@N^NuCHECKFLANVB?<XBHx| _-HJfHytN /NfX`l . fJ-f\BgNM2T`P-gF.HN:146$BgN`T`"?<N`T`?<N`T` ?<N`TN^NuHANDLEKENV .fJ. N^NuHANDLEACNVHnt/.s .f/." nHhN J/.#/.sN^NuUPDATEWINV0-N:D@<.6N`,Nj`&pmJ@VDH?/-NX\` /-NjXN^NuHANDLEANL"0/ S@l `WJ gJ@mRB`Nu o  g g  m  oR` NuL JfSfNu o/ pfJg`f SNuNNuL fJ(f !HNuNNuL fNuNzNu o"/Jg"AJgSg`R` NuNNu oJf SNuNNuL 2/ oJfSSAWJ(gBNuLB@2/ o g !H` SAgJ(g`NuL 2/ n`gSAngSAgB`Nu o"/pJg"AfR`f NuNrNu o/ fJgp` f S@Nu o/ pgf `Jf SNu o"/pJg"Agf R`Nu o"H/ gf `Jf S@Nu o"/Jg"AJg SfR` NuNNuNVBHyICN#?. _ N^NuGETICN NVBnBnp =@=@/. N" n -P-n nA-Hp=@=@AC AC Hn mHhHn/.?<BHn mHhHn/.?<B/. N*N^NuPLOTICN NVB. n 0N:b^ n (HH@p@ .0m .9o .g . fB.` . g .f np0.N^ _O NINTFILTENVBn`NBg?( B/.+ _-HJf0.N^NuGETMINDENVJ-gN @^DH;@`Bm mBg0(@? m?(Bg mBg0(@? m?(Bg?<( m?(Bg?<˨?<P m?(Bg?<˨ m0(@? m?(Bg?<˨ m0(@? m?(Bg?<˨J-gJJmgDHn mCA""n?<HnHm~?</-Hm~Hn` /-Hmv/- m0(@;@fBmh0-h^@;@l0-f@ ;@jAnCf Hmn?<!BgAvCf Hmv?<)BgA~Cf Hm~?<IBg m0(@;@ m;h0-_@;@0-@ ;@AC Hm?. `J. fp `p0? mNTSGJGl.N^NuNV/0mJ//.NJ-@Jg /.NX0mJ//.NR> G l 0@0H`-HHG? mNT.N^NuNVH..|`RF0mJ//NJ.Jf0LN^NuNVn =nHn/.Hn?< n =n/.Hn/.N/.NbXN^NuNVH8$mHmN XJ@gp` Bm nX(P&nJ. g &S` %f B.B.B.B.B.B.ARHN*-"0.+6 B#F*Jp@B.`J.WDH@`p@B.`J.WDH@`p@`:8T`*S-L 9n 0mHnNnXH`p:8(nv .WDH@Jg$R *f6TR`-LHnN.X6(n %f@J.g?<%NT0S@?BgNX`0S@?.H?NX?<%NTR` AR lWDH@JgAR hfARHN* 6dputoxx|XcpBsfeEgG J.g-SX-nJm`$=ST0n-HJnlp@ .D-@p ;@J`p;@J`pW@H`p7@Hp;@J dgJ.g-SX` p0-@T/.NX<J.gJ.f J.fJ.g* df$J.g ?<-NT`J.fp `p+?NTSD og Xg xf0J.g*?<0NTSD Xf ?<XNTSD xf ?<xNTSDCo0F `02@?.H?NXFo0F?.H?NX/.NXJ.g df2J.g ?<-NTSD` J.fJ.gJ.fp `p+?NTSD og Xg xf0J.g*?<0NTSD Xf ?<XNTSD xf ?<xNTSD0F??<N4X0FJ@o0F@/.NJXF?BgNXJ.fJ.f J.fJ.fJ.gl dfdCo0F `02@SA?.H?NXJ.g ?<-NT`J.fp `p+?NT0F??<NX/.NX`J.g og Xg xfpx ofxCo0F `02@D?.H?N:X?<0NT Xf?<XNT xf?<xNT0F??<NX/.N*X`Fo0C `02@?.H?NXJ.WDH2F??NX/.NX`J.g?NT0S@?BgNX`0S@?.H?NX?NTT`-S nRH<XJ.gCo<FJElzJ.f`& nRH?NTSFJFl?BgN$X`,?.H?NX` nRH?NTSFJFl` -@/NX<XJ.gCo<FJElzJ.f`& nRH?NTSFJFl?BgNX`?.H?NX` nRH?NTSFJFl`|AC 0G J.fvHn??<HnNO -@A-H=|HnHn?< m.(n &n<.zvBBJGfSG mLN8 @fdpp`0F//NB0nЈ*p mLN8 @f `V Ff& Dxg DXfJn2Jf. mLN8 @fp`(vHn??NPJg0SGJ@f? mPNT LN^Nu/ mLN> @f?R 9n 0l(0LN^Nur`rNVH?0Lp ̸ F"E|G`,"DE(0~9prtvzB$N005|11N g g g +g -fR)af 0e b|aV` .gtJDjN 9c JDj0N|ae 9c .frae`b mn RARR`RAJjg`m 0NuRJjHN|age 9cJDj2`|SA`|SAaeT 9c,S Eg ef>a +g -fa 0e 9b|@ @ E e:< `JjSJf JDj*40`$JjDE 10 f S gRE`BA3E"n2 n"nHDL N^N g|SvINgd NfVvANfNvNN|fF$N40400,a (f.vae 9b @@` )faVXaPX4` F`6vNa(fvFa"f4I|JjfL`lD`C 00.AB(H0.A0.C0) HBHx-HN _"n#H g0.A0.C0) H0.C h1i0.A0.C0) H0.C h00.A0.C0) H hB0.A0.C0.E0* H!i`<0.A0.C0) HB0.AB0.A0.C0) HB-H̩u  n!@r0.A0.C0) R@HH@1@ `P0.A0.C0) HB0.AB0.Ap@H0.D@=@Rn nmJ-g0-m(0-mNNBu +@$_N^NuFIRE NVHnt/-sJg6 n?( n? n-h` n?( n? n-hJf/.sN^NuDRAWSHOTNV/ Hnt/-sBu B-@HnHn?<0HyHn?<AC 0Bn`0.AJ(Hf0.AJgZ0.A0.C0.EC*-Y-Y=YHj4Hn?<C-Y-Y=YHn?< 0.CHi4Hn?<C/!/!?!Hn-HNO=|HnHn?< HnHn?<HnHn?<HmHn?< HnHn?<HnHn?<Hn?<HnHn?<  n0(n=@0.A0.CE-Z-Z=ZHn?< 0.EHj4Hn?<E/"/"?"Hn-HC>-IN O=|HnHn?< HnHn?< nHPHn?<0.AA4-X-X=XHyHn?<HnHn?<HnHn?<Hn?<HnHn?<  n0(n=@0.A h0.hf0.A h0.PgBHxN _-H g0.A0.C h?( i??.?.쨑 n1n n0 nB0.A h!n0.A!n`?<0.Ap@H0.ABg h//-Jf0.A hJhl0.A h0mbn0.A"m h0(io0.A h0mnf0.ABg h/Hm^JfD0.ABg h/HmJf"0.A"m0)@ hPl0.Ap@H0.AJ(Hg0.ABg h/Hm^Jf0.AJnWDHC"i h0Qf40.AJnWDHC"i h0(ig"0.ABg h/HmJgT?<NT0.ABg h/Hm^JgBgN~TRm`?<NnTRmNp@`40.AJ(Hg ?<NdT`0.Ap@HRn nm\J-\g J-gB-J-ff/-pBg]J-fJ-gPJmfHJm(g`>NJ-fRmv0-vmxgJ-gJmf Jm(fN`N mHh(/.s$_N^NuCHECKBALB?<BHx| _+HJfp`Hm/-N>P/-ҩ/-ҩNuJg/-ҩ/-ҩBNuNVB?< BHx| _-HJfHyNX?<p`BN /HyHnNrO /.?< HnHnHn쩍HnNjX/./Hm/.NP/.BHn nfN,/-NNX/-NXNuNVJmgBJgN"_ / 2Nu/xN p/ 1 Nup`/@N/x0NJxj* x0C t e"Q!"B"x" ѩ NucNu"_ .N"_ _N"_ _)N"_ _*N6N" "_ _."ANn"_0F.N"_0/ JgF`F/HNue/@Nu/xNu oCpf  Nu op`QB /Nu Bx J,/

HG0HG2Nu$&≲b2.HGHG҇ebDNuS@`~Q ^Y/? g&@Y/ & (RGGRG:`Y/? gRGU/0fP ^EGf @/ gZ/ (S K)pNu  gB(H/ g6 K `Y/? g"RG @ </ P"L.Qڙ&LpNu KJEf#NuNupJxj`"H+Ih0PACDtQtqVwE<~~~~~~~}}}}}}}}}}}}}}}||}}}|}}}|||}}|||}}}||||||||||}}}}}}|~~~~~~~~~~~}}}}}}~}~}~}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~||{{{{yyyyyyyyy{{||~~~~~|{{{{yyyxxwwuuutttuuuuuuuuuuwwuuuuuuuuuuuuuwxxy{{|~~~|{yyyxxxwwwwwwwwuuuuutttrrrrttuwwx{|~~~||||||~~~~||{{{y{{{{{||~~~~{yxwtrqpnmmmnnpqrtwy|~|ywurqpmkjiggggiijmpquy||xurpmkjiggggiijkmmnpqrtuwxyyy{|~~{wtqmjgfcb``___`bbccdgiijmnpqrtuwxy{|~~{ywtrpnmkjjjjjjjjkmnpqrtuxy|~{xutrpnmmmnnpqqrrtttttttrtrrrrtttuuuwxy{|ytqnkkkmnprw{|{yxwutuuwx{~~|{{ywtrpnmkjjigffinttrnkjjjifc_\YXTQOMKHGDA@??@@@@ADGHKNQRTUVXXY[[\\]_``cdfijmnpqtuwxxxxxxxwuttrqqpnnmkkjjjjijjkmnnpppppppnnnnnmmmmmnpqrtwy{~|yxwuuuuutttrrrqqpnmmkjggfcb`_]\[YXVUTRRQQQQRRRTTTTRRQOONMKJHHHGGFFFDDCA@??==<:::::<=@CFKNRV]cgmqux|~~~|||~~xtpmigdddddfgijknqruwxy{|~~~~~~~~~|{yxwutrqpnmmmmmnnpprttuuuutrpnkigd`][YVUTRQQOONNNNOQRTUVY[[]]]_______]]]]]]]]]__`bbcddfggiiiiijjjkkmmmmmmmmmkjigfdcbb`````bcdfgijknprtwy|~{xwurpmjifdb_\[XVURQQONMMKKKJKKKMMMNNNOOONNMMJHGDC@?<:86321//.....//1235689::<=?@ACCDFGHJKMOQTUX[]`cfgjmprtwy|~~{xwtqpmjifc`_\YXVTQOMKJHHGGFGGHHHJJKMMNNOOOQQQQQRRTTVXY\_`cdgjknpqtwx{~|{xwurqppnnnnnnpqrttuxy{|~|{yxwuuutttttttttrrrrqqpppnnnmmkjjiiggfffddddddfffggijjkmnprruxy{|~~|{{{{{{||~~~||~~~{xuqmjgdb`__]\\\\\]\\\\]]_`bccdfgijkmnprtuwxy{|~~~~~~~||{{{yyxwutrpnmkigfcb`_]]]\]]__`bcdfgijmmnnnpppppppppppppppppppqqqrrtttuwwwxy{|~|{xwtrqpnnpqrtuxy{|~~~~||{{yyxuutrrqpnmkkigffdcb``````````bbccddfggiiiijjjjiijiijijjkmmnnnpppppqqrrrtttuuuwwwwwxwxy{|~~~|||{{{{{||~~|||{yxxwuutrqpnmmmkjjjjjjjkkkmmnnpqrrtuwx{|~|{yxwutttttuwwxy|~~|{ywutrpnmjigfddcccbbbbbb`__]]\[[[YXXXVVUTTTRQQOONNMKKKKJJJKKKMMNNNNNOOOONNMMMMMMNNNOQRRTUVX[\]_`bbbbbb`__]]]]]__`bcdfgijkmnqrtwx{~~~|yyyyxyyyyyxxxxxwwwuuuttrrqqpnmmkjiigfddcbb```_]]\\[[YYXVUTRQONMKJGFDC@?=<:8652/.,*(%$! !!#$%(*+./23689<=@ACFGJKNOQTUX[\]`cfgjknqtwx{~~{yxuttrqpppnnmmmmmmmmmmnnnmmmkkjigfdb`][XVTQNJGDA?<:865211////1111235689:<=@CFHJMORUX[]`cfijmpqrrtttrrqnmjiigfcb``]]\\[YXXXXYYYY[\\]]`bdddgijmpqtwy~~|{xwurrpnnmmkkkkkkkkkkkkkkkkkkkmmmmmmmmkkkjjjiiiiiijjkkmnppqqrttuuwxxxy{{||~~~~~|||{{{yxxwuurrqpppnnnnnpppqqrtuwxy{~~||{{yxwuuttrrqqqqppqqqqqrtuwxy{y{{{yyxwuutttttttuuwwuuuuuuuutttttttttuwxyy{|~~|{{yyxwwwuutttrrrrqpnnmmkjigfffdb`]]]]]]]]_```bdffffgijjkkmmnppppnnnnnmmmkkkmmmmmmnnppqrrtwxy|~|{yxuuttrqppnnnmnnpqrtwy|~|{yxurpnmkiigffddcdddddffijknqtx{~~||{yyy{{{{{{{{{{yyyxxxxwwwxxy{|~~|{ywurqqpnmkjjiiiiiiiiijjjjjjiiggggffffggijkmpqqtuxy{|~|{xurqnmjigffddcdddfggijmprux{~|{yyxwuuuutrrrrqqqpppppppqqrrrrttuuuwwxxy{|~~~~~~|{yyxwwuuttttttuuuuuwxxxxxxxyyy{{{|~~|yxutrqpmmmmkjjjjjiiiigggfffffddffgijjkmpqruuxy{|~~~~||{{yyxxwwwwuuwuuuuuuutrqqpppnnnnmmmkkmkkkjjjjjiijjigggffddcccbbb````_____```_``bbbbbbb````````bccdfgijjkmnnppppqqqqqqqqqrrqqqqqqqqqpppppppppqqrrrrrtuwwxy{|~~~||{|{{{{{|||||~~|||||{yxwurqnmjifcb_]\[YVVVVVVUUUUVVXXY[\]_````bccccccccbbb```____]]]]\\[[[[[[\]__bcdgiknprtuwy{|~~~|{yxwwutrqppnnmkkkmmmmkkkmmmmkkjjjijiiijjjjjkkkkjjiigffccbb``______``bbbbccddfffffggigiiiiijjjjkkkkmmmmnpqrtuuxyy{|~~~~~||{yxwwuuutrrttrrrrrrrrrqrqqqqqqqpqqrrqqqqrrqqppppnmmkjjigffdcb```__]]]]]]____`bcddfggiijjkkkkkkkkkjiiigggfdddddcccccccccddfgggiijjjjkmmnnpqrruwxy{||~~~~~|{{{yxxxwutrrqppnmmkjjiiiiijjkkmmnnnnnnnnnnmmmmmmmmmnnpqqqtuuwwxyyyxxwwutrqqpnmkkjjigfdccb```____`bbcdfgiijkmnpqrtuwwxyy{|~~~~~||||||||||||||~~~~~~~~~~~~~~|||||{{{{{yyyyyyyyyyyxyyyy{{|~~~~||{{{{yyxwxyyxwuwwwwuuwxxxxxy{{{{yyyxwuurqpmkjigffdddddddffffgigiiiiijjjjjjjjkkkkkkmmmmnpppqqrrrrrrrrrrrtrtttrrrrrqqpmmkjigffddcccccddffgijmnpqruxy{{~~~~~~~~~~~~|||{{yyyxwutrrqpnmkkjjjiiiiiiiiiigggiiiiijjjkkmmmnnpppqqrrtttuuuuuttrrqqpppnmmmmmmkkkkkjjjjjiiiggggggggggiijjkkmnnppqqqrrrttttttttttttuutttttrrrrrrrqqrrrttuwwxxyy{{{|~~~~~~~~~~~~|{ywwtrqnmkjigffddddffggiijjjjjjiiiggggffddffffddfgggggggggggggggggggiiiiiiiiiiiiijjkkmnnppqrttttuuuwwwxxxyy{||~~~|||{{{{{{{{{{yyxxxwuutrrrqppnnmmmmkkmmnnnppqqrrttuuwxxy{|~~|{yxutrpnmkjiiggffffffggiiijkmnnqrtuwxy{||~~~~~~~~~~||||{{{{yyyxxxxxxxxyyy{{||~~~~~~|||||||~~~~~~~~~|{y{{yyy{{|~~||{{{yxxxxxxwwwwwwwwwwwwwwwwwxxxxxxwwwwxwwxxxxxxyyyy{{{||~~~~~~~||{yxxwutrrqqpnmmmmmmnnpqrtuwy{~~~|{{{yxxxwwutttrrqqppnmmmkkkjjjjkmnpqrtuwxy{||~~~~||{{yyxwwwuutttttrrtttuwwxxy{|~~~~~~|{yxxxwwuuuuuuwwwwxy{{~~|||||{||{{{{{{{yxxxxwwutttrrrrqqrrrrrtttuuuuwwwxxy{{{|~~~|{{ywuutrrqqqqqqqrrtttuuuuwxxxxxyy{{|||~~||{yyyy{{||~~|{yxxwwwwwxxy{||~~{{yxwuurrrqppnmmmmkkjjkkkkkmmmnpqqqrtuwwxxyyy{{{{{yyxxwuuttrrrrqqqqqqppqqqqqqqqrrrrrrrttuuuuuuwwxxyy{|~~|{|{yxwwwwwwxxyy{~~~|{{xwuuttrqqppppppnpnnpnpnnnnpppppqrrttuuwxy{{|~~||{{{yyyyy{{{||~~~||||{{||||{{||||||||||||||~~~~~~~~~~~~~~~~~|~~|||||||||||{|{{{{yyyyy{{||~~~~~~|||{{{yyxxxxxxwwwuwwxxxy{{||~~~~|{{{{{{{{{{{||~~~~~~~~~~~|||||{{yyyxxxwwwwwwxxxyy{{{||||~~~~~~~~~~~~~||||||||||||~~~~}|||||zzyyyyyyxxxxyyyyzzzyz|}}||||}}}}}|||zzyyxxxxvvvvvvvvuuuuuussssssrrsrrrqqqqqqooooqqqqqrrrrrrssuussuuvvvvvvvvxxxxxyyyyyyzzzzzz|||}}}}}}}}||zzzzzzzz|zzzz||||zzzzzzzzzzzzzzyyyxxxvvvxvxyyyyz|}|yvsrqonlkjjhhgeeeeeghjjjkloqruvvvusqooorsvxxvusssuvxxzz|}}}}|||zzzyyyyxxxxxxvvvxxxxvvvvvvvuuuvvvvxxyz||}}||zzyyyyyyyyyyzz|||}}}}}}}}|||zzzyyxvuuuvvvvxxyyyyyyyyyz|||||}}}}}||||zzzzzzyyxvvvuuvvxxyz|||zzzzz||}}||zyyyyyyyyzyyyyyzzzzyyzyxxxxxvuuuussrrrrrrrrsssuuuvvyyz||}|zzzyyyxxxxxxxxxxxyyyzzzzz||||||}}}}}}}}|||zyyyyyxxyyyyyyzyzzzzzz|||||}}}}}}}}}}}|zzyyxxvvvvvxxyyyz||}}}}}}}}}}}}||zzzyyyxxxvvuutttttssstttttttuuuuuuvvvvvuuuutttttttttvvvvvvvvvxxxxxyyyzz||}}}||zzyyxxxwwvvtttvvttttvvvvwwwwxxyyyzzz|||||z|||zzyyyyxxwwwvvvvvvtvvvvvvwwwwwwwvvvvttsssrrrrppppppppprrrsttvvvwxyyz|||}}}}}|z}z}}}}||zzzyyyxxyyyyyyzzzzz|z|||||||zzzzzyyyyyyyyyzzz||}}}}|zzzyxxxxxwwwxxxxxyyyyyyyyyyyzzyyyyyyyyyyyyyyzzzzz||}}}}}}}}}|zzzywwvvvvvvvwwyzzzz||}}}}}}||||||||||||||||||||||||}}}}}}}}}|||||zzzzzzz||||||}}}}}}}}||zzzzyywwwwwwwwyyzzzz|}}}}||||||zzzzzzzzzzzz||||||}}}||zzzywvvtsvwvtsttvvvwwyzz{|}}}|{zyywwwwwwwyyyz{||}}}||||{{{{{{{{{{{{|||}}}}}||{{zzzzzzz{{{|}}}}}}}}}}}}}}}}|}}}}}}}}}}|||{{{zzyyyyyyyzzz{{||}}}}}}}}}}}}}}}}}|||}}}}}}|{{zzzzzzzzzzzz{{{{{{{{||||}}}}}}}}||{{{{{{{{{||{|||}}}}}}}}}}|}||}}}}}}}}}}}}}|}}}||||||}}}}}}}}}}}}}}}}|||{{zzzyyywwwwwwwwwwwyyzz{{|}}}}}}}}}}}}}}}}}}}}}|||||{{{{{{{{{{{{||}}}}}}|{z}}}}}|{zyxwuutttttrqrrrtttuwwxyz{{||}}}}|||{zzzyyyyxxwxxxwwwxxxyyzzz{{||}}}}}}}{{z{zz{{{{{}}}}}}}}}}{zzzyyyxwwwwuuuuuuuuuuuuuuwwwwwwxxxxxxxwxxwwwxxxyyyzz{{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}{{{{{{{{}}{{{{{{{zzzzzxxxxwwwwwxxxxxzzzzzzzzzzzzzzzzzzzzzzzz{{zz{{}}}}}}}}}}}}}{{{{{z{zzzzzzzzzzzzzzz{{{{{{{{}}{}{{{{{{{}}}}}}}}}}}}}}}}}}}}}}}}}{{}{{{{{{{{{}{{{{}}}}}}}}}{{{zzzzzzzz{}}}}}}~~}}{{{{{{{{{{{}}}}~~~~~}{{{{zzxxxxxzzz{{{{}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}{{{{{{zzzzzz{{{{{}}~~~~}}{{{{{{{zzzzzzzzz{{{{{}}}~~~~~~~~~}}~~}}}}}}{{{{{{{{{{{}}}}}}}}~~~}}}}~}}}}}~~~~~~~~~~~~~}}}}||||}}||}}}}}~~~~~~~~~~~~~~~~~~~}}}}}}||||{{{{|{{{||||||||}}}~~~~~}||{{zzyyxxwwwwxxxyyzz{{{||}}~~~~~~~~}}~~~~~~~~~~~}}}}||||{{{{{{zzzzzzyyyyyyyyz{{||}}~~~~}}}~~}}|}}}}}||||}|}}}}}~~~~}}||{{{zzzzz{{{||}}}~~~~~}|~}{|}~}}}}~~~~~~~~~~~~~~~~~~~~~}}}}}}|||||}||}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~}~~~}}}}}}~~~~}~~~~~~~~~~}}}~~~|~~~~~~~~~~~~~~~~~~~~~~~~~~}~~~}}}}}}}}}}}~~}}}}}}}|}}||||||||||||||||||||||}|}}|||}}}}~~~~~~~}}}}~}}}}~~~}~~~~~}}~}}}}}}}}}}}}}}}}}|}}}}}}}}~}~~~~~~~~~~~~~~~~~~~}~~}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}||{|{{{{{|}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}|||||}}}}}}}}}~~}~~~~}}}}}|||||||{|||||||}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}||||}||}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}}}}~}}~~}~~}}}}}}}||||||||||{{|||||||||}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}}}~~~~~~~~~~~~~~~~}}||||||||||}~~~~~~~~~}}}}}}}}}}}}}}}}}}}}}}}}}||||||{{{{{{{{{{||||||}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}~~~~~~~~~~~~~~~~~}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|||~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{Q{+wE<}}~}~~}}zxwurrrtux||xtpmigdcddhkspY1@RV̡qZ18*1HVs¾NEfdT|OWv|jvqM4:@GR^m~~|~ug[N;(  %1?NW\bhlopqrrpomje^WTTW[`hpxþudXJ>6.'%# !$(+07=DKU^cgkljjiffghkouzwmryoouvy}yoe]VNHEB>:61-'" %+3;CLV`jt~ý|xtohbm|yuy~yvuvwy|ysmhb]XUSSPNNMLKJIGFDB?=;8520.,*)(((*+09@6+4?CL`y~vwwmebejou}ǹ|wussuwy}}plmiegc_^[SL?( (6>DJLIEA<4/,+)(,/15:>BGOW_eluz|~~}~jaw}Ѽo[^rpo|{|xmelqebgd\\\XVUSODAB<5459;>DJSZ`irx~~ytojea\Zc|lSIA<54EVM:ARZ`^aspQGLIDGKQV\cfhlorstxz}¼{pP:XX3Hse^ipqzĵ{qfbZG@8'"\ZcvxgGFqudp|}wcccdzshcWM>% "/?RkĺоglzpZJ>3=PPUbkt¾|vqljjijnpty{{uzvuqmie]E"<\QSi{{txx|zkXF5(*615AKS_ir{zpcUF5% .=L\p}wvwxrjw|yij|scM3 %/)5DMYgtֿ~o]L0 #"6[_g|kD4NYHUmkD:8$8/8I[rǿ|rknpj]\]G/11!/9@Xg`^gtpjssh\cc^amousWMZ[I;3;IFLW^fp||}|oz}®Ӽzz{pk]RR2$BUYWY_ee_YQKHAOURYafow`A*&CRY^_^_cfdbbZLVkrpaf~zzyz~~|~}vqlgeeegjnsy~ymv}lh}r_RD21GFGU`iv|reYSWVSQOMIEC@>>DFHMQWf|qwghieaWOSULE>. 0,5Ganf~~vlwys~ȽͶ®}~ywvuttw|qkwzxzzwuutrmif_SIB:2*!(0:FR^lwzpedaO4(3DS^emvu|ibuž|rj`QECA:9=?JWR^vwka\XE0:D8:FY{{zoR78RF=HOTkyoe[XUXVX^bfkpv{~{unf`[VQNKHCAGRTXbimsz~~wph_UI>620235:@EMXbeoy{tkbZTNKIHIKOSW]choty~}yvrolifdb_][ZXVUUU[][]\YWSNJIJE:59:6;DP]_SI608>6-8KKJ[oz~ysnie`\YURRRIDCFDFA7<@;;===>??@BCCDEFHLVXY]___^\[XTROMKIHIGHOZcgkqv{ukcYND=98=8+ *1?BEGJMQV`{kQ3/C@:IR[nsms~ɳɴn]du{pTAC4#6@LjfcfYQ_kegmnoqst~{wtld^WOKHDA@@BN\bmunaO>=@0#1ISPJC?CGIS\goiaw~rf_]`diq~~wrwxZKWdmwƽ|rf`f`J878=JNVbm||{lbabWSSTOPVSLJD@FNG55?CL^jljhe\SNKIHHLSY]_[SPPQUZaceksy}Ĺ|vqlgc`]ZZZ[]_acdfhhhrvuzypj_SQROKHB>@FINSW^gnppsvtrrponlkjigecb`][YXWUTTTUWX[^adhmpty}|rfkndbc`__^^^^^^^^\]]\`lidc\PHMSNIMX`_fnkdkqjc^[VQNJHDAKYYWbhkrx|Ͼi^kg[bimt}|xrh^YRJB?<:9;=?ABBBBCAAABCDEGGGHIJKHGIIGHJMOSW\agornlpttsx{~}ȿ|fbaglp~wne[POZ^WTUYZPHGLRXcouxvgZRKNQKNSVZ_chlptwz|~}xtyuppnljjjt{z|}ysnhb[TOLHFEDEHMSXX[_bhrwvz¸rhqzmXXdlvy]Wfl_cmpvtbF0  #-6+'  6Laqpela:C[Z`t}{ooskbQ37;8AJE5+9ZdW[hg`aptp{{suz~|~z{{~uhcb_SOZbaebahhe\Takrzip{~ysnjd`_\Z]``ZOB86=FMWcaX][F:??BKUdpogb^]]WOKJGFJMP^mu}wlaVVjicnuy~}}}~|}{uqV::??FRauzxqjm{ļ}sjheehjjmqpnrx~~{zz~{plkgdc_]\ZYXWVVVVXek_Z]`_ZUVTH6%-KR[pysj]J:03?DHD?CIFCB>72.(&(4CPcvyrlhc^ZVTRPPPSWZ^chlpy}skebflkov{}wqkfda]^]\]_`bdghjmoprsuvwyz|~}yvrqpoqx{y{~utskb`jronw~wrmdX[loecfbZUPKB60:JSakgbdltqilv|~sone\Z\`eo{Žytvwxyxtttuxumikkgehnprsuxxuy}}zvuustwwwy|}~l]XYWX^fny~}zz~}{|}~}ywwv{|xk`dquqopu}|wqld^]]XOLKA=DJLPW^]WSTSQOGBHKKQTX]afltyz|~}x{¸}~rhb\YVPJMZhnortqlfZNGEGHEGPUSRT[djpx{zyseXPG;4C@9@HQq~{wjbce`[\]^_ahlh^VOMPYafhkov~ø}~|~˽{xvofbchhegjlou{xlXGCJMEFO]\Ycmpuyurvyzz|~~|yyuplhc_ZXUTSSTVX\`dhmruu~{xuspnjhfca_]\ZYXWVUTTSTX_XORWWXZYXZ[[\\\\\[[\^^`ceilotw{~ƺ~}ywtrpnkhfda_]ZYWUUUPILMHGGFEGJIOVPB88826>BHRWNA:6656<>GJNYgfSFMURPZbdflw{pnstuxyv{umlicbfhffkoi`ZWNCAFFEB=99=HTSMSbf\UQJ?4+#(,0463=HQav{jnt}ľ~~}xukcipfdfebb`_]^ddZMCOOBAB>;;988??IVXVYZZVTRPOLLMLMNLLVgnjlz~|{|ɻȿ˺~|{~|vvpgmtuuutrmeWOQY`hhabjfYNGTXJKOMMNOQ^Y@D\NHONLLLLLMMNOOQRTUZbjqsja^\YXY]cluwtrosxz~~zuxztrrpnmljgfdb`_\[YWUSQPNLKIHGFEDEJICA;8A?;>?@CKKLTXZbf_Z^`__aeffjnkggikkpuxwy}½ƹypg^XQHC@=:9858BGKSYYWVSOH>?@?@JNPXc~ib_jwjjryoVMZcfokiuslq{̽Ÿzkp´bSbalpi|{o^MGWnwi[]jywddwsbdliipog]N<.('-03>QdmmjkstdViyjmuvyv`apdZ__]_adkoMCJIBCMXcrqsxvx|wuqt«sEI^j}to{pdspadi||vxrgbYB#4. /QrmfibVJ8)+5:7Jpyuy}wjZYc^Zgh^ctpjtxoiliZQZjzºÿymqzwloyz~wXPK:()=LLDOgvtu~|mcj~~udSJMZ\ZdnxĿneimqutiZNS__W]w|nmxjKSjUPa\IWWWmwwzle]LQkfjxv}mZNR_b_fwŭxw{sZNRY[ct{svnP;DUNSs|iVVef^\ab\YXVQLJORRSX_l|e^fozwnp|{sg^UOKKPV^luǻsfZJ:8@LVRO]jws|umcWPLHBAABBCJORWXZ`hjmt|{~xiltrz}fXPDKIEL[pkgokx|n\MIRbqyrd\`f]\s{gFReswm\MUrowʷȸzx}wpkihkosux|~~}zvx~wlcjqhgkjjlnwywxwtrnjhda^][[_d`RE??CDEIT`n{~ulfghddpx}î~iT\rpVM\kjhoyse\WVWW\elpuvoj`QG@7239>FS_dflswzrhixtmty~{k^YXWUX^bfjowzwuuw|~spuz|smnpvwamz|yimp||v}}qcOALc~|zmfhigefeb^Z[`hh]NFIOW\XU]gov}tcqmltrw|fly~zqptmffcZR]`Z_ftyy}{z{xkVMV[Zd{|rmoru~ſqkpps|qwyy{u~yontm\C,6Rgvoa`n~vr|rmqrlhkoh^WN@77>FEL]xqbj|urih}nchhi|~vjcVKOZ]YUU^lwuf`ahnv|sqqtywx|zŵqheZJNZSUdrx~yseQHFIKE:9:3(#!3E]edb\f}xgfryugK+.DG@BHGB=F[cckv|Ÿ}svzwe_vznym]VTTROQUZcnxxqswx|}wg^^__er{liqurnlnootwurpjb]]\\]dmsxxy}}xsmjjrưbR^nqjbXRYhvºzputqeK>L[_gxwkXPY^^enlho{liokVCE]g[OINeslrxrff|whhwzvo`ckbZ^_fvxnbRJLRVRKO[dmw~qbHDV`WNR[WLQ`n}yvy{ɿ}od\YVTOJGFM\cYKA>DKRYgwnU>4,&(DXW]jnmlgXJLVVOG<;OecX^v|nmul[`w~|z{|hXVXZcvst|||~woUFTdidkwz{~}~}urtn[HHPUYg~mX[neZck}~tdTKIKKHKQ]z{|vkgdcda]^erxnppbK9BESowz{qfflickxWBEGIUfzĹuip{{xz||~~pjrzfWTPMRZdsnXRae\_go~ulhmpkv{u~q[LIIJUfl`TX_]TPSZ`cemz|yuj`bkibewĹu{{zu[RUOKVdhbao}kime_hpkdb]QGIOPZpz]LYaeprmklnplecffb^cifdgn~ztpf_`db[UY]aju~zlagmmpxi[VURSYev}uk]Ybf`ds~}{|ww|}ws{Ĺwnllp{wqx|}͹p]SOMJJKQ[fnjkvzlZX]\\dpxxyzrbTPRRUaq~}{tgbdZHHUWS^swsnmib[V_mjn|phhfhnpprttsnmq||~{loqdZ^gjr}zz|rtzyxyte\esvwƻ~yusponnlijkkklmoprtvwy~{uqleabdbbhhhorojgd\RJGHIKNQRTXYZZY[_bfeZMJMQYco~{ofeddlvurtupjhqz||Ƚǽ{snqtpuvp~vq|}v~yn[A$)3$+Efifmm`VZ_cmzsnrspnpssmgffddfea_achkkhih_TXenfq}{zyxwxyww~~tjql_^^[SMVn||}ysnrtojjqwqkebfhhmrv}znkro[LKMA305HWemou{||~xqibcmodXQQVVPHGPURXlz}r[H@>><:DHNW\YZhz{p_QT^cnwljk`TSX_hqw~sdbo|}qhgoux{phjw}ynha\YVX^_WLDDFFHP[fuznrwurv|{slkmkgdda^dmrz{trvz|z}|yuszxttvx}iUKKKEDKV`gnwyqbPHIKNW`grfZ[[Zbpvtpstm^NKWh|}}wpqrswywwspqruxvplgcccabgou{|tplklov~}uqsy|}|xpmu{i^dt~~|}}}}ytv{~~}urmijg`]_`cdchqslcYMHPX]bl~~n_UQOQYhvzsokc]_eltxyuszztomoqqru}ztrmihifcemrj[U[_\WTQS^fd`i{}yoWB?JPV\]Z`qvh_equv~ysszû~wsspg^VPPW`dekuxolrz}tVFFFADPctxz~|skhjgdeggkvvopuvvw{zssvut|ytttuz}{}{wtjaclrvzxuqprsniikihikmoojea^YSSVX[`ejnqtuuuvvtnje_\__afhfhikostx{||}~wxzwv|x~}qeVLPX_py}|zxz}|}ujlv~~|ztqsx{zyyzxphktxrnqrlfefiox}tpnkloswzwtv{~xqllllmmpxvminw~|ywxwuv|yrkegmqsrv}~xu|}qilqy|{qmjilrtz~wphbbit~{ohghbWNNPRYakv|~vnhb]^cjs{|wqjc\Z[]_`ckqroottk_TQTX\^bkrv{~|wuy}|zy|~~skhfcgu}vpsusmhb[URRTZenrx}~{xtqomjebacehhhg_UT\dhs{roswutvvrwxric_`cgijq}~}{vtwypqvvrsy~wpruuvywpjc`emry}qe]YTOPZbhpy||ytogWIFJKMVcmrpllmjb^blkb]]]WOLWgswqleeks{|yvx~ÿrfgqxy½~lb``\UPPSUW\`ceghhggfgkr}~ofcccaaegfaYTX``XUTV]fe[TYcku~pcZSLRae`ft{yɽui^XWURRX]cegn}ǼueSE:5667;BJS_how{{|xutuvvx}}wqswz~yyzvmfbchov~~tg[WZ^doz{smpw|zobXVZbjqwyyy{~~~|xrmlfdktrkgflxzrrx~qd[Z]dp|~|xtqnlmptwxz}|wx|~zwx|}vrtvwwy|{tpnpstw{}}||~~uoljjlmov~~yo`SNRY]erynaZXZYZbnw}yyqlrtngjqpe\bnwĽzjb^^agkotz~~wlZ@6BIMR[rumg`VNLMLLNQTSQPQU`ir|{y{}{tppqqrsvz}{xy}ueP:3;9;>>>?GVchnx}zxyztjfoy~~wpke[TQOPPOJFLPOKHGFFILR]houz~{upjbZXXXWY]`ekputsuvvsmhjorw}{z|z|}wpkhc^ZWWVQT`ijmu{}}wmc]VOIGP\guqgebXPRXZZ_kx~yvw|}vponklkkmllpvy~}}ywussrnqy}~yz{xw|{uumdglnrutppw}|||}}|{vkfhjdWPV[WVWVSLFL]hgfmzz~x|x}}}|~~{{tquz|rhc]XTQRWZ_gryz|}||zxwy~~|||uqnnonhbbirvtt}~z}~}{|vwzzzxxvtsplgcb`\[^`_\YXWUVVUX`einw~||yxtljmkhhgiorw}yvwx{~~~xsv}{tmigb]ZXVSNIGINSY_cfinx}vropoklqvxy~vmgeb]Z[_c`\]^_```a`]^beikmuwvuolmkimomjjov|{xvz~zxx|~wog_]`a^\^adffgeddluz~~ynfb^ZVZbghkoqsty~~}wogbcc]X[bjoqu|yroke```__bc[Y_cb``cfghknrxyxvtrtxx|~wronnnmmkghhghhijhhiiedfedfbYQKKKIHIKMPSRPOQSRSVX_ekpuxxxvtlmmokjjntxz~}yuromkigfgghfffehmprrswzxxxtojfb[WTSQPOQSRQNLKKLNORV[_`djovz{~}}~vpld[SPQRUYblt|{shZPKJHB@HQV\gpw{upjb[Z]][]clru{|vplkhgjgfiotvvuwwtrw|}|||zywvx}|{~}}}ww{~zvywrv|wvvngaYRNJIGJOW\fr~|{zskiklhb`aab`__bgifht{wtpmkijlrx|{xvtttttx|}}|~}xvwututsqpppnljfb_]\ZY[^_^`cdeefgkosz~|{||}||}{yvokjgfghlmnomlkihghhgghkqw{~}|}||}}||{zyyzy{{z{}|~yusokigiprtvzzyyxxwwyxyz{}~}{z|~}}{yvutpprssttvvxyyzyz{}}xqopruzzxxvsrqnnnnnmloqqoljkmoprvzxx{}~|yxxxxx{}~~{y{|wvxzvvz}~~zwx}}z}}{{zwvrponnmklnprtuvyyy{~}~|zyyyz{{|||~~~|{{yyyzzz{||}~~{zxuw}~{vronkjkmnqrsvxvtuxy{|~}~|{{{xvtsssssux{|}|||{{}}{ywvutrrrqpnnppprstvxzz|}~~}|}}{zzzz{||{zyxwvvuussqmlmmmnqvz~~|zyy{}~}zwutsqqpprttuwxxxyyzzyzzzyzzzzzyy{{{{{{{{{zyxwvutsststvxz|~}{ywutsstvxz|}|{zyyzz{|}~~~~~}|{{||}~~~}}}~~|{yyxwwvuuuuuuvvxyzz{||||}}~~|zyxwwwxxxyyyyyz{|}~}|{yyyxxxxyz{||}}}}}~~~}}}}}}}~~~~~~~~~~~}}}}|||}}}}~~~~~}~}}}}}}~~~~~~~~~~~~~}}}}}}}}}}}}}}}}}~~~~~{yurooooopqqqnmSTQP+xNOǞt9t~>Ǟ|| AA  AA  ` ____` e&3  ___ ??? DDꪪꪪꪪꪪꪪꪪꪪꪪꪪꪪꪪꪪꪪꪪꪪꪪꪪUUUUUUUUꮅUUUUꮅUUUUUUUUUUUU HH  >tDt>|| AA  AA  ` ____` e&3  ___ ??? DDꪪꪪꪪꪪꪪꪪꪪꪪꪪꪪꪪꪪꪪꪪꪪꪪꪪΪUUUUΪUUUUUUUUΪUUUUΪUUUUUUUUΪΪ HH  p:TU<x   ___ ???  HH  ??UTUT  ___ ???  HH  ??UTUT  ___ ???  HH   V4UT=\  ___ ???  HH  ???????????*5UU*5UU?  ___ ???  HH  ??????????0W,j7U*5W: `  ___ ???  HH  ???????????*5UU*5UU?  ___ ???  HH  ??????????5\*5U+/\,,L*Q'>.RQArtillery a Projectile Motion Simulation by Kirk Crawford. Version 2.0, May 1989Da @.DhDaDa`   @I@  !Ja x5@ C(K @&`?  , < Y /  8F0O#a/0<TC  `bP /4!+ 8@#KT@/ F"@H, !& @/! B @@*4 Ba.0@b0 D@ , v>8Cj-* 0@ B *aGr@.&@ `: @@v #!?0C/@*&@xH #0C6 bL 9>@*&!-H V`>"Y#;?(z@*#4$ 0dh$b'7)%,x4 C",/Mv)<8hv##+`@D)) 0XXt` M*& LL  Oǟ$;J*@ =vP 1 )cC~ 0 !'3`!A%@ | "(` y8' &#sh" / 8`$ $  =_B _bNc $ D?tA`"D:I$8H|  _d&@A  3@ xv80 _`@v v#q0 &i  l0>Xg A|= H3@ a< vD @ 8  @  $8 @ l` (d0<8d`` >#Ѐ@G bϜ1H"E0BxBaD> D 8'Firet9t~>Ǟ|| AA  AA  ` ____` tDt>|| AA  AA  ` ____` <% ? h0`$HHπ)@?< (<%)@ @@>|I )@>| H@@   QAQ   @@0W,j7U*5W: `?*5UU*5UU?5\*5U+&&{0*Qd: .'eE 1gP 5f[ 9qf=ppAUozE+nI.L,PXT@T T#(UpUSUUzUV#XVW@V#(W/pWzXK XdY-Y/ZE,Z.Z[) [d dsdeX eY fZ f[ g&, gp h.o hn i6d ig j>f je kFq k.lNX l@ mj m#(p:pp t~ u>zutX x@ x  x#( yp&y:2 y]: yz@yKyPy.z_{,{-|&.|]/|ExplodeThudExplodeFireFinishpltt Castle #2 Castle #1 Right Flag Right Flag Right Flag Right Flag Left Flag Left Flag Left Flag Left Flag Grow IconBarrellExplodes Fire Button Castle #2 Castle #1 First Bird Second Bird Third Bird Fourth Bird Key ShortsNames # of Games About BoxEnd Game Help ScreenVersionDebug Key ShortsRTILArtillery IconRTIL"_// $@$R/ $RA!I 2 JAWg(/.N./.N0 n X/N/.N"BgB.NHS@gS@gS@gH`B/:?< -_fb/.쩣B/:?<-_gHB/:h?<-_g4`dB/:R?<-_f/.詣B/:B?< -_gB/:*?<-_g` </N`?<?<`B/:?<-_gB/:?<-_gpfB/:?<-_gpfB/:?<-_grpf?`Bg</.੢BgJ_fL/.੒/./:j?<Hz`BgJ_f*pfTB/:DBg-_gBp/Np-_g n P"n"QA""/./:?<HzBgJ_f/.詢BgJ_f/.詒pf/./:?<HzΩ`&&{0*Qd: .'eE 1gP 5f[ 9qf=ppAUozE+nI.L,PXT@T T#(UpUSUUzUV#XVW@V#(W/pWzXK XdY-Y/ZE,Z.Z[) [d dsdeX eY fZ f[ g&, gp h.o hn i6d ig j>f je kFq k.lNX l@ mj m#(p:pp t~ u>zutX x@ x  x#( yp&y:2 y]: yz@yKyPy.z_{,{\-|&\ .|]\/|\}~ڴ~ExplodeThudExplodeFireFinishpltt Castle #2 Castle #1 Right Flag Right Flag Right Flag Right Flag Left Flag Left Flag Left Flag Left Flag Grow IconBarrellExplodes Fire Button Castle #2 Castle #1 First Bird Second Bird Third Bird Fourth Bird Key ShortsNames # of Games About BoxEnd Game Help ScreenVersionDebug Key ShortsRTILArtillery IconRTIL Artillery Info Version 2.0.2 ShareWare $10 Released 9-6-89 Instructions can be found in the About Dialog box when running the game. Please pass this game on to your friends. Please make sure this document is included with the program. If you use this game send $10 to Kirk Crawford (the author) at the address shown below. Changes for version 2.0.2 Sound can now be turned off via the options menu. A bug with the limited powder mode was fixed, problems happened when the powder went negative. A color quickdraw bug was fixed with the SE/30 and two color Mac IIs. It is now drawn in black and white. Changes for version 2.0.1 Fixed bug of crashing during sound on macs with system 4.2. Sound is no longer available on Macs with system versions less then 5.0. (Because I use snd resources for playing sound, and the SndPlay routine was not implemented on system 4.2) Thanks go to Matt Armstrong for finding this bug. Changes for version 2.0 Repaired the sounds, using 'snd 's now. "LIMITED POWDER" mode that gives both players two barrels of powder to work with. Resizeable window Keyboard control Better color for the color Macs Faster control of angle and powder Flapping flag instead of arrow for wind indication Changeable ground color and sky color for color Macs Multifinder compatiblity Known Bugs It is still possible to kill the sound and sometimes crash, but I am working on that. The work around is turn the sound off via the options menu. Probably runs in B/W on SE/30s with a color monitor attached. Sometimes the Pixel Map for the explosions gets screwed up. Features to be implemented in future versions: Birds! You will shoot them with the cannonballs and they flutter down dead. The choice of 2-4 players. When in 3 or 4 player mode the castle graphic will be smaller and there willl be hills between all players. Wind that only effects (sp?) the ball at the proper times (above the hill or on the windward side). Individual firing option when playing with limited powder. More realistic smoke trails. Different levels of castle explosion (you get it in the middle to kill it, the sides crumble). ETC... If you find any bugs try to write down your exact setup and how you created the bug, also any System Bomb ID numbers, or if you have MacsBug, whatever MacsBug says. Then call my BBS or GEnie and leave an E-Mail message to me explaining the bug. Thanks, Kirk Crawford Kirk Crawford 1214 19th Street Hermosa Bch, CA 90254 Kirk's BBS (213) 376-2150 1200-2400 Baud 24Hours GEnie: K.CRAWFORD1 PS. Birds will be back in version 2.1 PPS. Hackers: If you are really curious you can hold down the command and option keys while pressing D during the game. This puts the program in Debug mode. Just do the same key sequence again to turn it off. You will have to grow the window to get the display to refresh. Also, the 'snd 's could probably be replaced by any other sound in the resource fork of the program. Just be sure to name the sound with the same name that the original one had. WARNING!!! Do NOT release any program thus modified.% x% x?PH-xH99C[v " 0A x  ???PHI88΀  ︀v  ??s@@ s patS?\ (xXX  {xh #T Rz&oR  wxD$`%T  tx#v$`%T%`,<א #%z>)>patS?\ (xXX  {xh #T Rz&oR  wxD$`%T  tx#v$`%T%`,<א #%z>)>patS?\ (xXX  {xh #T Rz&oR  wxD$`%T  tx#v$`%T%`,<א #%z>)>advDadvBadvH0?acQYD<e c"02頀PT* |>x""@""ADH""@"@@Ⱦ@@2@? @@ !"BABQ"%TJP!*BUDD@! @ @@  @?>???@ {݈@^{@^d{^{@@NH %+@B cJ%+@@Uk[@?_U@*_U@*_U@_@@?? System 7.5.5.ĹlǰR4 System 7.5.5h% x patSadvD patSadvH patSpaul ttxtAPPL  ttxtTEXT ttxtttroAMPS\eAmps 3.0eMaker InstructionsDocR AdventureMaker InstructionsRTIL+Artillery 2.0.2InstructionspatS_JAdventureMaker 1.0r 1.0Maker 1.0Maker 1.0Maker 1.0Maker 1.0zdNR"|fP:$ AMPSpaul  DocRAPPL DocRpaul  RTILAPPL  RTILpaul  atcoadvB atcoadvD atcoadvH atcoatco  patSAPPL patSadvB|fP:$%AMPSpaul%patSadvDb8