AMOS Basic v134 Z>,  >\>  almax>T@Blevnamet>|\ Bobjgfxt>|\Bsfxt>;|\Bbulnamet>|\@voit>|\$@bgvt>|\*@bltt>|B@0Bvecgfxt>|\6Bwallgfxt>|\< @wallheightt>|\BBgfxtypet> |\H@gunobjt> |p@N@aict>|\T@dbbt>|\Z@bowt>|\`@bofct>|\f@bdvt>|\l@nobt>|\r@beft>|\x@bmst>|\~@bgtt>|\@igtt>|e@Bgunnamet> |\@gunbult> |\@bulanimt>\>\>\>|\@bulft>\>|\Balnametalmax|\@alstattalmax\>|_@@ogframest>\>?\>|\Bdefbt> |\Bresbt> |\Bfolbt> |\Bretbt> |\Bobnamet>|\@obstatt>\>|8@@obdefaft>\>\>|\@gsfxt> |\@bsfxt>|\@isfxt>|$@@obactaft>\>\>|\@backsfxt>|+@@albrightt>|\ @floorhurtt>|\ @floornoiset>|9@@alanimtalmax\> \>\> |\ @alshotxofft>|\ @alshotyofft>|@ Blevmusict>|\&@echot>;|R ammo 0=health 1=jetpack fuel R gun 0=shield 1=jetpack $@,@ammogivet>\>|\2@gungivet>\> |BBgfxtypet>|&BitmapBBgfxtypet>|&VectorBBgfxtypet>|&Lightsourced palette 1BBgfxtypet>|&Lightsourced palette 2BBgfxtypet>|&Lightsourced palette 3BBgfxtypet>|&Lightsourced palette 4 8red> >white> Dgreen>DJmp\Blevnamet|\Bobjgfxt|\Bsfxt|\Bbulnamet|\@voit|\@bgvt|\@bltt| Bvecgfxt|[@aict|\@dbbt|\@bowt|\@bofct|\@bdvt|\@nobt|\@beft|\@bmst|\Balnamet|\@bgtt|\@igtt|0Bgunnamet|\@gunbult|\@bulanimt|\@bulft|\@alstatt|2@ogframest|\8red\>white\Dgreen\@alanimt|\@gunobjt|Bsfxt>;|& * RESERVED FOR FOOTSTEP SOUNDS *Bdefbt>|&Prowl Randomly Bdefbt>|&Fly Randomly Bresbt>|&Charge Bresbt>|&Charge To Side Bresbt>|&Attack with Gun Bresbt>|&Charge (Flying) Bresbt>|&Charge To Side (Flying) Bresbt>|&Attack with Gun (Flying) Bfolbt>|&Pause Bfolbt>|&Approach Bfolbt>|&Approach To Side Bfolbt>|&Approach (Flying) Bfolbt>|&Approach To Side (Flying) Bretbt>|&Pause Bretbt>|&Attack To Side (unarmed) Bretbt>|&Guard Start Control Pt <Pa>>VbRt>APa|R4 1234567890123456789**2345678901234567890.BlevnametPa|& LEVEL Vb& F<jPa>>$BbulnametPa|& BULLET TYPE RtPa>A|F<vPa>almax BalnametPa|&ALIEN RtPa>A|< \b>> @alanimtPa\\b\>\>|><bc>>! @alanimtPa\\b\bc\>|>! @alanimtPa\\b\bc\>|>FTFF<Pa>> @gunbultPa|Pa BgunnametPa|&GUN RtPa>A|F hleveldir& nftmname& tggname& zblurb& >\>\>\>\  4T > T"<\B\\\\\Z\<  >\6D 8red>  >\6 >white>  >\6 Dgreen> dt>|&(IN 1,0)FILE  dt>\>|&(IN 1,0)Load Default  dt>\>|&(IN 1,0)Load Game Link File  dt>\>|&(IN 1,0)Save Game Link File  dt>\>|&  dt>\>|&(IN 1,0)Quit  dt>|&(IN 1,0)EDIT:-  dt>\>|&(IN 1,0)LEVELS -> dt>\>|&(IN 1,0)GRAPHICS -> dt>\>|&(IN 1,0)VECTORS -> dt>\>|&(IN 1,0)SAMPLES -> dt>\>|&(IN 1,0)BULLETS -> dt>\>|&(IN 1,0)GUNS -> dt>\>|&(IN 1,0)ALIENS -> dt>\>|&(IN 1,0)OBJECTS -> dt>\> |&(IN 1,0)PLAYERS -> dt>\> |&(IN 1,0)MISC -># dt>\>\>|& (IN 1,0)Set Levels Directory # dt>\>\>|& (IN 1,0)Change Level Names # dt>\>\>|& (IN 1,0)Set Object GFX Frames # dt>\>\>|& (IN 1,0)Set Floor Tile Filename # dt>\>\>|& (IN 1,0)Set Wall GFX Filenames # dt>\>\>|& (IN 1,0)Set Texture Filename " dt>\>\>|&(IN 1,0)Set Vector Filenames " dt>\>\>|&(IN 1,0)Set SFX Filenames " dt>\>\>|&(IN 1,0)Select Background SFX " dt>\>\>|&(IN 1,0)Define Echoed SFX   dt>\>\>|&(IN 1,0)Define Bullet Data dt>\>\>|&(IN 1,0)Define Gun Types  dt>\>\>|&(IN 1,0)Define Alien Stats! dt>\>\>|&(IN 1,0)Define Object Stats! dt>\> \>|&(IN 1,0)Define Player Stats% dt>\> \>|&$(IN 1,0)Define Floor Damage Values % dt>\> \>|&$(IN 1,0)Define Floor Footstep Sounds% dt>\> \>|&$(IN 1,0)Select Level Music Files  DroscrnPRP \ p ~t>|>$ ~t>|> 6 ~t>|>  linkfilesave6 ~t>|>  linkfileloadp ~t>|> ~t>|> 4 ~t>|>  setlevels  8 ~t>|> setlevelnames  ~t>|> 8 ~t>|> setobjgfxnames  : ~t>|> setfloortilename  6 ~t>|>  setwallnames  4 ~t>|>  settexname Z ~t>|> 8 ~t>|> setvectornames  ~t>|> 6 ~t>|> R setsfxnames  4 ~t>|>  setbacksfx  4 ~t>|> | setechosfx Z ~t>|> 8 ~t>|> .setbulletdata Z ~t>|> 8 ~t>|> fsetgunbullets X ~t>|> 6 ~t>|>  setalienname V ~t>|> 4 ~t>|>  setobjname Z ~t>|>  8 ~t>|> |setplayerstats  ~t>|>  7 ~t>|> setfloordamage %4 ~t>|>  setfloorsfx $ fpicklevelmusic \>vHlkva !mp\va Xmp\>vHdkva Zmp\va Xmp\>vHpkva !mp\va Xmp\>  linkfilesave Jmp@t>|R 0-63=Path of level directory <Pa>>@;\Pazthleveldir|pktthleveldir\Pa\>||pk>FvJmp@t>|d& Level Names<Pa>><j\b>>($pkttBlevnametPa|\\b\>||FFvJmp@t>|d& Object gfx filenames<Pa>><\b>>@Ep\bzt BobjgfxtPa||pktt BobjgfxtPa|\\b\>||pk>FFvJmp@t>|d& SFX filenames<Pa>>;<\b>>@Cl\bztBsfxtPa||pkttBsfxtPa|\\b\>||pk>FFvJmp@t>|d& floor tile filename<Pa>>@;\Paztnftmname|pkttnftmname\Pa\>||pk>F<Pa>>@;\Pazttexname|pktttexname\Pa\>||pk>FvJmp@t>|XJmp\>@>vJmp@t>|d& gun filename<Pa>>@9XPazttggname|pktttggname\Pa\>||pk>FvJmp@t>|d& blurb filename<Pa>>@9XPaztzblurb|pkttzblurb\Pa\>||pk>FvJmp@t>|d& bullet animation data<Pa>>Ilk@voitPa|Tlk$@bgvtPa|Tlk*@blttPa|TlkN@aictPa|IlkZ@bowtPa|Tlk`@bofctPa|Tlkf@bdvtPa|Tlkr@beftPa|?lkx@bmstPa|Tlk@bulftPa\>|Tlk@bulftPa\>|Ilk@bsfxtPa|Tlk@isfxtPa|Tlk~@bgttPa|Tlk@igttPa|<g>><\b>> <jbc>>$ pk@bulanimtPa\g\\b\bc| FFFFvJmp@t>|d& Bullet Names<Pa>><\b>>z\bztBbulnametPa||$ pkttBbulnametPa|\\b\>|| pk>FFvJmp@t>|d& Gun names<Pa>> <\b>>z\bztBgunnametPa||$ pkttBgunnametPa|\\b\>|| pk>FF vJmp@t>|d& Bullet type used in each gun<Pa>> dk@gunbultPa|dkT@dbbtPa|dkl@nobtPa|dk@gsfxtPa|FvJmp@t>|d& Names for each alien<Pa>almax<\b>>v\bztBalnametPa||# pkttBalnametPa|\\b\>|| pk>FFvJmp@t>|d& Stats for each alien type<Pa>almax<T\b>>dk@alstattPa\\b|FFvJmp@t>|d& Data for graphics frames<HPa>><"\b>>dk@ogframestPa\\b\>|dk@ogframestPa\\b\>|"dk@ogframestPa\\b\>|>"dk@ogframestPa\\b\>|>FFvJmp@t>|d& Names for each object type<Pa>><\b>>v\bztBobnametPa||# pkttBobnametPa|\\b\>|| pk>FFvJmp@t>|d& Object Statistics<zPa>><T\b>>dk@obstattPa\\b|FFvJmp@t>|d& Object default anim data<Pa>><\b>><`bc>> pk@obdefaftPa\\b\bc|FFFvJmp@t>|d& Object activated anim data<Pa>><\b>><`bc>> pk@obactaftPa\\b\bc|FFFvJmp@t>|d& Ammo collected from objects<|Pa>><V\b>>dk,@ammogivetPa\\b|FFvJmp@t>|d& Guns collected from objects<|Pa>><V\b>> dk2@gungivetPa\\b|FFvJmp@t>|d& Alien Animation Data<Pa>almax<\b>> <bc>> <fd>> # pk@alanimtPa\\b\bc\d| FTFTFTFvJmp@t>|d& Vector gfx filenames<Pa>><\b>>@Ep\bzt0BvecgfxtPa||pktt0BvecgfxtPa|\\b\>||pk>FFvJmp@t>|d& Wall gfx filenames<Pa>><\b>>@Gt\bzt6BwallgfxtPa||pktt6BwallgfxtPa|\\b\>||pk>FFvJmp@t>|d& Wall heights<NPa>>dk< @wallheighttPa|FvJmp@t>|d&Alien Torch brightnesses<LPa>>dk@albrighttPa|F<JPa>> dkH@gunobjtPa|Fdk plr1aliendk plr2alienvJmp@t>|d& Floor data<zPa>>dk @floorhurttPa|dk @floornoisetPa|F<zPa>>lk @alshotyofftPa|lk @alshotxofftPa|F<LPa>>dk@backsfxtPa|F<Pa>><\b>>@Gt\bzt BlevmusictPa||pktt BlevmusictPa|\\b\>||pk>FF<VPa>>;pk&@echotPa|RPK[A] FvJmp@t>|d& Length Of File.flt&\&\&7Select a file to create/overwrite. (.LNK will be added)| ff&f|tf|J6tf\>|f&.LNKff&.LNK a&Y >Tx>\>  Ntf|!8redT>Tv&FILE ALREADY EXISTS, OVERWRITE?aa|t(ta\>|| a&Yf\@t>|Jmp!DgreenT>T&** File saved successfully **B8redT>T&*** File NOT saved ***`  linkfileload Jmp@t>|flt&\&\&Select a file to load|#>6tf\>|f&.lnkff&.lnk f\@t>| Jmp@t>|R 0-63=Path of level directory hleveldir&<Pa>>@bc!tJmp|TXJmp\>$@bcf>hleveldirhleveldirRtbc|FvJmp@t>|d& Level Names<Pa>>BlevnametPa|&<\b>>(2BlevnametPa|BlevnametPa|Rt!tJmp||TXJmp\>FFvJmp@t>|d& Object gfx filenames<Pa>> BobjgfxtPa|&<\b>>@bc!tJmp|TXJmp\>.Tbcf> BobjgfxtPa| BobjgfxtPa|Rtbc|FFvJmp@t>|d& SFX filenames<Pa>>;BsfxtPa|&<\b>>@bc!tJmp|TXJmp\>,Pbcf>BsfxtPa|BsfxtPa|Rtbc|FFBsfxt>;|& * RESERVED FOR FOOTSTEP SOUNDS *vJmp@t>|d& floor tile filename nftmname&<Pa>>@bc!tJmp|TXJmp\>$@bcf>nftmnamenftmnameRtbc|F texname&<Pa>>@bc!tJmp|TXJmp\>$@bcf>texnametexnameRtbc|FvJmp@t>|XJmp\>@>vJmp@t>|d& gun filename tggname&<Pa>>@bc!tJmp|TXJmp\>"<bcf>tggnametggnameRtbc|FvJmp@t>|d& blurb filename zblurb&<Pa>>@bc!tJmp|TXJmp\>"<bcf>zblurbzblurbRtbc|FvJmp@t>|d& bullet animation data<Pa>>@voitPa|!tJmp|TXJmp\>$@bgvtPa|!tJmp|TXJmp\>*@blttPa|!tJmp|TXJmp\>N@aictPa|!tJmp|TXJmp\>Z@bowtPa|!tJmp|TXJmp\>`@bofctPa|!tJmp|TXJmp\>f@bdvtPa|!tJmp|TXJmp\>r@beftPa|!tJmp|TXJmp\>x@bmstPa|!tJmp|TXJmp\>#@bulftPa\>|!tJmp|TXJmp\>#@bulftPa\>|!tJmp|TXJmp\>@bsfxtPa|!tJmp|TXJmp\>@isfxtPa|!tJmp|TXJmp\>~@bgttPa|!tJmp|TXJmp\>@igttPa|!tJmp|TXJmp\><g>><\b>> <bc>>0 @bulanimtPa\g\\b\bc|!tJmp|TXJmp\> FFFFvJmp@t>|d& Bullet Names<Pa>>BbulnametPa|&<\b>>bc!tJmp|TXJmp\> dbcf>% BbulnametPa|BbulnametPa|Rtbc|FFvJmp@t>|d& Gun names<Pa>> BgunnametPa|&<\b>>bc!tJmp|TXJmp\> dbcf>% BgunnametPa|BgunnametPa|Rtbc|FF vJmp@t>|d& Bullet type used in each gun<Pa>> @gunbultPa|!tJmp|TXJmp\>T@dbbtPa|!tJmp|TXJmp\>l@nobtPa|!tJmp|TXJmp\>@gsfxtPa|!tJmp|TXJmp\>FvJmp@t>|d& Names for each alien<Pa>almaxBalnametPa|&<\b>>bc!tJmp|TXJmp\> `bcf># BalnametPa|BalnametPa|Rtbc|FFvJmp@t>|d& Stats for each alien type<Pa>almax<\b>>%@alstattPa\\b|!tJmp|TXJmp\>1Z@alstattPa\\b|>X@alstattPa\\b|\>FFvJmp@t>|d& Data for graphics frames<Pa>><\b>>*@ogframestPa\\b\>|!tJmp|TXJmp\>*@ogframestPa\\b\>|!tJmp|TXJmp\>.@ogframestPa\\b\>|!tJmp|>TXJmp\>.@ogframestPa\\b\>|!tJmp|>TXJmp\>FFvJmp@t>|d& Names for each object type<Pa>>BobnametPa|&<\b>>bc!tJmp|TXJmp\> `bcf># BobnametPa|BobnametPa|Rtbc|FFvJmp@t>|d& Object Statistics<Pa>><\b>>o!tJmp|TXJmp\>,o>oo>@obstattPa\\b|oFFvJmp@t>|d& Object default anim data< Pa>><\b>><bc>> o!tJmp|# >o>Xbc>oo>( @obdefaftPa\\b\bc|oTXJmp\>FFFvJmp@t>|d& Object activated anim data< Pa>><\b>><bc>> o!tJmp|# >o>Xbc>oo>( @obactaftPa\\b\bc|oTXJmp\>FFFvJmp@t>|d& Ammo collected from objects<Pa>><n\b>>&,@ammogivetPa\\b|!tJmp|TXJmp\>FFvJmp@t>|d& Guns collected from objects<Pa>><n\b>> &2@gungivetPa\\b|!tJmp|TXJmp\>FFvJmp@t>|d& Alien Animation Data<Pa>almax<\b>> <bc>> <d>> / @alanimtPa\\b\bc\d|!tJmp|TXJmp\> F B |@alanimtPa\\b\bc\>|>@alanimtPa\\b\bc\>|>C ~@alanimtPa\\b\bc\>|>X@alanimtPa\\b\bc\>|\>C ~@alanimtPa\\b\bc\>|>X@alanimtPa\\b\bc\>|\>C ~@alanimtPa\\b\bc\> |>X@alanimtPa\\b\bc\> |\>C ~@alanimtPa\\b\bc\>|>X@alanimtPa\\b\bc\>|\>C ~@alanimtPa\\b\bc\> |>X@alanimtPa\\b\bc\> |\>FTFTF<Pa>>0BvecgfxtPa|&<\b>>@bc!tJmp|TXJmp\>.Tbcf>0BvecgfxtPa|0BvecgfxtPa|Rtbc|FF<Pa>>6BwallgfxtPa|&<\b>>@bc!tJmp|TXJmp\>0Xbcf>6BwallgfxtPa|6BwallgfxtPa|Rtbc|FF<fPa>>"< @wallheighttPa|!tJmp|TXJmp\>F<dPa>>!@albrighttPa|!tJmp|TXJmp\>F<bPa>> H@gunobjtPa|!tJmp|TXJmp\>F plr1alien!tJmp|TXJmp\> plr2alien!tJmp|TXJmp\><Pa>>" @floorhurttPa|!tJmp|TXJmp\>" @floornoisetPa|!tJmp|TXJmp\>F<Pa>>" @alshotyofftPa|!tJmp|TXJmp\>" @alshotxofftPa|!tJmp|TXJmp\>F<dPa>>!@backsfxtPa|!tJmp|TXJmp\>F<Pa>> BlevmusictPa|&<\b>>@bc!tJmp|TXJmp\>0Xbcf> BlevmusictPa| BlevmusictPa|Rtbc|FF<`Pa>>;&@echotPa|!tJmp|TXJmp\>FDgreenT >&*** Link File Loaded ***`  setfloordamageP| x>\>TDgreen&&Set damage done by each type of floor:<Pa>>x>\Pa> >whitev& Tile : dPa>dx>(\v&:dx><\ Dgreenv @floorhurttPa|F8red x>\> & *** DONE ***P T\By Ht>\$|>y>Xyt>>|yy>x><\y>8red @floorhurtty| \y> `  setfloorsfxP  x>\>TDgreen&/Players' footstep noises on each type of floor:<:Pa>>x>\Pa> >whitev& Tile : dPa>dx>(\v&:dx>*\ Dgreend @floornoisetPa|> vBsfxt @floornoisetPa|>| v& None.F8red x>\> & *** DONE ***P T\By Ht>\$|>y>Xyt>>|yy> tyy * sfxnameshow > sfxnamepick @floornoisetty|y \y> `  setplayerstatsP >x>\>TDgreen&Define Player Statistics x>\> >whitev&"Player ONE appears as alien :dx>(\8redvBalnamet plr1alien| x>\> >whitev&"Player TWO appears as alien :dx>(\8redvBalnamet plr2alien|x>\>T8redT& *** DONE ***P \By Ht>\$|> y> aliennameshowx>\>Tv^t>P| >whitex>\>T&Select Player ONE's appearance:x>\>Tv^t>P|x>\>Tv^t>F|dx>\>T8redT& * CANCEL *P \By Ht>\$|>yy>Jy>Xyf>  plr1alieny y> %y> aliennameshowx>\>Tv^t>P| >whitex>\>T&Select Player TWO's appearance:x>\>Tv^t>P|x>\>Tv^t>F|dx>\>T8redT& * CANCEL *P \By Ht>\$|>yy>Jy>Xyf>  plr2alieny y> \y> >`  setgunbulletsP" R guntypeshow x>\>8red & *** DONE ***P \By Ht>\$|yy>by>Xy>yy>Tycy>x .t>\|xx>@\y>> nx>+ x>\y>T8redT&NAME: dBgunnametyc|   buldatshow PxP \Bf Ht>\$|ff> \f>Xf> @gunbultyc|f> ` y>> xx>0x>\y>T8redT&Bullets fired/shot: dl@nobtyc| l1x>(\y>T8redT&Delay between shots: dT@dbbtyc|  J x> tyy * sfxnameshow > sfxnamepick@gsfxtyc|y> yty   objnameshowP \Bf Ht>\$|ff>H@gunobjtyc|f>   \y> >`  guntypeshow > x>\>DgreenT>&Player Gun Names / Bullets:<:Pa>> x>\Pa>>8redvPadTx>\ >whitevBgunnametPa|dx>(\DgreenTv&:dx>2\8redvBbulnamet@gunbultPa|| >whitev& Bullets fired/shot : d8redvl@nobtPa|dx>(\ >whitev&Delay Between Shots (50=1sec): d8redvT@dbbtPa|x>\ >white v& Gun SFX: d8redR@gsfxtPa|>vBsfxt@gsfxtPa||d v&None.dx>(\ >whitev&On Screen Object: d8redvBobnametH@gunobjtPa||dF` roscrn > x>\> 8redT> &ALIEN BREED 3D >white x>\> & Game Linker x>\>&RMB to access menus.. x>\>&Program by A. Clitheroe x>\>& `  setbulletdata  buldatshow statclickshowPP \By Ht>\$|yy>y>Xy>x .t>\|xx> x>0  bulnumy> changebulletstats  buldatshow statclickshow y> Dgreen x>\y Bbulnamety>|  buldatshow statclickshow y> \y> >`  statclickshow 8redT><dPa>>x>/\Pa>v& | Edit Bullet StatisticsFx>\>T8redT& *** DONE ***` changebulletstats  bulstatshowP 8redT> x>\> & *** DONE ***P \By Ht>\$|yy> y>DgreenT> x><\>f@bdvtbulnum|  bulstatshow ty>!@voitbulnum|>@voitbulnum|  bulstatshowH@voitbulnum|> y> DgreenT> x><\> $@bgvtbulnum|  bulstatshow y> DgreenT> x><\>! Z@bowtbulnum|>Z@bowtbulnum|  bulstatshow y> DgreenT> x><\>! `@bofctbulnum|>`@bofctbulnum|  bulstatshow y> oyy * sfxnameshow > sfxnamepick @bsfxtbulnum|y yoy  bulstatshow y>  DgreenT> x><\>  *@blttbulnum|  bulstatshow y>  DgreenT> x><\>  r@beftbulnum|  bulstatshow y>  DgreenT> x><\>  x@bmstbulnum|+ x@bmstbulnum|t>\tx@bmstbulnum|\>||  bulstatshow y> oyy * sfxnameshow > sfxnamepick @isfxtbulnum|y yoy  bulstatshow ^y> pon>  defbulanim  bulstatshow y>' ~@bgttbulnum|t~@bgttbulnum|>|>  bulstatshow ^y> pon>  defbulanim  bulstatshow y>'@igttbulnum|t@igttbulnum|>|>  bulstatshow \y> >`  defbulanimP  bulanimshowP*mcB \mcf>x .t>\|>y Ht>\$|> y> lx>4 @bulftbulnum\pon|t@bulftbulnum\pon|>\>| <j>>c @bulanimtbulnum\pon\@bulftbulnum\pon|\j|@bulanimtbulnum\pon\@bulftbulnum\pon|>\j| F x>4 @bulftbulnum\pon|t@bulftbulnum\pon|>\>|  zty>|tx>(|>dxx>( R If Y=0 R If X>40 and X<60 R Pen GREEN!R: Locate 0,31 : Input "FRAME WIDTH :";BFW(BULNUM); R End If R If X>60 R Pen GREEN!R: Locate 0,31 : Input "FRAME HEIGHT :";BFH(BULNUM); R End If R End If ly>Xy>dx>Xdx> pickobjgraphname) @bulanimtbulnum\pon\z\>|y>dx> Xdx> mc>M  framepick@bulanimtbulnum\pon\z\>|\@bulanimtbulnum\pon\z\>|>& @bulanimtbulnum\pon\z\>|>  bulanimshow  DgreenB x>\>T&FRAME NUMBER :dlT@bulanimtbulnum\pon\z\>|l> dx>Xdx> Dgreen5 x>\>T&SCALED WIDTH :d@bulanimtbulnum\pon\z\>|ddx>Xdx> Dgreen6 x>\>T&SCALED HEIGHT :d@bulanimtbulnum\pon\z\>|ddx>Xdx>" Dgreen6 x>\>T&VERTICAL OFFSET:d@bulanimtbulnum\pon\z\>|ddx>$Xdx>( Dgreen7 x>\>T&BRIGHTNESS VALUE:d@bulanimtbulnum\pon\z\>|d\y>Xx>< y>`v 2` framepickog\sv frntsv|!(sv>flip>flip> XNtBobjgfxtog|&.dat| >\>@\>\> \  >\\>*\\ >\\>>*\\ n> FT 4T > Bobjgfxtog|&.256pal\@t>| &ab3:includes/256pal\@t>|><da>>T c!t@t>|a>| $r!t@t>|>c>| *g!t@t>|>c>| 0b!t@t>|>c>|0 a\t$r>|6t*g>|6t0b>|F Bobjgfxtog|&.dat\@t>|6wof!t@t>|>|<hof!t@t>|>|  n>T >$x>\>TgreenT&[ Prev Frame ][ Next Frame ]!x>\>TgreenT&[ Flip Horizontally ]x>\>TredT& *** DONE ***'x>\>TgreenT&Current Frame: t frn|P n>T >" BlxQ@ogframestog\ frn>\>|" HlyQ@ogframestog\ frn>\>|" NlwQ@ogframestog\ frn>\>|" TlhQ@ogframestog\ frn>\>|! Zs@t>|Blx<hof>Hly flip> <a>Nlw><|0b>Tlh>(N na\0b\!tZs0bta<hof||F F  <a>Nlw><0b>Tlh>-N nNlwa\0b\!tZs0bta<hof||F F  P T\B Hly Ht>\$| Blx .t>\| HlyHly>TBlxBlx> Hly> HBlx>( frnt frn>\>| : frnt frn>\>@|  n>. x>\>TgreenT& Current Frame: t frn|&   <Hly> flip>flip  \Hly> >  >\\>*\\ 8flip> frn frn  frn  bulanimshow >DgreenT> x>\> bpon>$a&Animation frames for Bbulnametbulnum|N"a&Impact frames for Bbulnametbulnum|a R Locate 40,0 R Pen WHITE RPrint "Frame Width:" R Locate 53,0 RPen RED RPrint Using "###";BFW(BULNUM) R Locate 60,0 R Pen WHITE RPrint "Frame Height:" R Locate 74,0 RPen RED RPrint Using "###";BFH(BULNUM)  <Pa>@bulftbulnum\pon|\btPa>|>bctPa>|>( xbc\\b >whitev&GF:d8red,v&## d@bulanimtbulnum\pon\Pa\>|>d >whitev&FN:d8red,v&## d@bulanimtbulnum\pon\Pa\>|>d >whitev&SW:d8red(v&### d@bulanimtbulnum\pon\Pa\>|d >whitev&SH:d8red(v&### d@bulanimtbulnum\pon\Pa\>|d >whitev&VO:d8red(v&+## d@bulanimtbulnum\pon\Pa\>|d >whitev&BV:d8red(v&## d@bulanimtbulnum\pon\Pa\>|dvF x>\> Dgreenv& * ADD FRAME * * DEL FRAME * d x><\>8red v& *** DONE ***d`  bulstatshow > x>\>DgreenT>%a&Bullet Statistics for: Bbulnametbulnum|a x>\> >whitev&+Damage to target per bullet :-d8redx><\vf@bdvtbulnum| x>\> >whitev&+Visible bullet or instant effect (V/I) :-d8redx><\@voitbulnum|> v&VISIBLE >whitev&+Gravity value :-dx><\8redv$@bgvtbulnum| >whitev&+Bounce off walls (Y/N) :-d8redx><\8Z@bowtbulnum|>v&YESv&NO >whitev&+Bounce off floors/ceilings (Y/N) :-d8redx><\8`@bofctbulnum|>v&YESv&NO `@bofctbulnum|> >whitev&+Bounce Noise :-d8red`@bsfxtbulnum|> vBsfxt@bsfxtbulnum|>|$ x><\Tv&Nonev >whitev&+Bullet lifetime (-1 = infinite) :-d8redx><\>*@blttbulnum|> v&INFINITE*v*@blttbulnum| >whitev&+Explosive force :-d8redx><\vr@beftbulnum| >whitev&+Movement speed (0-5) :-d8redx><\vx@bmstbulnum| >whitev&+Impact Noise :-d8red`@isfxtbulnum|>vBsfxt@isfxtbulnum|>|$ x><\Tv&None8red&[ DEFINE BULLET ANIMATION ]v8red&[ DEFINE IMPACT ANIMATION ]x>\>T>whitev&+Bullet Graphic Type :-d8red=~@bgttbulnum|> v& Bitmap%:~@bgttbulnum|>v& Glare*v& Additive Transparencyx>\>T>whitev&+Impact Graphic Type :-d8red=@igttbulnum|> v& Bitmap%:@igttbulnum|>v& Glare*v& Additive Transparency v&INSTANT v& #x>\>T8redT&[ DEFINE IMPACT ANIMATION ]x>\>T>whitev&+Impact Graphic Type :-d8red=@igttbulnum|> v& Bitmap%:@igttbulnum|>v& Glare*v& Additive Transparency`  buldatshow > x>\>DgreenT> &Bullet Type List<Pa>>x>\Pa>>whiteT>;vPadTx> \TDgreenTv&NAME:dT>whiteTx>\TvBbulnametPa|F`  setbacksfxP >Tx>\> Dgreen &6Select a number from 0-15 to choose background effects<Pa>>x>\Pa> >whitevPadx>\ DgreenvBsfxt@backsfxtPa||F8red x>\> & *** DONE ***P\Bf>y Ht>\$|> yf>ooyty>| * sfxnameshow > sfxnamepick Pyf>d  @backsfxtooy|y> y> \y> >`  setechosfxP& * sfxnameshowx>\>Tv^t>P| x>\> Dgreen&Select a Sound Effect :-<Pa>>;ytPa>|>xtPa>|>(xx>$\yT8redv&@echotPa|>dF8red x>\> & *** DONE *** > sfxnamepick Pyf>dooyy> * sfxnameshowx>\>Tv^t>P| x>\>8red&(Select an echoed version of the sound :- > sfxnamepick Hyf>d &@echotooy|y> y> \y>d >`  picklevelmusicP >Tx>\> Dgreen &5Select a number from 0-15 to choose level music files<Pa>>x>\Pa> >whitevPadx>\ Dgreenv BlevmusictPa|F8red x>\> & *** DONE ***P\Bf>y Ht>\$|> yf>yy>y>Xy>  flt&\&\&Pick a PACKED music file|   Blevmusicty|f  \y> >`  setsfxnames redraw>PNredraw> * sfxnameshow redraw> 8redT> x>\> & *** DONE *** > sfxnamepick y>Xy>< mc> alt&\&\&Choose a RAW sample:| \Nta| Bsfxty>|a redraw>  :mc> NtBsfxty>|| >\Bsfxty>| l|t>|  > !^> ! >\l  Bsfxty>|\@t>| N6\@t>|\l\>@ redraw>  \y>d >`  sfxnamepickP*mcB \mcf>y Ht>\$|x .t>\|yy>xx>@Ry>Xy>yyx>< .y> y>d`  sfxnameshowDgreenT> > x>\>&/SFX Filenames (Must be RAW format, half volume)>whiteT><Pa>>< pPa> x>\PavPadx>\TvBsfxtPa>| xPa>x>(\Pa>vPadx>,\TvBsfxtPa>|F`  setlevels > x>\>flt&\&\&Pick a LEVELS directory|fZ >T>v&Level directory set to d >T>vftNtf&level_a|| >T>v&#Create Level directories A-P (Y/N)?aa&yLa&Y >T><Pat&A|t&P| VbRtPa| pf&LEVEL_Vb vf&LEVEL_Vb& createdFhleveldirf&hleveldirf`R  setlevelnames > x>\> >T>v&* |------------------**------------------| >T><JPa>>v& dBlevnametPa|F >T>v&* *** DONE *** PLP\B>y Ht>\$|yy>y>Xy> >T>x>\yTv^t>*|x>\yTaTta|>( aa^t>(ta||Dta|>( a(ta\>(|*x>\yTBlevnamety>|aTv^t>O|,x>\yT>T>Tv& dBlevnamety>| \y> > x>\>`  setobjgfxnames y>Ppickobjgraphnamey>Xyzt tgr>|(&mc>LtNt Bobjgfxty>|&.wad|| a& OBJECT GFX #ty| alt&\&\a| a|ta| \a&DELETEXy tgr  Bobjgfxty>|& r dNta|& Bobjgfxty>|(ta\ta|>|   x>\yTv^t>O| 4 x>\yT>T>TvydTx>\Tv Bobjgfxty>|" Z setobjframes \y> > x>\>`  setvectornames y>P pickvectornameJy>Xyzt tgr>|( mc>LtNt0Bvecgfxty>|&.dat|| a& VECTOR GFX #ty| alt&\&\a| a|ta| \a&DELETEXy tgr 0Bvecgfxty>|& T FNta|0Bvecgfxty>|a   x>\yTv^t>O| 4 x>\yT>T>TvydTx>\Tv0Bvecgfxty>| \y> > x>\>`  vectornameshow > x>\> >T>&Vector GFX Filenames x>\> >T>  tgr> Pa>PatPa>|vadTx>\Tv0BvecgfxtPa|-R0BvecgfxtPa|f&X tgr> tgr tgr>PaPa> \Pa tgr`  pickvectorname vectornameshow >T> x>\>&DONEP*mcB \mcf>y Ht>\$|yy>`  setwallnames y>P n pickwallnamey>Xyzt tgr>| mc> a& WALL GFX #ty| alt&\&\a| a|ta| Nta| 6Bwallgfxty>|a >\a t|t>|  >  a\@t>|' < @wallheightty>|!t@t>|t>|    x>\yTv^t>O| 5 x>\yT>T>TvydTx>\Tv6Bwallgfxty>|j \mc>Xy tgr 6Bwallgfxty>|&  \y> > x>\>`  wallnameshow > x>\> >T>&Wall GFX Filenames x>\> >T>  tgr> Pa>PatPa>|vadTx>\Tv6BwallgfxtPa|.T6BwallgfxtPa|f&X tgr> tgr tgr>PaPa> \Pa tgr`  pickwallname  wallnameshow >T> x>\>&DONEP*mcB \mcf>y Ht>\$|yy>`  setobjframes >\>@\>\> \ FT 4T >LNt Bobjgfxty>|&.256pal| n>T >T >!x>\> T8redT&Palette file not found.+x>\> T&9Error in loading: please select a different graphic file.$x>\>TDgreenT&Any key to return to editor.`!  Bobjgfxty>|&.256pal\@t>| &ab3:includes/256pal\@t>|><dPa>>Tbc!t@t>|Pa>|r!t@t>|>bc>|g!t@t>|>bc>|\b!t@t>|>bc>|0 Pa\tr>|6tg>|6t\b>|F lit>Nt Bobjgfxty>|&.HQN|  Bobjgfxty>|&.HQN\@t>| lit>H  Bobjgfxty>|&.dat\@t>| "xof> 4 widthshow n>T >T >\\>*>\\ > (cf> F framedisplay .ex>P P4ly Ht>\$|:lx .t>\|(t4ly@hof|Xt:lx"xofFnoLwof|4 n>Tx>\>T>whiteT Tv&X :###d:lxd& Y :###d4lyd\Bf>4ly Ht>\$|:lx .t>\|  $4ly>4lyt4ly>|>:lx:lx> .4ly> .ex> 4ly> \:lx>X"xof> X"xof\> 4 widthshow % z:lx>Xt"xof>?|tLwofFno| X"xof\> 4 widthshow    4ly> p:lx>X:lx> (cft(cf>\>| F framedisplay  ^:lx> (cft>?\(cf>| F framedisplay  4ly> n> x>\> o% @ogframesty>\(cf\>|oX6 F framedisplay 4ly> n> x>\> o% @ogframesty>\(cf\>|oX6 F framedisplay 4ly> n> x>\> o% @ogframesty>\(cf\>|oX6 F framedisplay 4ly> n> x>\> o% @ogframesty>\(cf\>|oX6 F framedisplay 4ly>  :lx>X(cf> <Pa>(cf>7@ogframesty>\Pa\>|@ogframesty>\(cf\>| F  (cf>?<Pa(cf>>?7@ogframesty>\Pa\>|@ogframesty>\(cf\>|F   4ly>  :lx>X(cf> <Pa>(cf>7@ogframesty>\Pa\>|@ogframesty>\(cf\>| F  (cf>?<Pa(cf>>?7@ogframesty>\Pa\>|@ogframesty>\(cf\>|F   x4ly>  <BPa>Fno>' @ogframesty>\Pa\>|PaLwof @ogframesty>\Pa\>|>" @ogframesty>\Pa\>|Lwof" @ogframesty>\Pa\>|@hof F F framedisplay(t4ly@hof|Xt:lx"xofFnoLwof|L @ogframesty>\(cf\>|:lxT@ogframesty>\(cf\>|4lyTF framedisplay \.ex> > n> >\>\>\>  >\\>*\\`  framedisplay > >T8redx>(\>Tv& [ SCROLL LEFT ] [ SCROLL RIGHT ]-x>\>TDgreenTv&Frame number : dT>whiteTv(cf&x>(\>T8redTv&![ PREVIOUS FRAME ] [ NEXT FRAME ]Bx>\>TDgreenTv&Frame left : dT8redTv@ogframesty>\(cf\>|Bx>\>TDgreenTv&Frame top : dT8redTv@ogframesty>\(cf\>|Bx>\>TDgreenTv&Frame width : dT8redTv@ogframesty>\(cf\>|Bx>\>TDgreenTv&Frame height : dT8redTv@ogframesty>\(cf\>|8x>\> T8redT&F[ Copy width to previous frames ][ Copy width to subsequent frames ]9x>\> T8redT&H[ Copy height to previous frames ][ Copy height to subsequent frames ])x>\> TDgreenT&%[ Generate frames from graphic data ]x>\> T8redT& *** DONE ***`  widthshow Rsc |T n> >Xs@t>|>t@hof"xof|Fno!t@t>||Lwof!t@t>|>|@hof!t@t>|>|J^m&(tt@hof|& |&,0,1)(1,15,1)(ttt>\t>@hof|>||& |&,-1,15) >\>\>\^m\^m\^m >\>\>*\>$drxt>?\tLwofFno>|"xof|<x>drx<nl>@hof> N nx\l\!tXs|TXXs\>FF nRsc`  objgraphnameshow > x>\> >T>&Object GFX Filenames x>\> >T>  tgr> Pa>PatPa>|vadTx>\Tv BobjgfxtPa|-R BobjgfxtPa|f&X tgr> tgr tgr>PaPa> \Pa tgr`  pickobjgraphnameobjgraphnameshow >T> x>\>&DONEP*mcB \mcf>y Ht>\$|yy>`  setfloortilenamejt& Floor Tile  texnameget,pbackf&nftmnamepback`  settexname jt&Texture  texnameget,pbackf&texnamepback`  texnameget > x>\> pback&alt&\&\&Select a texture file|a|ta| Nta| >\a>whiteT>vjtd& filename set to dDgreenT>va pbacka >< 8redT> v&FILE NOT FOUND`  setgungfxname > x>\>alt&\&\&Select a .ODF file|a|ta| Nta|>whiteT>v&Gun Graphics filename set to dDgreenT>vanftmnamea< 8redT> v&FILE NOT FOUND`  setaliennameP b aliennameshow P(TmcB \mcf>y Ht>\$|>x .t>\|>yy>y>Xyzalmax ax>($ x>\y>T8redTBalnamety| %2x>F setalienstats" oyy" DgreenTx>\>Tv&Select space to copy to: P(TmcB \mcf> y Ht>\$|> x .t>\|> yy>  y>Xyzalmax  Balnamety|Balnametoy| @albrightty|@albrighttoy| <(Pa>>%@alstatty\Pa|@alstattoy\Pa|<\b>> T<bc>> 9@alanimty\\b\Pa\bc|@alanimtoy\\b\Pa\bc|FF F# @alstatty\>|@alstattoy\>|    y>x>\>TDgreenTv^t>P|dx>\>T&Select alien to scale:P T\Bf Ht>\$|>f>Xfzalmax> ff>$ x>\>T&!New percentage of original size: dvp <Pa>>  <\b>>B@alanimtf\Pa\\b\>|t@alanimtf\Pa\\b\>|vp|>dB@alanimtf\Pa\\b\>|t@alanimtf\Pa\\b\>|vp|>dB@alanimtf\Pa\\b\>|t@alanimtf\Pa\\b\>|vp|>dB@alanimtf\Pa\\b\> |t@alanimtf\Pa\\b\> |vp|>dB@alanimtf\Pa\\b\> |t@alanimtf\Pa\\b\> |vp|>d F F. @alstattf\>|t@alstattf\>|vp|>d \y> >`  setalienstats |anyP ralienstatshow P(TmcB \mcf>y Ht>\$|> ty>-@alstatt|an\>|t@alstatt|an\>|>|> y>H@alstatt|an\>|f> ^ defalienanim( defalienvectoranimyzed mc> X@alstatt|an\>|\> jBdefbt@alstatt|an\>||& @alstatt|an\>|>  X@alstatt|an\>|\> @alstatt|an\>|> @alstatt|an\>|>  PnX@alstatt|an\>|\> \Bdefbt@alstatt|an\>||f& jtyzed>Lyzed>|Ltyzed>Xyzzed>|Ltyzed> Lyzed> |Ltyzed> Lyzed> |1x>(\yT8redT@alstatt|an\tyzed|>|yzed> mc> X@alstatt|an\>|\> jBresbt@alstatt|an\>||& @alstatt|an\>|>  X@alstatt|an\>|\> @alstatt|an\>|> @alstatt|an\>|>  PnX@alstatt|an\>|\> \Bresbt@alstatt|an\>||f& yzed> mc> X@alstatt|an\> |\> jBfolbt@alstatt|an\> ||& @alstatt|an\> |>  X@alstatt|an\> |\> @alstatt|an\> |> @alstatt|an\> |>  PnX@alstatt|an\> |\> \Bfolbt@alstatt|an\> ||f& yzed> mc> X@alstatt|an\> |\> jBretbt@alstatt|an\> ||& @alstatt|an\> |>  X@alstatt|an\> |\> @alstatt|an\> |> @alstatt|an\> |>  PnX@alstatt|an\> |\> \Bretbt@alstatt|an\> ||f& 0yzed> dn> hdn>  buldatshow x>\> 8redT&![ Select Alien to Spawn Instead ] P P  \B f Ht>\$| ff> \tf>Xf>|Lf> f> aliennameshow D>T>@\>>\> 8redTx>\> &![ Select Bullet to Fire Instead ] PP \Bf Ht>\$|ff> \tf>Xf>|Lf>% Fff>Tdn>Tff>T  dn> t@alstatt|an\>|f>yzed>4x>(\yTD8redTalsT@alstatt|an\>|als>nyzed>$x>(\yTD8redT@alstatt|an\>|nyzed>$x>(\yTD8redT@alstatt|an\>|0yzed> dn> hdn>  buldatshow x>\> 8redT&![ Select Alien to Spawn Instead ] P P  \B f Ht>\$| ff> \tf>Xf>|Lf> f> aliennameshow D>T>@\>>\> 8redTx>\> &[ Select Projectile Instead ] PP \Bf Ht>\$|ff> \tf>Xf>|Lf>% Fff>Tdn>Tff>T  dn> t@alstatt|an\>|f>yzed>  objnameshowP \Bf Ht>\$|ff>@alstatt|an\>|f>vyzed>x>(\zed>8red@albrightt|an|xyzed>x>(\zed>8red @alshotxofft|an|xyzed>x>(\zed>8red @alshotyofft|an| \y>`  alienstatshow >x>\>TDgreen&Characteristics of alien :Balnamet|an|x>\>T>whitev&(Graphic type: :x>(\>T8redvBBgfxtypet@alstatt|an\>||x>\>T8red&[ Define Animation Frames ]zed>Tx>\zedT>whitev&(Default Behaviour :x>(\zedTDgreenvBdefbt@alstatt|an\>||x>\zed>T>whitev&(Reaction Time (50=1sec) :x>(\zed>TDgreenv@alstatt|an\>|x>\zed>T>whitev&(Default movement speed :x>(\zed>TDgreenv@alstatt|an\>|x>\zed>T>whitev&(Response Behaviour :x>(\zed>TDgreenvBresbt@alstatt|an\>||x>\zed>T>whitev&(Response movement speed :x>(\zed>TDgreenv@alstatt|an\>|x>\zed>T>whitev&(Response Timeout (50=1sec) :x>(\zed>TDgreenv@alstatt|an\>|x>\zed>T>whitev&(Damage Taken Limit -> Retreat :x>(\zed>TDgreenv@alstatt|an\>|x>\zed>T>whitev&(Damage Inflicted Limit -> Followup :x>(\zed>TDgreenv@alstatt|an\>|x>\zed>T>whitev&(Followup Behaviour :x>(\zed>TDgreenvBfolbt@alstatt|an\> ||x>\zed> T>whitev&(Followup Movement Speed :x>(\zed> TDgreenv@alstatt|an\> |x>\zed> T>whitev&(Followup Timeout (50=1sec) :x>(\zed> TDgreenv@alstatt|an\> |x>\zed> T>whitev&(Retreat Behaviour :x>(\zed> TDgreenvBretbt@alstatt|an\> ||x>\zed> T>whitev&(Retreat Movement Speed :x>(\zed> TDgreenv@alstatt|an\> |x>\zed> T>whitev&(Retreat Timeout (50=1sec) :x>(\zed> TDgreenv@alstatt|an\>|x>\zed>T>white@alstatt|an\>|>v&(Type Of Bullet Fired :x>(\zed>TDgreenvBbulnamet@alstatt|an\>||v&(Type Of Alien Spawned :x>(\zed>TDgreenvBalnamet@alstatt|an\>|>|x>\zed>T>whitev&(Number Of Hit Points :x>(\zed>TDgreenv@alstatt|an\>|>x>\zed>T>whitev&(Physical Height :x>(\zed>TDgreenv@alstatt|an\>|x>\zed>T>whitev&(Minimum distance to walls (0/1/2) :x>(\zed>TDgreenv@alstatt|an\>|x>\zed>T>white@alstatt|an\>|>v&(Projectiles ejected upon death :x>(\zed>TDgreenvBbulnamet@alstatt|an\>||v&(Aliens spawned upon death :x>(\zed>TDgreenvBalnamet@alstatt|an\>|>|x>\zed>T>whitev&(Auxilliary Object Type: :x>(\zed>TDgreenf@alstatt|an\>|>vBobnamet@alstatt|an\>||v&None.x>\zed>T>whitev&(Torch Brightness :x>(\zed>TDgreenv@albrightt|an|x>\zed>T>whitev&(Bullet Source X Offset :x>(\zed>TDgreenv @alshotxofft|an|x>\zed>T>whitev&(Bullet Source Y Offset :x>(\zed>TDgreenv @alshotyofft|an|x>\>T8redT& *** DONE ***`  defalienanimP * subsetshow PT\Bf>y Ht>\$|yy> hy>op>T^m&Front Facing Movement <defalan ny> op>T^m&Front-Right Facing Movement <defalan hy>op>T^m&Right Facing Movement <defalan ly>op>T^m&Back-Right Facing Movement <defalan fy> op>T^m&Back Facing Movement <defalan ly> op>T^m&Back-Left Facing Movement <defalan fy>op>T^m&Left Facing Movement <defalan ly>op>T^m&Front-Left Facing Movement <defalan by>op>T^m&Attacking Action <defalan jy>op> T^m&Recieving Damage Action <defalan ^y>op> T^m& Dying Action <defalan y>'x>\>TDgreenT&" SELECT ANIM TO COPY FROM P\Bf>f Ht>\$|>f>Xf>  off>& x>\>TDgreenT& SELECT ANIM TO COPY TO  P \Bf> f Ht>\$|> f>Xf>  ff> <Pa>>T<\b>> 9@alanimt|an\f\Pa\\b|@alanimt|an\of\Pa\\b| FTF  \y> y>`  alanimshow >DgreenT> x>\>*a&Animation frames for Balnamet|an|& ^ma R Locate 40,0 R Pen WHITE RPrint "Frame Width:" R Locate 53,0 RPen RED RPrint Using "###";BFW(BULNUM) R Locate 60,0 R Pen WHITE RPrint "Frame Height:" R Locate 74,0 RPen RED RPrint Using "###";BFH(BULNUM) Pa>P XPa\>#$@alanimt|an\op\Pa\>|>\btPa>|>bctPa>|>( xbc\\b >whitev&## dPadv&GF:d8red(v&## d@alanimt|an\op\Pa\>|>d >whitev&FN:d8red"R@alanimt|an\op\Pa\>|> v&Rd v& d&v&##dt@alanimt|an\op\Pa\>||d >whitev&SW:d8red$v&### d@alanimt|an\op\Pa\>|d >whitev&SH:d8red$v&### d@alanimt|an\op\Pa\>|d >whitev&VO:d8red$v&+## d@alanimt|an\op\Pa\>|d >whitev&FX:d8red$v&## d@alanimt|an\op\Pa\>|d >whitev&AC:d8red"T@alanimt|an\op\Pa\>|> v& * d v& d >whitev&AI:d8red!a7@alanimt|an\op\Pa\>| )a7> v& v d%Ka7>@> v&Sd&##da7X>?d%Ja7>@> v&Rd&##da7X>?d4 v&Dd&##da7X>?d >whitev&AUX:d8red"@alanimt|an\op\Pa\>|> # v&##d@alanimt|an\op\Pa\>|d v& d >whitev&XO:d8red(v&+###d@alanimt|an\op\Pa\> |>d >whitev&YO:d8red(v&+###d@alanimt|an\op\Pa\> |>dv*\@alanimt|an\op\Pa\>|>LPa>amaxPa> x>\> Dgreenv& * ADD FRAME * * DEL FRAME * d x><\>8red v& *** DONE ***d`  defalanP L alanimshowPvmcBx .t>\|>y Ht>\$|> \mcf> y> x> amax> Xamax\> <j>> ?@alanimt|an\op\amax\j|@alanimt|an\op\amax>\j| F  x>Xamax> Xamax\>& @alanimt|an\op\amax>\>|> zty>|dxx> R If Y=0 R If X>40 and X<60 R Pen GREEN!R: Locate 0,31 : Input "FRAME WIDTH :";BFW(BULNUM); R End If R If X>60 R Pen GREEN!R: Locate 0,31 : Input "FRAME HEIGHT :";BFH(BULNUM); R End If R End If  y>Xyzamax>dx>Xdx> pickobjgraphname% @alanimt|an\op\z\>|y>dx>Xdx> mc>A  framepick@alanimt|an\op\z\>|\@alanimt|an\op\z\>| @alanimt|an\op\z\>| L alanimshow ~ Dgreen1 x>\>T&FRAME NUMBER :d@alanimt|an\op\z\>|d dx>Xdx> Dgreen1 x>\>T&SCALED WIDTH :d@alanimt|an\op\z\>|ddx>Xdx> Dgreen2 x>\>T&SCALED HEIGHT :d@alanimt|an\op\z\>|ddx>Xdx>! Dgreen2 x>\>T&VERTICAL OFFSET:d@alanimt|an\op\z\>|ddx>#Xdx>' * sfxnameshow > sfxnamepick ! @alanimt|an\op\z\>|y dx>)Xdx>-; @alanimt|an\op\z\>|>@alanimt|an\op\z\>|dx>/Xdx>3 Dgreen x>\>% &6(S)tore val, Add (R)andom val, (D)ecrement and branch:da a|ta| a&S x>\>1 &"Value to store in counter (0-63): d@alanimt|an\op\z\>|! X@alanimt|an\op\z\>|\>@ %a&R x>\>1 &!Max. random value to add (0-63): d@alanimt|an\op\z\>|! X@alanimt|an\op\z\>|\> %a&D x>\>6 &,Frame to branch to when count reaches zero: d@alanimt|an\op\z\>|! X@alanimt|an\op\z\>|\> J @alanimt|an\op\z\>|>   dx>6Xdx>9 # Fno@alstatt|an\>|Tobdefanimshow P T\B f Ht>\$|Tff>% @alanimt|an\op\z\>|f> dx>;Xdx>@0 DgreenTx>\>T&'Horizontal offset of auxilliary frame: dqaw& @alanimt|an\op\z\> |qaw>dx>BXdx>H/ DgreenTx>\>T&%Vertical offset of auxilliary frame: dqaw& @alanimt|an\op\z\> |qaw>\y>Xx>< y>`  subsetshow >Tx>\> Dgreen"& Subsets of animation frames for Balnamet|an|8red x>\>&[ Front Facing Movement ] x>\>&[ Front-Right Facing Movement ] x>\>&[ Right Facing Movement ] x>\>&[ Back-Right Facing Movement ] x>\> &[ Back Facing Movement ] x>\> &[ Back-Left Facing Movement ] x>\>&[ Left-Facing Movement ] x>\>&[ Front-Left Facing Movement ] x>\>&[ Attacking Action ] x>\>&[ Recieving Damage Action ] x>\> &[ Dying Action ] x>\>& [ Copy Action Animation Frames ] x>\> & *** DONE ***` defalienvectoranimP(vectorsubsetshow PT\Bf>y Ht>\$|yy> \y>op>T^m&Movement  defalanvec dy>op>T^m&Attacking Action  defalanvec ly>op> T^m&Recieving Damage Action  defalanvec `y>op> T^m& Dying Action  defalanvec \y> y>`  vectorsubsetshow >Tx>\> Dgreen"& Subsets of animation frames for Balnamet|an|8red x>\> & [ Movement ] x>\>&[ Attacking Action ] x>\>&[ Recieving Damage Action ] x>\> &[ Dying Action ] x>\> & *** DONE ***`  alanimvecshow >DgreenT> x>\>-a&Vector Animation frames for Balnamet|an|& ^ma R Locate 40,0 R Pen WHITE RPrint "Frame Width:" R Locate 53,0 RPen RED RPrint Using "###";BFW(BULNUM) R Locate 60,0 R Pen WHITE RPrint "Frame Height:" R Locate 74,0 RPen RED RPrint Using "###";BFH(BULNUM) Pa>P XPa\>#@alanimt|an\op\Pa\>|>\btPa>|>bctPa>|>( xbc\\b >whitev&## dPadv&GF:d8red(v&## d@alanimt|an\op\Pa\>|>d >whitev&FN:d8red$v&## d@alanimt|an\op\Pa\>|d >whitev&AO:d8redIv&####dt@alanimt|an\op\Pa\>|>@alanimt|an\op\Pa\>||X>d v& dv&VO:d8red$v&+## d@alanimt|an\op\Pa\>|d >whitev&FX:d8red$v&## d@alanimt|an\op\Pa\>|d >whitev&AC:d8red"T@alanimt|an\op\Pa\>|> v& * d v& d >whitev&AI:d8red!a7@alanimt|an\op\Pa\>| )a7> v& v d%Ka7>@> v&Sd&##da7X>?d%Ja7>@> v&Rd&##da7X>?d4 v&Dd&##da7X>?d >whitev&AUX:d8red"@alanimt|an\op\Pa\>|> # v&##d@alanimt|an\op\Pa\>|d v& d >whitev&XO:d8red(v&+###d@alanimt|an\op\Pa\> |>d >whitev&YO:d8red(v&+###d@alanimt|an\op\Pa\> |>dv*\@alanimt|an\op\Pa\>|>LPa>amaxPa> x>\> Dgreenv& * ADD FRAME * * DEL FRAME * d x><\>8red v& *** DONE ***d`  defalanvecP alanimvecshowPvmcBx .t>\|>y Ht>\$|> \mcf> y> x> amax> Xamax\> <j>> ?@alanimt|an\op\amax\j|@alanimt|an\op\amax>\j| F  x>Xamax> Xamax\>& @alanimt|an\op\amax>\>|> zty>|dxx> y>Xyzamax>dx>Xdx> pickvectorname% @alanimt|an\op\z\>|y>dx>Xdx> Dgreen1 x>\>T&FRAME NUMBER :d@alanimt|an\op\z\>|ddx>Xdx>D x>\>T&Facing Angle :dalT@alanimt|an\op\z\>|talX>|>% @alanimt|an\op\z\>|alX6dx>Xdx>! Dgreen2 x>\>T&VERTICAL OFFSET:d@alanimt|an\op\z\>|ddx>#Xdx>' * sfxnameshow > sfxnamepick! @alanimt|an\op\z\>|ydx>)Xdx>-; @alanimt|an\op\z\>|>@alanimt|an\op\z\>|dx>/Xdx>3 Dgreen x>\>% &6(S)tore val, Add (R)andom val, (D)ecrement and branch:da a|ta| a&S x>\>1 &"Value to store in counter (0-63): d@alanimt|an\op\z\>|! X@alanimt|an\op\z\>|\>@ %a&R x>\>1 &!Max. random value to add (0-63): d@alanimt|an\op\z\>|! X@alanimt|an\op\z\>|\> %a&D x>\>6 &,Frame to branch to when count reaches zero: d@alanimt|an\op\z\>|! X@alanimt|an\op\z\>|\> J @alanimt|an\op\z\>|>   dx>7Xdx>: # ob@alstatt|an\>|Tobdefanimshow P T\B f Ht>\$|Tff>% @alanimt|an\op\z\>|f> dx>A0 DgreenTx>\>T&'Horizontal offset of auxilliary frame: dqaw& @alanimt|an\op\z\> |qaw>dx>CXdx>H/ DgreenTx>\>T&%Vertical offset of auxilliary frame: dqaw& @alanimt|an\op\z\> |qaw>\y>Xx>< y>`  aliennameshow > x>\> Dgreen&Currently Defined Aliens:<Pa>almaxx>\Pa>>whiteTvPad Dgreenx>\vBalnametPa|dx>(\8redv&&| Define characteristics | Copy :-Fx>\>T8red&[ Change Scale of Alien ]x>\>T8red & *** DONE ***`  setobjnameP  objnameshow P(TmcB \mcf>y Ht>\$|>x .t>\|>yy>y>Xy> `mc>$ x>\y>T8redTBobnamety|"  setobjstats \y> >`  setobjstats FnoyP  objstatshow P(TmcB \mcf>y Ht>\$|> ty>-@obstattFno\>|t@obstattFno\>|>|X> ty>-@obstattFno\>|t@obstattFno\>|>|>!y>X@obstattFno\>|>x>(\>T8red@obstattFno\>|!y>X@obstattFno\>|>x>(\>T8red@obstattFno\>|!y>X@obstattFno\>|>x>(\>T8red@obstattFno\>|!y>X@obstattFno\>|>x>(\>T8red'@obstattFno\>|>@obstattFno\>| Jy> setobjdefanim y>!ty>X@obstattFno\>|f> setobjactanim y>6y> X@obstattFno\>|f>X@obstattFno\>|f>l defammogiveTy>6y> X@obstattFno\>|f>X@obstattFno\>|f>F defgungiveTy> `y> #x>(\> T8redT@obstattFno\>| |y> 1x>(\> T8redToT@obstattFno\>|o> hy>'@obstattFno\> |>@obstattFno\> | hy>'@obstattFno\> |>@obstattFno\> | y> * sfxnameshow > sfxnamepick@obstattFno\> |y> y> \y>`  objstatshow > x>\> Dgreen"& Characteristics of object type: BobnametFno| x>\> >whitev&Behaviour of object: 8red x>(\>H@obstattFno\>|> v& Collectable H@obstattFno\>|> v& Activatable H@obstattFno\>|> v& DestructableH@obstattFno\>|> v& Decoration  x>\> >white v&Graphic type: 8red x>(\>B@obstattFno\>|> v&Bitmap pB@obstattFno\>|> v&Polygon v& Glare/Smoke$@obstattFno\>|> x>\> >whitev&'Deactivate after (50ths/sec, -1=Never): x>(\>8redX@obstattFno\>|f>v@obstattFno\>|v&NeverP@obstattFno\>|> x>\> >whitev&Number of hit points: x>(\>8redv@obstattFno\>| x>\> >whitev&Explosive potential: x>(\>8redv@obstattFno\>|-*@obstattFno\>|f>X@obstattFno\>|f> x>\> >whitev&"Impassable in default state (Y/N): x>(\>8red<@obstattFno\>|>v&Nov&Yes8red x>\>&"[ Define default state animation ] x>\>b@obstattFno\>|f>&%[ Define active/destroyed animation ]-<@obstattFno\>|>L@obstattFno\>|>>whiteTx>\> v&)Upon collection/activation, give player:-8redTx>\> &$[ Define Guns/JetPack/Shield Given ] x>\> &[ Define Ammo/Fuel Given ]x>\> T>whitev&Collision cylinder radius:x>(\> T8redv@obstattFno\>|x>\> T>whitev&Collision cylinder height:x>(\> T8redv@obstattFno\>|>x>\>T>whitev&!Position vertically relative to: dx>(\>T8red@@obstattFno\> |>v&FLOOR v&CEILINGx>\>T>whitev&Lock to nearest wall? dx>(\>T8red8yesno@obstattFno\> |x>\>T>white@obstattFno\>|f>U@obstattFno\>|>v&Collection Sound Effect d%T@obstattFno\>|>v&Activation Sound Effect d0v&Destruction Sound Effect dx>(\8redd@obstattFno\> |>vBsfxt@obstattFno\> ||v&None.x>\>T8redT& *** DONE ***`  defammogiveP X ammogiveshow PT\Bf>y Ht>\$|>y>Xy>*x>(\yT8redT,@ammogivetFno\y>| \y> y>`  ammogiveshow >x>\>TDgreen&&Quantity given by BobnametFno|& when collected:x>\>T>white v&Health:x>(\>T8redv,@ammogivetFno\>|x>\>T>white v& Jetpack Fuel:x>(\>T8redv,@ammogivetFno\>|<Pa>>x>\Pa> >whitev& Ammo Type: dBbulnametPa|dx>(\8redv,@ammogivetFno\Pa>|Fx>\>T8redT& *** DONE ***`  defgungiveP$ $ gungiveshow PT\Bf>y Ht>\$|>y>Xy> =x>(\yT2@gungivetFno\y>|>2@gungivetFno\y>| \y> y>`vNyesnovv>v&No v&Yes  gungiveshow >x>\>TDgreen&&Quantity given by BobnametFno|& when collected:x>\>T>white v&Shield:x>(\>T8red8yesno2@gungivetFno\>|x>\>T>white v&Jetpack:x>(\>T8red8yesno2@gungivetFno\>|<Pa>> x>\Pa> >whitev& Gun Type: dBgunnametPa|dx>(\8red 8yesno2@gungivetFno\Pa>|Fx>\>T8redT& *** DONE ***`  objnameshow > x>\> Dgreen&Currently Defined Objects:<Pa>>x>\Pa>>whiteTvPad Dgreenx>\vBobnametPa|dF8redTx>\> & *** DONE ***`  setobjdefanimL@obstattFno\>|f>setdefbitmapanim$ setdefpolyanim`  setobjactanimL@obstattFno\>|f>nsetactbitmapanim$ Bsetactpolyanim`  setdefbitmapanimP obdefanimshowP*mcB \mcf>x .t>\|>y Ht>\$|> y> x>. @obstattFno\>|t@obstattFno\>|>\>| <j>>M @obdefaftFno\@obstattFno\>|\j|@obdefaftFno\@obstattFno\>|>\j|9 @obdefaftFno\@obstattFno\>|>\>|@obstattFno\>|5 @obdefaftFno\@obstattFno\>|\>|@obstattFno\>| Fz lx>. @obstattFno\>|t@obstattFno\>|>\>| <q>@obstattFno\>|/@obdefaftFno\q\>|@obstattFno\>|>)@obdefaftFno\q\>|@obstattFno\>| F zty>| R +(X/40)*30 dxxRmod 40&y>Xyz@obstattFno\>|>dx>Xdx>  pickobjgraphname! @obdefaftFno\z\>|y>dx> Xdx> mc>=  framepick@obdefaftFno\z\>|\@obdefaftFno\z\>|> @obdefaftFno\z\>|> obdefanimshow  Dgreen: x>\>T&FRAME NUMBER :doT@obdefaftFno\z\>|o> dx>Xdx> Dgreen- x>\>T&SCALED WIDTH :d@obdefaftFno\z\>|ddx>Xdx> Dgreen. x>\>T&SCALED HEIGHT :d@obdefaftFno\z\>|ddx> Xdx>% Dgreen< x>\>T&VERTICAL OFFSET:dodT@obdefaftFno\z\>|o> ,dx>'$ DgreenTx>\>Tv&SELECT NEXT FRAME:- d P  \B ns Ht>\$|>& ns>Xnsz@obstattFno\>|>! @obdefaftFno\z\>|ns> \y>Xx><`  obdefanimshow >DgreenT> x>\>%a&Default Animation Frames for BobnametFno|va<Pa>@obstattFno\>|\btPa>|>bctPa>|>( xbc\\b >whitev&## dPadv&GF:d8red$v&## d@obdefaftFno\Pa\>|>d >whitev&FN:d8red$v&## d@obdefaftFno\Pa\>|>d >whitev&SW:d8red v&### d@obdefaftFno\Pa\>|d >whitev&SH:d8red v&### d@obdefaftFno\Pa\>|d >whitev&VO:d8red%v&+### d@obdefaftFno\Pa\>|>d >whitev&NF:d8red v&## d@obdefaftFno\Pa\>|dvF x>\> Dgreenv& * ADD FRAME * * DEL FRAME * d x><\>8red v& *** DONE ***d`  setdefpolyanimP obdefpolyanimshowP*mcB \mcf>x .t>\|>y Ht>\$|> y> x>. @obstattFno\>|t@obstattFno\>|>\>| <j>>M @obdefaftFno\@obstattFno\>|\j|@obdefaftFno\@obstattFno\>|>\j|9 @obdefaftFno\@obstattFno\>|>\>|@obstattFno\>|5 @obdefaftFno\@obstattFno\>|\>|@obstattFno\>| Fz lx>. @obstattFno\>|t@obstattFno\>|>\>| <q>@obstattFno\>|/@obdefaftFno\q\>|@obstattFno\>|>)@obdefaftFno\q\>|@obstattFno\>| F zty>| R +(X/40)*30 dxxR mod 40 y>Xy>dx>Xdx> pickvectorname! @obdefaftFno\z\>|y>dx> Xdx> R If MC=2 R6 FRAMEPICK[OBDEFAF(NO,Z,0),OBDEFAF(NO,Z,1)] R" OBDEFAF(NO,Z,1)=Param  R Gosub OBDEFANIMSHOW R Else Dgreen: x>\>T&FRAME NUMBER :doT@obdefaftFno\z\>|o> R End If  dx>Xdx> Dgreen# x>\>T&ANGLE OFFSET (8192=360 deg) :dangl" @obdefaftFno\z\>|angl>" @obdefaftFno\z\>|anglX>R If DX>22 and DX<27 R Pen GREEN$R@ Locate 0,31 : Input "SCALED HEIGHT :";OBDEFAF(NO,Z,3); R End If dx>Xdx>$ Dgreen< x>\>T&VERTICAL OFFSET:dodT@obdefaftFno\z\>|o> ,dx>'$ DgreenTx>\>Tv&SELECT NEXT FRAME:- d P  \B ns Ht>\$|>& ns>Xnsz@obstattFno\>|>! @obdefaftFno\z\>|ns> \y>Xx><` obdefpolyanimshow >DgreenT> x>\>(a&$Default Vector Animation Frames for BobnametFno|va<Pa>@obstattFno\>|\btPa>|>bctPa>|>( xbc\\b Dgreen v&##dPad >whitev&VF:d8red$v&## d@obdefaftFno\Pa\>|>d >whitev&FN:d8red$v&## d@obdefaftFno\Pa\>|>d >whitev&AO:d8red;v&####d@obdefaftFno\Pa\>|>@obdefaftFno\Pa\>|d >whitev& d8redR$Print Using "### ";OBDEFAF(NO,A,3); v& d >whitev&VO:d8red%v&+### d@obdefaftFno\Pa\>|>d >whitev&NF:d8red v&## d@obdefaftFno\Pa\>|dvF x>\> Dgreenv& * ADD FRAME * * DEL FRAME * d x><\>8red v& *** DONE ***d`  setactbitmapanimP d XobactanimshowP*mcB \mcf>x .t>\|>y Ht>\$|> y> x>. @obstattFno\>|t@obstattFno\>|>\>| <j>>M @obdefaftFno\@obstattFno\>|\j|@obdefaftFno\@obstattFno\>|>\j|9 @obdefaftFno\@obstattFno\>|>\>|@obstattFno\>|5 @obdefaftFno\@obstattFno\>|\>|@obstattFno\>| Fz lx>. @obstattFno\>|t@obstattFno\>|>\>| <q>@obstattFno\>|/@obdefaftFno\q\>|@obstattFno\>|>)@obdefaftFno\q\>|@obstattFno\>| F zty>| R +(X/40)*30 dxxR mod 40 y>Xy>dx>Xdx> pickobjgraphname! @obactaftFno\z\>|y>dx> Xdx> mc>=  framepick@obactaftFno\z\>|\@obactaftFno\z\>|> @obactaftFno\z\>|> obdefanimshow  Dgreen: x>\>T&FRAME NUMBER :doT@obactaftFno\z\>|o> dx>Xdx> Dgreen- x>\>T&SCALED WIDTH :d@obactaftFno\z\>|ddx>Xdx> Dgreen. x>\>T&SCALED HEIGHT :d@obactaftFno\z\>|ddx>Xdx>" Dgreen< x>\>T&VERTICAL OFFSET:dodT@obactaftFno\z\>|o> ,dx>'$ DgreenTx>\>Tv&SELECT NEXT FRAME:- d P  \B ns Ht>\$|>& ns>Xnsz@obstattFno\>|>! @obdefaftFno\z\>|ns> \y>Xx><`  obactanimshow >DgreenT> x>\>&a&Activated Animation Frames for BobnametFno|va<tPa>@obstattFno\> |\btPa>|>bctPa>|>( xbc\\b >whitev&GF:d8red$v&## d@obactaftFno\Pa\>|>d >whitev&FN:d8red$v&## d@obactaftFno\Pa\>|>d >whitev&SW:d8red v&### d@obactaftFno\Pa\>|d >whitev&SH:d8red v&### d@obactaftFno\Pa\>|d >whitev&VO:d8red%v&+### d@obactaftFno\Pa\>|>d >whitev&NF:d8red v&## d@obdefaftFno\Pa\>|dvF x>\> Dgreenv& * ADD FRAME * * DEL FRAME * d x><\>8red v& *** DONE ***d`  setactpolyanimP (obactpolyanimshowP*mcB \mcf>x .t>\|>y Ht>\$|> y> x>. @obstattFno\> |t@obstattFno\> |>\>| <j>>M @obactaftFno\@obstattFno\> |\j|@obactaftFno\@obstattFno\> |>\j|9 @obactaftFno\@obstattFno\> |>\>|@obstattFno\> |5 @obactaftFno\@obstattFno\> |\>|@obstattFno\> | Fz lx>. @obstattFno\> |t@obstattFno\> |>\>| <q>@obstattFno\> |/@obactaftFno\q\>|@obstattFno\> |>)@obactaftFno\q\>|@obstattFno\> | F zty>| R +(X/40)*30 dxxR mod 40 y>Xy>dx>Xdx> pickvectorname! @obactaftFno\z\>|y>dx> Xdx> R If MC=2 R6 FRAMEPICK[OBactAF(NO,Z,0),OBactAF(NO,Z,1)] R" OBactAF(NO,Z,1)=Param  R Gosub OBactANIMSHOW R Else Dgreen: x>\>T&FRAME NUMBER :doT@obactaftFno\z\>|o> R End If  dx>Xdx> Dgreen# x>\>T&ANGLE OFFSET (8192=360 deg) :dangl" @obactaftFno\z\>|angl>" @obactaftFno\z\>|anglX>R If DX>22 and DX<27 R Pen GREEN$R@ Locate 0,31 : Input "SCALED HEIGHT :";OBACTAF(NO,Z,3); R End If dx>Xdx>" Dgreen< x>\>T&VERTICAL OFFSET:dodT@obactaftFno\z\>|o> ,dx>'$ DgreenTx>\>Tv&SELECT NEXT FRAME:- d P  \B ns Ht>\$|>& ns>Xnsz@obstattFno\> |>! @obactaftFno\z\>|ns> \y>Xx><` obactpolyanimshow >DgreenT> x>\>)a&&Activated Vector Animation Frames for BobnametFno|va<Pa>@obstattFno\> |\btPa>|>bctPa>|>( xbc\\b >whitev&VF:d8red$v&## d@obactaftFno\Pa\>|>d >whitev&FN:d8red$v&## d@obactaftFno\Pa\>|>d >whitev&AO:d8red;v&####d@obactaftFno\Pa\>|>@obactaftFno\Pa\>|d >whitev& d8redR$Print Using "### ";OBactAF(NO,A,3); v& d >whitev&VO:d8red%v&+### d@obactaftFno\Pa\>|>d >whitev&NF:d8red v&## d@obactaftFno\Pa\>|dvF x>\> Dgreenv& * ADD FRAME * * DEL FRAME * d x><\>8red v& *** DONE ***d`AmBs