AMOS Basic v1.3 +><@Bcht>|\Bobt> |Bchtt&-||&-7  othtpq|Bchtt(tpq\>|||6tpq\tpq|>| mytpq|  othttpq||Y@$Bbutt>;|\*@pxt>|\0@pyt>|\6@zot>d\> |\<@zpt>d|\B@wtt>d\> |\H@zwt>d\> \>|L@N@zht>d\>|\T@zct>d\> |\Z@zbt>d|\`@obxt>d|\f@obzt>d|\l@zzt>d\> |U@r@zrgt>d\>|\x@zfgt>d\>|\~@zwgt>d\> \>|\@wdt>d\> |\@zdt>d|\@dct>|M@Bvectt>|\@cptxt>d|\@cptyt>d|\@cptzt>d|\@zcptt>d|\@rbt>d|\@fbt>d|%<Ba>>dTN@zhta\>|>dTF ebx> ncpt> >\>@\>\>\  > >\>@\>@\>\ FT 4T > >\\>(>\\ > lg> > \>d>  >\>e> >!@t>|@t>|Lt>|\>  >\> > \>d>dnp>Tcpnptxp>>>R<Ja>> Bobta|& Undefined FBobt>|& Enemy Bobt>|& MediPac Bobt>|& Ammo Clip Bobt>|& Big Gun Bobt>|& Key Bobt>|& Vector ObjectBobt>|&MarineR&<Da>>TBvectta|& UndefinedTFBvectt>|& FloorHatchBvectt>|&TerminalBvectt>|&RobotR$Bbutt>|&Add Point $Bbutt>|&Delete Point $Bbutt>|&Move Point $Bbutt>|&Define New Zone $Bbutt>|&Define Solid Wall $Bbutt>|&Define Viewing Order$Bbutt>|&Define Roof Height $Bbutt>|&Define Floor Height $Bbutt>|&Set Zone Brightness $Bbutt> |&Define Roof Graphic $Bbutt> |&Define Wall Graphic $Bbutt> |&Define Floor Graphic$Bbutt> |&Add Object $Bbutt> |&Delete Object $Bbutt>|&Move Object $Bbutt>|&Set Player Start $Bbutt>|&Define Door Zone $Bbutt>|&Place Control Point $Bbutt>|&(Dis)Connect Con Pts$Bbutt>|&Def CPt nearest Zone >\>\>\>\ &ab3:graphics/editorbuttons >T> >\\>*>\\ >\>@\>\>\ FT >D>t>\>> \> t>\>> \> t>\>> \> t>\>>\>t>\>>\>t>\>>\>t>\>>\>>\>\>>\> >t>\>>\>t>\>>\>t>\>>\>t>\>>\>>\>\>>\> >D>t>\>>\>t>\>>\>t>\>>\>t>\>>\>J>\>\>>\>\>>\> >t>\>>\>t>\>>\>t>\>>\>t>\>>\>J>\>\>>\>\>>\> >x>\>Tv&B>\>\>>\> >\>@\>\>\ FT 4T >%<Ba>>dTJt>|\t>|\>TF>\>\>>\> >\>@\>\>\ FT >  >\\>)\\ >\>@\>\>\  >\\>)\\FT >  > n>  >\63  >\6  >\6  >\6  >\6  >\6 D> \&(0f0,1)(0c0,1)(040,1)(0c0,1) D> \&(fff,1)(444,1) D> \&(f88,1)(f00,2) D> \&(ff8,1)(880,2)  >\6 RDual Playfield 2,1 sc6.n t>\>|\ t>\>| t>\>@|\ t>\>|!xot>> |Tyot>>|/mu>Tnz>Tcz>Tze>Tpz>op>Tshineboxop\>Rexo\yo\@pxt|\@pyt|\@zot|\@zpt|\@wtt|\@zct|\np\cp\nz\cz\ze\ mp\mu\ebx\ncptk&no\,ot\Bobt|\@obxt|\@obzt|\txp\lg\@zfgt|\@zrgt|\@zwgt|\@zdt|\@wdt|\@dct|\@cptxt|\@cptyt| @cptzt|gridRPB2a,2a&]scsc> l2a&[Tscsc> .sc>T sc>8vtmu> e2a&(Xebx>Xebx\>T >\ebx> \>\ebx> >\>>\>\>Tshineboxop\>d2a&)Xebx>Xebx\>T >\ebx> \>\ebx> >\>>\>\>Tshineboxop\>#>2a&4xoxo8vtTredraw#>2a&6xoxo8vtTredraw#>2a&8yoyo8vtTredraw#>2a&2yoyo8vtTredraw$2a&s levelsave$2a&l0 levelloadb2a&#mumu>T8vt8vt>Txotxo8vt|8vtTyotyo8vt|8vtTgridTredrawk2a&;Xmu>mumu>T8vt8vt>Txotxo8vt|8vtTyotyo8vt|8vtTgridTredraw>xmTDym$#Jx .t>\>xm|TPy Ht>\Dym|3&Py>|mapedit<>\>xm\Dym\>T pickbutton\>R  levelsave n>!D>Ttxp>\>>>\>PFxtxp\>Tv&Enter file name to save level:xtxp\>T& Filename: dVfFtxp>\>>>\>Pxtxp\>Tv&Calculating level data...  mp@t>|R& myprint&initxoff: dc.l  myt\plx>|' myprint&initzoff: dc.l  mytbply>|& myprint&StartRoom: dc.l ZoneDat mythplz| myprint& % myprint&NumCPts: dc.w  mytncpt>| myprint&CPtPos: ncpt><a>ncpt; myprint& dc.w  myt@cptxta||&, myt@cptyta||F myprint&  myprint&NumObjectPoints:  myprint& dc.w  myt&no>| myprint& ObjectPoints: &no><a>&no>C myprint& dc.l  myt`@obxta|>|&, mytf@obzta|>|F myprint& ds.l 22*2 myprint&  myprint& ObjectData: &no> ns@t> |<a>&no>tm& dc.w  myta|&,0,.!tns|>T enemysaveT,!tns|>TmedisaveT.!tns|>TB biggunsaveT,!tns|>TtkeysaveT,!tns|>TdflhasaveT.!tns|>T marinesaveT Xns\> F myprint&PlayerShotData:<Ra&no&no>" myprint& dc.w  myta|&,-10,0 myprint& dc.b 20,20 myprint& dc.l 0 myprint& dc.w -1 myprint& dc.b 16,16,2,0 myprint& dc.w 0,0,0,0,0,0,0 myprint& ds.w 16FR myprint& PLR1_Obj:% myprint& dc.w  myt&no>|&,0,0 myprint& dc.b 64,64 myprint& dc.l 256*20*65536 myprint& dc.w -1 myprint& dc.b 32,32 myprint& dc.b 7,0 myprint& dc.w 0,0,0,0,0,0,0 myprint& dc.w 10 myprint& ds.w 15 myprint& PLR2_Obj:% myprint& dc.w  myt&no>|&,0,0 myprint& dc.b 64,64 myprint& dc.l 256*20*65536 myprint& dc.w -1 myprint& dc.b 32,32 myprint& dc.b 7,0 myprint& dc.w 0,0,0,0,0,0,0 myprint& ds.w 16R myprint& dc.w -1 myprint&Points:np>> <a>np9 myprint& dc.w  myt*@pxta||&, myt0@pyta||F 11 myprint&  myprint&Walls:nz>> zt><a>nz<@zpta|><Xb><@zpta|>+B@wtta\b|>LB@wtta\b|>0llb>T<ll>Tll<@zpta|>T0nlb>T<ll<@zpta|>Tnl>T8x1*@pxt6@zota\b||Ty10@pyt6@zota\b||@x2*@pxt6@zota\b>||Ty20@pyt6@zota\b>||x2x2x1Ty2y2y1lhtx2x2y2y2|x1x1ty2> |l/y1y1tx2> |lTxdx2Tydy2 x1x1tx2>|l y1y1ty2>|l x2x2>tx2>|l y2y2>ty2>|lL myprint& dc.w  mytx1|&, myty1|&, mytx2|&, myty2|" myprint& dc.w  mytl|&,0,0,0$H@zwta\b\>|ztTXzt\>FF 22 myprint&  myprint& FloorLines:nz>> zt><a>nz<@zpta|><b><@zpta|>?RB@wtta\b|>LB@wtta\b|>LB@wtta\b|>8x1*@pxt6@zota\b||Ty10@pyt6@zota\b||@x2*@pxt6@zota\b>||Ty20@pyt6@zota\b>||x2x2x1Ty2y2y1L myprint& dc.w  mytx1|&, myty1|&, mytx2|&, myty2|<c>nz<d><@zptc|>K6@zota\b|6@zotc\d>|X6@zota\b>|6@zotc\d|3  myprint& dc.l ZoneDat mytc|&,ZoneDat myta| l@zzta\b|c$ H@zwta\b\>|ztTXzt\> d<@zptc|TcnzFFFF myprint&  13< va>nz N<@zpta|>! myprint&ZoneDat myta|&: myprint& dc.w  myta|* myprint& dc.l  mytN@zhta\>|>|d@zdta|>! myprint&ZoneRoof myta|&:* myprint& dc.l  mytN@zhta\>|>|" myprint& dc.w  mytZ@zbta||# myprint& dc.w  myt@zcptta|| tm& b&<b><@zpta|>+B@wtta\b|>LB@wtta\b|>*tmtm mytH@zwta\b\>||&,F myprint& dc.w tm&-1 tm& b&<b><@zpta|>xT@zcta\b|>&tmtm myt6@zota\b||&,F myprint& dc.w tm&-1 tm& b&<b><@zpta|>B@wtta\b|f>*tmtm mytH@zwta\b\>||&,F myprint& dc.w tm&-1 myprint& dc.l AllPointsns@t>|ta> >|<b>>X!tns|f>$  myprint& dc.l ZoneGraph myt!tns|| b& dc.w  j!tns>|f>" bb myt!tns>||&, & bb&-1,  j!tns>|f>" bb myt!tns>||&, & bb&-1,  b!tns>|f> bb myt!tns>|| $ bb&-1   myprintb Xns\>F! myprint& dc.l ZoneGraph myta| myprint& dc.w -1,-1,-1 myprint& dc.l -1 myprint& F 12 np> myprint& AllPoints: tm&<a>npa> > 3tmtm myta|T myprint& dc.w tmTtm&<tmtm myta|&,F|np> f> tm(ttm\ttm|>| myprint& dc.w tm myprint& dc.w -1R& ab3:includes/Vf\@t>| mptxp>\>>>\>Pxtxp\>Tv&Calculating graphics file...R  mp@t>| nz> myprint& ZoneAdds:<ha>nz>  myprint& dc.l ZoneDat myta|F<a>nz>1 myprint& ZoneGraph myta|&: dc.w  myta|r<@zpta|> < b><@zpta|>7 x1*@pxt6@zota\b||Ty10@pyt6@zota\b||? x2*@pxt6@zota\b>||Ty20@pyt6@zota\b>||) lhttx2x1|>ty2y1|>|< ll>Tw& dc.l  myt~@zwgta\b\>||&*4096+ XB@wtta\b|>LB@wtta\b|>4h1N@zhta\>|Th2N@zhtl@zzta\b|\>| h2h1Z myprint& dc.w wall, myt6@zota\b||&, myt6@zota\b>||&,0, mytl| myprintw myprint& dc.w 0,0,03 myprint& dc.l  myth2|&*256, myth1|&*256 myprint& 4h1N@zhta\>|Th2N@zhtl@zzta\b|\>| h2h1Z myprint& dc.w wall, myt6@zota\b||&, myt6@zota\b>||&,0, mytl| myprintw myprint& dc.w 0,0,03 myprint& dc.l  myth1|&*256, myth2|&*256 myprint&   B@wtta\b|>Z myprint& dc.w wall, myt6@zota\b||&, myt6@zota\b>||&,0, mytl| myprintw myprint& dc.w 0,0,0G myprint& dc.l  mytN@zhta\>||&*256, mytN@zhta\>||&*256 myprint&   B@wtta\b|>4h1N@zhta\>|Th2N@zhtl@zzta\b|\>| h2h1Z myprint& dc.w wall, myt6@zota\b||&, myt6@zota\b>||&,0, mytl| myprintw myprint& dc.w 0,0,03 myprint& dc.l  myth2|&*256, myth1|&*256 myprint& 4h1N@zhta\>|Th2N@zhtl@zzta\b|\>| h2h1/ myprint&DW_ myta|&_ mytb|&:Z myprint& dc.w wall, myt6@zota\b||&, myt6@zota\b>||&,0, mytl| myprintw myprint& dc.w 0,0,03 myprint& dc.l  myth1|&*256, myth2|&*256 myprint&   F k& 8@fbta|> k&bump L  myprint& dc.w k&floor, mytN@zhta\>||&*4, myt<@zpta|>|" tm& dc.w  myt6@zota\>||> <tb><@zpta|Ttmtm&, myt6@zota\b||TF  myprinttm5 rx@zfgta\>|Trtr>|>tr>|"  myprint& dc.w -1, mytr|&,0  myprint& R `@zdta|>  myprint&DR_ myta|&:  k& 8@rbta|> k&bump L  myprint& dc.w k&roof, mytN@zhta\>||&*4, myt<@zpta|>|" tm& dc.w  myt6@zota\>||> <tb><@zpta|Ttmtm&, myt6@zota\b||TF  myprinttm5 rr@zrgta\>|Trtr>|>tr>|"  myprint& dc.w -2, mytr|&,0! N@zhta\>|N@zhta\>|  myprint& dc.w objectL  myprint& dc.l  mytN@zhta\>|>|&*1024, mytN@zhta\>||&*1024D  myprint& dc.w water, mytN@zhta\>||&*4, myt<@zpta|>|" tm& dc.w  myt6@zota\>||> <tb><@zpta|Ttmtm&, myt6@zota\b||TF  myprinttm5 rr@zrgta\>|Trtr>|>tr>|!  myprint& dc.w 0, mytr|&,0  myprint& dc.w objectG  myprint& dc.l  mytN@zhta\>||&*256, mytN@zhta\>||&*256   myprint& dc.w objectK  myprint& dc.l  mytN@zhta\>|>|&*256, mytN@zhta\>||&*256   myprint& dc.w setclip,-1,-1,-1  myprint&   myprint& dc.l -1  myprint& F myprint& DoorData:<Fd>> us><a>nz @zdta|d> us>H  myprint& dc.w  mytN@zhta\>|>|&, mytN@zhta\>|>|.  myprint& dc.w  mytN@zhta\>|>|&,0  myprint& dc.l DR_ myta|  myprint& dc.l ZoneRoof myta|"  myprint& dc.w  myt@dctd|| F<a>nz <b><@zpta|> L@wdta\b|d>+  myprint& dc.w  mytH@zwta\b\>||.  myprint& dc.l DW_ myta|&_ mytb|2  myprint& dc.l  myt~@zwgta\b\>||&*4096  FF 8us>  myprint& dc.w -1F myprint& dc.w 999#& ab3:includes/Vf&.graph\@t>| mpRtxp>\>>>\>P$xtxp\>Tv&Saving level as AB3:Includes/VfR  mp@t>| ! mp\ncpt X mp\> ncpt><a>ncpt)! mp\@cptxta|T! mp>\@cptyta|Z mp>\@cptzta| X mp\> F<Xa>>Z mp\@dcta| X mp\>FZ mp\&noTX mp\> &no>I<a>&no>T! mp\`@obxta|T! mp>\f@obzta|TX mp\>TFZ mp\npTX mp\> np><a>np! mp\*@pxta|! mp>\0@pyta| X mp\>FZ mp\nzTX mp\> Nnz><.a>nzZ mp\Z@zbta|TX mp\>Z mp\@zcptta|TX mp\>Z mp\<@zpta|TX mp\><Rb><@zpta| Z mp\6@zota\b| Z mp>\B@wtta\b| Z mp>\T@zcta\b| Z mp>\~@zwgta\b\>| Z mp>\@wdta\b| X mp\> F ! mp\N@zhta\>|TX mp\> ! mp\N@zhta\>|TX mp\> ! mp\N@zhta\>|TX mp\>;! mp\r@zrgta\>|T! mp>\x@zfgta\>|TX mp\>Z mp\@zdta|TX mp\>! mp\@rbta|TX mp\>! mp\@fbta|TX mp\>ns@t>|ta> >|<b>>; ! mp\!tns|T! mp>\!tns>|T! mp>\!tns>| ! mp>\!tns>| X mp\>TXns\>FF ! mp\\plx! mp>\bplyZ mp>\hplz X mp\> "& ab3:includes/Vf&.dat\@t>| mp,& ab3:includes/Vf&.obj\@t> |@t> |>d> ,& ab3:includes/Vf&.links\@t> |@t> |Lt> |Rtxp>\>>>\>P`R  enemysave R Data is 0!tns>|>nas1save`R  nas1saveR calculate start height &htN@zht!tns>|\>|>|>tmtm myth| myprinttm myprint& dc.b 64,64R 8 myprint& dc.l 0R 12 # myprint& dc.w  myt!tns>||R 14  myprint& dc.b 32,32R 16 ) myprint& dc.b 0,0, myt!tns>||&,0R 20 ( myprint& dc.w  myt!tns>||&,0,0R 26 ""findcont`@obxta|\f@obzta|p0 myprint& dc.w  mytp|&, mytp|&,0 myprint& ds.w 16 myprint& `R  marinesaveR calculate start height &htN@zht!tns>|\>|>|>tmtm myth| myprinttm myprint& dc.b 64,64R 8 myprint& dc.l 0R 12 # myprint& dc.w  myt!tns>||R 14  myprint& dc.b 32,32R 16 ) myprint& dc.b 5,0, myt!tns>||&,0R 20 ( myprint& dc.w  myt!tns>||&,0,0R 26 ""findcont`@obxta|\f@obzta|p0 myprint& dc.w  mytp|&, mytp|&,0# myprint& dc.w  myt!tns>|| myprint& ds.w 15 myprint& `R  medisave*htN@zht!tns>|\>|> |>>0tmtm myth| myprinttm myprint& dc.b 32,32 myprint& dc.l MediKit_Graph# myprint& dc.w  myt!tns>|| myprint& dc.b 16,16$ myprint& dc.b 1, myt!tns>||# myprint& dc.w  myt!tns>|| myprint& dc.w 0,0,0,0,0,0 myprint& ds.w 16`R  keysave*htN@zht!tns>|\>|> |>>0tmtm myth| myprinttm myprint& dc.b 32,32co!tns>|  myprint& dc.l KeyGraph mytco|# myprint& dc.w  myt!tns>|| myprint& dc.b 16,16! myprint& dc.b 4, myt>co| myprint& dc.w 0,0,0,0,0,0,0 myprint& ds.w 16`R  flhasave&htN@zht!tns>|\>||>>tmtm myth| myprinttm myprint& dc.b -1,-1k!tns>|! myprint& dc.l Bvecttk|&_des# myprint& dc.w  myt!tns>|| myprint& dc.b 16,16 myprint& dc.b 255,255 myprint& dc.w 0,0,0,0,0,0,0 myprint& ds.w 16`R  termsave&htN@zht!tns>|\>||>> tmtm myth| myprinttm myprint& dc.b -1,-1 myprint& dc.l Terminal_des# myprint& dc.w  myt!tns>|| myprint& dc.b 16,16 myprint& dc.b 255,255 myprint& dc.w 0,0,0,0,0,0,0 myprint& ds.w 16`R  biggunsave*htN@zht!tns>|\>|> |>>0tmtm myth| myprinttm myprint& dc.b 64,32 myprint& dc.l BigGun_Graph# myprint& dc.w  myt!tns>|| myprint& dc.b 32,16 myprint& dc.b 3,0 myprint& dc.w 0,0,0,0,0,0,0 myprint& ds.w 16`R  levelload n>!D>Ttxp>\>>>\>PFxtxp\>Tv&Enter file name to load level:xtxp\>T& Filename: dVfFtxp>\>>>\>Pxtxp\>Tv&Loading level data... & ab3:includes/Vf&.dat\@t>|  mp@t>|ncpt!t mp| X mp\> ncpt><a>ncpt-@cptxta|!t mp|T@cptyta|!t mp>|@cptzta|!t mp>| X mp\> F<\a>>@dcta|!t mp| X mp\>F&no!t mp|TX mp\> &no><a>&no>7`@obxta|!t mp|Tf@obzta|!t mp>|TX mp\>Fnp!t mp|TX mp\> np><a>np*@pxta|!t mp|0@pyta|!t mp>| X mp\>Fnz!t mp|TX mp\> nz><a>nzZ@zbta|!t mp|TX mp\>@zcptta|!t mp|TX mp\>XZ@zbta|> Z@zbta|Z@zbta|><@zpta|!t mp|TX mp\><fb><@zpta| 6@zota\b|!t mp| B@wtta\b|!t mp>| T@zcta\b|!t mp>|" ~@zwgta\b\>|!t mp>| @wdta\b|!t mp>| X mp\> F"N@zhta\>|!t mp|TX mp\>"N@zhta\>|!t mp|TX mp\>"N@zhta\>|!t mp|TX mp\>?r@zrgta\>|!t mp|Tx@zfgta\>|!t mp>|TX mp\>zdta|!tmp|TXmp\>rbta|!tmp|TXmp\>fbta|!tmp|TXmp\>ns@t>|ta> >|<fb>> !ns\!t mp| X mp\>TXns\>FF\plx!t mp|bply!t mp>|hplz!t mp>| & ab3:includes/Vf&.obj\@t> | & ab3:includes/Vf&.links\@t> |txp>\>>>\>P redraw`Rv myprintm.<pa>tm|T!mp\ttm\a\>|| Xmp\>F !mp\> Xmp\>R redraw n>TN >np>`5<ba>npTptshow*@pxta|\0@pyta|\>TFnz>`$<@a>nzTzoshoa\>TF:lop>Ltop>Xopz> |Lop>zoshocz\> 4outlinecp &no><ra>&no>%objput`@obxta|\f@obzta|\>F ncpt><la>ncpt%cptput@cptxta|\@cptyta|\>F ncpt><a>ncpt><Vba>ncpt connecteda\bFF`R  pickbutton mB m>`R&op> tidydefwall&op>0 tidydefzone!:op>Lop>tidydefheight(op>tidydefbright*op>tidyplaceplayer&op>l tidydeforder"op> tidyobj&op> tidydefdoor 8op> Xop> D tidydefgraphR.Jx>>menclickT`#JxJx>TPytPy>|> JxJxPy>`Py>/`shineboxop\>0opttebxJx|>|PyTshineboxop\>&op> initdefzone&op> initdeforder"op> initobj&op> initdefdoor 8op>Xop> X initdefgraph*op>initconnectcont >T> ns |T n> >T>xtxp\>Tv$Bbuttop| nns`R  menclick&op> defdoorcond`R  defdoorcondJxJx>>PyPy>PyPy>PyPy>Py>`JxJxt>> |nJx>Py"&n\@dctnd| pdcnd`R  initobjtypeobj,ot`R  tidyobj! n>Txtxp\>Tv& `R  initdefdoorzoshocz\>  n>Txtxp\>Tpndnd xtxp\> pdcnd`R  tidydefdoorzoshocz\>" n>TD>Ttxp>\>>\>P`R  initdeforder n>!D>Ttxp>>\>>\>@zop>Tzoutzop\>`R  tidydeforder n>!D>Ttxp>>\>>\>@zofillcz\>\>"ns@t>|tcz> zop|>F!tns|f>zosho!tns|\>`R  initdefgraphzoshocz\> `R  tidydefgraphzoshocz\> > >`R  tidydefzonezoshocz\><@zptcz|>`R  tidyplaceplayerzoshopz\> n>D> txp>\>>>\>>`R  tidydefheightzoshocz\> n>D> txp>\>>>\>>`R  tidydefbrightzoshocz\> n>D> txp>\>>>\>>`R  initconnectcont"p1>T(p2>`R  tidydefwallzoshocz\>`R  tidydefcornerzoshocz\>`R  initdefzone 6!:<@zptnz|>Xnz\>T> cznz`R  mapedit op>Dptadd op>ptmove"op>defzone"op>defwall"op>deforder(op>4defroofheight$op>J defheight$op>" defbright&op>  defroofgraph&op>  defwallgraph(op> deffloorgraph op> hobjadd op> objdel&op>l placeplayer"op>defdoor&op>R placecontpt&op>> connectcont(op>fcptneartozone`R  cptneartozone*>\ t>\Jx>|\ t>\Py>|\> mB m>`-JxtJxmu|xoTPytPymu|yo F m>zogetJx\Pyp tp>zoshocz\> czpzoshocz\> &v@zcpttcz|>X@zcpttcz|zncpt$highcont@zcpttcz|  m>"findcontJx\Pyp hp>@zcpttcz|p$highcont@zcpttcz|`R  placecontpt*>\ t>\Jx>|\ t>\Py>|\> mB m>`-JxtJxmu|xoTPytPymu|yozogetJx\Py.z.z>`cptputJx\Py\> Xncpt\>@cptxtncpt|Jx@cptytncpt|Py@cptztncpt|.z`R  connectcont*>\ t>\Jx>|\ t>\Py>|\> mB m>`-JxtJxmu|xoTPytPymu|yo"findcontJx\Py"p1>> )"p1` 2345(p2(p2>` n@t> | a>!tn"p1>d(p2|!n"p1>d(p2\a!n(p2>d"p1\aDr joincoords@cptxt"p1|\@cptyt"p1|\@cptxt(p2|\@cptyt(p2|\a> "p1> (p2>`Rvf$findcontx\y  p>3ncpt>>V sd><a>3ncpt4dtc@cptxta|x|>t]@cptyta|y|>!:dsd paTsddF 342  pR objdel*>\ t>\Jx>|\ t>\Py>|\> mB m>`-JxtJxmu|xoTPytPymu|yoRfindobjJx\Pyp p>pzt&no>|ns@t> |p> d@t> |&no> > *<La>>T!da\!tns|aTF%objput`@obxtp|\f@obztp|\>9`@obxtp|`@obxt&no>|Tf@obztp|f@obzt&no>|&no&no>`R v`pndnd n>xtxp\>Tv& Door Number: dndRvpdcnd n> xtxp\>v&! Grn Key Spc Prsd Plr Hit xtxp\>v&" Red Key Enmy Hit xtxp\>v&" Ylw Key Shot Hit xtxp\>v&" Blu Key <a>># xta>|> Tya>D>"4ta\o@dctnd||Jt xtxp|>\ty>|>t xtxp|>>\ty>|>>Jt xtxp|>\ty>|>t xtxp|>>\ty>|>>FR  defdoor/V2a&,Xnd>ndnd>Tpndnd/V2a&.Xnd>ndnd>Tpndnd2a&rXcz>N@zdtcz|>@zdtcz|nd>&@zdtcz|>zoshocz\> *>\ t>\Jx>|\ t>\Py>|\> mB m>`-JxtJxmu|xoTPytPymu|yo  m>zogetJx\PyTp p> vpfcz zoshocz\> czp zoshocz\>   m>bfindnearJx\PyTp<a><@zptcz|>t6@zotcz\a|pB@wttcz\a|> B@wttcz\a|> @wdtcz\a|nd> B@wttcz\a|> B@wttcz\a|> @wdtcz\a|> zoshocz\> F`R  defwallgraph*>\ t>\Jx>|\ t>\Py>|\> m2( m> >T >T`-JxtJxmu|xoTPytPymu|yo  m>zogetJx\PyTp p> vpfcz zoshocz\> czp zoshocz\>   m>bfindnearJx\PyTp<|a><@zptcz|>@6@zotcz\a|p wgputF`R wgput@x2a&,~@zwgtcz\a\>|t~@zwgtcz\a\>|>|> @x2a&.~@zwgtcz\a\>|t~@zwgtcz\a\>|> |> I4ot2a|Tp4ot&0|X4ozt&8|~@zwgtcz\a\>|4ot&0|#~@zwgtcz\a\>|ftlg>d|lg~@zwgtcz\a\>|>d%Vf&ab3:graphics/walls/wall. mytlg>c| Vf\> > >\\>>(\\>@ >`R  deffloorgraph*>\ t>\Jx>|\ t>\Py>|\> m2( m> >T >T`-JxtJxmu|xoTPytPymu|yo  m>zogetJx\PyTp p> vpfcz zoshocz\> czp zoshocz\>  vfgput  m>zogetJx\PyTp p> vpfcz zoshocz\> czp zoshocz\>  rgdat`R  defroofgraph*>\ t>\Jx>|\ t>\Py>|\> m2( m> >T >T`-JxtJxmu|xoTPytPymu|yo  m>zogetJx\PyTp p> vpfcz zoshocz\> czp zoshocz\>  rgput  m>zogetJx\PyTp p> vpfcz zoshocz\> czp zoshocz\>  rgdat`R rgdat >  >T >`R rgput6d2a&,r@zrgtcz\>|tr@zrgtcz\>|>|X>6d2a&.r@zrgtcz\>|tr@zrgtcz\>|>|X>&D2a&b@rbtcz|>@rbtcz|%tr@zrgtcz\>|flg|Lt2a&b|lgr@zrgtcz\>|@rbtcz|>&Vf&ab3:graphics/floors/floor. mytlg>| Vf\>>&Vf&ab3:graphics/floors/bump. mytlg>| Vf\> >\ t>\>|\ t>\>|\> > >\\>>(\\>@ >`R fgput6d2a&,x@zfgtcz\>|tx@zfgtcz\>|>|X>6d2a&.x@zfgtcz\>|tx@zfgtcz\>|>|X>&D2a&b@fbtcz|>@fbtcz|%tx@zfgtcz\>|flg|Lt2a&b|lgx@zfgtcz\>|@fbtcz|>&Vf&ab3:graphics/floors/floor. mytlg>| Vf\>>&Vf&ab3:graphics/floors/bump. mytlg>| Vf\> >\ t>\>|\ t>\>|\> > >\\>>(\\>@ >`R objadd*>\ t>\Jx>|\ t>\Py>|\>1Z2a&,X,ot>,ot,ot>Ttypeobj,ot1Z2a&.X,ot> ,ot,ot>Ttypeobj,ot mB m>`-JxtJxmu|xoTPytPymu|yozoshocz\>zogetJx\Pypp>` czpzoshocz\> objputJx\Py\>",ot>Henemyput",ot>mediput$,ot>$ biggunput ,ot>keyput",ot>Xflhaput$,ot>6 marineput`R  flhaputns@t> |&no> request&Enter vector object type:pT!ns>\p !ns\>Zns>\cz#`@obxt&no|JxTf@obzt&no|Py X&no\>`R  enemyputns@t> |&no> !ns\>R4 For nasties need to store: which zone they're in, R2 how many lives they have, how fast they can move R and so on. request&Enter enemy type:pT!ns>\prequest&Enter number of hits to kill:pTZns>\prequest&Enter MAX movement speed:pTZns>\pZns>\cz#`@obxt&no|JxTf@obzt&no|Py X&no\>`R  marineputns@t> |&no> !ns\>R4 For nasties need to store: which zone they're in, R2 how many lives they have, how fast they can move R and so on. !ns>\>request&Enter number of hits to kill:pTZns>\prequest&Enter MAX movement speed:pTZns>\prequest&Enter Leadership value:pTZns>\pZns>\cz#`@obxt&no|JxTf@obzt&no|Py X&no\>`R  biggunputns@t> |&no> !ns\>!ns>\>Zns>\cz#`@obxt&no|JxTf@obzt&no|Py X&no\>`R  mediputns@t> |&no> !ns\>!ns>\>request&Enter healing factor:pTZns>\pZns>\cz#`@obxt&no|JxTf@obzt&no|Py X&no\>`R keyputns@t> |&no> !ns\>$request&-Enter Colour (0=Green 1=Red 2=Yellow 3=Blue):pT!ns>\pZns>\cz#`@obxt&no|JxTf@obzt&no|Py X&no\>`Rv requestr n>Txtxp\>Tvrxtxp\>TvFxtxp\>Tv^ttr||xtxp\>Tv^t>(| vRvTobjputx\y\ c n>-xtxxo|muTyty yo|muN x\y\>\ cD c N x>\yx>\y N x\y>x\y>R vptypeobjo n>"xtxp\>Tv& Object Type: dBobtot|R  defcorner*>\ t>\Jx>|\ t>\Py>|\>E2a&,Xcz>zoshocz\>Tczcz>Tzoshocz\> J2a&.Xcznz>zoshocz\>Tczcz>Tzoshocz\>  mBT m>`-JxtJxmu|xoTPytPymu|yo  m>Tzoshocz\>zogetJx\Pyp ,p> czpzoshocz\> >bfindnearJx\PyTp<a><@zptcz|>]6@zotcz\a|pT@zctcz\a|>T@zctcz\a|Tcornerp\T@zctcz\a|>F 19`Rvcornerp\c! x@pxtp|Ty@pytp|- xt xxo|muTyty yo|mu n>N  x\y\>\cR  deforder*>\ t>\Jx>|\ t>\Py>|\>2a&,Xzop>"ns@t>|tcz> zop|>F!tns|f>zosho!tns|\>3zoutzop\>Tzopzop>Tzoutzop\>nsns>F!tns|f>zosho!tns|\> 2a&.Xzop>"ns@t>|tcz> zop|>F!tns|f>zosho!tns|\>3zoutzop\>Tzopzop>Tzoutzop\>nsns>F!tns|f>zosho!tns|\>  ,2a& "ns@t>|tcz> zop|>F!tns|f>zosho!tns|\>B!ns\>T!ns>\>T!ns>\>T!ns>\>Tzoprzop V2a&="ns@t>|tcz> zop|>F!tns|f>zosho!tns|\>,<|a@t>|tcz> >|>nsV>!a>\!ta|F!ns\6T listorder mBT m>` r m>-JxtJxmu|xoTPytPymu|yozofillcz\>\>"ns@t>|tcz> zop|>F!tns|f>zosho!tns|\>zogetJx\PyTp p>czpTzop>ns@t>|tcz> >|F!tns|f> zosho!tns|\> zofillcz\>\>  listorder6t m>Xcz>|-JxtJxmu|xoTPytPymu|yo"ns@t>|tcz> zop|>!tns|>zogetJx\PyTp Pp> zoshop\> T!ns\pzoprzop!tns>|> bfindnearJx\Py p Rp> 4outlinepT!ns>\p  zoprzop !tns>|> bfindnearJx\Py p Rp>4outlinepT!ns>\p  zoprzop  !tns>|>zogetJx\PyTp 6p>!ns>\pzoprzopp>X.z>zoutzop\>zosho!tns|\> Xzop\>zoutzop\>V!tns>|f>zosho!tns>|\>   `R  listorder n>D>txp>\>>\>@<4a>>TzopraTFzoutzop\>`Rvvzopraxa> T ya> #xx>txpT y y> n> xx\ y!p@t>|tcz> a|>",!tp|f>m&Zm& 0>!tp>|f>mm&Lmm& 0>!tp>|f>mm&Rmm& 0>!tp>|f>mm&Vmm& vmdR  placeplayer*>\ t>\Jx>|\ t>\Py>|\> mBT m>`-JxtJxmu|xoTPytPymu|yozoshohplz\>0zogetJx\PyTpT&p>hplzp\plxJxTbplyPyzoshohplz\> `R  defgraph`R  defheight*>\ t>\Jx>|\ t>\Py>|\> mB-JxtJxmu|xoTPytPymu|yocz>` 2a&wF& n>Txtxp\>Tv&!Enter water height for this zone:'xtxp\>Tv&Current height: dN@zhtcz\>|%xtxp\>T& New height: dN@zhtcz\>|F!D>Ttxp>\>>>\>P3xtxp\>Tv&Floor Height: dN@zhtcz\>|d&  m>`zoshocz\>/zogetJx\PyTpT$p>czpzoshocz\>  m>2 n>Txtxp\>Tv&Floor Height: dN@zhtcz\>|d& -xtxp\>Tv&Water Height: dN@zhtcz\>|d&   m>F& n>Txtxp\>Tv&!Enter floor height for this zone:'xtxp\>Tv&Current height: dN@zhtcz\>|%xtxp\>T& New height: dN@zhtcz\>|F!D>Ttxp>\>>>\>P3xtxp\>Tv&Floor Height: dN@zhtcz\>|d& `R  defroofheight*>\ t>\Jx>|\ t>\Py>|\> mBT m>`-JxtJxmu|xoTPytPymu|yozoshocz\>/zogetJx\PyTpT$p>czpzoshocz\> cz>` z m>2 n>Txtxp\>Tv& Roof Height: dN@zhtcz\>|d&   m>F% n>Txtxp\>Tv& Enter roof height for this zone:'xtxp\>Tv&Current height: dN@zhtcz\>|%xtxp\>T& New height: dN@zhtcz\>|F!D>Ttxp>\>>>\>P3xtxp\>Tv& Roof Height: dN@zhtcz\>|d& `R  defbright*>\ t>\Jx>|\ t>\Py>|\> mBT m>`-JxtJxmu|xoTPytPymu|yozoshocz\>/zogetJx\PyTpT$p>czpzoshocz\> cz>` v m>0 n>Txtxp\>Tv&Zone Brightness: dZ@zbtcz|d&   m>F% n>Txtxp\>Tv&Enter brightness for this zone:%xtxp\>Tv&Current brightness: dZ@zbtcz|#xtxp\>T&New brightness: dZ@zbtcz|F!D>Ttxp>\>>>\>P1xtxp\>Tv&Zone Brightness: dZ@zbtcz|d& `Rv6<zogetx\y  p>nz>><a>nz&@zpta|>> b>Px1@pxt@zota\b|| $x2@pxt@zota\b>||*y1@pyt@zota\b|| 0y2@pyt@zota\b>||0y20y2*y1T$x2$x2x1x1xx1T*y1y*y16dtx10y2|t*y1$x2|6d>> Xb\>\b@zpta| paTanz> 3Fa 7  pR ptmoveJxJxXscTPyPyXsc*>\ t>\Jx>|\ t>\Py>|\> mBT m>`-JxtJxmu|xoTPytPymu|yoAz m>bfindnearJx\PyTcpT4outlinecpTptnumcpcp>`4` m>*@pxtcp|JxT0@pytcp|PyTredraw`Rv ptnumps | n>#xtxp>\>Tv&Point: dpd& d nsR  defwall*>\ t>\Jx>|\ t>\Py>|\>E2a&,Xcz>zoshocz\>Tczcz>Tzoshocz\> J2a&.Xcznz>zoshocz\>Tczcz>Tzoshocz\> -JxtJxmu|xoTPytPymu|yo 2a&bbfindnearJx\PyTp<a><@zptcz|>BJ6@zotcz\a|pXtB@wttcz\a|>LB@wttcz\a|>|dB@wttcz\a|>B@wttcz\a|Tjoin6@zotcz\a|\6@zotcz\a>|\> B@wttcz\a|F mBT m>`  m>Tzoshocz\>zogetJx\Pyp ,p> czpzoshocz\> > bfindnearJx\PyTp<*a><@zptcz|>{6@zotcz\a|pB@wttcz\a|>B@wttcz\a|Tjoin6@zotcz\a|\6@zotcz\a>|\> B@wttcz\a|F 9`R  defzone*>\ t>\Jx>|\ t>\Py>|\> mBT m>`2<@zptcz|>newzoneT`)JxJxmuxoTPyPymuyonp>`bfindnearJx\PyTcp4outlinecp6@zotcz\<@zptcz||cpM<@zptcz|>join6@zotcz\<@zptcz|>|\6@zotcz\<@zptcz||\>O6@zotcz\>|6@zotcz\<@zptcz||zoshocz\>TXnz\>TcznzT`X<@zptcz|\>`Rv zoshoz\cz>< @zptz|>< x>Ty><8a>@zptz|>A x x@pxt@zotz\a||Tyy@pyt@zotz\a||Ajoin@zotz\a|\@zotz\a>|\c@wttz\a|F%2u@zdtz|>P>\>P>\>f x x@zptz|Tyy@zptz|T xt xxo|muTyty yo|muTJ x\y\&DRJOIN[ZO(Z,ZP(Z)),ZO(Z,0),C] Rv<zofillz\c\ f n>z>< @zptz|><D f5x1@pxt@zotz\>||Ty1@pyt@zotz\>||5x2@pxt@zotz\>||T$y2@pyt@zotz\>||-x1tx1xo|muTy1ty1 yo|mu-x2tx2xo|muT$y2t$y2 yo|mu<v*a>@zptz|>?0x3@pxt@zotz\*a>||T6y3@pyt@zotz\*a>||-0x3t0x3xo|muT6y3t6y3 yo|mu x1\y1x2\$y20x3\6y3x20x3T$y26y3Fzoshoz\cRv connecteda\b n@t> |ta>db|!t n|f>?r joincoordsc@cptxta|\]@cptyta|\c@cptxtb|\]@cptytb|\>R  newzone)JxJxmuxoTPyPymuyonp>`bfindnearJx\PyTcp4outlinecp6@zotcz\>|cp<@zptcz|>`Rv@*joinsp\ep\ c n>D c9x1t@pxtsp|xo|muTy1t@pytsp| yo|mu9x2t@pxtep|xo|muT$y2t@pytep| yo|mu y1$y2x1x1>Tx2x2>x1\x2Ty1\$y2 Rx2x1y1y1>T$y2$y2>N x1\y1x2\$y2R)v joincoordsx1\y1\ x2\y2\c n>Dcx1tx1xo|mu x2t x2xo|muy1ty1 yo|muy2ty2 yo|mu Fy1y2x1\ x2Ty1\y2N x1\y1 x2\y2Rv^$findnearx\y  md> p>'np>><a>'np2dtx@pxta||>ty@pyta||>!:d md mddTpaF 22 pRvh$findobjx\y  md> p>noz>><a>no>4dtx@obxta||>ty@obzta||>!:d md mddTpaF 22 pR ptaddJxJxXscTPyPyXsc*>\ t>\Jx>|\ t>\Py>|\> mB m>`$ m>moveptT` Xnp\> cpnp=JxJxmuTPyPymuTJxJxxoTPyPyyo!*@pxtnp|JxT0@pytnp|PyptshowJx\Py\>ptnumcp4outlinecp`Rv,outlineptpt><!x@pxtpt|T y@pytpt|-xtxxo|muT yt y yo|mu*>\ t>\x>|\ t>\ y>|\>Rv0highcontptpt><#xc@cptxtpt|T y]@cptytpt|-xtxxo|muT yt y yo|mu*>\ t>\x>|\ t>\ y>|\>Rvptshowx\y\ c n>0txxo|mu>\ty yo|mu>\>Rvlcptputx\y\ c n>xtxxo|muyty yo|muD c&x>\y>x>\y>tx\y>x\y>tx>\yx>\yRv ptclrx\y n>xtxxo|mu>yty yo|mu>#D>Tx\yx>\y>R moveptnp>`=JxmumuTPymumuTJxJxxoTPyPyyoptclr*@pxtnp|\0@pytnp|!*@pxtnp|JxT0@pytnp|PyptshowJx\Py\>`R v grids | n> >D><a>>0V>muN >\a>@\aN a\>a\>F nsRv"shineboxop\c% xtop>|9ebxTyop>  x>s |9 n>TDcT x> \y> x> >\y>> nsRvzoutp\c# xtp> |>(txp>>ytp> |>>s |) n>TDcT x\y x>'\y> nsAmBsAmSpp  rCB d@PLPPS@`!tIMff|ff @fU33ss77w `