O p O  @`! #@%')+-/1 3@5`79;=?A C@EGKMOQ S@UWY[]a c@e`gikmoq s@u`wy{} @` @ ` @ ` @ ` @ ` ǀ ɠ @ ` ׀ ٠  @` @`Aa   !Aa!!#A%a')+-/1!3A5a79;=?A!CAEaGIKMOQ!SAUaWY[]_a!cAeagikmoq!sAuawy{}!Aa!Aa!Aa!Aa!Aaǁɡ!Aaׁ١!Aa!Aa " B b  !"!B!b!!!!!"!""#B"%b"'")"+"-"/#1"#3B#5b#79#;O  @`! #@%')+-/1 3@5`79;=?A C@EGKMOQ S@UWY[]a c@e`gikmoq s@u`wy{} @` @ ` @ ` @ ` @ ` ǀ ɠ @ ` ׀ ٠  @` @`Aa   !Aa!!#A%a')+-/1!3A5a79;=?A!CAEaGIKMOQ!SAUaWY[]_a!cAeagikmoq!sAuawy{}!Aa!Aa!Aa!Aa!Aaǁɡ!Aaׁ١!Aa!Aa " B b  !"!B!b!!!!!"!""#B"%b"'")"+"-"/#1"#3B#5b#79#;CATALOG ASC VAL PAS  TITLEPAGNEO }TERRAIN NEO &}TEHEIGHTPAS F1STR PAS H PASCAL INF I LONGSTR PAS JGEMTYPE PAS LGEMSUBS PAS NGEMCONSTPAS V BREAKDWNTXT ZsBATTYPE PAS _BATTLE PRG `*bBATTLE PAS ADDRSTUFO BATTLE TOS } A BATTLE TXT B8 KBATTLE is New Core's Battletris, a very nice implementation of Tetris for all Atari computers (well, not the 8-bit line I suspect!). TOS 1.0 through Falcon, though if you only have an old ST you will miss out on the pleasing digitized stereo music. Joystick or keyboard controlled, this game is easy to play and pleasing to your ears and eyes. One very nice feature is that you can play it against another player using a null modem hookup with another computer. A preview option is included so you can see which block is coming next, and plan accordingly. Docs included. Greetingware (send them a postcard). Exits cleanly from my hard drive, and is Geneva compatible. Color only. 321K uncompressed. . { The Include File Version } Procedure Kill_BS(Var InStr: Str255); Var BS: Char; B: Integer; Begin BS:=Chr(8); Repeat B:=Pos(BS,InStr); If B=1 then Delete(InStr,B,1); If B>1 then Delete(InStr,B-1,2); Until B=0; End; FUNCTION Real_Val( St: Str255): Real; Const Max_Digits=9; Var Dec_Exp, Exp_Value, Count, Position: Integer; Chr: Char; Result: Real; Dec_Sign, Exp_Sign: Boolean; PROCEDURE Add_Digit; Begin Result := (Result * 10) + (Ord(Chr) & $0F); End; PROCEDURE Read_Chr; Begin Position := Position + 1; If Position > Length(St) Then Chr := 'X' Else Chr := St[Position]; End; Begin { Real_Val } Kill_BS(St); Position := 0; Read_Chr; Result := 0.0; { Get sign } Dec_Sign := False; If Chr = '+' Then Read_Chr; If Chr = '-' Then Begin Read_Chr; Dec_Sign := True; End; { Get digits to left of decimal point } Dec_Exp := 0; Count := Max_Digits; While ('0' <= Chr) And (Chr <= '9') Do Begin If Count > 0 Then Begin Add_Digit; Count := Count - 1; End Else Dec_Exp := Dec_Exp + 1; Read_Chr; End; { Get digits to the right of decimal point } If Chr = '.' Then Begin Read_Chr; While ('0' <= Chr) And (Chr <= '9') Do Begin If Count > 0 Then Begin Add_Digit; Dec_Exp := Dec_Exp - 1; Count := Count - 1; End; Read_Chr; End End; { Get exponent part } If (Chr = 'E') Or (Chr = 'e') Then Begin Read_Chr; Exp_Sign := False; If Chr = '+' Then Read_Chr; If Chr = '-' Then Begin Read_Chr; Exp_Sign := True; End; Exp_Value := 0; If ('0'<=Chr) And (Chr<='9') Then Exp_Value := (Ord(Chr) & $0F)*10; Read_Chr; If ('0'<=Chr) And (Chr<='9') Then Exp_Value := Exp_Value+(Ord(Chr) & $0F); If (Chr = 'X') And (Exp_Value >= 10) Then Exp_Value:= Exp_Value Div 10; If Exp_Sign Then Dec_Exp := Dec_Exp - Exp_Value Else Dec_Exp := Dec_Exp + Exp_Value; End; If Dec_Exp > 0 Then Result := Result * PwrOfTen(Dec_Exp) Else Result := Result / PwrOfTen(Abs(Dec_Exp)); If Dec_Sign Then Result:=-Result; Real_Val:=Result End; Function Val(St: Str255): Integer; Begin Val:=Trunc(Real_Val(St)) End; Function Long_Val(St: Str255): Long_Integer; Begin Long_Val:=Long_Trunc(Real_Val(St)) End;  3PpBQpB1@Uw . PBooii %% @ @}}zXzX8833WW__ww 11mmoo@@WWvv~~ UU ++  xxUU@@  ;  ?~~ ++  @? __X `  __ _~׊^^@@ ' `[O  SŚ KOXKK@e uxuTT( )_@U@ @ ~d**ڨ*@*@{pd??\\ PP ~ ?~0o~ ~8~~<~"~<?~?"<???7"<303w"<101>000?a`a? ??8?~<?@~>?@~A@A8>6?@??~ppqQU ?@~ v18?8882 ?M%C20W?p {{{?iY@;~ {{{?Ք&b<_| {{?$FK)| {{?@0@UFW]| {{?`0@*OE P߯| {{000<@{j{@D`5@|{{00ǀ0<@,  B@v^S|??@~߀ o@y@ 8M1}??@ XeS[6 ?RB$$}<=<???777(.N ?@F\&Ȁ ||<<??77@ AXݑK& qkT HW@|}<< p77``K&%}}!`8j! ||??0?ǀ00 P0707?0 !4˔mYRM[ߤ J3@{ބ|???00 P07707?@007*n#3̋p~)DE@p@p??? P?????@`4>>21H"z3̻+Ϳ@#@pw??? P?????@^67 @8]E #LJhh@pw??? P?????@4~0JMhjތ4@p??? P?????@p.1?@Ϟa 1iH"H$@pp0?0????_P?????@@^$eA ZR~Vp@p0?0????_P?????@ 0AB$D`q p?????????@15 $N1i^k[sppp????????@075 ػD @%ȗȷ7H@gQNߟ @pp????????^v.jƣ|{>X @x߇p????????^ 10'/y@)[BkDן(@|????????^,!0yt||????????????@ 7K7/-eoF\EGBZd~ @?FwjD_2>C2>qk|}a8\"~De?FwS ㅔ`4㋔@>BFAJMhj8<+=@K ?G{^`1Dݛ%A$1iH$BO\5}0A0?$Z Jn?nz$D_mXSI[Y7Hcw? P=X@- p&IbL?s* ?tOR)j|21H"z3̻—@$.@j.n?4r mi=\ BG2G>#LJUFWۀ!?J8@Jh3y{y JMhj*EO +jk  ??u$ ADEt 1iHDp` Ӏ   D;@;47HMnK #m@KvCi^[k7Rw  <<;;;#~mo@h??6`#_S@7%@QH`  <<;;V!ڠO!]< ggnɵ{>v   ((  ;;!|zx5%==  3͌y@P@  <<x{;;&V vSX\~ H0xc@c  0< < y{0;0;5u I π0O=yڈuF @\@  0< < y{0;0;O+u|u[wyet Z 8 kq`   0<<y{;;l o_ Pi$ny߀ $B<g]r@  0<<y{;;h`#_0::r&] HY`߁8   0<<y{;;6mDqD{ Aѽ.B*E& JmYR[I  0<<y{;;;(.QT `]2~ [ô$Yp~z  0<<y{??:DSUR_J,kkBJ.129H9zƅ1"3U   0<<y{??~u@55@Ip/ΐ*E#֐LJ  0<<x{;;; gxHJ7kk?ofD[B)MkJhj0<<;;`%% u}@Ervh s1Hh(B0<<;;%%n$@';KAQUFWX0<<;;,1  j@ΐ*EO ;@B@0<<;;!?']"F @@  䵯HC<~'f͟y[@mtt}"8w~wa32g>E@eMKo oA@A@ k/ ?uYF""\BWߥ kzUUUA  Ɂ w]ݓkq`IDE::? @0/<-ӿ@gPrr/j/ NNWx.4@nՁhܐ`ށ 8 kPQ &#&#E~ !rmYR[H @ @@p~ 0y [a[a~aaV~o 2Hz1"3@^W&W}O&'w %%@ ~X$wـP߀ #LJH !)?<<p W0W0}w0 MJhjD>`2 D@;?~w ]F]F:_ h1HiNMS%p@@@w`" DD;;V<~ |fxf~ρ?!ăn\cssH Mp;`> 1Dq;PQP<|?LL k RP G!Uuk˭vs@TT+t~{p` `C  |J5 0>@w3 62 !M"_#] O@ @@@!@?/NO03@ 20N 1AA]++I!!0 (DhEH@׺@@@ rƼ0A '_&&S(,h@((IID44    TTP !?( ( @eecVWWBB$hh!V!V!ީAPAPAP``\`#@)_44޵ JB $ >L>LZ>M>MZ#  hQQQM]]5OO0)))&&S(=r= T(/ʚ a411y(00y(DD<`A`AЈЈpwwD  R R b( ( ?ee  {{ XtUmUmyۂABABZZRR?@PPA  0{φxBB_p"TTENDQDQ|Pee BRBR_ee PPOgPPOg  Naqäq ЧP/MM ""z@@@'P;; [0?C@u ~~hh?I\\ "33gb33c{@@C=eeAH? UUjk{@bbwbbwEH(Q(Q @!@! P@(@(WRR!!!ޠ##$$w[ W?g ~ @ @w@@3Xb=b=b=b=UU$mUmU t ~0 0 $N˰0Gyyi44"("(]mmaHwLL ; }ʉʉII"VV\   FhFh#?   k4 @v@vп @@@Y@p@pS тт&4`;`;Iٖ'H'HT T (^(^..x**xĨTH((PPA  hjj kx  4&&ĝ`>**%F]1UU}UU}""=Bh&h&##] ##R(YYO```L`LVV; 22<u[u[v((dS00KAA(PPũ:s s s s ((/0Мۿ @ۿ @DIDI}Ԃ"TTT|QQ&%%DD=)hqmFF#.t @``Ӯ(|| E  *aa~Raa~_@ @ ))V6bA00>M>MZ" IbTA..A``Q {5?W %Z%Zw %Z%Zs !! FwVV (QQO*00y(DD?((oDY Y O w@"((J @00w00wAAa ' ' &(Q(Q ZPP?@ h h DD}߂ CCuLLNNP00@&&Ԕ i  jFF:ɠɠ^ {K@@G mPmP PPOgNCC@G@G 33g@@Sas=BAA((ddoxxzff<À}X***VV\rrn$~``2I!!h&h&!@!@P ((Taa~ UU1 w} PPkG EEE ]"(P(PiibbwEID )0  00~K$$ѿ zz˿zzI6*6*` ` Ieh&h&E(*b=b=UU$РР(*FF#11ww((w@ 3 22 F`1D )0" ʉ@@" {?R%..Wx**ًTGlGl:O5l5lO66 a a~@@_ ((DBBs@@@ڿ*J'HTTEE LV#V# YYRO(DDDD.PPP.{PZ%Z% ZZs߄ hh***{?R%##vFUU}!!=BSSTTlł*((@ DD}@Ϯ (('0'0wAAMM’’=mEEG LDD?@s s  ++)'Paa~@@_ P]k"44k^ {0D0Dyw##e܊@@SSbbӬ(@NN`PP߾ AZ%Z% ZZs߄ ]]35O O Y0kffAd&F@hBۏ"p@ @ 3yg@Cb$@pB*g@oZ%@@ ((T_22F 1UUm!9d%hnex&@6d&HD]esyyg@ ϸ0 G& ?& D9F_@ @ؿ'@Օj* 00~K""V!VVWW @ @w$ @G`_c# pPD ]`UU0@"Q.Q"PѮfp"E H/ @X /7pgE=E=B/PFF#sB$ L L  쩠@ssD s s׀  ~^PPPma0a0~  4M;;h$$+"((/ʚ a4@u@uSP_Ԑ ((h~с(`d`| Pxp"""m|} /@а[[v P_? UmUmyۂABAB;$*=|@@_..AǤA`fpwB[bfgffw 9ddh٪JJ?;@PP_ BRBR_ee 00K 8/P ? `  ` XFfgg~&A'$@= ]"xDHJHJ׋ 4NDu FF#)G`"DD@!٧d)PF _@0&&I pPppf  Fe%=$?@&&``}t`t`2 k{@gT$f Bdq@$fB(($x @9ff~~ff{B Z8f Ps 8 8)BB `UI@@̀3XY Y O@ق&$ f@!gP!pdh@C@yfsfffb}`$yd$B  HD`((o%% ; }DD}܂" /`@`P#D@Bےh$j(hq fp} / `f0ቘRv%ɀɀe'X@@g"QQ&4`;`;Iٖ@B@B ((-RSe TT*@`1# ILhJ0J0i}**%F]1 d}&q lZB¼'@-RxtEEEEEDTTű*NE@E@|[!!VAVA(PPũ:AA]+I!! "kAdd?11T@T@T@ df{T@T@Wݨ"'P dd QQt @ f`@O0@~$=w`o` ?;pqgbbb#A DwABB$`fc`B@Yfff@yfsp!! ##>A00@ @>L>LZ&@?BpFB Iɟ^ @ ٠F ``` 5Gyfs~PiPi.k44AA}33uLL11y(0۱x De"f 9O"`@<C@@#1y~yfs`Hd1 Y8k  y! 3 3Mg33gb@@SaZ@ @O0@@_k@PjG(P_ 1`p PV@pPP   h@@֏)P@@ !@!@P ((TPPOgPPOg  I**aByBAee@@eBeB=`L`L&& * t 00~K~~tt?I 22 G0}QQ&ee߬`  FF#bbwbbwE@L]L]LULUSSVwVp6bAf'xP..x**ًTb=b=b=b=UU$GG@GGQ@wkwVV (OUOUIf#f#=##] YYRO(ʉʉQQ 9Q9Q@9B9B~@&&&(((N'N'N&*'*'(Q(Q 22n @ DD}@'H'HTT VV jj؂ؼA'22< jjؔ mPmP a ar~aaR~@@_ UU}UU}44=BJJJJ@ VV]VV\jj* % %wр Z%Z%wр ZZs߄ s s s s aNaNaBaB́L3̛̙]d"))]"(P(PBB 00w00wAA``Ӯ(|| Eu AA@3@3@@QQN|Dh&h&&&mFmF:^ {..A``Q s5X# y!((N(TTVkaD )0"" Ꙭdxfxfzυ>3 22F 13PpBQpB17@pUw @B)GGPLuMF""@e7ؿ@ ,NTNT %%9P9P@@m@}ݓk{$`k<? _jQo?o_VB55ݰ?.@LJLJuu015 =-ѿ@5fKoWth~<@(~? ?Aо/C|Z@00JJEEgܐc w$'<0<@(X XՀj  OpPPDJJaCaC  );`ĵr \1D}H|x<@(?9]΢1~zx##Aiig@~@PPu!cbݏp@qa*cix>>'\/=%0 KKrGu5u5.{X#P3I{#|TP!0  ^|wtzzxGCjj \\":":@9@#L$S__Scva%98by}}H x x[BB))o; >? MO0@ __XXp`'~ف&z'tt݊ݗ`g!**^h2I-ڿ@% X W*(-QҮ-QrrrycycfoZ%] "hhk@J.}n!ǃo\ˠۨ$Wq /P WOF5DkQcQMMՕj*6VVWW}#!Uug@Hkb]j/PzW?%P=PpXpXEEE=E=B=B tB- Uz~#Pwo k^áG2W?l٪FNFN=wee m}ݓkB0Rl A`~_:qŎ:j@==xDHHY%  "#5i =-ѿ@3OHfż1 >?_u??π0E&&ɠɠ^ {@''g{ܐc KvCAX\X z߅{ L^px<0;>\}3A?<==0)`;`;Iٖ,,nP2I{iaЭsa99ASccNTNT 22 F]1a9`3@#Loo Jd?@8wtUG{A__ ݰ?.@LULUPPũ:F;G>? L(;k;^]i\!@? @߼g~g?qq??f@GGQ@\#h2H_/`_P Aツ ? @߼oE? _P QQD9B9B~@AJ.n"!ƃn\P3I@{ > ? @߼^\~b5>?,7Oʰ5[d@jj@}I!Tu9@#Ls|_N@zx  ?9u4u4/JJ$$@tB; >?M<wQ/w(  +GԿ+@aBaB @K4!L!h2Ic]]?oߐ eٺ&EWC?p z zZRRu(11Nw0K{nJ!.n\o'`11WWPS##2y1 ?#ttX#H !6 H?}!UuWQx /qp91o[$",",@00_Ψ ͚>BtW! ?@wihy?|0,|ԕj*))~t t %R/!WLP /?@`V[[h:h%CxE=E=@g0OO@C.E~EN0K{'8n8?@GN@L_߿4t>/W'Nnns@>RA XX!ݺ&6 ?oI|<><OSAQ@?u+45rP^@@WM@@[j4x[Π2W_0| )! ? r  # #٪ EAS !p@۷mp | 9%9_P-\j737?/xDȚa HH7RwAj" ڳ&HG0G'| @??@rtrO(D( J __&&A@A@|vWvW^ {Wh ;,ppa `?@ W~ST/`ڟ%}_ʶ5I3p͏2?;? : :)jj  4V_R6d cvE.g~?] 810>@@?@)֏cC=oҗ-h> 27 ` [([(vPs?GI gq700>Y ?s 90_Ϡ y_ߡ ^ Rw%{@ {hv}JR(%cѾ*fw (ox! <??[$$*B5BJSB;?LkXk"5y5o bog?wpp)Àp<>*+d+R"RFB_GGTTų*L  e  ?Y]"CGܸ#au } .l=Q=3v̉3|x'P` ` IߖP  i:BזZ R -n`NK@C9~<w+AFJ1N˰$`>bvo FҭR)8m} <?c>G>?#~|_!!PPҩ)` ` 2`8١Bۻ$Dϳ 5 QJ  XX5~|@#"?A A  @ /I21r a%%CQ*@  J Ao[wQJĐ9m= d}Cj)D  N?%$P}\@O||qqFF@@$@$" "@5}))r#r'<ÆyN  O )!@_㿼@Cr!!44@tt 32K[@_F !gC)6-fe) )f_| ca&&{@&&{@``qp;DB'[bGg=BhWhք){ux<C<C"" `„X$.\~1%J@]! o=!oϽ3-*  }R  }R@(@(,,ƃOx0` z~*ccwY"?0LLPLLP 'X(oD| X|߃ *B@‰ǯ8P~9WuuLu곟L`_wT``\P@P@P@P@00Y$dq[I$\J4|0K˄GUGUAAUUo!!vQe<u1u1u1u1U@U@["[o97B{H@<*<*BAA0 J JP{{xxȪȒEbrbrn~))ʽBLBBцц;@LL oo*+}DDDD bbwVVHMM995@r@rS``YHz @߿zx[ [ $[ [ $00E*``UUf5kakaEi&2!"HW@T_C   **T**T!” 'S S w""BBV ~ 00K:N@ _# wW pFϽ099@99@  Š=BtbtbsA&``nF F #%Ҋ?@J{K.kԃ/VЫHtV (/ٿ@00i>M>MZ"~F<w @b. +Cwqq " K[WSSc 00y(DD?DD_?uu_ nlPlP>~YYOC@)I@  _= zC6vHgH``n~ZPP?@ @S@S AOAOK<QQ]A9(D D }҂%_*-}#J؀dd-PPWPPOgNää A_IIu]@@ys >AyyY[`@~ ڿaXqqHc}}{ɿ@HH!~``2Iz)   7H7H@ yy(dd rttp00 / B5m=kB!<Lߍ S+!9bbwEI&&,Q PF + Ԡ YRက oE[$yW@(JW%aw|V@ ߈ [DUT`!'@M@My]b=b=UU$))aypMpMY]YY_ȯ@Hj`(|8o?>)۶$S"]qXZdRdR$ʉ@@"  4•h@@͢0dSdS ʐ$ۘۘo$#vEvEм ==B |M>MZLLJJ׋ 4B9Ϥ{x"D 0@@O0&9ARtx+tt&&{@@`pp@O00y(D@D@Sr`r`||r%&&??$rkAe߿@@" =| A0A0?0PZ=B`LPS S )9:$%pP _KGVox#A }``=O°޿?TTOg30K(((/(*Aa$yxxA@=@Lٳݳ{y{ P;?~Hcebb0ҏ% _wL=B(0W/BBze̟uP@P@U[;`ޓ,?bbwިqqEp?1tx uOL=h? (W/|уooo%u5u1 .qE8LrC0~m`}UT&8￟ԟEt)LF UJ5;R S@??9 ;jʰpAcz;~:o@@_7"> ,A e H SV۫<ƀ>! T~8o? 6I 20>g{449WSATP|  @oؐq99@<>fAj(_]XGb0b0|A?A v=O=r7 j;aA x['#  ?81iAVO@p>``A>?p{& hs"QS$XE ~ GdpSC u?djb' c`y11gfppt-`/`|`|N>L/rE:-~~_+#<//߫T8T8T8?v``no00sOO =cp||SrRμ!CqƂ`9@/X'l8@@ Ď<[8[8[8+/PPW;yB@ֽ~p~}>A ~ ,Sx~ 6vA*oYІ@`/h[QWv*<< (8| PP  EMvB I q 9;bƞ!ځڃsns}ah } Wk@_ #&i /*߮@M@My]{N !}%VI9觉Hh~>C@|örTiTߞ a?@T~WVH dSdS$' _W&& =/Hvp EzE{  ?`3`0܂؂ :Ϭ g >B ء &VuugXP^;;h2)"!m55euaa~ + 4迗C@| ~L36D / e>Kj ϷȠ7/D77\T/ߑ@@@4‘OO/+@ii ?[U[^vPPCak`k|8"$" @ >L( imr_ BCܼ= ߁;@W @00h"" q`=;yy #Z"H@pIK "?`yWU{~JJw45TuV h$$,tt" {}@@))8}Gp gmt( V U(W # Ǘ(!aX(+2`2` '*.UUL`$$?Z''ާPL L 'X&x_dBD|@k>0 F!gØ{EAR`02!(!(^./ PPP` P P+Ԁ@@ʿY$0f0fOƐ??0'<<x?XPP$[# ;:٢' &((0OVɁɁDdd? 33Nuu1U1U"@@[+__h@|G/|n~n?!rCD%鿖@]_`_@'Xg~5B``r2R%ESS++``I10 RR,, ]>߶a7A@ 0 0D z,@@ IDDN    #F1 Yr(;#VoT+@#ss #@@[\c&&I`HUU U[U[ē*$   _^HPP3`8@ CLb 쌿 P_e**BB-R((eS(T@T@w݈"Ѯ&Q**ԋT!DCQ@p`4$ %%  D@ '9H* * Ddd?l bb[44,,@55_997__q7BB~ JAe[  mfSPf on?~"+!+!Io0!!~t"t"UCUCVVä jj@i@)@|  ^bp"_Lܗ#h]@((DHHk00k440OO~BJBJbJJ@ !!C|! ~Gg P BBhh Y Ynns>WA!!oNaNaBB !@U %_]V~~ԇ ^PPPPk @ @iM@@Y  kֽ @A0A020]{ >Tʫ5EU^p5) E@TT# !yO(&fBz!) HNL"L")@)PUE@UCJ+GG9))=&&S(,tp"<<<R'( ( @eec@)@@@ AA  xx  = d <<d@@<<^<@@s<<^4@@]5l@? s:e@ @@gg x{ Text_Height - Set the height in pixels of text, when it is drawn using the Draw_String library call. } PROCEDURE Text_Height( height : Integer ); TYPE Ctrl_Parms = ARRAY [ 0..11 ] OF integer ; Int_In_Parms = ARRAY [ 0..15 ] OF integer ; Int_Out_Parms = ARRAY [ 0..45 ] OF integer ; Pts_In_Parms = ARRAY [ 0..11 ] OF integer ; Pts_Out_Parms = ARRAY [ 0..11 ] OF integer ; VAR control : Ctrl_Parms ; int_in : Int_In_Parms ; int_out : Int_Out_Parms ; pts_in : Pts_In_Parms ; pts_out : Pts_Out_Parms ; PROCEDURE VDI_Call(cmd, sub_cmd : integer ; nints, npts : integer ; VAR ctrl : Ctrl_Parms ; VAR int_in : Int_In_Parms ; VAR int_out : Int_Out_Parms ; VAR pts_in : Pts_In_Parms ; VAR pts_out : Pts_Out_Parms ; translate : boolean ) ; EXTERNAL; BEGIN { Text_Height } pts_in[0] := 0 ; pts_in[1] := height ; VDI_Call(12, 0, 0, 2, control, int_in, int_out, pts_in, pts_out, false); END ; Procedure Str(N:Integer; Var Num:String); Var F: Integer; E: real; Begin E:=0.01; F:=0; Num:=''; if n<0 then begin n:=-n; num:='-' end; If (Trunc(n/10+e)>0) then begin num:=concat(num,chr(48+Trunc(n/10+E))); n:=n-10*Trunc(n/10+e); F:=1 end; if (trunc(n/1000+e)>0) or (F=1) then begin Num:=Concat(Num,Chr(48+Trunc(N/1000+E))); n:=n-1000*trunc(n/1000+e); F:=1 end; if (trunc(n/100+e)>0) or (F=1) then begin num:=concat(num,chr(48+trunc(n/100+E))); n:=n-100*Trunc(n/100+e); f:=1 end; if (Trunc(n/10+e)>0) or (f=1) then begin num:=concat(num,chr(48+trunc(n/10+e))); n:=n-10*trunc(n/10+e); f:=1 End; Num:=concat(num,chr(48+N)) End; 1058 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 C:\GAMES\CAMPAIGN.DEV\*.PAS C:\GAMES\CAMPAIGN.DEV\*.O C:\GAMES\CAMPAIGN.DEV\*.PAS C:\GAMES\CAMPAIGN.DEV\*.PRG C:\GAMES\CAMPAIGN.DEV\CAMPAIGN.O C:\*.* C:\*.* C:\*.* C:\*.* C:\*.PAS C:\*.PAS C:\GAMES\CAMPAIGN.DEV\PASCAL.INF C:\GAMES\CAMPAIGN.DEV\*.INF C:\PASCAL.INF C:\*.INF D:\PASCAL\EDITOR.PRG D:\PASCAL\COMPILER.PRG D:\PASCAL\LINKER.PRG D:\PASCAL\PASGEM D:\PASCAL\PASLIB C:\*.PAS C:\*.* D:\PASCAL\LISTPAS.PRG - C:\GAMES\CAMPAIGN.DEV\ADDRSTUF.O  Procedure Long_Str(N:Long_Integer; Var Num:Str255); var f: Integer; T: Long_integer; e: Real; begin E:=0.01; F:=0; num:=''; if n<0 then begin n:=-n; num:='-' end; if (Long_trunc(n/10+e)>0) or (f=1) then begin num:=concat(num,chr(48+Long_trunc(n/10+e))); n:=n-10*Long_trunc(n/10+e); F:=1 End; if (Long_trunc(n/10+e)>0) or (f=1) then begin num:=concat(num,chr(48+Long_trunc(n/10+e))); n:=n-10*Long_trunc(n/10+E); F:=1 End; if (Long_trunc(n/10+e)>0) or (f=1) then Begin num:=concat(num,chr(48+Long_trunc(n/10+e))); n:=n-10*Long_trunc(n/10+e); F:=1 end; if (Long_trunc(n/1000+e)>0) or (F=1) then begin T:=Long_trunc(n/1000+E); num:=concat(num,chr(48+T)); n:=n-1000*Long_trunc(n/1000+e); F:=1 end; if (Long_trunc(n/100+e)>0) or (f=1) then begin num:=concat(num,chr(48+Long_trunc(n/100+e))); n:=n-100*Long_trunc(n/100+e); f:=1 end; If (Long_trunc(n/10+E)>0) or (F=1) then Begin num:=concat(num,chr(48+Long_trunc(n/10+e))); n:=n-10*Long_trunc(n/10+e); F:=1 end; num:=concat(num,Chr(48+N)) end; "{ gemtype.pas - Common GEM type definitions for Personal Pascal library. } Color_Reg = 0..15 ; Draw_Modes = Replace_Mode..Rev_Trans_Mode ; Line_Types = Solid..DashDotDot ; Mouse_Type = ( M_Arrow, M_Text_Curs, M_Bee, M_Point_Hand, M_Flat_Hand, M_Thin_Cross, M_Thick_Cross, M_Outln_Cross ) ; Dialog_Ptr = ^char ; Menu_Ptr = ^char ; Word16 = ARRAY [ 0..15 ] OF integer ; Mouse_Form = RECORD hot_x : integer ; hot_y : integer ; res : integer ; mask_color : integer ; data_color : integer ; mask : Word16 ; data : Word16 ; END ; File_Name = STRING [ Max_Fn ] ; Path_Name = STRING [ Max_Path ] ; Window_Title = STRING [ Max_WTitle ] ; Message_Buffer = ARRAY [ 0..15 ] OF integer ; Str255 = STRING [ 255 ] ; { Editable text justification: } TE_Just = ( TE_Left, TE_Right, TE_Center ) ; { Possible indices into a tree: } Tree_Range = Root..Max_Tree ; Tree_Index = Null_Index..Max_Tree ; { End of gemtype.pas } I{ gemsubs.pas - EXTERNAL declarations for Personal Pascal library routines. } FUNCTION Init_Gem : integer ; EXTERNAL ; PROCEDURE Exit_Gem ; EXTERNAL ; FUNCTION Do_Alert( alert : Str255 ; def_btn : integer ) : integer ; EXTERNAL ; FUNCTION New_Dialog( n_items, x, y, w, h : integer ) : Dialog_Ptr ; EXTERNAL ; PROCEDURE Delete_Dialog( dial : Dialog_Ptr ) ; EXTERNAL ; FUNCTION Add_DItem( dial : Dialog_Ptr ; i_type, flags : integer ; x, y, w, h : integer ; border, color : intHeger ) : Tree_Index ; EXTERNAL ; PROCEDURE Set_DText( dial : Dialog_Ptr ; item : Tree_Index ; s : Str255 ; font : integer ; just : TE_Just ) ; EXTERNAL ; PROCEDURE Set_DEdit( dial : Dialog_Ptr ; item : Tree_Index ; template, valid, initial : Str255 ; font : integer ; just : TE_Just ) ; EXTERNAL ; PROCEDURE Obj_SetState( dial : Dialog_Ptr ; index : Tree_Index ; state : integer ; redraw : boolean ) ; EXTERNAL ; FUNCTION Obj_State( dial : Dialog_Ptr ; index : Tree_Index ) : integer ; EXTERNAL ; PROCEDURE Obj_SetFlags( dial : Dialog_Ptr ; index : Tree_Index ; flags : integer ) ; EXTERNAL ; FUNCTION Obj_Flags( dial : Dialog_Ptr ; index : Tree_Index ) : integer ; EXTERNAL ; PROCEDURE Center_Dialog( dial : Dialog_Ptr ) ; EXTERNAL ; FUNCTION Do_Dialog( dial : Dialog_Ptr ; start_obj : integer ) : integer ; EXTERNAL ; PROCEDURE Get_DEdit( dial : Dialog_Ptr ; item : Tree_Index ; VAR s : Str255 ) ; EXTERNAL ; FUNCTION Redo_Dialog( dial : Dialog_Ptr ; start_obj : integer ) : integer ; EXTERNAL ; PROCEDURE End_Dialog( dial : Dialog_Ptr ) ; EXTERNAL ; FUNCTION Get_In_File( VAR path, name : Path_Name ) : boolean ; EXTERNAL ; FUNCTION Get_Out_File( prompt : Str255 ; VAR name : Path_Name ) : boolean ; EXTERNAL ; FUNCTION New_Menu( n_items : integer ; about : Str255 ) : Menu_Ptr ; EXTERNAL ; PROCEDURE Delete_Menu( menu : Menu_Ptr ) ; EXTERNAL ; FUNCTION Add_MTitle( menu : Menu_Ptr ; item : Str255 ) : integer ; EXTERNAL ; FUNCTION Add_MItem( menu : Menu_Ptr ; title : Tree_Index ; item : Str255 ) 0: integer ; EXTERNAL ; PROCEDURE Draw_Menu( menu : Menu_Ptr ) ; EXTERNAL ; PROCEDURE Erase_Menu( menu : Menu_Ptr ) ; EXTERNAL ; PROCEDURE Menu_Hilight( menu : Menu_Ptr ; title : Tree_Index ) ; EXTERNAL ; PROCEDURE Menu_Normal( menu : Menu_Ptr ; title : Tree_Index ) ; EXTERNAL ; PROCEDURE Menu_Check(menu : Menu_Ptr ; item : Tree_Index ; checked : boolean ); EXTERNAL ; PROCEDURE Menu_Enable( menu : Menu_Ptr ; item : Tree_Index ) ; EXTERNAL ; PROCEDURE Menu_Disable( menu : Menu_Ptr ; item : Tree_Index ) ; EXTERNAL ; PROCEDURE Menu_Text(menu : Menu_Ptr ; item : Tree_Index ; VAR mtext : Str255); EXTERNAL ; FUNCTION New_Window( w_type : integer ; VAR title : Window_Title ; x_max, y_max, w_max, h_max : integer ) : integer ; EXTERNAL ; PROCEDURE Open_Window( handle : integer ; x, y, w, h : integer ) ; EXTERNAL ; PROCEDURE Close_Window( handle : integer ) ; EXTERNAL ; PROCEDURE Delete_Window( handle : integer ) ; EXTERNAL ; PROCEDURE Set_WSize( handle, x, y, w, h : integer ) ; EXTERNAL ; PROCEDURE Set_WName( handle : integer ; VAR title : Window_Title ) ; EXTERNAL ; PROCEDURE Set_WInfo( handle : integer ; VAR info : Window_Title ) ; EXTERNAL ; PROCEDURE Border_Rect( wind : integer ; VAR x, y, w, h : integer ) ; EXTERNAL ; PROCEDURE Work_Rect( wind : integer ; VAR x, y, w, h : integer ) ; EXTERNAL ; PROCEDURE First_Rect( wind : integer ; VAR x, y, w, h : integer ) ; EXTERNAL ; PROCEDURE Next_Rect( wind : integer ; VAR x, y, w, h : integer ) ; EXTERNAL ; FUNCTION Rect_Intersect( x, y, w, h : integer ; VAR x1, y1, w1, h1 : integer ) : boolean ; EXTERNAL ; FUNCTION Front_Window : integer ; EXTERNAL ; PROCEDURE Bring_To_Front( handle : integer ) ; EXTERNAL ; PROCEDURE Set_Window( handle : integer ) ; EXTERNAL ; FUNCTION Get_Window : integer ; EXTERNAL ; PROCEDURE Set_Clip( x, y, w, h : integer ) ; EXTERNAL ; PROCEDURE Draw_Mode( mode : Draw_Modes ) ; EXTERNAL ; PROCEDURE Set_Color( reg : Color_Reg ; red, green, blue : integer ) ; EXTERNAL ; PROCEDURE Line_Color( color : Color_Reg ) ; EXTERNAL ; PROCEDURE Line_Style( style : Line_Types ) ; EXTERNAL ; PROCEDURE Paint_Color( color : Color_Reg ) ; EXTERNAL ; PROCEDURE Paint_Style( style : integer ) ; EXTERNAL ; PROCEDURE Paint_Outline( on : boolean ) ; EXTERNAL ; PROCEDURE Text_Color( color : Color_Reg ) ; EXTERNAL ; PROCEDURE Text_Style( style : integer ) ; EXTERNAL ; PROCEDURE Move_To( x, y : integer ) ; EXTERNAL ; PROCEDURE Line( x1, y1, x2, y2 : integer ) ; EXTERNAL ; PROCEDURE Line_To( newx, newy : integer ) ; EXTERNAL ; PROCEDURE Plot( x, y : integer ) ; EXTERNAL ; PROCEDURE Paint_Rect( x, y, w, h : integer ) ; EXTERNAL ; PROCEDURE Frame_Rect( x, y, w, h : in cteger ) ; EXTERNAL ; PROCEDURE Paint_Oval( x, y, x_rad, y_rad : integer ) ; EXTERNAL ; PROCEDURE Frame_Oval( x, y, x_rad, y_rad : integer ) ; EXTERNAL ; PROCEDURE Paint_Round_Rect( x, y, w, h : integer ) ; EXTERNAL ; PROCEDURE Frame_Round_Rect( x, y, w, h : integer ) ; EXTERNAL ; PROCEDURE Paint_Arc( x, y, x_rad, y_rad, beg_ang, end_ang : integer ) ; EXTERNAL ; PROCEDURE Frame_Arc( x, y, x_rad, y_rad, beg_ang, end_ang : integer ) ; EXTERNAL ; PROCEDURE Draw_String( x, y : integer ; s : Str255 ) ; EXTERNAL ; PROCEDURE Set_MForm( VAR form : Mouse_Form ) ; EXTERNAL ; PROCEDURE Set_Mouse( m_type : Mouse_Type ) ; EXTERNAL ; PROCEDURE Hide_Mouse ; EXTERNAL ; PROCEDURE Show_Mouse ; EXTERNAL ; PROCEDURE Init_Mouse ; EXTERNAL ; PROCEDURE Begin_Mouse ; EXTERNAL ; PROCEDURE End_Mouse ; EXTERNAL ; FUNCTION Get_Event( emask, bmask, bstate, n_clicks : integer ; ticks : long_integer ; m1_flag : boolean ; m1x, m1y, m1w, m1h : integer ; m2_flag : boolean ; m2x, m2y, m2w, m2h : integer ; VAR message : Message_Buffer ; VAR key, brtn, bclick, mx, my, kstate : integer ) : integer ; EXTERNAL ; PROCEDURE Begin_Update ; EXTERNAL ; PROCEDURE End_Update ; EXTERNAL ; PROCEDURE Wind_Get( handle, request : integer ; VAR v1, v2, v3, v4 : integer ); EXTERNAL ; PROCEDURE Wind_Set( handle, request, v1, v2, v3, v4 : integer ) ; EXTERNAL ; PROCEDURE Sys_Font_Size( VAR w_char, h_char, w_box, h_box : integer ) ; EXTERNAL ; PROCEDURE Clear_Screen ; EXTERNAL ; FUNCTION Load_Resource( fn : Str255 ) : boolean ; EXTERNAL ; PROCEDURE Find_Menu( index : integer ; VAR menu : Menu_Ptr ) ; EXTERNAL ; PROCEDURE Find_Dialog( index : integer ; VAR dial : Dialog_Ptr ) ; EXTERNAL ; PROCEDURE Find_Alert( index : integer ; VAR alert : Str255 ) ; EXTERNAL ; PROCEDURE Free_Resource ; EXTERNAL ; { End of gemsubs.pas } { gemconst.pas - Personal Pascal GEM library constant definitions. } No_Window = -1 ; Root = 0 ; { Index of root w/in object tree } Max_Tree = 100 ; Null_Index = -1 ; { Index of a non-existent item } Max_Depth = 8 ; { Max depth of search or draw } Max_Fn = 12 ; { Max length of file and path names } Max_Path = 80 ; Max_WTitle = 80 ; { Event values: } E_Keyboard = $01 ; E_Button = $02 ; E_MRect_1 = $04 ; E_MRect_2 = $08 ; E_Message = $10 ; E_Timer = $20 ; { Graphics command constants: } { Drawing modes: } Replace_Mode = 1 ; Trans_Mode = 2 ; XOR_Mode = 3 ; Rev_Trans_Mode = 4 ; { Line styles: } Solid = 1 ; LongDash = 2 ; Dotted = 3 ; DashDot = 4 ; Dashed = 5 ; DashDotDot = 6 ; { Text effects: } Normal = 0 ; Thickened = 1 ; Lightened = 2 ; Slanted = 4 ; Underlined = 8 ; Outlined = 16 ; Shadowed = 32 ; { Font types: } System_Font = 3 ; Small_Font = 5 ; { Graphic types of obs: } G_Box = 20 ; G_Text = 21 ; G_BoxText = 22 ; G_IBox = 25 ; G_Button = 26 ; G_String = 28 ; G_FText = 29 ; G_FBoxText = 30 ; { Object flags: } None = $000 ; { Also used for fill pattern and text effects. } Selectable = $001 ; Default =d $002 ; Exit_Btn = $004 ; Editable = $008 ; Radio_Btn = $010 ; Last_Ob = $020 ; Touch_Exit = $040 ; Hide_Tree = $080 ; { Object states } { Use Normal for no special state } Selected = $01 ; Crossed = $02 ; Checked = $04 ; Disabled = $08 ; { Outlined and Shadowed are defined under text effects } { Window elements: } G_Name = $001 ; G_Close = $002 ; G_Full = $004 ; G_Move = $008 ; G_Info = $010 ; G_Size = $020 ; G_UpArrow = $040 ; G_DnArrow = $080 ; G_VSlide = $100 ; G_LArrow = $200 ; G_RArrow = $400 ; G_HSlide = $800 ; G_All = $FEF ; { All elements, except info line } { Color register shorthands: } White = 0 ; Black = 1 ; Red = 2 ; Green = 3 ; Blue = 4 ; Cyan = 5 ; Yellow = 6 ; Magenta = 7 ; L_White = 8 ; L_Black = 9 ; L_Red = 10 ; L_Green = 11 ; L_Blue = 12 ; L_Cyan = 13 ; L_Yellow = 14 ; L_Magenta = 15 ; { Predefined GEM messages: } MN_Selected = 10 ; WM_Redraw = 20 ; WM_Topped = 21 ; WM_Closed = 22 ; WM_Fulled = 23 ; WM_Arrowed = 24 ; WM_HSlid = 25 ; WM_VSlid = 26 ; WM_Sized = 27 ; WM_Moved = 28 ; { Wind_Get/Set field values: } WF_PrevXYWH = 6 ; WF_FullXYWH = 7 ; WF_HSlide = 8 ; WF_VSlide = 9 ; WF_HSlSize = 15 ; WF_VSlSize = 16 ; { End of gemconst.pas }  BATTLE FOR THE THRONE: ABOUT THE PROGRAM The program was written in Personal Pascal version 1.11. The game could not have been written without the useful routines and all around neat stuff availiable on the OSS BBS, especially the Copy_Rect routine which allows you to copy a raster image from the screen to an area of memory and back again. These routines are also availiable from them on disk. The program is laid out in three sections, with the general purpose routines first. These procedures and functions could be used in any program. Next is the game itself and last is the outside framework containing the title page, save game, credits and other functions to give the game a more professional appearance. The first part of the program, right after the variable declarations, contains Init_Form, a procedure that initializes the screen variables and sets them up so that they can be found by Copy_Rect. Next are procedures for setting the height of characters printed with Draw_String and some conversion functions for converting between strings and integers. The title page and the map information are stored as .NEO picture files, so there are procedures for reading .NEO files and setting the color pallet to match the pictures. The procedures, appropriately named Set_Color_Registers and Read_Color_Registers are also used to save and restore the desktop colors so your desktop has the same colors when the program is finished as when you started. Another useful procedure is Fade_Color, used to gradually change from one pallet to another. Once all of the general purpose stuff is out of the way there is Initialize, a procedure that loads the screens, sets up the menu bar, the build troops dialog box and initializes the variables and sets things up for playing the game. The next section of the program contains the map generation. This was one of the hardest sections to get right. If the map was too random, too often one player had an adva ntage because of the surrounding terrain. On the other hand, if the map is too regular, every game looks the same. Next is the section for actually drawing the map. A pair of For loops scan across the terrain array and grab 'tiles' out of the stored picture file and put them on the appropriate place on the screen. The areas for each terrain type in the picture file is larger than the actual square on the map, so I added a little offset to each one as it is drawn. This makes it so that the villages, swamps, etc. don't all look the same. The procedure Play_Game handles each player's turn. There seems to be a bug in GEM or Personal Pascal that mangles the text in dialog boxes if you are using the small font and try to change the text. I got around this problem by writing procedures to draw my own dialog boxes and use TE_Height and Draw_String to get text in any size I wanted. I would have just used the large font and saved myself a lot of trouble but I could not make everything fit on the screen in low-res with the large font. The economic section contains the tax collection, buy troops and all of the nasty things that happen (plagues, curses, etc). It starts by calling Find_Castle to make sure you have a castle. The Move_Bandits section controls the movement of Crobvar's bandits. It works by scanning the map to find the place where the biggest pile of bandits is and moving them toward the place with the highest population and the least defense; underdefended villages and castles will attract the bandits. The Fate procedure controls the various plagues, unusual weather, population increases and curses that spice up the game from time to time. The Winner function checks to see if one player is the only one left with any troops. If it discovers this to be true then it puts up a dialog box proclaiming the new king and ends the game. The next section contains the dialog boxes that come up when you use the various pull-downs at the beginning of the game: the score, save game, 'About Battle for the Throne' box, instructions and playtester box. The playtester box contains credits given to all of the people who played the game and made suggestions that were used in the program. Lastly there is the main program that ties everything together and keeps you from running the program from the wrong resolution. COMPILING THE PROGRAM To compile the program you will need to edit the path names of the include files to conform with the way your system is set up. Then set the 'Additional Link Files' to include Addrstuf.o.  MFdb_fields = (addr1,addr2,wid_pix,ht_pix,wid_wds,flag,num_planes,r1,r2,r3); MFdb = array[MFdb_fields] of integer; Path_Chars=Packed Array[1..80] of Char; ScreenType = PACKED ARRAY [ 1..32000 ] of Byte; HeadType = Packed Array[0..63] of Integer; Neo_Type=packed record Head: HeadType; Pic: ScreenType End; S_Ptr = ^ScreenType; { pointer to screen data } R`V o"h#X#X#X,Oc.N//Bg?<JNA Bb3XN2NSTR ?Hz~/,HNVA-HPNU?<i/ _\NLONG_STR ?Hz~/,HNVA2-HPNU? _PNTEXT_HEIGH?Hz~/,HNV8AH-HPNUBnP~=nR~?< BgBg?<HnHnHnhHnPHn8BgN:d~N^,_X> _TNKILL_BS ?Hz~/,HNVA-HPNUp=@~ ~ ~ ?.?<"n/ ? _XNADD_DIGIT ?Hz~ /,HNVAR-HPNU VA]"O2"?</< NK\ V0(rA?NJNMT VA0 ~!N^,_X>NuREAD_CHR ?Hz~%/,HNVAf-HPNU V0(R@ V1@~& V0(r V(Ao~'~(pX V1@`"~)~) V0(Ar VA0 V1A~*N^,_X>NuELVL ?Hz~-/,HNVA8-HPNUHnN~.Bn~/ NN>~0BBgA0 ~2~4Bn~50.r+Af NN~60.r-Af~7~8 NN~9p=@~:~<~>Bn~?p =@~@~@p0n_0.r9A_CBdJ~A~B0.rAo ~C~D NN2~E0.S@=@~F~G`~H~H0.R@=@~I NN~J`~L~N0.r.Afl~O~P NNb~Q~Qp0n_0.r9A_CBdD~R~S0.rAo&~T~U NN~V0.S@=@~W0.S@=@~X~Y NN~Z~[`~]~_0.rEAW0.reAWÄCBd~`~a NN~bBn~c0.r+Af NN~d0.r-Af~e~f NN~gp=@~h~iBn~jp0n_0.r9A_CBd0.rA =@~k NNb~lp0n_0.r9A_CBd0.2.tBA=@~m0.rXAW0.r A\CBd0.r H=@~n0.@d~o0.~pn=@`~q~q0.n=@~r~s0.rAo0~tA]"O2"0.?NO`~uNK\A0 `2~v~vA]"O2"0.J@jD@?NO`NLtA0 ~w0.@dA]"O2"NK2A0 ~x~yA]"O2"A0 .2.N^,_X> _ONA ?Hz~}/,HNVA8-HPNUAO"Op?"QN^?/NJ0~~=@0.N^,_X> _ONOGVL ?Hz></,HNVA:-HPNUAO"Op?"QN?/NJ ><-@ .N^,_X> _ONNV?<NNN^NuNV?<NNN^NuNV?./. ?<=NAN^ _ONNV?<NAN^NuNV?<NNN^NuAD ?Hz~K/,HNVA*-HPNUN2.HH@J@jD@~L=@0.N^,_X> _TNSAV_SCN ?Hz~Q/,HNVA4-HPNUN&#~R"y~SE0<?$QN^,_X>NuREST_SCN ?Hz~Y/,HNVA4-HPNUN#~Z"y~[E0<?"QN^,_X>NuMAKE_PATH ?Hz~a/,HNVA-HPNUp=@"np)=@0.nn2~a"n0.2|CO$n2.Ct2Rn`~b"n$np*R@2|COr~cN^,_X> _PNNV/./. ?.?<?NAN^ _O NNV?.?. ?<NNN^ _ONNV?.?. ?<NNN^ _ONSET_COLOR_?Hz~s/,HNVAD-HPNUBn nn(~s?."n0.T@A?@?~tNpRn`N^,_X> _XNREAD_COLOR?Hz~y/,HNVAL-HPNUBn nn0~y"n0.T@A?@/ ?.?<~zN"_2Rn`N^,_X> _XNFADE_COLOR?Hz></,HNVFA-HPNUHnrN`><Bn nn><><><Bn nn$><><><0.T@A?@Ar20|0<H=Af><0.T@A?@Ar20|pH=Ah><0.T@A?@Ar20p@=Aj><"n0.T@A?@0|2<H=@l><"n0.T@A?@0|rH=@n><"n0.T@A?@0rA=@p><p=@ nnr><0.2|C@Ad200.4|E@Ajpl40.2|C@2.4|EAAd40RBAd1Rn`><p=@ nnr><0.2|C@Ad200.4|E@Ajpo40.2|C@2.4|EAAd40SBAd1Rn`><0.T@A?@2.fA4.hBB><njAr1Rn`><?< BgBgBgpZ/><BgBgBgBgBgBgBgBgBgBg><HnFHnHnHnHnHnHnN1=@><Hnr><N@><Rn`LN^,_X> _XNLOAD_TERRA?Hz></,HNV&A-HPNUCE& p Q><Hn&Hn&N><Hn&BgNr=@><?.0<}H/HnvNH-@><CE0<?$Q><><CvEZp$QN^,_X>NuTerrain.NeoLOAD_TITLE?Hz></,HNV&A-HPNUCE p Q><HnHnN><HnBgN=@><?.0<}H/Hn&N-@><CE0<?$Q><><C&EZ p$QN^,_X>NuTitlePage.NeoINIT_BTBOX?Hz></,HNVA~-HPNUp=@><p=@><?<BgBg?.?.N#d></9d?<Bg><?<?<0.U@??<?

</9d?<Bg><?<?<0.U@??<?

</9d?<Bg><?<?<0.U@??<?

</9d?<Bg><?<?<0.]@??<?

</9d?<prArA?><?<?<?<?<?<p r `|?N<3T></9d?<Bg><?<?<0.]@??<?

</9d?<prArA?><?<?<?<?<?<p r `|?N<3P></9d?<Bg><?<?< 0.]@??<?

</9d?<prArA?><?<?< ?<?<?<p r `|?N<3`></9d?<Bg><?<?< 0.]@??<?

</9d?<prArArA?><0.rHS@?0.W@??<?<?

</9d?9^0|AeCRO$OpQ?<?<N></9d?9V0|AeCO$OpQ?<BgN></9d?9R0|AeCO$OpQ?<BgN></9d?9N0|AeCfO$OpQ?<BgN></9d?9b0|AeC O$O pQ?<BgN></9d?9X0|AeCO$O?<?<N></9d?9\0|AeCO$OpQ?<BgN></9d?9Z0|AeC>O$OpQ?<BgN></9d><NN^,_X>NuTreasury 0Taxes 0ExitShow Map.treasury money.Build troops fromBuild castle troops Player Name INITIALIZE?Hz></,HNVA-HPNUN0~><N/><Hy[ N><Bn nn><?.BgNRn`><><ByBy><HyHyON><HyHyUN><HyHyN><HyHy[N><Nj><N><HyHyBgBgBgBg?<@?<?<N><N><N><HyHyBgBgBgBg?<@?<?<N><HyZ N ><N0.><?< C&O$O p QNz#,></9,CO$O p QN r3></9,CO$OpQN r3[></9,?90|AeCjO$OpQN 3></9,?90|AeCO$OpQN 3Z></9,?90|AeCO$OpQN 3[></9,?90|AeCtO$OpQN 3></9,?90|AeC"O$OpQN 3Z></9,?90|AeCO$OpQN 3></9,?90|AeCO$OpQN 3Z></9,?90|AeCBO$OpQN 3></9,?9[0|AeCO$OpQN 3[></9,?9[0|AeCO$OpQN 3[>< /9,?9[0|AeC^O$OpQN 3[>< /9,?9Z0|AeN>< /9,?9Z0|AeN>< /9,?9Z0|AeN></9,?90|AeN></9,?90|AeN>< NN><?<́/< A0 ><?<?</<@A0 ><?<3/<3A 0 ><?<?</<@A0 ><?</<@A0 ><?</<@A$0 ><?</<@A*0 ><?<BBgA60 ><BBgA<0 ><BBgAB0 >< ?<́/< AH0 ><"CDE p Q><#C"EpQ><%N^,_X>NuBanditsIndependent Instructions Credits  Background Quit  Show Scores - Save Game Load Game Continue Old Game Start New Game  Info Play Game Game Info GET_PLAYER?Hz><//,HNVA-HPNUp=@><0p=@><1?<BgBg?.?.N-@><2/.?<?<?<?<0.U@??<><3Bgp r `r AA|?N<=@><4/.?<prArA?><50.rHW@?0.U@??<?<><6?

<7/.?.0|AeCO$OpQp9O"OCO$O?<><8BgN><9/.?.0|AeCxO$OpQ?<?<N><:/.N><;><<><<=/.?.0|AeHnN><>AO"Op?"Q><?N309rA_09rA^CBd><@/.NN><A/.N><Cp=@><D09^@=@><E?<BgBg?.?.N-@><F/.?<Bg?<?<0.U@??<><G?<p r `r AArAAr A?N<=@><Hp=@=y0.nnp><I><I0.2|C@//.?<?<?<2.VA?2.UA??<><JBgr t at BB|?N<" A1Rn`><K/.?<prA?0.rHW@?0.U@??<?<><L?

<M/.?.0|AeC$O$O p Q?<?<N><Np=@=y0.nn><N/.0.2|C@A?00|AeCO$OpQ><OC|O$O p Q><PCO$O?<BgNRn`v><Q/.?.0|AeCZO$OpQ?<?<N><R/.N><S/.?.N=@><Tp=@=y0.nnL><T/.0.2|C@A?00|Ae0.A@AHpNRn`><V09R@A@r A1><W09R@A@CBAEpQ><Y/.NN><Z/.N><\N^,_X>NuBanditsa Name: _ The Players Done How many players ? _CLEAR_FORR?Hz><a/,HNVAl-HPNUp=@?< Nt=@0.nn@><b><b><c?<NP`^><d><d0.S@=@`b><e><e0.S@=@`L><f><f0.R@=@`6><g><g0.><hR@=@` @b@0;N><i0.J@jBn><j0.J@jBn><k0.r Aop =@><l0.rAop=@><m0.A 2.CAAA20p@f(0.A 2.CAA><nABp><oRn`N^,_X> _XNSURVEY ?Hz></,HNVA-HPNUp=@p S@=@0.nnR><><p=@pS@=@0.nn(><><><0.A 2.CAAA20p@W><0.A 2.SACAAA20p @W0.A 2.RACAAA20p @WĆD><0.S@A 2.CAAA20p @WĆD0.R@A 2.CAAA20p @WĆD><CBd&0.A 2.CAAr A1><Rn`Rn`><Bn n n><><Bn nn><><0.A 2.CAAA20p@W0.A 2.CAAAΌ20p@^CBd$0.A 2.CAAABpRn`nRn`P><Bn n n><><Bn nn><><><0.A 2.CAAA20p @W0.A 2.CAAAΌ20JAWCBd$0.A 2.CAAABp><0.A 2.CAAA?0Hz?<N=02.C 4.EBBAΌ40rA^C@dB><><0.A 2.CAArA1><?.?.N><><0.A 2.CAAA20p@W0.A 2.CAAAΌ20JAWCBd&0.A 2.CAAr A1><><Rn`@Rn`"N^,_X>NuGENERATE_T?Hz></,HNVA-HPNUBn n nH><Bn nn0><0.A 2.CAArA1Rn`Rn`><><Bn?<N.=@0.nn><><><p R@?N=@><p\@?N=@><0.J@W0.r AWÄC0.J@WÄC0.rAW><CBd.0.A 2.CAA><r A1`><><0.S@A 2.CAAA20p @W0.R@A 2.CAAA20p @WÄC><0.A 2.SACAAA20p @WÄC0.A 2.RACAAA20p @W><CBd.0.A 2.CAA><r A1`.><0.A 2.CAA><rA1Rn`B><><Bn?<NV=@0.nn><><><p rH/?<N(" A/?<N" A=@><prH/?<N" A/?<N" A=@><0.A 2.CAA><r A1Rn`Z><><Bn?<Nۖ=@0.nn><><><p R@?Np=@><p\@?N^=@><Bn><><><0.A 2.CAAA?0Hz?<N=0@d&0.A 2.CAArA1><?<N`^><><0.S@=@`b><><0.S@=@`L><><0.R@=@`6><><0.><R@=@` @b@0;N><0.R@=@><0.J@[0.J@[ÄC0.r A^ÄC0.rA^ÄC0.H?<N"LA^ÄCBd><Rn`j><><p rH?NA /rtH?N" CAArA1><p rH/r tH?N٘" AR@A rtHHtvH…?Nn$LBRACAArA1><09rAoRp rH/r tH?N&" AR@A /rtH?N" CAArA1><09rAoPp rH?NA rtHHtvH…?Nج$LBRACAArA1><N^,_X>NuPOP_GENERA?Hz></,HNVAp-HPNU?<N:/?<N0" A/?<N " A/?<N" A\@=@><Bn n nF><Bn nn.><0.A 2.CAAAΌBpRn`Rn`><Bn n n><><Bn nn><><0.A 2.CAAA?0Hz?<N=0@dR><><Bn><><><0./?<N " A/?<N" A=@><0./?<N" A/?<N" A=@><0.J@Z0.J@ZC0.r A_C0.rA_CBd><0.A 2.CAAA?0Hz?<N=0@db><><0.R@=@><0.A 2.CAA2.C 4.EBBAΌ40RBAΌ1><><0.nm><Rn``Rn`B><N^,_X>NuSETUP_CAST?Hz></,HNVA-HPNUp=@><Bn n n\><><Bn nn>><><><0.A 2.CAAA?0Hz?<N=02.y_C@d><><0.A 2.CAAA41><0.A 2.CAAr A<1><0.A@A[B><0.><R@=@`^><><><0.A 2.CAAA4Bp><0.A 2.CAA><A<><Rn`Rn`N^,_X>NuSETUP_BAND?Hz></,HNVA-HPNUBn n n><><Bn nn><><?<NӜJ@W0.A 2.CAAA20p@WCBdd><>< 0.A 2.CAA29RAA41>< 0.A 2.CAA>< rA<1>< Rn`JRn`,N^,_X>NuRORDER ?Hz></,HNVA-HPNUBn09R@=@0.nn"><0.A@A01Rn`><Bn09@=@0.nn><><><09R@?NHR@=@><09R@?N0R@=@><0.A@A0=p><0.A@2.CAA040A01><0.A@><A01><Rn`NN^,_X>NuSETUP ?Hz></,HNVA-HPNUN><N>< N><!NZ><"Nl><#p3Z><$p3Z><%?<N:/?<N0" AT@3Z><&N:><'p3><(N^,_X>NuSHOW_TROOP?Hz><3/,HNVA-HPNU0.A 2.CAAA<20JAgb><4><50.A 2.CAAA420`N><6><6p=@`X><7><7p*=@`F><8><8=|`4><9><9><:=|`SA AbA2;N><;0.A 2.CAAA420y^0.A 2.CAAA420p@]ÄCBd=|><<0.A 2.CAAA420CAA?00AN-Z><=?<NȘ><>0.A 2.CAAA<?NS0.??<@0.A 2.CAAA42009R@@W0.A 2.CAAA?0Hzl?<N=0@BeF><A0. VhR@?0. VhZ@?AO"Op?"Q><BN%><CN^,_X> _XN SHOW_POP ?Hz><H/,HNVA-HPNU?<0AN-Z><I?<N><J0.A 2.CAAAΌ20p@o~><K><L0.A 2.CAAAΌ?0HnN8><M0. VhR@?0.R@ VhW@?AO"Op?"Q><NN%><ON^,_X> _XNDRAW_TERRA?Hz><T/,HNVA-HPNU?< 0AN+><U?<N+><VBgBg?<@?<N'><WBn n n^><X><XBn nn@><Y><Y><Z?<Ň=@><[?<N|=@><\0.A 2.CAAA20`><]><]HyHy0.X@?0.X@?0. Vh?0. Vh??<?<?<N`><^><^HyHy0.@7?0.X@?0. Vh?0. Vh??<?<?<N`(><_><_HyHy0.@q?0.X@?0. Vh?0. Vh??<?<?<N`><`><`HyHy0.@?0.X@?0. Vh?0. Vh??<?<?<N`p><a><aHyHy?<?< 0. Vh?0. Vh??<?<?<N`><b><bHyHy?<?<H0. Vh?0. Vh??<?<?<N`><c><cHyHy?<2?<H0. Vh?0. Vh??<?<?<N`z><d><dHyHy?<V?<I0. Vh?0. Vh??<?<?<N`(><e><eHyHy?<z?<I0. Vh?0. Vh??<?<?<N`><f><fHyHy0.@?0.@A?0. Vh?0. Vh??<?<?<N`x><g><gHyHy?<?<K0. Vh?0. Vh??<?<?<N`&><h><i><iHyHy?<?< 0. Vh?0. Vh??<?<?<N`><j><k><kHyHy0</?<N" A/?<N " A?><lpD/?<N" A/?<N" A?0. Vh?0. Vh??<?<?<N`4><m A b(A2;NDVVLV><n><oRn`Rn`N^,_X>NuDO_COLORS ?Hz><t/,HNVA-HPNU09[@d>><u><v?<0Ap}?p}?p}?N* ><w?<0Ap}?p}?p}?N* ><x?<0Ap}?p}?p}?N* ><y?<0Ap}?p}?p}?N* ><z?< 0Ap}?p}?p}?N* ><{?< 0Ap}?p}?p}?N* ><|?<0Ap}?p}?p}?><}N* ><~09[@dZ><><?<0Ap}@?p}@?p}?N* ><?<0Ap}?p}?p}?><N* ><p3><p3><p 3><p 3><p3><09R@A@r A1><N^,_X>NuDRAW_MAP ?Hz></,HNVA-HPNUN/><HyZN><0<@r RAArH V1@><p V1@>< VNv><HyHyBgBgBgBg?<@?<?<N><Bn nn2><Bn n n><?.?. VNRn`Rn`><Bn nn2><Bn n n><?.?. VNRn`Rn`><><N0.N^,_X>NuGC_BOX ?Hz></,HNVA2-HPNUN/><><?<N+><?< 0AN+><?<N+><?<?<?<8?<N'><?< 0AN+><?<N+><pZ@?0<T@?0<8Y@?pY@?N'><><?< 0AN+><?<N+><?<?<?<!?< N'><Bg0AN+><0<T@?0<T@?p!Y@?p Y@?N'><?< 0AN-Z><0<Z@?0<^@?CO$ON%><><?< 0AN+><?<N+><?<?<?<!?< N'><Bg0AN+><0<T@?0<T@?p!Y@?p Y@?N'><?< 0AN-Z><0<Z@?0<^@?C2O$ON%><><N0.N^,_X>NuExitPassECOD ?Hz></,HNVA -HPNUBn>< NNn>< V0(A@AC VEp?$Q><C VEpQ>< V0(A@A?00AN-Z><pZ@?0<@ ? VAO"Op?"QN%><?< 0AN-Z><p @Z@S@?0<@ ? VAO"Op?"QN%><N0.><><><><><?<?<?<?<p/><BgBgBgBgBgBgBgBgBgBg><HnHnHnHnHnHnHnN1=@><0.|\0.2<A!A_C><0.|\C0.2<A A_CBdp=@><0.|\0.2<A!A_C><0.|\C0.2<A A_CBdp=@><0.J@j` d><0. V P Ph?<|/<*?NINK\NJ0 V1@ V?( VHhN><0. V P Ph?<|/<*?NINK\NJ0 V1@ V?( VHhNX>< V0(J@Z V0(J@ZC V0(r A_C V0(rA_><CBdjNSHz (?<NS VHh?< VEp?$Q`><C VEpQ>< V0(J@Z V0(J@ZC V0(r A_C V0(rA_CBdL>< V0(A  V2(CAAA420 VhgC VEpQ>< NN>< V0(A@A?00AN-Z><N/><pZ@?0<@ ? VAO"Op?"QN%><?< 0AN-Z><p @Z@S@?0<@ ? VAO"Op?"QN%><N0.>< V0(J@Z V0(J@ZC V0(r A_C V0(rA_CBd.>< V0(A  V2(CAAA420 Vhf><N/><C VE>< NNB>< V0(A@A?00AN-Z><pZ@?0<@ ? VAO"Op?"QN%><?< 0AN-Z><p @Z@S@?0<@ ? VAO"Op?"QN%><N0.><><><><><prA??<?<?<p/><BgBgBgBgBgBgBgBgBgBg><HnHnHnHnHnHnHnN1=@><0.|\0.2<A!A_C><0.|\C0.2<A A_CBdp=@><0.|\0.2<A!A_C><0.|\C0.2<A A_CBdp=@>< 0.J@j`v>< 0. V P Ph?<|/<*?NINK\NJ0 V1@ V?( VHhN>< 0. V P Ph?<|/<*?NINK\NJ0 V1@ V?( VHhNj>< V0( V2(TAA] V0( V2(UAA^C V0( V2(TAA]C V0( V2(UAA^>< CBdjNSHz?<NS VHh?< VEp?$Q`><Cx VEpQ>< V0(J@[ V0(J@[ÄC V0(r A^ÄC V0(rA^><CBd ><C VEpQ`><><>< V0(A  V2(CAAA?0Hz?<N=0@dC VEpQ>< V0(A  V2(CAAA20p @fCB VE p Q><>< NN>< V0(A@A?00AN-Z><pZ@?0<@ ? VAO"Op?"QN%><?< 0AN-Z><p @Z@S@?0<@ ? VAO"Op?"QN%>< V0( V2(TAA] V0( V2(UAA^C V0( V2(TAA]C V0( V2(UAA^C>< V0(J@ZC V0(J@ZC V0(r A_C V0(rA_C><BdH V0(A  V2(CAAA?0Hz?<N=029[ V4(E  V6(GCCA60 tBWDA@d><p=@><N/>< ?<N+><!?< 0AN+><"?<?<?<8?<N'><#><#><$=n0.N^,_X>Nu#ImpassableToo wet. Not to the sea.Only one space.To: To ?You don't own that area.From: The Sea ? From: From ?SHOWSTATS ?Hz><)/,HNVA-HPNU?<N+><*?< 0AN+><+ V?( V?( V?( V?(N'><,?< 0AN+><-?<N+><. V0(V@? V0(V@? V0(]@? V0(]@?N'><0?< 0AN-Z><1 V0(P@? V0(P@? VAO"Op?"QN%><2HyHy V0( V P PhS@? V0( V P PhS@?><3 V0( V2(tHArtHA? V0(@?pT@?pT@??<N><4NSHzT?<NS V0(A  V2(CAAA420CAAHp?<5 V0(P@? V0(@@?AO"Op?"QN%><7 V0(A  V2(CAAA<8NSHz~?<NSHn?<9 V0(P@? V0(@@ ?AO"Op?"QN%><;?.HnN><<= V0(P@? V0(@@(?AO"Op?"QN%><??<N+><@?< 0AN+><A V?( V?( V?( V?(N'><B?< 0AN+><C?<N+><D V0(V@? V0(V@? V0(]@? V0(]@?N'><F V0(P@? V0(P@? VAO"Op?"QN%><GHyHy V0( V P PhS@? V0( V P PhS@?><H V0( V2(tHArtHA? V0(@?pT@?pT@??<N><INSHzR?<NS V0(A  V2(CAAA420CAAHp?<J V0(P@? V0(@@?AO"Op?"QN%><K V0(A  V2(CAAA<LNSHz|?<NSHn?<M V0(P@? V0(@@ ?AO"Op?"Q><NN%N^,_X> _TNAttacking: Troops: Owner: FIGHT ?Hz><U/,HNVA-HPNUp=@><V V0(rHU@=@><W V0(rHR@=@><X V0( VhrHW@=@><Y?<?.?.?.?.N-@><Z/.?<Bg><[BgBg?.?.><\?

<]/.?<prArA?><^0.rHY@??<?<?<><_?

<`/.?<prA?><a0.@rHU@??<?<?<><b?

<c/.?.0|AeCO$OpQ?<?<N><d/.?.0|AeCO$OpQ?<?<N><e><f><f?. VN><gN0.><h0.J@g/.BgN=@><i/.?.0|AeBgBgN#><j/.?.0|AeBgBgN#><kN/><l0.ng><m><n V0(A  V2(CAAA<200.?</<?NINK\ V0(A  V4(EBBA40E AA ]"O2"NLtNJx0@=A0.rAlBn><o0. V2(C  V4(EBBA<40?</<?NINK\ V2(C  V4(EBBA40E AA ]"O2"NK\NJx2A=@0.rAlBn><p V0(A  V2(CAA><qA<1><r0.nW0.rA]ÄC V0(A  V2(CAAA<20p@]ÄCBd><s V0(A  V2(CAAA<20JAf( V0(A  V2(CAAA4Bp><t0.nfV V0(A  V2(CAA V2(C  V4(EBBA<40nA<1Bn><u0.J@gV V0(A  V2(CAAA<1 V0(A  V2(CAA V2(A41><v/.NN><w/.><xNN^,_X> _TNRetreatAttackNWOT ?Hz></,HNVA-HPNUBn><0./?<N"" Aop=@><0.r Ao@?< N?<p=@p"=@><?< V?( V?(?.?.N-@></.?<Bg><?<?<0.U@??<><?

</.?<Bg><?<?<0.U@??<><?

</.?<prArA?><0.rH@??<?<?<><?

<?.HnND><NSHn?<?<NN`><><CEpQ`><><CE p Q``><><CEpQ`@><><><CXEpQ` @b@0;Nn></.?.0|AeAO"Op?"Q?<BgN></.?.0|AeAO"Op?"Q?<BgN></.?.0|AeCO$OpQ?<?<N></.N><N0.><0.rAo/.BgN=@><N/></.NN></.N><><=n0.N^,_X> _TNShiver.they mysteriously dissappeared.when they ran out of supplies.in the snow.missing after a blizzard. of your troops were lostWMLS ?Hz></,HNVA-HPNUBn><0./?< N" Aop=@><0.r Ao@?<N?<p=@p=@><?<?.?.?.?.N-@></.?<Bg><?<?<0.U@??<><?

</.?<Bg><?<?<0.U@??<><?

</.?<prArA?><0.rH@??<?<?<><?

<?.HnN><NSHn?<?<N`><><CEpQ`><><CEpQ``><><CEpQ`@><><CVEpQ` >< @b@0;Nn></.?.0|AeAO"Op?"Q?<BgN></.?.0|AeAO"Op?"Q?<BgN></.?.0|AeCO$OpQ?<?<N></.N><N0.><0.rAo/.BgN=@><N/></.N><><=n0.N^,_X> _TNAhhhhrrrrgggg!!!they mysteriously dissappearedto the Creaping Crud.attacked by Swamp Trolls.in the quicksand. of your troops were lostGET_TROOPS?Hz></,HNVA-HPNUp=@>< V0(rHU@=@>< V0(rHR@=@>< V0( VhrHW@=@><?<?.?.?.?.N-@></.?<prA?BgBg?.?.><?<p r `r AA|?N<=@></.?.0|AeCO$Op QCO$OCO$O?<?<N><><><N0.></.?.N=@><N/></.?.0|AeHnN><AO"Op?"QN=@><0. V2(C  V4(EBBA</.NN></.N>< V0(A  V2(CAA V2(C  V4(EBBA<40nA<1>< V0(A  V2(CAAA20p@W09[F@@><09[F@@Bd?. VN=@` ><Bn><09[@d"0./2.n? VN|" A=@><0.rA^0.nWCBd$><><Bn><><p V P1@`><><0.n=@><0.rAo>< V0(A  V2(CAAA420JAW V0(A  V2(CAAA420 VhWÄCBd><>< V0(A  V2(CAA V2(A41>< V0(A  V2(CAA V2(C  V4(EBBA<40nA<1>< V0(A  V2(CAAA<20JAf( V0(A  V2(CAAA4Bp><><p V P1@`.><><><?. VN><><p V P1@><N^,_X>Nu999How Many ? ___OETOP?Hz></,HNVAn-HPNU=|ph=@0<@rH2.tHA=@0<rH2.tHA=@><=n=np@rH2.tHA=@=n><N/><><HyHy0.Q@?0.Q@?0.Q@?0.Q@?0.@?0.@??<N><HyHy0.Q@?0.Q@?0.Q@?0.Q@?0.@?0.@??<N>< N0.>< NN=@>< 0.rAf p V1@>< 0.J@k><><Bg NN>< NN|><><N/><HyHy0.Q@?0.Q@?0.Q@?0.Q@?0.@?0.@??<N><HyHy0.Q@?0.Q@?0.Q@?0.Q@?0.@?0.@??<N><HyHy0. V Ph?0. V Ph?0. V Ph?0. V Ph??<?<?<N><?.?. V PN><?.?. V PN><HyHy0. V Ph?0. V Ph?0. V Ph?0. V Ph??<?<?<N><?.?. V PNJ><?.?. V PNb><><N0.><><=n0.N^,_X> _TNGETSQUARE ?Hz><+/,HNVA6-HPNUN/><,?<N+><-?< 0AN+><.?<N+></?<?<?<8?<N'><0?< 0AN+><1?<N+><2 V0(A@ACEp?$Q><3CE><4><5><5Bn><6pZ@?0<T@?0<8Y@?pY@?N'><7 V0(A@A?00AN-Z><8pZ@?0<@ ?AO"Op?"QN%><9?< 0AN-Z><:p @Z@?0<@ ?AO"Op?"QN%><;N0.><<=BgBgBgBgBgBgBgBgBgBg><>HnHnHnHnHnHnHnN1=@><?N/><@"n0. V P Ph?<|/<*?NINK\NJ02><A"n0. V P Ph?<|/<*?NINK\NJ02><B"n0J@["n0r A^ÄC"n0J@[ÄC"n0rA^ÄCBd<><C><Dp=@><ECE pQ><F"nBQ"n><GBQ><H"n0A "n2CAAA420 VhV0.F@@Bd><IC<J0."n2C "n4EBBA?0Hz?<N=2FAA@d,><K><Lp=@><M><NCEp Q><O"n0A "n2CAAA420 VhW0.F@@Bd><P?<N+><Q?< 0AN+><R?<?<?<8?<N'><S><TN0.N^,_X> _O N Castles only. You don't own that area. Too wet.To ?IDCSL?Hz><Y/,HNVA-HPNUBn><ZBn n n><[><[Bn nn><\><\0.A 2.CAAA420 VhW0.A 2.CAAA?0Hzl?<N=0@Bd(><]><^"n2"n20.><_R@=@Rn`^Rn`@><`><a=n0.N^,_X> _PNE_UBR?Hz><i/,HNVA-HPNUp=@><jp=@><k?<?.?.?.?.N-@><l/.?<?<><m?<?<0.U@??<><n?

<o/.?<prArA?><p0.rHU@??<?<?<><q?

<r/.HnN><sNSHz?<NSHn?<t/.?.0|AeAO"Op?"QCZO$OCFO$O?<?<N><u/. V P?(0|AeC O$O?<?<N><v/.N><w><x><x/. V P?(0|AeBgBgN#><y/.BgN=@><z/.?.0|AeHnN><{AO"Op?"Q><|N=@0.".H_0.J@ZCBdj><}/.NN><~/.N><><=n0.N^,_X> _XNDone999) ? ___How Many (Max=BUILD_TROO?Hz></,HNVA (-HPNUp=@><p=@><p2.tHA=@><p 2.tHA=@></9d?9^0|Ae V0(A@AAO"Or?"Q?<?<N><N/><HyHyBgBgBgBg?<@?<?<N><N0.><N0.><><>< V (2<Hl^><></9d?9T0|Aep rA?BgN#></9d?9V0|Ae?<BgN#><`X><><></9d?9T0|Ae?< BgN#></9d?9V0|AeBgBgN#><>< V0(A@A["00<Hl><></9d?9P0|Aep rA?BgN#></9d?9R0|Ae?<BgN#></9d?9N0|Ae?<BgN#><`|><><></9d?9P0|Ae?< BgN#></9d?9R0|AeBgBgN#></9d?9N0|AeBgBgN#><></9d?9`0|Ae?< BgN#></9d?9X0|Ae?< BgN#>< V/(HnN><NSHz?< NSHn?</9d?9\0|AeAO"Op?"Q?<BgN>< V0(A@A[/0HnN><NSHzd?< NSHn?</9d?9Z0|AeAO"Op?"Q?<BgN></9dBgN=@><0.yTf><>< V (2<H//NV""/ VNvH-@>< VHh VHh VN. V1@><N/><HyHy0.U@@?0.S@@?0.U@@?0.S@@?><0.T@@?0.V@@??<N><N0.>< V0(rA^ .r^CBd VHh VHh?< VN>< V0(A  V2(CAA V2(C  V4(EBBA<40".AA<1>< V (".4<H//NU$ V!@><N/><HyHy V0( V P Ph? V0( V P Ph? V0( V P Ph? V0( V P Ph??<?<?<N>< V?( V?( V P PN>< V?( V?( V P PN><HyHy V0( V P Ph? V0( V P Ph? V0( V P Ph? V0( V P Ph??<?<?<N><N0.><><0.yPf><>< V0(A@A["00<H//NV" / VNH-@><N/><HyHy0.U@@?0.S@@?0.U@@?0.S@@?><0.T@@?0.V@@??<N><N0.>< .ro VHh VHhBg VN8>< V0(A  V2(CAA V2(C  V4(EBBA<40".AA<1>< V0(A@ V2(CAA[$0".6<H//NU&A[!><N/><HyHy V0( V P Ph? V0( V P Ph? V0( V P Ph? V0( V P Ph??<?<?<N>< V?( V?( V P PN>< V?( V?( V P PN ><HyHy V0( V P Ph? V0( V P Ph? V0( V P Ph? V0( V P Ph??<?<?<N><><N0.><0.y`f><><N/><HyHy0.U@@?0.S@@?0.U@@?0.S@@?><0.T@@?0.V@@??<N><N0.><prA??<?<?<p/><BgBgBgBgBgBgBgBgBgBg><Hn V P PHh V P PHh V P PHh V P PHh V P PHh V P PHhN1=@><><0.yXf ></9dNN><N/><HyHyBgBgBgBg?<@?<?<><NN^,_X>NuTreasury Taxes ECONOMICS ?Hz></,HNVAF-HPNUB><HnHn NN6=@><0.rAo><><Bn n n><><Bn nnh><0.A 2.CAAA420nf4 .2.C 4.EBBAΌ40HЂ-@Rn`Rn`t><0.A@A["0Ү0<Hm NN><0.A@2.CAA[$0><ԮA[!><p V1@><N^,_X> _TNON_RO?Hz></,HNVA-HPNUBn><Bn n n~><><Bn nn`><0.A 2.CAAA420nf,0.2.C 4.EBBA<><=n0.N^,_X> _TNMOVE_BANDI?Hz></,HNV6A -HPNUBnBnBnBnBn><><Bn< n < >< Bn> n>n>< >< 0.CAAA42009>< R@@g0.CAA2.EBBAΌ402.GCCA<602.IDDA80I AA@]"O2"?NINK\?NINMNNJx2>< A@1`>< 0.CAA2.EBBA<402.GCCA60G AA0]"O2"?NINK\NJx2DAA@1Rn>`FRn<`(>< ><><><Bn><Bn< n <><Bn> n>n><><><0.CAAA42009R@@W0.CAAA<20n^CBdJ><><0.CAAA<=p><=n<><><=n>><Rn>`>Rn<` ><><Bn><p=@> n>m><><p =@< n<><><0.CAAA@20noH>< ><!0.CAAA@=p><"=n<><#><$=n>><%Sn<`vSn>`V><'=n8=n:><(0.no 0.S@=@8><)0.no 0.S@=@:><*0.nl 0.R@=@8><+0.nl 0.R@=@:><-0.A 2.CAAA<20SA=A0.rAlBn><.0.8A 2.:CAAA?0Hz"?<N=0@dJ></><0Bn><10.A 2.CAAA@10><20.R@=@><3` ><3p=@><40.2.t B^ÀC@d><60.@d><7><80.8A 2.:CAAA42009R@@f><9><:0.A 2.CAA2.C 4.EBBA<40nA<1><;0.8A 2.:CAAA20p@f*0.?<̀/<<0.8A 2.:CAA2.8C 4.:EBBA<40nA<1><=`&><>><>><?0.A 2.CAA2.C 4.EBBA<40nA<1><@0.8A 2.:CAAA20p@f*0.?<̀/<B0.8A 2.:CAAA<200.?</<?NINK\0.8A 4.:EBBA40E AA ]"O2"NLtNJx0@=A><C0.rAlBn><D0.2.8C 4.:EBBA<40?</<?NINK\2.8C 4.:EBBA40E AA ]"O2"NK\NJx2A=@><E0.rAlBn><G0.J@fn><H><I0.J@g,0.8A 2.:CAA29RAA41><J0.8A 2.:CAAA<1><K`><L><L><M0.8A 2.:CAAA<1><N0.J@f$0.8A 2.:CAAA4Bp><O0.A 2.CAA2.C 4.EBBA<40nA<1><P><Q><S><THyHy0. V Ph?0. V Ph?0. V Ph?0. V Ph??<?<?<N><U?.?. V PNL><V?.?. V PNd><WHyHy0.8 V Ph?0.: V Ph?0.8 V Ph?0.: V Ph??<?<?<N><X?.8?.: V PN><Y?.8?.:><Z V PN><[N^,_X>NuADD_BANDIT?Hz><`/,HNVA$-HPNUBn n n><a><aBn nn><b><b0.A 2.CAAA420nf><c><d0.A 2.CAA2.C 4.EBBA<402.C 6.GCCAΌ60rHÇCH2.C 6.GCCAΌ60rHÇHCTC?N"LAA<1><e0.A 2.CAAA?0Hz?<N=0@d$0.A 2.CAAA<fHyHy0. V Ph?0. V Ph?0. V Ph?0. V Ph??<?<?<N><g?.?. V PNn><h?.?.><i V PN><jRn`Rn`N^,_X> _TNCURSE ?Hz><v/,HNV`A8-HPNUHnrN,><wBnd ndn8><w0.dT@A?@2.dTAC?AAr40|Ar1Rnd`><xHnrN><yp=@f=y`0.fn`n ><y0.fA@A[BRnf`><zp =@b><{p=@l><|?<?.h?.j?.l?.bN-@n><}/.n?<Bg><~?<?<0.lU@??<><?

</.n?<Bg><?<?<0.lU@??<><?

</.n?<Bg><?<?<0.lU@??<><?

</.n?<Bg><?<?<0.lU@??<><?

</.n?<prArA?><0.lrH@?0.bU@??<?<><?

</.n?.0|AeCO$OpQ?<BgN></.n?.0|AeCO$OpQ?<BgN></.n?.0|AeCpO$OpQ?<BgN></.n?.0|AeC2O$OpQ?<BgN></.n?.0|AeCO$OpQ?<?<N></.nN><HyHyBgBgBgBg?<@?<?<N><N0.></.nBgN V P1@><N/></.nNN></.nN><HyHyBgBgBgBg?<@?<?<N><HyZ><NN^,_X>Nu Blub Blub Blub Blood.All of their gold turns toa curse on the Princes:Fizzbin the Wizard castsPLAUGE ?Hz></,HNVfA<-HPNUHnfN,><Bn nnf><><><0.T@A?@Af20|0<H=A><0.T@A?@2.A4.BB><nAf1Rn`><HnfN><p=@><p=@><?<?.?.?.?.N-@></.?<Bg><?<?<0.U@??<><?

</.?<Bg><?<?<0.U@??<><?

</.?<prArA?><0.rH[@?0.U@??< ?<><?

</.?.0|AeCO$OpQ?<BgN></.?.0|AeC@O$O pQ?<BgN></.?.0|AeCO$O p Q?<?<N></.N><HyHyBgBgBgBg?<@?<?<N><N0.></.BgN V P1@></.NN></.N><N/><HyHyBgBgBgBg?<@?<?<N><Bn n n8><><Bn nn><><><0.A 2.CAA2.C 4.EBBAΌ40rH…AΌ1><0.A 2.CAA2.C 4.EBBA<40?</<?NINK\NJ2A<1><0.A 2.CAAA<20JAf(0.A 2.CAA><A4BpRn`Rn`><N>< V P PN><HyHyBgBgBgBg?<@?<?<N><Bn nn6><Bn n n><?.?. V P PNpRn`Rn`><Bn nn6><Bn n n><?.?. V P PNVRn`Rn`><HyZ><NN^,_X>Nu Groan... the Land.Plague strikes throughoutCENSUS ?Hz></,HNVA-HPNUp=@><p =@><?<?.?.?.?.N-@></.?<Bg><?<?<0.U@??<><?

</.?<Bg><?<?<0.U@??<><?

</.?<prArA?><0.rH[@?0.U@??< ?<><?

</.?.0|AeCO$OpQ?<BgN></.?.0|AeCXO$OpQ?<BgN></.?.0|AeCO$O pQ?<?<N></.N><HyHyBgBgBgBg?<@?<?<N><N0.></.BgN V P1@></.NN></.N><N/><HyHyBgBgBgBg?<@?<?<N><Bn n n`><><Bn nnB><><0.A 2.CAAA20`><><0.A 2.CAA2.C 4.EBBAΌ40H?<N"LAAΌ1`><><0.A 2.CAA2.C 4.EBBAΌ40H?<N"LAH?<N"LAAΌ1`*>< AbA2;N rrrrrRn`Rn`><N>< V P PN><HyHyBgBgBgBg?<@?<?<N><Bn nn6><Bn n n><?.?. V P PNBRn`Rn`><Bn nn6><Bn n n><?.?. V P PN(Rn`Rn`><N^,_X>Nu Hurrah! increases throughout the land.Latest census shows populationWET_WINTER?Hz></,HNVA-HPNUp=@><p =@><p3[><Bn n nT><><Bn nn6><><0.A 2.CAAA20p@f><>< 0.A 2.CAAr A1>< 0.A 2.CAAA< 0.A 2.CAAA4Bp>< HyHy?<?< 0. V P Ph?0. V P Ph??<?<?<N>< ?<0Ap}?p}?p}?N* ><Rn`Rn`><?<?.?.?.?.N-@></.?<Bg><?<?<0.U@??<><?

</.?<Bg><?<?<0.U@??<><?

</.?<prArA?><0.rHQ@?0.U@??<?<><?

</.?.0|AeCbO$OpQ?<BgN></.?.0|AeC"O$OpQ?<BgN></.?.0|AeCO$OpQ?<?<N></.N><HyHyBgBgBgBg?<@?<?<N><N0.></.BgN V P1@>< /.NN><!/.N><"N/><#HyHyBgBgBgBg?<@?<?<N><$N^,_X>Nu Drip, Drip... areas.Heavy rains flood low lyingDRY_WINTER?Hz><-/,HNVAt-HPNUp=@><.p =@></p3[><1?<0Ap}@?p}@?p}?N* ><2?<0Ap}?p}?p}?N* ><4Bn n n|><5><5Bn nn^><6><60.A 2.CAAA20p@f&0.A 2.CAAr A1Rn`Rn`~><8?<?.?.?.?.N-@><9/.?<Bg><:?<?<0.U@??<><;?

<<=?<?<0.U@??<><>?

<?/.?<prArA?><@0.rH[@?0.U@??< ?<><A?

<B/.?.0|AeChO$OpQ?<BgN><C/.?.0|AeCO$OpQ?<BgN><D/.?.0|AeCO$O p Q?<?<N><E/.N><FHyHyBgBgBgBg?<@?<?<N><GN0.><H/.BgN V P1@><I/.NN><J/.N><KN/><LHyHyBgBgBgBg?<@?<?<><MNN^,_X>Nu Water... a terrible drought.The Kingdom struck byLATE_SNOW ?Hz><U/,HNVA-HPNUp=@><Vp =@><Wp3[><Y?<0Ap}?p}?p}?N* ><Z?<0Ap}?p}?p}?N* ><[?<0Ap}?p}?p}?N* ><\?<0Ap}?p}?p}?N* ><]?< 0Ap}?p}?p}?N* ><^?< 0Ap}?p}?p}?N* ><_?<0Ap}?p}?p}?N* ><a?<?.?.?.?.N-@><b/.?<Bg><c?<?<0.U@??<><d?

<e/.?<Bg><f?<?<0.U@??<><g?

<h/.?<prArA?><i0.rH[@?0.U@??< ?<><j?

<k/.?.0|AeChO$OpQ?<BgN><l/.?.0|AeCO$OpQ?<BgN><m/.?.0|AeCO$O pQ?<?<N><n/.N><oHyHyBgBgBgBg?<@?<?<N><pN0.><q/.BgN V P1@><r/.NN><s/.N><tN/><uHyHyBgBgBgBg?<@?<?<><vNN^,_X>Nu Brrrrr! troops in the field.A late snow fall catches theOAPP ?Hz><{/,HNVA-HPNUBn><|Bn n nR><}><}Bn nn6><}0.2.C 4.EBBAΌp=@Rn`Rn`><~><=n0.N^,_X>NuRAETA?Hz></,HNVA-HPNUBn><Bn n nv><><Bn nnZ><0.A 2.CAAA<20no&0.A 2.CAAA<=pRn`Rn`><><=n0.N^,_X>NuFATE ?Hz></,HNVA-HPNU?<N=@>< NNBrAl 0.R@=@>< NNrdAo 0.S@=@><0.`r><>< NN`><>< NN `r><>< NN``><>< NNn`N><>< NN`<><><>< NN`&R@ @b@0;N><N^,_X>NuINR ?Hz></,HNVA-HPNUBn><p=@><p=@09R@=@0.nn(><?. VNrAo 0.R@=@Rn`><HyHyBgBgBgBg?<@?<?<N><0.rAfp><><p =@><p=@><?<?.?.?.?.N-@></.?<Bg><?<?<0.U@??<?</.?<Bg><?<?<0.U@??<?</.?<Bg><?<?<0.U@??<?</.?<prArA?><0.rH@?0.U@??<?<?</.?.0|AeCLO$OpQ?<?<N><p=@09R@=@0.nnt><><?. VNоrAoT><0.yo><CEpQ`&><0.A@ACEp?$QRn`></.?.0|AeAO"Op?"Q?<?<N></.?.0|AeCO$OpQ?<?<N></.?.0|AeCO$OpQ?<?<N></.N><N0.></.BgN=@><N/><HyHyBgBgBgBg?<@?<?<N><N0.></.NN></.N><` ><Bn><0.N^,_X>Nu Long Live the King! is crowned the new King!Crobvar of the BanditsThe war is over!PLAY_GAME ?Hz></,HNVA-HPNU><><><><><><09A@A0?0 NNVrA^09A@A020y_><CBd*09A@A0?0>< NN=@` ><p=@><09A@A020yo NNΪ>< NNz@dp=@><0.@d09R@3Bn><0929RAA^0.rAWÄCBd><0.rAg><><09[|r|AW/?<N$J@WCBd:><><By[><HyZN><Bn n n><><Bn nn><><0.A 2.CAAA20p @f><><0.A 2.CAArA1><?<N=@><?<N=@><HyHy><0.@?0.X@?0. Vh?0. Vh??<?<?<N><Rn`Rn`><><09[|r|AW/?<N$J@WCBd.><><By[><HyZN><Bn n n><><Bn nn><><0.A 2.CAAA20p @f><><0.A 2.CAArA1><0.A 2.CAAA<HyHy?<?< 0. Vh?0. Vh??<?<?<><N><Rn`Rn`><09ZrA^y[Bd><><By[><HyZN><Bn n n><><Bn nn><><0.A 2.CAAA20p@f~><><0.A 2.CAAA<HyHy?<?< 0. Vh?0. Vh??<?<?<><N><Rn`BRn`$><09ZR@3Z><N@><><p3><09ZyZ^0.rAWÄCBd><N/><?< 0AN+><?<N+><?<?<?<8?<N'><N0.><0.rAg><><><><09A@A0?0 NNȔrA^09A@A020y_><CBd&09A@A0?0>< NN` >< p=@>< 09A@A020yo09A@A0?0 NN>< 0.@d09R@3Bn>< 0929RAAo >< ?<NJ@f NN<><09ZR@3Z><09[@d?<ND@3Z`><p3Z><?<N/?<N" AT@3Z><N@><><p3><0.rAW><BdN^,_X>NuABOUT_DIAL?Hz></,HNVA-HPNUp =@><p=@><?<?.?.?.?.N-@></.?<Bg><?<?<0.U@??<>< Bgp r `r AA?N<=@><!/.?<Bg><"?<?<0.U@??<><#Bgp r `r AA?N<=@><$/.?<Bg><%?<?<0.U@??<><&Bgp r `r AA?N<=@><'/.?<Bg><(?<?<0.U@??<><)Bgp r `r AA?N<=@><*/.?<Bg><+?<?<0.U@??<><,Bgp r `r AA?N<=@><-/.?<prArA?><.0.rHU@?0.U@??<?<></?

<0/.N><1/.?.0|AeCO$OpQ?<?<N><2/.?.0|AeCO$O p Q?<?<N><3/.?.0|AeCO$O p Q?<?<N><4/.?.0|AeCNO$OpQ?<?<N><5/.?.0|AeCO$OpQ?<?<N><6/.?.0|AeCO$O?<?<N><7/.BgN=@><8/.N><9N/><:HyHyBg?< Bg?< ?<@?<?<N><;/9,?<0|AeNB><<=><>N0.N^,_X>NuOKWritten in Personal Pascal(C) 1987Version 1.11By Terry PackBattle for the ThroneSHOW_SCORE?Hz><G/,HNVA-HPNU09R@@R@=@><Hp=@><I09R@@R@??.?.?.?.N-@><J/.?<Bg><K?<?<0.U@??<><L?

<Mp=@=y0.аnn,><N><N><O0.2|C@//.?<Bg><P?<2.ASA?2.UA??<Bgr t at BB?N<" A1><Q0.2|C@//.?<Bg><R?<2.A?2.UA??<Bgr t at BB?N<" A1><S0.2|C@//.?<Bg><T?<2.ARA?2.UA??<Bgr A?><UN<" A1Rn`><V/.?<prArA?><W0.rHU@?0.U@??<?<><X?

<Y/.N><Z/.?.0|AeC\O$OpQ?<?<N><[/.?.0|AeCO$O?<?<N><\p=@=y0.аnn6><]><]><^0.A@A[/0HnN><_Bn><`Bn n n><a><aBn nnd><b><b0.A 2.CAAA420nf,0.2.C 4.EBBA<c?.HnNb><eNSHz?< NSHn?<fNSHz?< NSHn?<h/.0.2|C@A?00|Ae0.A@AAO"Or?"Q?<?<N><i/.0.2|C@A?00|AeAO"Op?"Q?<BgN><j/.0.2|C@A?00|AeAO"Op?"Q?<Bg><kNRn`><l/.BgN=@><m/.N><nN/><oHyHyBg?< Bg?< ?<@?<?<N><pN0.><q/9,?90|Ae><rNBN^,_X>NuTroops : Treasury : OK Scores BACKGROUND?Hz><|/,HNVAr-HPNUp X@=@><}p T@?BgBg?<?.N-@><~p=@ n nd><><0.2|C @//.?<Bg?<?.rUA??<><Bgr t at BB?N<" A1Rn`></.?<prA?prH@?0.U@??<?<><?

</.?.0|AeCO$OpQ?<BgN></.?.0|AeC:O$OpQ?<BgN></.?.0|AeCO$OpQ?<BgN></.?.0|AeCO$OpQ?<BgN></.?.0|AeCHO$OpQ?<BgN></.?.0|AeCO$OpQ?<BgN></.?.0|AeCO$OpQ?<BgN></.?.0|AeCPO$OpQ?<BgN></.?.0|AeCO$OpQ?<BgN></.?.0|AeCO$OpQ?<BgN></.?.0|AeCXO$OpQ?<BgN></.?.0|AeCO$OpQ?<BgN></.?.0|AeCO$OpQ?<?<N></.N></.BgN3Z></.N><N/><HyHyBg?< Bg?< ?<@?<?<N><N0.></9,?9[0|Ae><NBN^,_X>NuThe battle begins...forest hideout.force of bandits at hisbastard, assembles his motleybattle. Even Crobvar, thetheir troops and prepare forof old King Tharn gathervillage to village, the sons As the news passes fromgeneration to the next.down peacefully from onethe crown has never passed In the Kingdom of ThraniaINSTRUCTIO?Hz></,HNVA-HPNUp X@=@><p X@?BgBg?<"?.N-@><p=@ n n`><><0.2|C @//.?<Bg?<?.r"UA??<Bgr t at BB?N<" A1Rn`></.?<prA?p"rHU@?0.U@??<?<><?

</.?<prA?p"@rHU@?0.U@??<?<><?

</.?<prA?p"rHU@?0.U@??<?<><?

</.?.0|AeCO$OpQ?<BgN></.?.0|AeCO$OpQ?<BgN></.?.0|AeC,O$OpQ?<BgN></.?.0|AeCO$OpQ?<BgN></.?.0|AeCO$OpQ?<BgN></.?.0|AeC>O$OpQ?<BgN></.?.0|AeCO$OpQ?<BgN></.?.0|AeCO$OpQ?<BgN></.?.0|AeCBO$OpQ?<BgN></.?.0|AeCO$OpQ?<BgN></.?.0|AeCO$OpQ?<BgN></.?.0|AeCDO$OpQ?<BgN></.?.0|Ae><CO$O!p Q?<BgN></.?.0|AeCO$O?<?<N></.?.0|AeClO$O?<?<N></.?.0|AeC.O$O?<?<N><p X@?BgBg?<"?.N-@><p=@ n n`><><0.2|C @//.?<Bg?<?.r"UA??<Bgr t at BB?N<" A1Rn`></.?<prA?p"rHU@?0.U@??<?<><?

</.?<prA?p"@rHU@?0.U@??<?<><?

</.?<prA?p"rHU@?0.U@??<?<><?

</.?.0|AeC RO$OpQ?<BgN></.?.0|AeC O$OpQ?<BgN></.?.0|AeC O$OpQ?<BgN></.?.0|AeC NO$OpQ?<BgN></.?.0|AeC O$OpQ?<BgN></.?.0|AeC O$OpQ?<BgN></.?.0|AeC XO$OpQ?<BgN></.?.0|AeC O$OpQ?<BgN></.?.0|AeC O$O?<BgN></.?.0|AeC O$OpQ?<BgN></.?.0|AeC >O$OpQ?<BgN></.?.0|AeC O$O p Q?<BgN></.?.0|AeC O$O?<BgN></.?.0|AeC O$O?<?<N></.?.0|AeC nO$O?<?<N></.?.0|AeC 0O$O?<?<N><p X@?BgBg?<"?.N-@><p=@ n n`><><0.2|C @//.?<Bg?<?.r"UA??<Bgr t at BB?N<" A1Rn`></.?<prA?p"rHU@?0.U@??<?<><?

</.?<prA?p"@rHU@?0.U@??<?<><?

</.?<prA?p"rHU@?0.U@??<?<><?

</.?.0|AeCBO$OpQ?<BgN></.?.0|AeCO$OpQ?<BgN></.?.0|AeCO$OpQ?<BgN></.?.0|AeCHO$OpQ?<BgN></.?.0|AeCO$OpQ?<BgN></.?.0|AeCO$OpQ?<BgN></.?.0|AeCDO$OpQ?<BgN></.?.0|AeCO$O pQ?<BgN></.?.0|AeCO$OpQ?<BgN></.?.0|AeCBO$OpQ?<BgN></.?.0|AeCO$OpQ?<BgN></.?.0|AeCO$OpQ?<BgN></.?.0|AeCJO$OpQ?<BgN></.?.0|AeCO$O?<?<N></.?.0|AeC`O$O?<?<N></.?.0|AeC"O$O?<?<N></.N></.N></.N></.?.0|Ae?<BgN#></.?.0|Ae?<BgN#><p=@><><><0.`t><></.BgN3Z`p><></.BgN3Z`R><></.BgN3Z`4>< >< 3Z` >< S@ @b@0;N~>< 09Znf 0.R@=@>< 09Znf 0.S@=@>< /.?.0|AeBgBgN#></.?.0|AeBgBgN#></.?.0|AeBgBgN#></.?.0|AeBgBgN#><09Znf></.N></.N></.N><N/><HyHyBg?< Bg?< ?<@?<?<N><N0.></9,?9[0|Ae><NBN^,_X>Nutroops in castles.year can only be used to buildterritory. Taxes collected thisraise troops anywhere in yourprevious year can be used tostored in your treasury from thecost 2000 each to build. Moneyeach unit of population. Troops You get 1000 Gold pieces foron each space on the map).population (the lower numbercollect taxes based on your Each year you are able tocollected.each year and then taxes are There are 2-6 movement turnsthings.quicksand as well as nastierswamps, they are full ofcareful when moving intoand clear terrain the worst. BeCastles have the best defenseterrain improves the defense. In battle the defender'sExitNextPrevasking how many you want to move.will then get a dialog boxwhere you want to go. Youhave troops and then on the oneonce on the square where youtroop use the mouse to clickin that space. To move yourspace is the number of troops The number on the top of eachbattle.troops by defeating them ineliminate the other Players' The object of the game is toCREDITS ?Hz><%/,HNVA -HPNUp X@=@><&p T@?BgBg?<?.N-@><'p=@ n nd><(><(0.2|C @//.?<Bg?<?.rUA??<><)Bgr t at BB?N<" A1Rn`><*/.?<prA?prHQ@?0.U@??<?<><+?

<,/.?.0|AeCO$OpQ?<?<N><-/.?.0|Aep O"O?<?<N><./.?.0|AeCO$OpQ?<?<N><//.?.0|AeCO$O p Q?<?<N><0/.?.0|AeC|O$O pQ?<?<N><1/.?.0|AeC(O$OpQ?<?<N><2/.?.0|AeCO$OpQ?<?<N><3/.?.0|AeCO$O p Q?<?<N><4/.?.0|AeCPO$O pQ?<?<N><5/.?.0|AeCO$OpQ?<?<N><6/.?.0|AeCO$OpQ?<?<N><7/.N><8/.BgN3Z><9/.N><:N/><;HyHyBg?< Bg?< ?<@?<?<N><<=/9,?9[0|Ae><>NBN^,_X>Nu Good Work Guys Sam AtenJimmy LeeBryce ZimpferBrad 'Elric' FalkMichael 'Fletch' FletcherNeil LunaMark KelleyDan 'Spaniel' SpriggThe Playtesters:SAVE_GAME ?Hz><E/,HNVA4-HPNUA01|?<0AN-Z><F?<N ><G?<t?<CO$O p QN%><HNSN@A??<IHnJHnN@d><J><K?<N/><LN/><MHyHyBg?< Bg?< ?<@?<?<N><NN0.><OHnHn?><PHn?9ZNBBNAX><QHn?9NBBNAX><RHn?9ZNBBNAX><SHn?9ZNBBNAX><THn?9NBBNAX><U09[@d p=@` ><UBn><V09[@d p=@` ><VBn><W09[@d p=@` ><WBn><X0.@2.AAn=@><YHn?.NBBNAX><ZBn09R@=@0.nn><[><[><\Hn0.A@A[/0NANAX><]Hn0.A@A0?0NBBNAX><^Hn0.A@AHp?<_Rn``><`Bn n n><a><aBn nn><b><b><cHn0.A 2.CAAA4?0NBBNAX><dHn0.A 2.CAAAΌ?0NBBNAX><eHn0.A 2.CAAA?0NBBNAX><fHn0.A 2.CAAA<gRn`Rn`><hHnNA`><i`P><j><j><kN/><lHyHyBg?< Bg?< ?<@?<?<N><m><nN0.><o/9,?90|AeNB><p/9,?9Z0|AeN8><q/9,?90|AeN8><r/9,?90|AeN8><s/9,N><tBg><uN/HnNA`N^,_X>Nu:\*.SAV Save Game LOAD_GAME ?Hz><}/,HNVAn-HPNUA01|?<0AN-Z><~?<N ><?<t?<C@O$O p QN%><NSN@A??<HnVHnN@d><><N/><HyHyBg?< Bg?< ?<@?<?<N><N0.><?<N/><HnHn?><HnHyZNENE\X><HnHyNENE\X><HnHyZNENE\X><HnHyZNENE\X><HnHyNENE\X><HnHnNENE\X><0.rH=@><0.2.AArH=@><0.2.AA2.AA=@><0.rAfp3[` ><By[><0.rAfp3[` ><By[><0.rAfp3[` ><By[><Bn09R@=@0.nn><><><Hn0.A@A[HpNENE\X><Hn0.A@A0HpNENE\X><Hn0.A@?<AHpNFNE\X><Rn``><Bn n n><><Bn nn><><><Hn0.A 2.CAAA4HpNENE\X><Hn0.A 2.CAAAΌHpNENE\X><Hn0.A 2.CAAAHpNENE\X><Hn0.A 2.CAAA<Rn`Rn`><HnNA`><`P><><><N/><HyHyBg?< Bg?< ?<@?<?<N><><N0.></9,?90|AeNB></9,?9Z0|AeN8></9,?90|AeN8></9,?90|AeN8></9,N><Bg><N/HnNA`N^,_X>Nu:\*.SAV Load Game OUTSIDE ?Hz></,HNVA-HPNU/9,N><><><?<BgBgBgp/><BgBgBgBgBgBgBgBgBgBg><HnHnHnHnHnHnHnN1=@><0.rAf NNt><0.y[f NNӪ><0.yZf><></9,N>< NNN>< NNd><N/><HyHyBgBgBgBg?<@?<?<N><HyZ N></9,?90|AeNB></9,N><><N0.><0.y[f NNz><0.y[f NNؚ><0.y[f NN><0.yf.><></9,N><N)><NB>< NNLh>< NNN>< NN>><N/><HyHyBgBgBgBg?<@?<?<N><HyZ N></9,?9Z0|AeN8></9,?90|AeN8></9,?90|AeN8></9,?90|AeNB></9,N><><N0.><0.yf NNh><0.yf >< NN0.yf></9dN></9,N></9,N><N/><N7><Hy[ N><><N0.N^,_X>NuA#XAX0B1|AYb01|><N7J@kb><N\J@f$><><N!`><><N><`0><><CDO$O5p4Q?<N1D3Z><><N8HyYbNA`N2[1][ You must be in Low-Res to run Battle. ][ Argh! ]NuINIT_FORM ?Hz~/,HNVA-HPNU .r=@~ .rr=@~~"n2~"n3n~~"n3|@~"n3|~"np3@~"nBi ~"np3@ ~N^,_X> _PNCOPY_RECT ?Hz~?/,HNV4A-HPNU .$r=@6~@ .$rr=@4~A=n4=n6~C~D . r=@6~E . rr=@4~F=n4=n6~H=n~J~K=nP=nR~L0.nS@=@T~M0.nS@=@V~O=nX=nZ~P0.nS@=@\~Q0.nS@=@^~S~T?<mBg?<?<HnHnHnhHnPHn8BgN:d~UN^,_X> _ONNu/,HNVNU>AJ-Hp=@"n 0.r1JAV0.rdA]CBd0.R@=@`"n 0.S@@N^,_ _XN/,HNVfNU>A6-H"nE4p$Q"np)R@rA"n p)=@Bn0.@eR0.J@W"n 0.r1p\@WÄC"n 0.r1p:@WÄCBd p=@` 0.S@=@`Bn0."n r)Al20.R@=@0.R@=@0."n 2.t1A`0.@0.R@rAHnN<-@lHnN<-@p?<ZHnHntHnlHnhN90.vJ@f Bn`p=@HnN>HnN6"nE2p"Q"n E2p"Qp.=@Bn0.@eR0.J@W0.rA0p\@WÄC0.rA0p:@WÄCBd p=@` 0.S@=@`p=@p.=@f0.nfn,0.R@=@"n 0.2.tA0Rn`"n 0.@0.N^,_ _PNNu/,HNVNU>A-HBn"n0.-I"n0)n m"n$n0*R@3@"n0)n m"n$n0*R@3@"n0n m"n$n0R@2"n0.0)r AJ@f0.R@=@`f0.n m4"n0.R@$n0.p"Q0.S@=@`N^,_ _\N/,HNVNU>A -H"n 0-I"n0)rAfpT@=@`"n0)R@=@/. ?.N"n 0.-I"nBi"nBi"np. 3@"n3|"np 3@"np2"np3@"np3@"nBi"nBi "nB /. ?<?.N"$/. ?.N"h/. ?.A O"Op?"QBgBgNpT@=@"n 0.Bi"n 0.=Q0.rAg@"n 0.$n 0.0*$n 2.j3@=n`"n $n 0.0*$n 2.j3@D/. "n ?)?<?<BgBgBgBg?<?<N!X=@/. ?.N"h"n 0.$n 0.0*$n 2.j3@=n0.N^,_ _ON/,HNVNU>A-Hp=@0. U@S@=@"n$n0*=i0.rAo 0.S@=@"n0.=Q`/.?.?<BgBgp. ??<BgBgBgN!X=@/.?.A O"Op?"QBgBgN"n0.=iBn0.ng 0.R@=@"n0.=Q`"n0.3n/.?.N"h"n0.0)"n2.io$"n0.$n0.3j"n0.=i"n0.$n0.3j"n0.3n=n0.N^,_ _ON/,HNVNU>A-Hp@n =@?.N-@/.?=@/.?.CO$OpQN=@/.?.CO$OpQN=@/.?.ClO$OpQN=@/.?.C2O$OpQN=@-n .N^,_ _ON Desk Accessory 6 Desk Accessory 5 Desk Accessory 4 Desk Accessory 3 Desk Accessory 2 Desk Accessory 1 - Desk /,HNVNU>A-H/. N-HNU>=n0. rA=@-nx?<HnHnHnxHntN9N^,_ _PN/,HNVtA8-HNU>=n p=@-nx?< HnHnHnxHntN9N^,_ _\N/,HNVtA6-HNU>=n Bn-nx?< HnHnHnxHntN9N^,_ _\N/,HNVA0-HNU>/.?. A O"Op?"QBgBgNN^,_ _ON/,HNVnAX-HNU>"n $n p*R@r=n"n / N<-@r?<#HnHnzHnrHnnN9=nz0.N^,_ _\NNu/,HNVxNU>p=@-n |?<HnHnHn|HnxN9N^,_ _XN/,HNVxNU>Bn-n |?<HnHnHn|HnxN9N^,_ _XN/,HNVxNU>=n Bn-n|?<!HnHnHn|HnxN9N^,_ _\N/,HNVxNU>=n p=@-n|?<!HnHnHn|HnxN9N^,_ _\NNu/,HNVAp-HNU>0.T@=@?.N-@/.?/. N/.Bg?.?.?.?.?.?.?.?. N!X=@0.rAg/.?.N"h0.rAW0.rAWÄC0.rAWÄC0.rAWÄCBd"n0.-I"n?< / NQ"n$i -J"nB"nB"nB"np3@"nBi"n3n "n3n0.rAW0.rAWÄCBdD"nX/ CNO$ONV"nP/ C2O$ONV"np3@=n0.N^,_ _ON/,HNVA$-HNU>p.r.Ag0p.r.Alp.R@rAp.@"n0.-I"n0)rAW"n0)rAWÄCBd"n$i -J"nX/ AO"Op?"QNV"np.R@3@"nP/ AO"Op?"QNV"n/ AO"Op?"QNV"np.R@3@"n3n "n3n `N^,_ _O NNu/,HNVtA\-HNU>=n=n=n=n=n=n=n=n=n ?<3HnHnHnxHntN9N^,_ _ON/,HNVnAF-HNU>0. J@jBn =n -nr?<2HnHnzHnrHnnN9=nz0.N^,_ _\N/,HNVAv-HNU>/.BgHnHnHnHnN$BgBgBgBgBg?.?.?.?.N/.Bg?<?.?.?.?.N"/.?. N(=@0.N^,_ _\N/,HNVAH-HNU>/. BgHnHnHnHnN$?<BgBgBgBg?.?.?.?.NRN^,_ _XN/,HNVtA,-HNU>-n x?<6HnHnHnxHntN9N^,_ _XN/,HNVAX-HNU>Bn"n0.r1JAg*"n 0.R@$n2.t20.R@=@`"n 0.@N^,_ _PN/,HNVA-HNU>"n Jf:p. rAl?<"n / N2x`p. R@?"n / N2xp=@p. =@0.nn&"n $Q0.S@2.tA 0Rn`"n $Qp. rN^,_ _ON/,HNVA|-HNU>"n0.-I"n0)rAW"n0)r AWÄC"n0)rAWÄCBd("n / AO"Op?"QN`"n0)rAW"n0)rAWÄC"n0)rAWÄC"n0)rAWÄCBd"n$i -J"n0)rAW"n0)rAWÄCp."ni\CBd"n0)S@@"n Jf"np.R@3@"n/ AO"Op?"QN"n0)rAW"n0)rAWÄCBd"n3n "n3n N^,_ _O N/,HNVAZ-HNU>"n0.-I"n0)rAW"n0)rAWÄCBd"n$i /"n / N`N^,_ _O NNu/,HNVAn-HNU>0. R@?HnN2xBn0. S@=@0.nn"n0.BiRn`"n0. p3@-n .N^,_ _TN/,HNVAH-HNU>Bn"n 0.r1JAg0.R@=@`0.rAlp=@=n0.N^,_ _XN/,HNVA0-HNU>/.N "@d0. |?/.NQN^,_ _\N/,HNVA-HNU>Bn0.|]"n 0.0)rAVCBd0.R@=@`0.|lBn0.S@=@0.nnR"n 0.-I"n0)`"n/) "n/) NN? NN ` "n$i -J"n/"n/ NN? NN"n/)?< NN"n/)?< NN"n?</) NQ`"n$i -J"n/"n/) NN(? NN"n/)"n/) NN ? NNb"n/)"n/) NN? NND"n?</) NQ`0@ @ b$@0;NppRn`0.R@?/. N2~N^,_ _XN _"BXeXUNNu/,HNVNU>A-H"n 0.-I"n3n"n3n"n3n"n3n"n3n"np2"np3@"np3@0.rAW0.rAWÄCBd0.rA=@"n0.r A3@"nBi 0.rAW0.rAWÄCBd"n3n "n3n ` "nB 0.rAg/. ?.?.N"$N^,_ _ON/,HNVNU>A-HBn"n0)J@g^"n0.0)r AJ@f0.R@=@`"n0.$n0.0*r FAA3@0.R@=@/.?.?.?.?.?.?.?.?.?.?. N2=n0.N^,_ _ONNu/,HNVxNU>=n=n -n|?<(HnHnHn|HnxN9N^,_ _PN/,HNVxNU>=n -n|?<rHnHnHn|HnxN9N^,_ _\N/,HNVxNU>-n|=n=n=n=n=n=n ?<*HnHnHn|HnxN9N^,_ _ON/,HNVNU>"n0. =i 0.N^,_ _\N/,HNVxNU>-n|=nBn=n=n=n=n=n0. rA=@?</HnHnHn|HnxN9N^,_ _ON/,HNVNU>/.?.HnHnHnHnN$/.?.?.?.?.?.?.?. NDN^,_ _O N/,HNVNU>"n0. =i0.N^,_ _\N/,HNVNU>"n0.3n N^,_ _PN/,HNVrNU>-nv=n=n=n=n ?<+HnHn~HnvHnrN9=n~0.N^,_ _O NNu/,HNVtNU>/.?."n/ "n/ N%b"n0.-It"n$nt2"n $nt2"nt0) rAJ@g:"n$n0W@2"n$n0W@2"n$n0\@2"n $n 0\@2N^,_ _ONNu/,HNVxNU>=n-n|?<,HnHnHn|HnxN9"n2"n 2N^,_ _ONNu/,HNVVNU>=nt=n vp. |o =|X` p. =@Xp=@Z=nXV0.ZnVn$0.Z@2.ZtA 0A1RnZ`?<Bg?.X?<HnHnHnHntHn\?<N:dN^,_ _ONNu/,HNVA-HNU>?.?. N;bN^,_ _XN/,HNV8A\-HNU>=nP=nR=nT=n V?<BgBg?<HnHnHnhHnPHn8?<N:d?.?. N;bN^,_ _PN/,HNVA<-HNU>HnHnN;r?.?.?.?. NZ?.?. N;bN^,_ _XN/,HNVA -HNU>?.?. ?.?. NN^,_ _XN/,HNV8A`-HNU>=nP=nR0.nS@=@T0.n S@=@V?< ?<Bg?<HnHnHnhHnPHn8?<N:dN^,_ _PN/,HNV8A^-HNU>=n=n =nP=nR=nT=nV?< ?.?<?<HnHnHnhHnPHn8?<N:dN^,_ _ON/,HNVA,-HNU>?<?.?.?.?.?.?. NXN^,_ _O N/,HNVA,-HNU>?<?.?.?.?.?.?. NN^,_ _O N/,HNV8AP-HNU>=nP=nR=nT=n V?< ?<Bg?<HnHnHnhHnPHn8?<N:dN^,_ _PN/,HNVA&-HNU>?.?.?.?. Bg?<N,N^,_ _PNNu/,HNV8A:-HNU>=n ?.Bg?<BgHnHnHnhHnPHn8BgN:dN^,_ _XN/,HNVA-HNU>?< ?. NN^,_ _TN/,HNV8AL-HNU>=n=n=n=n ?<Bg?<BgHnHnHnhHnPHn8BgN:dN^,_ _PN/,HNVA"-HNU>?. N;?<?. NN^,_ _TN/,HNVA-HNU>?<?. NN^,_ _TN/,HNV8A>-HNU>=n PBnR?<BgBg?<HnHnHnhHnPHn8BgN:dN^,_ _TN/,HNV8AN-HNU>?.?. N;=n=n ?<lBg?<BgHnHnHnhHnPHn8BgN:dN^,_ _XN/,HNVA"-HNU>?. N;?<?. NN^,_ _TN/,HNVA.-HNU>0. rA?N;?<h0. rA?NN^,_ _TN/,HNVAz-HNU>?. N;=n 0. rAo0p=@0. S@=@ 0. rAop=@0. @=@ ?<?.N.0.rAo?<?. NN^,_ _TN/,HNV6A@-HNU>=n =n?<'Bg?<BgHnHnHnhHnPHn8BgN:dN^,_ _XN/,HNVA-HNU>?<j?. NN^,_ _TN/,HNV8A>-HNU>BnP=n R?< BgBg?<HnHnHnhHnPHn8BgN:dN^,_ _TN/,HNVA-HNU>?<?. NN^,_ _TN/,HNV2A-HNU>Hn2Hn4Hn6N;BgBgNl=nP=nR0.nS@=@T=nV0.nS@=@X0.n S@=@Z=n\0.n S@=@^=n`=nb?<BgBg?<HnHnHnhHnPHn8?<N:d?.4?.6NN^,_ _PN/,HNV8A`-HNU>=nP=nR0.nS@=@T0.n S@=@V?< ?< Bg?<HnHnHnhHnPHn8?<N:dN^,_ _PN/,HNVAr-HNU>HnHnHnN;BgN?<NHnHnHnN;?.Nn?.?.?.?. N*?.N?.N?.NBN^,_ _PNNu/,HNVtA2-HNU>=n-n x?<NHnHnHnxHntN9N^,_ _\N/,HNVA-HNU>?</. NN^,_ _XN/,HNVA-HNU>0. ?BNnN^,_ _TN/,HNVA2-HNU>N;J@f ?<BN8N;R@?N;N^,_Nu/,HNVA@-HNU>N;rAo(N;S@?N;N;J@f ?<BNN^,_Nu/,HNVA<-HNU>p?BNp=@N;=@0.nn NrRn`N^,_Nu/,HNVtA,-HNU>p=@?<kHnHnHnxHntN9N^,_Nu/,HNVtA,-HNU>p=@?<kHnHnHnxHntN9N^,_NuNu/,HNVNU>p.R@rAHnN</?. N9=@0.N^,_ _ONNu/,HNVNU>A-H=nF=n@=nD=nB0.:rA=@=n8=n6=n4=n20.0rA=@=n. =n, =n*=n(=n>=n<-n$?<HnHnHnHnN9=n"n2"n2"n2"n 2"n 2"n20.N^,_ _O` |5IaL/ .f^Xt AH aLQa/ |5aat&<'HǏf CgJfr `t20/ax$HG faf |5jaP _a`/2<$aR _tv"0 :e^H a2LYCQNu3ր/ |5a _?ga `2Nu<|H瀀09րRyր |ւLNu33"3H223Bus errorAddress error accessing Attempt to divide by zeroValue out of rangeInteger overflow[3][][ Abort ]Error in Called by PROCEDURE FUNCTION MAIN PROGRAMat line at PC *unknown*Nu/,HNVnAL-HNU>?<MHnHnzHnrHnnN9"n2|"n2~"n2"n 2=nz0.N^,_ _ON/,HNV,A-HNU>0. rAg p=@.`$Hn,Hn,Hn,Hn,N\?N;pd=@.=n p=@ n n0.@rA1Rn`p=@?..Bg?< BgHnHnHn`HnHHn0BgN:d=n0.N^,_ _TN/,HNVAV-HN;$=@?.N;=n ?<fBg?<BgHnHn"n/ Hn"n/ BgN:d?.N;N^,_ _O N/,HNV4A-HN;$=@6?. N;?. HnhHn8?<N^0.hJ@g pe=@4`p=@4?.4BgBgBgHnHnHnhHnPHn8BgN:d0. n6g?.6N;` BgN;N^,_ _TN/,HNV8A2-HNU>?<BgBgBgHnHnHnhHnPHn8BgN:dN^,_Nu/,HNVjA-HNU>Bnj?< HnHnzHnrHnnN9=nzl0.lrAg?<N=@j?.jN;?.jN;?BgBgN;bBgN;=nl0.N^,_Nu/,HNVrA<-HN;=@0.J@g ?.NT?<HnHn~HnvHnrN9N^,_Nu/,HNVA0-HNU>p. R@rA Hn N</N9PN^,_ _ON _(N _0/Ho |9 3XJyXfXNX/"_/$|Va."|Wa&HyV?<N9JyXg _9N8BgNAg`NuNu/,HNV-n=n ?<4HnHnHnHnN9=n0.N^,_ _\N _#`#\#X#T#׈L#נP0/3׈| H |W@"|׊H2H2H209׈ @pf2<`2<3א"<L0<NBNu _<#t#l#p#h"_#d:3E3_3_ 2/3yx Jg.El: yl8DSEk0 y׀00 y~0Q?"<d0<sNBJ_g2 yd:( yt8DSEk0 y׀00 y׀0QNu _3xN09xNu _3zN09zNu _3׀3~N _"_$_2׀4~N _3ׄ3ׂN _"_$_2ׄ4ׂN _3|N09|Nu09׆Nu _3׆N _3W4N _3W83W6N _3W:N _3WN _"_$_&_6W44W62W8N _"_$_&_6W:4W<2W>N _ RNH׾ _024SBgQ@4BAAc/L׾NuHy/L׾NuH׾ _0@"_24BAAc1V`t>/L׾NuH׾ _02S@AC2YQ/L׾NuH׾ _02S@AC2YQ/L׾NuH׾ _02S@AC2FAYQ/L׾NuB9`PByX _0g$_jp"_// HNA`LJ@fP)J9f" f |` f|` f |` f|`4<G BQB) @e *:f&Jrt `e QG@tWJBkZGA3 J9f g< g6`d f H@?3|NAXNu _4` _t6 Bo r aSB`2aNH?C _r ar a/L?CNu _r aN _4` _t"x0HgJJjDxvCD zp cRЀ`|e W0R"f`6 _4` _t2xJAjDAxvCD p0 2H@0RJAfJg<-RBlCSBr aQSCaQN _4v` _46"_JBjtJCkgCe4`BSCr aQSBk aQN _v` _60@d CC/t`CC*tJCgkCe4`BSCr aQSBavQNFALSETRUE _6kfv2_t Cc"4YBv` _6kfv"_t Cc4QBvSBkr a(QSCC" A0 9c^a JgYC`NH C"oA/ ND L CNuPByX(_ _/ C( g  f4t4(H / /?(?<@NA LJkn gffNu4(SBraQNu(gN fH ??<NAXLNu f H ??<` f H ??<` f NuHyD` HyD0< LN9:REWRITE required prior to WRITE or PUTDisk or directory fullByX _$_"Wp )f)H/ NGL4NH/ NGLp)`ByX _"WJyGHf8J)f )f)H/ NGL )g)J)fJgByGH )g J)fBiNz`zByX _$_"WptvH/ Hya029XL- -fJf^p`4  fJg*`N0eH  bBԂi\(؄iV؄iRԄiNԁRCJ)f  g )f) 0e 9c~Jg&JgDJf 6Höf4N$NHyGm0<` HyGM0<N9:ByX _$_0"Wt )gJ&JRJ)f4H/ HyaP29XL )gJ)f RBBe`ưBe`N&|H/ ?< NA\HyGJ?< NA\LB@9c9S@kQ3GHN Bad digit in number encounteredOverflow during READ of numberByX(_ _/ C (g ( fxJ(f t4($IH / /?(?<?NA LJk,g*fJg  f"J` g  Wf NuJgJ(f P Nu!|Nu4(SBa@J(f8Jg. fJ(f"gr W1Agp f W1A1AQNu(gVJ(fD f&H`?<NAT f?< ?<NAXp LNu fH`?<NATLNuHyH0<` HyH0< LN9:Reset required prior to Read or GetAttempt to read past end-of-fileHp`:Hp`.Hp`"Hp`Hp` Hp _/fJ/ gLJ/kJ`L/ fJkB`</jJk2`,gbJk&` Jk`"eb// ebr`r`rAV ?/LNuHv` Hv _ `Hv` Hv _0HJ[fBBg`,j Dj4<` 4<ЀkSB`Jf].B/BJg 2/.?o /@?A /LNuHv` Hv _ [2Jkp`&4<cH@j JgR@kJ@kJgD@?/LNuHv` Hv _ [2Jkp`$4<cd JgRkJk~JgD//LNuJ/ goNuNuH _?///` H _0/2// Jv/ 8://N~/DD?DBoJgJgC|k?>BGHGv8ބdRC8ބdRC>HGvކdRC8ބdRCHGv48ބBޅB:>HG8ކkE߇SDkBg|d RdRDUJg( DbRD ME \/LNuBBo `H _0/2// v/ 8://~/?DD?DBo 8JgJgG|HD8H@0zr)`рe efef<څ߇QgRCgڼd RGdSCJCkD|blo/EC \/LNuoH _p2/g/ f/W?o `ֲ@e:f$/&e&f // d*B6//J/ k`(&// S@Q`&// `R"/?/[4JfFӃddRdRR/eJd RdRd`/AG o Jk`z0H*kS/JkFft grkRBjIHA~`( dtHAI.kRBҁjBG` BBRBӁj/e2/AG o Jk\/LNuH _0 @&b(COC/)?/LNuHyP`HyPLN9P Hz@CPt$> nk(:C@hԥ*5 c_1ɿ1.Ź^ k:v #-xŬX&x2n)h? SYQa@%oNˏ'?9x!7I|o|@Eŭ+E75vV 9@{pvPFloating point overflowFloating point division by zero XNu#R _ gXeXd 9RNHyR`HyRN9Pt`t _"_0gR@| e.GR$S" ghjebb"*f&"`v&A%S"`l&J`ذ|gb*|f8"9Rg0$A#R`""9Rg$A#R`"9Rg $A#R"`"EX&R"$b HyRN9PJgr"QHd2S@k"QN _"_0" gXeXd gR@ @mz @ e@ER"fB3@B$`\&A2+@ef "'I`F"3@B$`8$K`ư|f"R#R` |f"R#R` "R#RNHeap overruns stackPointer NILPointer not in heapH _0"_e /LNuHyUN9P/B9B/|BNuH _0 @f0"|p` "_J@jpEBr4@ BbBS@kQ/LNuH _4SBkt82$_rAdd0 @f0"|p` "_J@jp6ADb6CG0IS@k$eQ/LNuH _4k2SAk0"_p6B@bE0)CS@kQ/LNuH _2$_r0 @f0"|p` "_J@jp@kS@kv&J$IRC4(K Vg RQBg`?/LNuH _4kF2SAk>0 @f0"|p` "_J@jp6B@bEBSBkQ/LNuString overflow _ hNVf 0(gr"OD@Hd2S@k "Q` _"yXe HyUN9PN#J#F .f -|U`-|U nNнFf yJNStack overruns heapH?N _z gBjDRE"g8jDRE$6HBJBg8HAJAf,HBJBf$ւi EdD.` $HB8`B/L?NNu0NvDNHN|` HN| _z f0NjDRE"g`jDREdJgR(`DfxJg<`DxSDbb JgHA8`"tcRЀ`xeWJg(MdD.`B/LNNu09XNu _3XNByXNu[3][4][ Abort ]Copyright 1986, CCD and OSS, Inc.    .,`&,(&,(&,(& D`(&((&((&(4&((&((&F6<$,*FB.&d J X @ @nx\`L`N* : : : : : : : : : : R . , , , , . , ,  8     $   & & & & & & & & & & &      H*FZ\:$$  Lj`>BH  .Lf.*0,8f(0f(.& ::(0dD0*0,:0(8dTRP^T X 0*D*dV8,P &$"$ J0 $<0 :.0 $NP.2R@rBDDD:::::F::6,0 .0  @ B8&&0&0@$B.2 f<^D .2 b:.2 j<zDF.2"( "22 v "D&DD"22 v "D&HXlHVT>: $ :"B"BB8,R8.JP 8JJ\4: P 4JJ\4: lD` HB*.*DF*,|> > \ > > Z2Z6N^,. Z(,\\(R*.LZ"f>,$NlF  ,        ( ( "6 J z" j>j  J f&  j>j J ~ Tx.28PN.df B&"L& $8< F&"@N&"(BZ&82>Z2ZxJJ".&&Z V"&,4 f.JJ^<8:   NFF`N4&&B,2JJ^<8:   p$,N,0JJ^<8:   l,JJ^<8:   rR^N*\ BF\>:4L::      * 46 N4H" N4&>  N2>   &   &    P.DZ:6   Fj^\j::*V.( H HL  \$h`<8 :  ~$d^RT<8 <:::d^RT<808880:::d^RT<8 :::""2,2   8$h^>2:   (    ""D2  d ( ( ( $       L(   b2   d ( ( ( $       LX(                <d"d&$Z(d ($&$"2 , * $"($&$*,"06 ,\60LP"4*>4@ l*trp`  zP,&D0T>0,8&&,$ B " 4T R"BBD <. ,@ ,,2 4 ,2 4 ,2 ,,T  V& ,,  ,6   $L    8@F L2`*2 "T &( &0&  >          ,*< * * , , 0 , " nBB6 2J X D   ( 0L2 N z  f H F  2  <   , FR ( *@ B @ B V  Program Battle; { Battle for the Throne: a stratagy game for 1 to 4 players. } { Written by Terry Pack in Personal Pascal Version 1.10 } { <} { Copyright 1988 Antic Publishing Inc. } { <} Const {$I C:\Includes\GemConst.Pas } G_Pass= -2; G_Exit= -3; MaxPlayers=4; { Maximum number of players } MaxSides=5; { MaxPlayers + Bandits } Mx=11; { How wide the map is } My=6; { How Tall the map is } TS=24; Text_C=9; { Lt Brown } Borders=10; { Dk Brown } Fill=11; { Sea Blue } FillPat=3; Type {$I C:\Includes\Gemtype.Pas } {$I C:\Games\Battle\BatType.Pas } Var B: Integer; Campaigns,Month,Year: Integer; C_Item,D_Item,D2_Item: Integer; DeskColors,TerrainColors,TitleColors: HeadType; Dry,Wet,Snow: Boolean; Gold: Array[0..MaxSides] of Long_Integer; I_Title,B_Item,Cr_Item,In_Item,Lo_Item: Integer; M_Buf,Scn_Buf,St_Buf,T_Buf,Title_Buf: ScreenType; Map,Screen,Storage,Terrain,TitlePage: MFDB; Menu: Menu_Ptr; Order: Array[0..MaxSides] of Integer; { What order the players are in } Owner,Pop,Tiles,Troops: Array[0..Mx,0..My] of Integer; P,Pn: Integer; P_Color: Array[0..MaxSides] of Integer; P_Item,P_Title,Q_Item: Integer; P_Name: Array[0..MaxSides] of Str255;  S_Item,Sa_Item: Integer; Scn_ptr : S_Ptr; { a pointer to the screen } T_Effects: Array[0..13] of Real; BTB_Item,BTBB_Item,BTC_Item,BTCB_Item,BTD_Item: Integer; BTE_Item,BTEB_Item,BTN_Item,Ta_Item,Tr_Item,BTX_Item: Integer; T_Box: Dialog_Ptr; {$I A:\Gemsubs.Pas } {$I C:\Includes\Str.Pas } {$I C:\Includes\LongStr.Pas } {$I C:\Includes\TeHeight.Pas } {$I C:\Includes\Val.Pas } Procedure Init_form(var form: MFDB; var Addr: ScreenType); External; Procedure Copy_rect(var s,d:MFDB; from_x,from_y,to_x,to_y,wid,ht,Mode:Integer); External; Function Physbase: S_Ptr; { xbios routine returns address of screen } Xbios(2); Function Getrez: Integer; Xbios(4); Function F_Open(Var Name: Path_Chars; Mode: Integer): Integer; Gemdos($3D); Function Current_Disk: Integer; Gemdos($19); Function Rand(N:Integer): Integer; Function Random: Integer; Xbios(17); Begin Rand:=Abs(Random mod N) End; Procedure Sav_Scn; { proc saves screen to Scn_buf } {$P-} { turn pointer checking off } Begin Scn_Ptr := Physbase; { get addr of screen in memory } Scn_buf := Scn_Ptr^ { do assignment, copy entire array } End; {$P=} { restore pointer checking to old state } Procedure Rest_Scn; { restore screen from buf } {$P-} { turn pointer checking off } Begin Scn_ptr := Physbase; { get addr of screen in memory } Scn_ptr^:= Scn_Buf { assign, copy array } End; {$P=} { set pointer checking to old state } Procedure Make_Path(Var Ps: Str255; Var Cs: Path_Chars); Var I: Integer; Begin For I:=1 to Length(Ps) do Cs[i]:=Ps[i]; Cs[length(ps)+1]:=Chr(0) End; Function Neo_Read(Handle: Integer; Count: Long_Integer; Var buf: Neo_Type ): Long_Integer; Gemdos($3F); Procedure SetColor(Colornum, Color: Integer); Xbios(7); Function ReadColor(Colornum, Color: Integer): Integer; Xbios(7); Procedure Set_Color_Registers(Var Header: HeadType); Var I: Integer; Begin For I:=0 to 15 do SetColor(I,Header[I+2]) End; Procedure Read_Color_Registers(Var Header: HeadType); Var I: Integer; Begin For I:=0 to 15 do Header[I+2]:=ReadColor(I,-1) End; Procedure Fade_Color(Var T: HeadType); Var B,I,J,K,Dummy: Integer; F: HeadType; FC,TC: Array[1..3] of Integer; Msg: Message_Buffer; Begin Read_Color_Registers(F); For J:=0 to 7 do Begin For I:=0 to 15 do Begin FC[1]:=(F[I+2] & 3840) div 256; FC[2]:=(F[I+2] & 240) div 16; FC[3]:=(F[I+2] & 15); TC[1]:=(T[I+2] & 3840) div 256; TC[2]:=(T[I+2] & 240) div 16; TC[3]:=(T[I+2] & 15); For K:=1 to 3 do If FC[K]TC[K] then FC[K]:=FC[K]-1; F[I+2]:=FC[1]*256+FC[2]*16+FC[3] End; B:=Get_Event(E_Timer,0,0,0,90, False,0,0,0,0,False,0,0,0,0, Msg,Dummy,Dummy,Dummy,Dummy,Dummy,Dummy); Set_Color_Registers(F) End End; Procedure Load_Terrain; Var B: Long_Integer; Handle: Integer; Neo_Buf: Neo_Type; Path: Path_Chars; Ps: Str255; Begin Ps:='Terrain.Neo'; Make_Path(Ps,Path); Handle:=F_Open(Path,0); B:=Neo_Read(Handle,32127,Neo_Buf); Scn_Buf:=Neo_Buf.Pic; TerrainColors:=Neo_Buf.Head End; Procedure Load_TitlePage; Var B: Long_Integer; Handle: Integer; Path: Path_Chars; Ps: Str255; Neo_Buf: Neo_Type; Begin Ps:='TitlePage.Neo'; Make_path(Ps,Path); Handle:=F_Open(Path,0); B:=Neo_Read(Handle,32127,Neo_Buf); Scn_Buf:=Neo_Buf.Pic; TitleColors:=Neo_Buf.Head End; Procedure Initialize; Var I: Integer; Procedure Init_BTBox; Var H,W: Integer; Begin H:=17; W:=27; T_Box:=New_Dialog(14,0,0,W,H); BTN_Item :=Add_DItem(T_Box,G_BoxText,None, 1,1,W-2,1,-2,Borders*4096|Text_C*256|128); Ta_Item :=Add_DItem(T_Box,G_Text,None, 1,3,W-2,1,-2,Borders*4096|Text_C*256|128); Tr_Item :=Add_DItem(T_Box,G_Text,None, 1,4,W-2,1,-2,Borders*4096|Text_C*256|128); BTB_Item :=Add_DItem(T_Box,G_Text,None, 5,6,W-6,1,-2,Borders*4096|Text_C*256|128); BTBB_Item:=Add_DItem(T_Box,G_Box,Selectable|Exit_Btn|Radio_Btn, 1,6,3,1,2,Borders*4096|128); BTC_Item :=Add_DItem(T_Box,G_Text,None, 5,8,W-6,1,-2,Borders*4096|Text_C*256|128); BTCB_Item:=Add_DItem(T_Box,G_Box,Selectable|Exit_Btn|Radio_Btn, 1,8,3,1,2,Borders*4096|128); BTD_Item :=Add_DItem(T_Box,G_Text,None, 5,9,W-6,1,-2,Borders*4096|Text_C*256|128); BTEB_Item:=Add_DItem(T_Box,G_Box,Selectable|Exit_Btn|Radio_Btn, 1,11,3,1,2,Borders*4096|128); BTE_Item :=Add_DItem(T_Box,G_Text,None, 5,11,W-6,1,-2,Borders*4096|Text_C*256|128); BTX_Item :=Add_DItem(T_Box,G_BoxText,Selectable|Exit_Btn|Radio_Btn|Default, W div 2-1,H-3,4,1,-2,Borders*4096|Text_C*256|128); Set_DText(T_Box,BTN_Item,' Player Name ',System_Font,TE_Center); Set_DText(T_Box,BTB_Item,'Build castle troops',System_Font,TE_Left); Set_DText(T_Box,BTC_Item,'Build troops from',System_Font,TE_Left); Set_DText(T_Box,BTD_Item,'treasury money.',System_Font,TE_Left); Set_DText(T_Box,BTE_Item,'Show Map.',System_Font,TE_Left); Set_DText(T_Box,BTX_Item,'Exit',Small_Font,TE_Center); Set_DText(T_Box,Ta_Item,'Taxes 0',System_Font,TE_Left); Set_DText(T_Box,Tr_Item,'Treasury 0',System_Font,TE_Left); Center_Dialog(T_Box) End; Begin { Initialize } Init_Mouse; Hide_Mouse; Read_Color_Registers(DeskColors); For I:=0 to 15 do SetColor(I,0); { Make Screen Black while all of this } #{ is going on } Screen[addr1]:=0; Screen[addr2]:=0; { The Physical Screen } Init_Form(Map,M_Buf); Init_Form(Storage,St_Buf); Init_Form(Terrain,T_Buf); Init_Form(TitlePage,Title_Buf); Load_Terrain; Rest_scn; { Put Scn_Buf on Physical Screen } Copy_Rect(Screen,Terrain,0,0,0,0,320,200,3); Load_TitlePage; Rest_scn; { Put Scn_Buf on Physical Screen } Copy_Rect(Screen,TitlePage,0,0,0,0,320,200,3); Set_Color_Registers(TitleColors); Show_Mouse; Menu:=New_Menu(10,' Game Info '); P_Title:=Add_MTitle(Menu,' Play Game '); I_Title:=Add_MTitle(Menu,' Info '); P_Item :=Add_MItem(Menu,P_Title,' Start New Game '); C_Item :=Add_MItem(Menu,P_Title,' Continue Old Game '); Lo_Item:=Add_MItem(Menu,P_Title,' Load Game '); Sa_Item:=Add_MItem(Menu,P_Title,' Save Game '); D_Item :=Add_MItem(Menu,P_Title,'-'); S_Item :=Add_MItem(Menu,P_Title,' Show Scores '); D2_Item:=Add_MItem(Menu,P_Title,'-'); Q_Item :=Add_MItem(Menu,P_Title,' Quit '); B_Item :=Add_MItem(Menu,I_Title,' Background '); Cr_Item:=Add_MItem(Menu,I_Title,' Credits '); In_Item:=Add_MItem(Menu,I_Title,' Instructions '); Menu_Disable(Menu,C_Item); Menu_Disable(Menu,D_Item); Menu_Disable(Menu,D2_Item); Menu_Disable(Menu,S_Item); Menu_Disable(Menu,Sa_Item); Init_BTBox; T_Effects[ 0]:=1.1; { Clear } T_Effects[ 1]:=1.2; { Forrest } T_Effects[ 2]:=1.5; { Village } T_Effects[ 3]:=1.4; { Swamp } T_Effects[ 4]:=0.9; { Lake } T_Effects[ 5]:=3.0; { Castle } T_Effects[ 6]:=3.0; { Castle } T_Effects[ 7]:=3.0; { Castle } T_Effects[ 8]:=3.0; { Castle } T_Effects[ 9]:=1.3; { Ruined Vilage } T_Effects[10]:=0.0; { Bay } T_Effects[11]:=0.0; { Flooded Swamp } T_Effects[12]:=0.0; { Mountians } T_Effects[13]:=1.1; { Dry Lake } P_Name[ 0]:='Independent'; P_Name[ 5]:='Bandits'; End; Procedure Get_Players; Var B,D_Item,H: Integer; N_Item: Array[1..MaxPlayers] of Integer; Num: Str255; P: Integer; Pl_Box,Pn_Box: Dialog_Ptr; Pn_Item,T_Item,W,X_Item: Integer; Begin W:=24; H:=6; Pn_Box:=New_Dialog(4,0,0,W,H); Pn_Item:=Add_DItem(Pn_Box,G_FText,Editable,1,1,W-2,1, 0,Borders*4096|Text_C*256|128); D_Item:=Add_DItem(Pn_Box,G_BoxText,Default|Selectable|Exit_Btn, W div 2-3,H-2,6,1, -3,Borders*4096|Text_C*256); Set_DEdit(Pn_Box,Pn_Item,'How many players ? _','9','',System_Font, TE_Left); Set_DText(Pn_Box,D_Item,' Done ',System_Font,TE_Center); Center_Dialog(Pn_Box); Repeat B:=Do_Dialog(Pn_Box,Pn_Item); Get_DEdit(Pn_Box,Pn_Item,Num); Pn:=Val(Num) Until (Pn<=MaxPlayers) and (Pn>0); End_Dialog(Pn_Box); Delete_Dialog(Pn_Box); W:=24; H:=7+Pn; Pl_Box:=New_Dialog(8,0,0,W,H); T_Item:=Add_DItem(Pl_Box,G_BoxText,None,1,1,W-2,2, 2,Borders*4096|Text_C*256|3*16|Fill); For P:=1 to Pn do N_Item[P]:=Add_DItem(Pl_Box,G_FText,Editable,2,P+3,W-2,1, 0,Borders*4096|Text_C*256|128); X_Item:=Add_DItem(Pl_Box,G_BoxText,Selectable|Exit_Btn,W div 2-3,H-2,6,1, -2,Borders*4096|Text_C*256); Set_DText(Pl_Box,T_Item,' The Players ',System_Font,TE_Center); For P:=1 to Pn do Set_DEdit(Pl_Box,N_Item[P],'Name: _ ', 5'a ', 5'',System_Font,TE_Left); Set_DText(Pl_Box,X_Item,' Done ',System_Font,TE_Center); Center_Dialog(Pl_Box); B:=Do_Dialog(Pl_Box,N_Item[1]); For P:=1 to Pn do Get_DEdit(Pl_Box,N_Item[P],P_Name[P]); P_Color[Pn+1]:=13; P_Name [Pn+1]:='Bandits'; End_Dialog(Pl_Box); Delete_Dialog(Pl_Box); End; Procedure Clear_Forrest(X,Y: Integer); Var N: Integer; Begin For N:=1 to Rand(9) do Begin Case Rand(4) of 0: X:=X-1; 1: Y:=Y-1; 2: X:=X+1; 3: Y:=Y+1 End; If X<0 then X:=0; If Y<0 then Y:=0; If X>Mx then X:=Mx; If Y>My then Y:=My; If Tiles[X,Y]=1 then Tiles[X,Y]:=0 End End; { +-+- +-+ | Terrain | Tile | Defender Mult | +-+- +-+ | Clear | 0 | 1.1 | | Forrest | 1 | 1.2 | | Village | 2 | 1.5 | | Swamp | 3 | 1.4 | | Lake | 4 | 0.9 | | Castles | 5..8 | 3.0 | | Ruined Village | 9 | 1.3 | | Bay | 10 | 0.0 | | Flooded Swamp | 11 | 0.0 | | Mountians | 12 | 0.0 | | Dry Lake | 13 | 1.1 | +-+- +-+ } Procedure Survey; Var X,Y: Integer; Begin For X:=1 to Mx-1 do For Y:=1 to My-1 do Begin If (Tiles[X,Y]=4) and ((Tiles[X,Y-1]=10) or (Tiles[X,Y+1]=10) or (Tiles[X-1,Y]=10) or (Tiles[X+1,Y]=10)) then Tiles[X,Y]:=10; { Bay } End; For X:=0 to Mx do For Y:=0 to My do If (Tiles[X,Y]=1) and (Pop[X,Y]>0) then Tiles[X,Y]:=0; { Clear Forest } For X:=0 to Mx do For Y:=0 to My do Begin If (Tiles[X,Y]=9) and (Pop[X,Y]=0) then Tiles[X,Y]:=0; { Clear Ruins } If (Tiles[X,Y] in [0,1]) and (Pop[X,Y]>2) then { New Village } Begin Tiles[X,Y]:=2; Clear_Forrest(X,Y); End; If (Tiles[X,Y]=2) and (Pop[X,Y]=0) then Tiles[X,Y]:=9; { New Ruins } End End; Procedure Generate_Terrain; Var D,I,J,N: Integer; X,Y: Integer; Begin { Forrest } For X:=0 to Mx do For Y:=0 to My do Tiles[X,Y]:=1; { Lakes and Bays } For I:=0 to Rand(7) do Begin X:=Rand(Mx+1); Y:=Rand(My+1); If (X=0) or (X=Mx) or (Y=0) or (Y=My) Then Tiles[X,Y]:=10 Else If (Tiles[X-1,Y]=10) or (Tiles[X+1,Y]=10) or (Tiles[X,Y-1]=10) or (Tiles[X,Y+1]=10) Then Tiles[X,Y]:=10 Else Tiles[X,Y]:=4 End; { Mountians } For I:=0 to Rand(3) do Begin X:=Mx div 2 - Rand(2) + Rand(2); Y:=My div 2 - Rand(2) + Rand(2); Tiles[X,Y]:=12 End; { The Swamps } For I:=0 to Rand (5) do Begin X:=Rand(Mx+1); Y:=Rand(My+1); N:=0; Repeat If (Tiles[X,Y] in [0,1]) Then Tiles[X,Y]:=3; Case Rand(4) of 0: X:=X-1; 1: Y:=Y-1; 2: X:=X+1; 3: Y:=Y+1 End; N:=N+1; Until (X<0) or (Y<0) or (X>Mx) or (Y>My) or (N>Rand(5)); End; { Castles } Tiles[Rand(Mx div 2),Rand(My div 2)]:=5; Tiles[Mx div 2+Rand(Mx div 2)+1,My div 2+Rand(My div 2)+1]:=6; If Pn>2 Then Tiles[Mx div 2+Rand(Mx div 2)+1,Rand(My div 2)]:=7; If Pn>3 Then Tiles[Rand(Mx div 2),My div 2+Rand(My div 2)+1]:=8; End; Procedure Pop_Generate; Var I,M,N: Integer; Pop_Count: Integer; Regional_Pop: Integer; X,Y: Integer; Begin Regional_Pop:=Rand(8)+Rand(8)+Rand(8)+Rand(8)+6; For X:=0 to Mx do For Y:=0 to My do Pop[X,Y]:=0; For X:=0 to Mx do For Y:=0 to My do If Tiles[X,Y] in [5..8] then Begin Pop_Count:=0; Repeat M:=X+Rand(3)-Rand(3); N:=Y+Rand(3)-Rand(3); If (M>=0) and (N>=0) and (M<=Mx) and (N<=My) Then If Tiles[M,N] in [0,1,5..8] then Begin Pop_Count:=Pop_Count+1; Pop[M,N]:=Pop[M,N]+1; End; Until Pop_Count>=Regional_Pop; End; End; Procedure Setup_Castles; Var P,X,Y: Integer; Begin P:=1; For X:=0 to Mx do For Y:=0 to My do Begin If (Tiles[X,Y] in [5..8]) and (P<=Pn) then Begin Owner[X,Y]:=P; Troops[X,Y]:=10; Gold[P]:=0; P:=P+1 End Else Begin Owner[X,Y]:=0; Troops[X,Y]:=0 End End End; Procedure Setup_Bandits; Var X,Y: Integer; Begin For X:=0 to Mx do For Y:=0 to My do If (Rand(3)=0) and (Tiles[X,Y]=1) then Begin Owner[X,Y]:=Pn+1; Troops[X,Y]:=1 End End; Procedure ROrder; Var I,P,T,Q: Integer; Begin For P:=0 to Pn+1 do Order[P]:=P; For I:=0 to 4*Pn do Begin P:=Rand(Pn+1)+1; Q:=Rand(Pn+1)+1; T:=Order[P]; Order[P]:=Order[Q]; Order[Q]:=T End End; Procedure Setup; Begin Generate_Terrain; Pop_Generate; Setup_Castles; Survey; Setup_Bandits; Year:=1; Month:=1; Campaigns:=Rand(3)+Rand(3)+2; ROrder; P:=1; End; Procedure Outside; Var Dummy,Event: Integer; Msg: Message_Buffer; Ox,Oy: Integer; Procedure Show_Troops(X,Y: Integer); Var F: Integer; TStr: Str255; Begin If Troops[X,Y]<>0 then Begin Case Owner[X,Y] of 1: F:= 5; 2: F:= 42; 3: F:=175; 4: F:=187 End; If (Owner[X,Y]>Pn) or (Owner[X,Y]<1) then F:=240; Text_Color(P_Color[Owner[x,y]]); Text_Height(4); Str(Troops[X,Y],TStr); TStr:=Concat(Chr(F),TStr); If Not ((Owner[X,Y]=Pn+1) and (Tiles[X,Y] in [1,3])) then Draw_String(X*TS+Ox+1,Y*TS+Oy+5,TStr) End End; Procedure Show_Pop(X,Y: Integer); Var PStr: Str255; Begin Text_Color(1); Text_Height(4); If Pop[X,Y]>0 then Begin Str(Pop[X,Y],PStr); Draw_String(X*TS+Ox+1,(Y+1)*TS+Oy-3,PStr) End End; Procedure Draw_Terrain; Var I,Sx,Sy,X,Y: Integer; Begin Paint_Color(11); { Sea Blue } Paint_Style(1); Paint_Rect(0,0,320,200); For X:=0 to Mx do For Y:=0 to My do Begin Sx:=Rand(18); Sy:=Rand(18); Case Tiles[X,Y] of {Clear} 0: Copy_Rect(Terrain,Screen, 4+Sx, 4+Sy,X*TS+Ox,Y*TS+Oy,TS,TS,3); {Forest} 1: Copy_Rect(Terrain,Screen, 55+Sx, 4+Sy,X*TS+Ox,Y*TS+Oy,TS,TS,3); {Village} 2: Copy_Rect(Terrain,Screen,113+Sx, 4+Sy,X*TS+Ox,Y*TS+Oy,TS,TS,3); {Swamp} 3: Copy_Rect(Terrain,Screen,167+Sx, 4+Sy,X*TS+Ox,Y*TS+Oy,TS,TS,3); {Lake} 4,13: Copy_Rect(Terrain,Screen, 250, 10,X*TS+Ox,Y*TS+Oy,TS,TS,3); {Castle1} 5: Copy_Rect(Terrain,Screen, 15, 72,X*TS+Ox,Y*TS+Oy,TS,TS,3); {Castle2} 6: Copy_Rect(Terrain,Screen, 50, 72,X*TS+Ox,Y*TS+Oy,TS,TS,3); {Castle3} 7: Copy_Rect(Terrain,Screen, 86, 73,X*TS+Ox,Y*TS+Oy,TS,TS,3); {Castle4} 8: Copy_Rect(Terrain,Screen, 122, 73,X*TS+Ox,Y*TS+Oy,TS,TS,3); {Ruins} 9: Copy_Rect(Terrain,Screen,170+Sx,65+Sy,X*TS+Ox,Y*TS+Oy,TS,TS,3); {Bay} 10: Copy_Rect(Terrain,Screen, 240, 75,X*TS+Ox,Y*TS+Oy,TS,TS,3); {Flooded Swamp } 11: Copy_Rect(Terrain,Screen, 250, 10,X*TS+Ox,Y*TS+Oy,TS,TS,3); { Mountians } 12: Copy_Rect(Terrain,Screen,283-Rand(3)+Rand(3), !68-Rand(3)+Rand(3),X*TS+Ox,Y*TS+Oy,TS,TS,3); End End End; Procedure Do_Colors; Const C=125; Begin If Snow then Begin Set_Color( 3,C*7,C*7,C*7); Set_Color( 4,C*7,C*7,C*7); Set_Color( 6,C*7,C*7,C*7); Set_Color( 8,C*7,C*7,C*7); Set_Color( 9,C*7,C*7,C*7); Set_Color(13,C*7,C*7,C*7); Set_Color(14,C*7,C*7,C*7) End; If Dry then Begin Set_Color( 8,C*4,C*4,C*1); Set_Color(14,C*5,C*3,C*0) End; P_Color[ 0]:= 1; P_Color[ 1]:= 5; P_Color[ 2]:=10; P_Color[ 3]:=12; P_Color[ 4]:=15; P_Color[Pn+1]:=13; End; Procedure Draw_Map; Var X,Y: Integer; Begin Hide_Mouse; Set_Color_Registers(TerrainColors); Ox:=(320-TS*(Mx+1)) div 2; Oy:=8; Draw_Terrain; Copy_Rect(Screen,Map,0,0,0,0,320,200,3); { Store Map Picture } For Y:=0 to My do For X:=0 to Mx do Show_Pop(X,Y); For Y:=0 to My do For X:=0 to Mx do Show_Troops(X,Y); Show_Mouse End; Procedure Play_Game; Const C=125; Var B,H,M_Item,P_Item: Integer; Stn: String; Sx,Sy,W,X,X_Item,Y: Integer; Next: Boolean; Function Move_Troops(P: Integer): Integer; Var B,Fwx,Fwy,Fwh,Fww,FX,FY: Integer; Stf,Stn,Stt,Stx,Sty: Str255; Twx,Twy,Twh,Tww,TX,TY,X,Y: Integer; Function GetCoords: Integer; Label 1; Const H=19; W=312; X=5; Y=181; ExitBH=11; ExitBW=33; ExitBX=279; ExitBY=185; PassBH=ExitBH; PassBW=ExitBW; PassBX=241; PassBY=ExitBY; Var B,Dummy,Event,GC,Key,Mox,Moy: Integer; Msg: Message_Buffer; Procedure GC_Box; Begin Hide_Mouse; { Whole Box } Paint_Outline(True); Paint_Color(Borders); Paint_Style(1); Paint_Rect(X,Y,W,H); Paint_Color(Fill); Paint_Style(FillPat); Paint_Rect(X+2,Y+2,W-4,H-4); { Pass Button } Paint_Color(Borders); Paint_Style(1); Paint_Rect(PassBX,PassBY,PassBW,PassBH); Paint_Color(0); Paint_Rect(PassBX+2,PassBY+2,PassBW-4,PassBH-4); Text_Color(Text_C); Draw_String(PassBX+5,PassBY+7,'Pass'); { Exit Button } Paint_Color(Borders); Paint_Style(1); Paint_Rect(ExitBX,ExitBY,ExitBW,ExitBH); Paint_Color(0); Paint_Rect(ExitBX+2,ExitBY+2,ExitBW-4,ExitBH-4); Text_Color(Text_C); Draw_String(ExitBX+5,ExitBY+7,'Exit'); Show_Mouse End; Begin { GetCoords } GC:=0; GC_Box; Stn:=P_Name[P]; Stf:='From ?'; Text_Color(P_Color[P]); Draw_String(X+ 6,Y+10,Stn); Text_Color(Text_C); Draw_String(X+11*8-1,Y+10,Stf); Show_Mouse; Repeat Repeat Event:=Get_Event(E_Button,1,1,1,0, False,0,0,0,0,False,0,0,0,0, Msg,Key,Dummy,Dummy,Mox,Moy,Dummy); If (Mox>=PassBX) and (Mox<=PassBX+PassBW) and (Moy>=PassBY) and (Moy<=PassBY+PassBH) Then GC:=G_Pass; If (Mox>=ExitBX) and (Mox<=ExitBX+ExitBW) and (Moy>=ExitBY) and (Moy<=ExitBY+ExitBH) Then GC:=G_Exit; If GC<0 then Goto 1; FX:=Trunc((Mox-Ox)/Ts); Str(FX,Stx); FY:=Trunc((Moy-Oy)/Ts); Str(FY,Sty); If (FX>=0) and (FY>=0) and (FX<=Mx) and (FY<=My) then Stf:=Concat('From: ',Stx,'-',Sty,' ') Else Stf:='From: The Sea ? '; If (FX>=0) and (FY>=0) and (FX<=Mx) and (FY<=My) Then If Owner[Fx,Fy]<>P then Stf:='You don''t own that area.'; GC_Box; Text_Color(P_Color[P]); Hide_Mouse; Draw_String(X+6,Y+10,Stn); Text_Color(Text_C); Draw_String(X+11*8-1,Y+10,Stf); Show_Mouse; Until ((FX>=0) and (FY>=0) and (FX<=Mx) and (FY<=My)); Until (Owner[Fx,Fy]=P); Hide_Mouse; Stt:='To ?'; GC_Box; Text_Color(P_Color[P]); Draw_String(X+ 6,Y+10,Stn); Text_Color(Text_C); Draw_String(X+11*8-1,Y+10,Stt); Show_Mouse; Repeat Repeat Event:=Get_Event(E_Button|E_Keyboard,1,1,1,0, False,0,0,0,0,False,0,0,0,0, Msg,Key,Dummy,Dummy,Mox,Moy,Dummy); If (Mox>=ExitBX) and (Mox<=ExitBX+ExitBW) and (Moy>=ExitBY) and (Moy<=ExitBY+ExitBH) Then GC:=G_Exit; If (Mox>=PassBX) and (Mox<=PassBX+PassBW) and (Moy>=PassBY) and (Moy<=PassBY+PassBH) Then GC:=G_Pass; If GC<0 then Goto 1; TX:=Trunc((Mox-Ox)/Ts); Str(TX,Stx); TY:=Trunc((Moy-Oy)/Ts); Str(TY,Sty); If (TXFX-2) and (TyFy-2) Then Stt:=Concat('To: ',Stx,'-',Sty,' ') Else Stt:='Only one space.'; If (TX<0) or (TY<0) or (TX>Mx) or (TY>My) then Stt:='Not to the sea.' else Begin If (Tiles[Tx,Ty] in [4,10,11]) then Stt:='Too wet.'; If (Tiles[Tx,Ty]=12) then Stt:='Impassable'; End; GC_Box; Text_Color(P_Color[P]); Draw_String(X+ 6,Y+10,Stn); Text_Color(Text_C); Draw_String(X+11*8-1,Y+10,Stt); Until ((TXFX-2) and (TyFy-2) and (TX>=0) and (TY>=0) and (TX<=Mx) and (TY<=My)) Until (Tiles[Tx,Ty] in [0..3,5..9,13]) or (Snow and (Tiles[Tx,Ty]=4)); GC:=1; Hide_Mouse; Paint_Style(1); { Redraw Sea } Paint_Color(11); Paint_Rect(X,Y,W,H); 1: GetCoords:=GC End; Procedure ShowStats(A: Integer); Var Num,St: Str255; Begin Paint_Style(1); Paint_Color(Borders); Paint_Rect(FwX,FwY,FwW,FwH); Paint_Color(Fill); Paint_Style(FillPat); Paint_Rect(FwX+3,FwY+3,FwW-6,FwH-6); Text_Color(Text_C); Draw_String(Fwx+8,Fwy+ 8,Stf); Copy_Rect(Map,Screen,Fx*Ts+Ox-1,Fy*Ts+Oy-1, Fwx+Fww div 2-Ts div 2,Fwy+16,TS+2,TS+2,3); St:=Concat('Owner: ',P_Name[Owner[Fx,Fy]]); Draw_String(Fwx+8,Fwy+Ts+24,St); Str(Troops[Fx,Fy],Num); St:=Concat('Troops: ',Num); Draw_String(Fwx+8,Fwy+Ts+32,St); Str(A,Num); St:=Concat('Attacking: ',Num); Draw_String(Fwx+8,Fwy+Ts+40,St); Paint_Style(1); Paint_Color(Borders); Paint_Rect(TwX,TwY,TwW,TwH); Paint_Color(Fill); Paint_Style(FillPat); Paint_Rect(TwX+3,TwY+3,TwW-6,TwH-6); Draw_String(Twx+8,Twy+ 8,Stt); Copy_Rect(Map,Screen,Tx*Ts+Ox-1,Ty*Ts+Oy-1, Twx+Tww div 2-Ts div 2,Twy+16,TS+2,TS+2,3); St:=Concat('Owner: ',P_Name[Owner[Tx,Ty]]); Draw_String(Twx+8,Twy+Ts+24,St); Str(Troops[Tx,Ty],Num); St:=Concat('Troops: ',Num); Draw_String(Twx+8,Twy+Ts+32,St) End; Procedure Fight(A:Integer); Var A_Item,B_Item,R_Item: Integer; F_Box: Dialog_Ptr; B,D,H,W,X,Y: Integer; Begin H:=3; W:=Fww div 8 - 2; X:=Fwx div 8 + 1; Y:=(Fwy+Fwh) div 8 - 3; F_Box:=New_Dialog(5,X,Y,W,H); B_Item:=Add_DItem(F_Box,G_Box,None, 0,0,W,H, -2,Borders*4096|Text_C*256|3*16|Fill); A_Item:=Add_DItem(F_Box,G_BoxText,Selectable|Default|Exit_Btn, W div 3-4,1,6,1, -3,Borders*4096|Text_C*256); R_Item:=Add_DItem(F_Box,G_BoxText,Selectable|Exit_Btn, 2*W div 3-2,1,6,1, -2,Borders*4096|Text_C*256); Set_DText(F_Box,A_Item,'Attack',Small_Font,TE_Center); Set_DText(F_Box,R_Item,'Retreat',Small_Font,TE_Center); Repeat ShowStats(A); Show_Mouse; If A<>0 then B:=Do_Dialog(F_Box,0); Obj_SetState(F_Box,A_Item,Normal,False); Obj_SetState(F_Box,R_Item,Normal,False); Hide_Mouse; If B<>R_Item then Begin D:=Troops[Tx,Ty]-Round(A/2/T_Effects[Tiles[Tx,Ty]]); If D<1 then D:=0; A:=A-Round(Troops[Tx,Ty]/2*T_Effects[Tiles[Tx,Ty]]); If A<1 then A:=0; Troops[Tx,Ty]:=D End; Until (B=R_Item) or (A<1) or (Troops[Tx,Ty]<1); If Troops[Tx,Ty]=0 then Owner[Tx,Ty]:=0; If B=R_Item then Begin Troops[Fx,Fy]:=Troops[Fx,Fy]+A; A:=0 End; If A<>0 then Begin Troops[Tx,Ty]:=A; Owner[Tx,Ty]:=P End; End_Dialog(F_Box); Delete_Dialog(F_Box) End; Function SnowLost(Troops: Integer): Integer; Var B,H,L: Integer; Num: Str255; S_Box: Dialog_Ptr; S_Item,X_Item: Integer; SStr,TStr: Str255; T_Item,W: Integer; Begin L:=0; If Troops>Rand(20) then L:=1; If Troops>10 then L:=Round(Rand(10)/100*Troops); H:=6; W:=34; S_Box:=New_Dialog(4,X,Y,W,H); S_Item:=Add_DItem(S_Box,G_Text,None, 1,1,W-2,1, -2,Borders*4096|Text_C*256|128); T_Item:=Add_DItem(S_Box,G_Text,None, 1,2,W-2,1, -2,Borders*4096|Text_C*256|128); X_Item:=Add_DItem(S_Box,G_BoxText,Selectable|Default|Exit_Btn, W div 2-9,4,18,1, -2,Borders*4096|Text_C*256|128); Str(L,Num); SStr:=Concat(Num,' of your troops were lost'); Case Rand(4) of 0: TStr:='missing after a blizzard.'; 1: TStr:='in the snow.'; 2: TStr:='when they ran out of supplies.'; 3: TStr:='they mysteriously dissappeared.' End; Set_DText(S_Box,S_Item,SStr,System_Font,TE_Left); Set_DText(S_Box,T_Item,TStr,System_Font,TE_Left); Set_DText(S_Box,X_Item,'Shiver.',System_Font,TE_Center); Center_Dialog(S_Box); Show_Mouse; If L>0 then B:=Do_Dialog(S_Box,0); Hide_Mouse; End_Dialog(S_Box); Delete_Dialog(S_Box); SnowLost:=L End; Function SwampLost(Troops: Integer): Integer; Var B,H,L,W,X,Y: Integer; Num,SStr,TStr: Str255; S_Box: Dialog_Ptr; S_Item,T_Item,X_Item: Integer; Begin L:=0; If Troops>Rand(10) then L:=1; If Troops>10 then L:=Round(Rand(20)/100*Troops); H:=6; W:=30; S_Box:=New_Dialog(4,X,Y,W,H); S_Item:=Add_DItem(S_Box,G_Text,None, 1,1,W-2,1, -2,Borders*4096|Text_C*256|128); T_Item:=Add_DItem(S_Box,G_Text,None, 1,2,W-2,1, -2,Borders*4096|Text_C*256|128); X_Item:=Add_DItem(S_Box,G_BoxText,Selectable|Default|Exit_Btn, W div 2-9,4,18,1, -2,Borders*4096|Text_C*256|128); Str(L,Num); SStr:=Concat(Num,' of your troops were lost'); Case Rand(4) of 0: TStr:='in the quicksand.'; 1: TStr:='attacked by Swamp Trolls.'; 2: TStr:='to the Creaping Crud.'; 3: TStr:='they mysteriously dissappeared'; End; Set_D(Text(S_Box,S_Item,SStr,System_Font,TE_Left); Set_DText(S_Box,T_Item,TStr,System_Font,TE_Left); Set_DText(S_Box,X_Item,'Ahrg!!!',System_Font,TE_Center); Center_Dialog(S_Box); Show_Mouse; If L>0 then B:=Do_Dialog(S_Box,0); Hide_Mouse; Delete_Dialog(S_Box); SwampLost:=L End; Procedure Get_Troops; Var A,B,H,Lost,N_Item,W,X,Y: Integer; GT_Box: Dialog_Ptr; Num: Str255; Begin H:=3; W:=Fww div 8 - 2; X:=Fwx div 8 + 1; Y:=(Fwy+Fwh) div 8 - 3; GT_Box:=New_Dialog(5,X,Y,W,H); N_Item:=Add_DItem(GT_Box,G_FBoxText,Default|Editable,0,0,W,H, 3,Borders*4096|Text_C*256|128); Set_DEdit(GT_Box,N_Item,'How Many ? ___','999','',System_Font,TE_Center); Repeat Show_Mouse; B:=Do_Dialog(GT_Box,N_Item); Hide_Mouse; Get_DEdit(GT_Box,N_Item,Num); A:=Val(Num); Until A<=Troops[Fx,Fy]; End_Dialog(GT_Box); Delete_Dialog(GT_Box); Troops[Fx,Fy]:=Troops[Fx,Fy]-A; If (Tiles[Tx,Ty]=3) and Not Snow and Not Dry then Lost:=SwampLost(A) Else Lost:=0; If Snow Then Lost:=Lost+SnowLost(A-Lost); If (A>0) and (A=Lost) Then Begin A:=0; Next:=True End Else A:=A-Lost; If A>0 then If (Owner[Tx,Ty]=0) or (Owner[Tx,Ty]=P) Then Begin Owner[Tx,Ty]:=P; Troops[Tx,Ty]:=Troops[Tx,Ty]+A; If Troops[Fx,Fy]=0 then Owner[Fx,Fy]:=0; Next:=True End Else Begin Fight(A); Next:=True End End; Begin { Move_Troops } Fww:=144; Fwh:=104; Fwx:=320 div 4 - Fww div 2; Fwy:=200 div 2 - Fwh div 2; Tww:=Fww; Twh:=Fwh; Twx:=3 * 320 div 4 - Tww div 2; Twy:=Fwy; Hide_Mouse; { Store Screen } Copy_Rect(Screen,Storage,Fwx-8,Fwy-8,Fwx-8,Fwy-8,Fww+16,Fwh+16,3); Copy_Rect(Screen,Storage,Twx-8,Twy-8,Twx-8,Twy-8,Tww+16,Twh+16,3); Show_Mouse; B:=GetCoords; If B=G_Pass Then Next:=True; If (B>=0) Then { Not Skiping or Exiting } Begin ShowStats(0); Get_Troops; { Restore Screen } Hide_Mouse; Copy_Rect(Storage,Screen,Fwx-8,Fwy-8,Fwx-8,Fwy-8,Fww+16,Fwh+16,3); Copy_Rect(Storage,Screen,Twx-8,Twy-8,Twx-8,Twy-8,Tww+16,Twh+16,3); Copy_Rect(Map,Screen,Fx*Ts+Ox,Fy*Ts+Oy,FX*TS+Ox,FY*TS+Oy,TS,TS,3); Show_Pop(FX,FY); Show_Troops(FX,FY); Copy_Rect(Map,Screen,Tx*Ts+Ox,Ty*Ts+Oy,TX*TS+Ox,TY*TS+Oy,TS,TS,3); Show_Pop(TX,TY); Show_Troops(TX,TY); Show_Mouse End; Move_Troops:=B End; Procedure Economics(P: Integer); Var Castles,N,Tx,Ty,X,Y: Integer; Tax: Long_Integer; Procedure GetSquare(Var Tx,Ty: Integer; Castle: Boolean); Const H=19; W=312; X=5; Y=181; Var Dummy,Event,Key,Mox,Moy: Integer; Error: Boolean; Msg: Message_Buffer; Stn,Stt: Str255; Begin Hide_Mouse; Paint_Outline(True); Paint_Color(Borders); Paint_Style(1); Paint_Rect(X,Y,W,H); Paint_Color(Fill); Paint_Style(FillPat); Stn:=P_Name[P]; Stt:='To ?'; Repeat Error:=False; Paint_Rect(X+2,Y+2,W-4,H-4); Text_Color(P_Color[P]); Draw_String(X+8,Y+10,Stn); Text_Color(Text_C); Draw_String(X+12*8,Y+10,Stt); Show_Mouse; Event:=Get_Event(E_Button|E_Keyboard,1,1,1,0, False,0,0,0,0,False,0,0,0,0, Msg,Key,Dummy,Dummy,Mox,Moy,Dummy); Hide_Mouse; TX:=Trunc((Mox-Ox)/Ts); TY:=Trunc((Moy-Oy)/Ts); If (Tx<0) or (Tx>Mx) or (Ty<0) or (Ty>My) then Begin Error:=True; Stt:=' Too wet.'; Tx:=0; Ty:=0 End; If (Owner[Tx,Ty]<>P) and Not Error then Stt:=' You don''t own that area.'; If Castle and Not (Tiles[Tx,Ty] in [5..8]) then Begin Error:=True; Stt:=' Castles only.' End; Until (Owner[Tx,Ty]=P) and Not Error; Paint_Style(1); { Redraw Sea } Paint_Color(11); Paint_Rect(X,Y,W,H); Show_Mouse End; Function Find_Castle(Var Tx,Ty: Integer): Integer; Var C,X,Y: Integer; Begin C:=0; For X:=0 to Mx do For Y:=0 to My do If (Owner[X,Y]=P) and (Tiles[X,Y] in [5..8]) then Begin Tx:=X; Ty:=Y; C:=C+1 End; Find_Castle:=C End; Function Get_Number(Max: Long_Integer): Integer; Var B,N,X,Y,W,H: Integer; G_Box: Dialog_Ptr; G_Item: Integer; HStr,MStr,NStr: Str255; Begin H:=6; W:=26; G_Box:=New_Dialog(3,X,Y,W,H); G_Item:=Add_DItem(G_Box,G_FText,Editable, 1,1,W-2,1, -2,Borders*4096|Text_C*256|128); X_Item:=Add_DItem(G_Box,G_BoxText,Selectable|Default|Exit_Btn, W div 2-2,4,4,1, -2,Borders*4096|Text_C*256|128); Long_Str(Max,MStr); HStr:=Concat('How Many (Max=',MStr,') ? ___'); Set_DEdit(G_Box,G_Item,HStr,'999','',System_Font,TE_Center); Set_DText(G_Box,X_Item,'Done',Small_Font,TE_Center); Center_Dialog(G_Box); Repeat Obj_SetState(G_Box,X_Item,Normal,False); B:=Do_Dialog(G_Box,0); Get_DEdit(G_Box,G_Item,NStr); N:=Val(NStr) Until (N<=Max) and (N>=0); End_Dialog(G_Box); Delete_Dialog(G_Box); Get_Number:=N End; Procedure Build_Troops; Var B,Event,H,W,X,Y: Integer; CStr,Num: Str255; Msg: Message_Buffer; N: Long_Integer; Begin H:=17; W:=27; X:=20-W div 2; Y:=12-H div 2; Set_DText(T_Box,BTN_Item,P_Name[P],System_Font,TE_Center); Hide_Mouse; Copy_Rect(Screen,Storage,0,0,0,0,320,200,3); Show_Mouse; Show_mouse; Repeat If Tax<2000 then Begin Obj_SetState(T_Box,BTBB_Item,Shadowed|Disabled,False); Obj_SetState(T_Box,BTB_Item,Disabled,False); End Else Begin Obj_SetState(T_Box,BTBB_Item,Shadowed,False); Obj_SetState(T_Box,BTB_Item,Normal,False); End; If Gold[P]<2000 then Begin Obj_SetState(T_Box,BTCB_Item,Shadowed|Disabled,False); Obj_SetState(T_Box,BTC_Item,Disabled,False); Obj_SetState(T_Box,BTD_Item,Disabled,False); End Else Begin Obj_SetState(T_Box,BTCB_Item,Shadowed,False); Obj_SetState(T_Box,BTC_Item,Normal,False); Obj_SetState(T_Box,BTD_Item,Normal,False); End; Obj_SetState(T_Box,BTEB_Item,Shadowed,False); Obj_SetState(T_Box,BTX_Item,Shadowed,False); Long_Str(Tax,Num); CStr:=Concat('Taxes ',Num); Set_DText(T_Box,Ta_Item,CStr,System_Font,TE_Left); Long_Str(Gold[P],Num); CStr:=Concat('Treasury ',Num); Set_DText(T_Box,Tr_Item,CStr,System_Font,TE_Left); B:=Do_Dialog(T_Box,0); If B=BTBB_Item then Begin N:=Get_Number(Tax div 2000); Castles:=Find_Castle(Tx,Ty); Hide_mouse; Copy_Rect(Storage,Screen,(X-2)*8,(Y-1)*8,(X-2)*8,(Y-1)*8, (W+2)*8,(H+3)*8,3); Show_Mouse; If (Castles>1) and (N>0) then GetSquare(Tx,Ty,True); Troops[Tx,Ty]:=Troops[Tx,Ty]+Int(N); Tax:=Tax-2000*N; Hide_mouse; Copy_Rect(Map,Screen,Tx*TS+Ox,Ty*TS+Oy,TX*TS+Ox,TY*TS+Oy,TS,TS,3); Show_Pop(TX,TY); Show_Troops(TX,TY); Copy_Rect(Screen,Storage,Tx*TS+Ox,Ty*TS+Oy,TX*TS+Ox,TY*TS+Oy,TS,TS,3); Show_Mouse; End; If B=BTCB_Item then Begin N:=Get_Number(Gold[P] div 2000); Hide_mouse; Copy_Rect(Storage,Screen,(X-2)*8,(Y-1)*8,(X-2)*8,(Y-1)*8, (W+2)*8,(H+3)*8,3); Show_Mouse; If N>0 then GetSquare(Tx,Ty,False); Troops[Tx,Ty]:=Troops[Tx,Ty]+Int(N); Gold[P]:=Gold[P]-2000*N; Hide_mouse; Copy_Rect(Map,Screen,Tx*TS+Ox,Ty*TS+Oy,TX*TS+Ox,TY*TS+Oy,TS,TS,3); Show_Pop(TX,TY); Show_Troops(TX,TY); Copy_Rect(Screen,Storage,Tx*TS+Ox,Ty*TS+Oy,TX*TS+Ox,TY*TS+Oy,TS,TS,3); Show_Mouse End; If B=BTEB_Item then Begin Hide_mouse; Copy_Rect(Storage,Screen,(X-2)*8,(Y-1)*8,(X-2)*8,(Y-1)*8, (W+2)*8,(H+3)*8,3); Show_Mouse; Event:=Get_Event(E_Button|E_Keyboard,1,1,1,0, False,0,0,0,0,False,0,0,0,0, Msg,Dummy,Dummy,Dummy,Dummy,Dummy,Dummy); End Until B=BTX_Item; End_Dialog(T_Box); Hide_mouse; Copy_Rect(Storage,Screen,0,0,0,0,320,180,3) End; Begin { Economics } Tax:=0; Castles:=Find_Castle(Tx,Ty); If Castles>0 then Begin For X:=0 to Mx do For Y:=0 to My do If Owner[X,Y]=P then Tax:=Tax+1000*Pop[X,Y]; If Gold[P]+Tax>=2000 then Build_Troops; Gold[P]:=Gold[P]+Tax End; Next:=True; End; Function Count_Troops(P: Integer): Integer; Var N,X,Y: Integer; Begin N:=0; For X:=0 to Mx do For Y:=0 to My do If Owner[X,Y]=P then N:=N+Troops[X,Y]; Count_Troops:=N End; Procedure Move_Bandits; Var D,Dx,Dy,Fx,Fy,Loops: Integer; MPoints,MTroops,N: Integer; Passable: Boolean; Points: Array[0..Mx,0..My] of Integer; Sc,Tx,Ty,X,Y: Integer; Begin Dx:=0; Dy:=0; Fx:=0; Fy:=0; Loops:=0; { Get Point Value } For X:=0 to Mx do For Y:=0 to My do If Owner[X,Y]<>Pn+1 then Points[X,Y]:= Round(3*Pop[X,Y]-Troops[X,Y]*T_Effects[Tiles[X,Y]]) Else Points[X,Y]:=-Round(3* Troops[X,Y]*T_Effects[Tiles[X,Y]]); Repeat { Get From } MTroops:=0; For X:=0 to Mx do For Y:=0 to My do Begin If (Owner[X,Y]=PN+1) and (Troops[X,Y]>MTroops) then Begin MTroops:=Troops[X,Y]; Fx:=X; Fy:=Y End End; { Get To } MPoints:=0; For Y:=My downto 0 do For X:=Mx downto 0 do Begin If (Points[X,Y]>MPoints) then Begin MPoints:=Points[X,Y]; Dx:=X; Dy:=Y End End; Tx:=Fx; Ty:=Fy; If Fx>Dx then Tx:=Fx-1; If Fy>Dy then Ty:=Fy-1; If FxMx*My); If Passable then { Move Troops } Begin If Owner[Tx,Ty]=Pn+1 then Begin Troops[Fx,Fy]:=Troops[Fx,Fy]-N; If Tiles[Tx,Ty]=3 then N:=Round(0.8*N); { Swamp Hazards } Troops[Tx,Ty]:=Troops[Tx,Ty]+N; End Else begin Troops[Fx,Fy]:=Troops[Fx,Fy]-N; If Tiles[Tx,Ty]=3 then N:=Round(0.8*N); { Swamp Hazards } D:=Troops[Tx,Ty]-Round(N/2/T_Effects[Tiles[Tx,Ty]]); If D<1 then D:=0; N:=N-Round(Troops[Tx,Ty]/2*T_Effects[Tiles[Tx,Ty]]); If N<1 then N:=0; If D=0 then Begin If N<>0 then Owner[Tx,Ty]:=PN+1; { Victory! } Troops[Tx,Ty]:=N; End Else Begin Troops[Tx,Ty]:=D; { Retreat... } If D=0 then Owner[Tx,Ty]:=0; Troops[Fx,Fy]:=Troops[Fx,Fy]+N; End End; { Redraw Screen } Copy_Rect(Map,Screen,FX*Ts+Ox,FY*Ts+OY,FX*TS+Ox,FY*TS+Oy,TS,TS,3); Show_Pop(FX,FY); Show_Troops(FX,FY); Copy_Rect(Map,Screen,TX*Ts+Ox,TY*Ts+Oy,TX*TS+Ox,TY*TS+Oy,TS,TS,3); Show_Pop(TX,TY); Show_Troops(TX,TY) End End; Procedure Add_Bandits(P: Integer); Var X,Y: Integer; Begin For X:=0 to Mx do For Y:=0 to My do If Owner[X,Y]=P then Begin Troops[X,Y]:=Troops[X,Y]+Pop[X,Y] div 3+Rand(Pop[X,Y] mod 2+2); If Tiles[X,Y] in [4,10,11,12] then Troops[X,Y]:=0; Copy_Rect(Map,Screen,X*Ts+Ox,Y*Ts+Oy,X*TS+Ox,Y*TS+Oy,TS,TS,3); Show_Pop(X,Y); Show_Troops(X,Y) End End; Procedure Fate; Var N: Integer; Procedure Curse; Const Text_C=1; Var A_Item,B_Item,C_Item,D_Item,X_Item: Integer; Blood: HeadType; Box: Dialog_Ptr; H,I,P,X,Y,W: Integer; Begin Read_Color_Registers(Blood); For I:=0 to 15 do Blood[I+2]:=(Blood[I+2] & 3840); Fade_Color(Blood); For P:=1 to Pn do Gold[P]:=0; H:=9; W:=29; Box:=New_Dialog(6,X,Y,W,H); A_Item :=Add_DItem(Box,G_Text,None, 1,1,W-2,1, -2,Borders*4096|Text_C*256|128); B_Item :=Add_DItem(Box,G_Text,None, 1,2,W-2,1, -2,Borders*4096|Text_C*256|128); C_Item :=Add_DItem(Box,G_Text,None, 1,3,W-2,1, -2,Borders*4096|Text_C*256|128); D_Item :=Add_DItem(Box,G_Text,None, 1,4,W-2,1, -2,Borders*4096|Text_C*256|128); X_Item :=Add_DItem(Box,G_BoxText,Selectable|Exit_Btn|Default, W div 2-9,H-2,18,1, -3,Borders*4096|Text_C*256|128); Set_DText(Box,A_Item,'Fizzbin the Wizard casts',System_Font,TE_Left); Set_DText(Box,B_Item,'a curse on the Princes:',System_Font,TE_Left); Set_DText(Box,C_Item,'All of their gold turns to',System_Font,TE_Left); Set_DText(Box,D_Item,'Blood.',System_Font,TE_Left); Set_DText(Box,X_Item,' Blub Blub Blub ',System_Font,TE_Center); Center_Dialog(Box); Copy_Rect(Screen,Storage,0,0,0,0,320,200,3); Show_Mouse; B:=Do_Dialog(Box,0); Hide_mouse; End_Dialog(Box); Delete_Dialog(Box); Copy_Rect(Storage,Screen,0,0,0,0,320,200,3); Fade_Color(TerrainColors) End; Procedure Plauge; Const Text=1; Var A_Item,B_Item: Integer; C,H,I,X,Y,W,X_Item: Integer; Box: Dialog_Ptr; Darkness: HeadType; Begin Read_Color_Registers(Darkness); For I:=0 to 15 do Begin C:=(Darkness[I+2] & 3840) div 256; Darkness[I+2]:=C*256+C*16+C End; Fade_Color(Darkness); H:=7; W:=29; Box:=New_Dialog(6,X,Y,W,H); A_Item :=Add_DItem(Box,G_Text,None, 1,1,W-2,1, -2,Borders*4096|Text*256|128); B_Item :=Add_DItem(Box,G_Text,None, 1,2,W-2,1, -2,Borders*4096|Text*256|128); X_Item :=Add_DItem(Box,G_BoxText,Selectable|Exit_Btn|Default, W div 2-5,H-2,10,1, -3,Borders*4096|Text*256|128); Set_DText(Box,A_Item,'Plague strikes throughout',System_Font,TE_Left); Set_DText(Box,B_Item,'the Land.',System_Font,TE_Left); Set_DText(Box,X_Item,' Groan... ',System_Font,TE_Center); Center_Dialog(Box); Copy_Rect(Screen,Storage,0,0,0,0,320,200,3); Show_Mouse; B:=Do_Dialog(Box,0); End_Dialog(Box); Delete_Dialog(Box); Hide_mouse; Copy_Rect(Storage,Screen,0,0,0,0,320,200,3); For X:=0 to Mx do For Y:=0 to My do Begin Pop[X,Y]:=Pop[X,Y] div 2; Troops[X,Y]:=Trunc(Troops[X,Y]*0.5); If Troops[X,Y]=0 then Owner[X,Y]:=0 End; Survey; Draw_Terrain; Copy_Rect(Screen,Map,0,0,0,0,320,200,3); { Store Map Picture } For Y:=0 to My do For X:=0 to Mx do Show_Pop(X,Y); For Y:=0 to My do For X:=0 to Mx do Show_Troops(X,Y); Fade_Color(TerrainColors) End; Procedure Census; Var A_Item,B_Item: Integer; Box: Dialog_Ptr; C,H,I: Integer; X,Y,W,X_Item: Integer; Begin H:=7; W:=32; Box:=New_Dialog(6,X,Y,W,H); A_Item :=Add_DItem(Box,G_Text,None, 1,1,W-2,1, -2,Borders*4096|Text_C*256|128); B_Item :=Add_DItem(Box,G_Text,None, 1,2,W-2,1, -2,Borders*4096|Text_C*256|128); X_Item :=Add_DItem(Box,G_BoxText,Selectable|Exit_Btn|Default, W div 2-5,H-2,10,1, -3,Borders*4096|Text_C*256|128); Set_DText(Box,A_Item,'Latest census shows population',System_Font,TE_Left); Set_DText(Box,B_Item,'increases throughout the land.',System_Font,TE_Left); Set_DText(Box,X_Item,' Hurrah! ',System_Font,TE_Center); Center_Dialog(Box); Copy_Rect(Screen,Storage,0,0,0,0,320,200,3); Show_Mouse; B:=Do_Dialog(Box,0); End_Dialog(Box); Delete_Dialog(Box); Hide_mouse; Copy_Rect(Storage,Screen,0,0,0,0,320,200,3); For X:=0 to Mx do For Y:=0 to My do Case Tiles[X,Y] of { Clear } 0: Pop[X,Y]:=Pop[X,Y]+Rand(2); { Villages & Castles } 2,5,6,7,8: Pop[X,Y]:=Pop[X,Y]+Rand(2)+Rand(2); End; Survey; Draw_Terrain; Copy_Rect(Screen,Map,0,0,0,0,320,200,3); { Store Map Picture } For Y:=0 to My do For X:=0 to Mx do Show_Pop(X,Y); For Y:=0 to My do For X:=0 to Mx do Show_Troops(X,Y); End; Procedure Wet_Winter; Const C=125; Var A_Item,B_Item,X_Item: Integer; Box: Dialog_Ptr; H: Integer; W,X,Y: Integer; Xc,Yc: Integer; Begin H:=7; W:=32; Wet:=True; For Xc:=0 to Mx do For Yc:=0 to My do If Tiles[Xc,Yc]=3 then Begin Tiles [Xc,Yc]:=11; Troops[Xc,Yc]:=0; { Drown troops in swamp } Owner [Xc,Yc]:=0; Copy_Rect(Terrain,Screen,250,10,Xc*TS+Ox,Yc*TS+Oy,TS,TS,3); Set_Color(6,125*0,125*0,125*7); End; Box:=New_Dialog(6,X,Y,W,H); A_Item :=Add_DItem(Box,G_Text,None, 1,1,W-2,1, -2,Borders*4096|Text_C*256|128); B_Item :=Add_DItem(Box,G_Text,None, 1,2,W-2,1, -2,Borders*4096|Text_C*256|128); X_Item :=Add_DItem(Box,G_BoxText,Selectable|Exit_Btn|Default, W div 2-8,H-2,16,1, -3,Borders*4096|Text_C*256|128); Set_DText(Box,A_Item,'Heavy rains flood low lying',System_Font,TE_Left); Set_DText(Box,B_Item,' areas.',System_Font,TE_Left); Set_DText(Box,X_Item,' Drip, Drip... ',System_Font,TE_Center); Center_Dialog(Box); Copy_Rect(Screen,Storage,0,0,0,0,320,200,3); Show_Mouse; B:=Do_Dialog(Box,0); End_Dialog(Box); Delete_Dialog(Box); Hide_mouse; Copy_Rect(Storage,Screen,0,0,0,0,320,200,3); End; Procedure Dry_Winter; Const C=125; Var A_Item,B_Item,X_Item: Integer; Box: Dialog_Ptr; H,W,X,Y: Integer; Xc,Yc: Integer;  Begin H:=7; W:=32; Dry:=True; Set_Color( 8,C*4,C*4,C*1); Set_Color(14,C*5,C*3,C*0); For Xc:=0 to Mx do For Yc:=0 to My do If Tiles[Xc,Yc]=4 then Tiles [Xc,Yc]:=13; Box:=New_Dialog(6,X,Y,W,H); A_Item :=Add_DItem(Box,G_Text,None, 1,1,W-2,1, -2,Borders*4096|Text_C*256|128); B_Item :=Add_DItem(Box,G_Text,None, 1,2,W-2,1, -2,Borders*4096|Text_C*256|128); X_Item :=Add_DItem(Box,G_BoxText,Selectable|Exit_Btn|Default, W div 2-5,H-2,10,1, -3,Borders*4096|Text_C*256|128); Set_DText(Box,A_Item,'The Kingdom struck by',System_Font,TE_Left); Set_DText(Box,B_Item,'a terrible drought.',System_Font,TE_Left); Set_DText(Box,X_Item,' Water... ',System_Font,TE_Center); Center_Dialog(Box); Copy_Rect(Screen,Storage,0,0,0,0,320,200,3); Show_Mouse; B:=Do_Dialog(Box,0); End_Dialog(Box); Delete_Dialog(Box); Hide_mouse; Copy_Rect(Storage,Screen,0,0,0,0,320,200,3) End; Procedure Late_Snow; Const C=125; Var A_Item,B_Item,X_Item: Integer; Box: Dialog_Ptr; H,W,X,Y: Integer; Begin H:=7; W:=32; Snow:=True; Set_Color( 3,C*7,C*7,C*7); Set_Color( 4,C*7,C*7,C*7); Set_Color( 6,C*7,C*7,C*7); Set_Color( 8,C*7,C*7,C*7); Set_Color( 9,C*7,C*7,C*7); Set_Color(13,C*7,C*7,C*7); Set_Color(14,C*7,C*7,C*7); Box:=New_Dialog(6,X,Y,W,H); A_Item :=Add_DItem(Box,G_Text,None, 1,1,W-2,1, -2,Borders*4096|Text_C*256|128); B_Item :=Add_DItem(Box,G_Text,None, 1,2,W-2,1, -2,Borders*4096|Text_C*256|128); X_Item :=Add_DItem(Box,G_BoxText,Selectable|Exit_Btn|Default, W div 2-5,H-2,10,1, -3,Borders*4096|Text_C*256|128); Set_DText(Box,A_Item,'A late snow fall catches the',System_Font,TE_Left); Set_DText(Box,B_Item,'troops in the field.',System_Font,TE_Left); Set_DText(Box,X_Item,' Br! ',System_Font,TE_Center); Center_Dialog(Box); Copy_Rect(Screen,Storage,0,0,0,0,320,200,3); Show_Mouse; B:=Do_Dialog(Box,0); End_Dialog(Box); Delete_Dialog(Box); Hide_mouse; Copy_Rect(Storage,Screen,0,0,0,0,320,200,3) End; Function TotalPop: Integer; Var T,X,Y: Integer; Begin T:=0; For X:=0 to Mx do For Y:=0 to My do T:=T+Pop[X,Y]; TotalPop:=T End; Function Greatest_Army: Integer; Var B,X,Y: Integer; Begin B:=0; For X:=0 to Mx do For Y:=0 to My do If Troops[X,Y]>B then B:=Troops[X,Y]; Greatest_Army:=B End; Begin { Fate } N:=Rand(6); If TotalPop<20 then N:=N+1; If Greatest_Army>100 then N:=N-1; Case N of -1,0: Plauge; 1: Curse; 2: Dry_Winter; 3: Wet_Winter; 4: Late_Snow; 5,6: Census End End; Function Winner: Boolean; Const Text=4; Borders=15; Var A_Item,B_Item,C_Item,X_Item: Integer; Active,B,H,P,W,X,Y: Integer; Box: Dialog_Ptr; TStr: Str255; Begin Active:=0; Winner:=True; For P:=1 to Pn+1 do If Count_Troops(P)>0 then Active:=Active+1; Copy_Rect(Screen,Storage,0,0,0,0,320,200,3); If Active=1 then Begin H:=11; W:=28; Box:=New_Dialog(4,X,Y,W,H); A_Item :=Add_DItem(Box,G_Text,None, 1,2,W-2,1,-2,Borders*4096|Text_C*256|128); B_Item :=Add_DItem(Box,G_Text,None, 1,4,W-2,1,-2,Borders*4096|Text_C*256|128); C_Item :=Add_DItem(Box,G_Text,None, 1,6,W-2,1,-2,Borders*4096|Text_C*256|128); X_Item :=Add_DItem(Box,G_BoxText,Selectable|Exit_Btn|Default, W div 2-11,H-2,22,1,-3,Borders*4096|Text_C*256|128); Set_DText(Box,A_Item,'The war is over!',System_Font,TE_Center); For P:=1 to Pn+1 do If Count_Troops(P)>0 then If P>Pn then TStr:='Crobvar of the Bandits' else TStr:=P_Name[P]; Set_DText(Box,B_Item,TStr,System_Font,TE_Center); Set_DText(Box,C_Item,'is crowned the new King!',System_Font,TE_Center); Set_DText(Box,X_Item,' Long Live the King! ',System_Font,TE_Center); Center_Dialog(Box); Show_Mouse; B:=Do_Dialog(Box,0); Hide_mouse; Copy_Rect(Storage,Screen,0,0,0,0,320,200,3); Show_Mouse; End_Dialog(Box); Delete_Dialog(Box); End else Winner:=False; End; Begin { Play_Game } Repeat Repeat Repeat If (Count_Troops(Order[P])>0) and (Order[P]<=Pn) then B:=Move_Troops(Order[P]) Else Next:=True; If Order[P]>Pn then Move_Bandits; If Winner then B:=G_Exit; If Next then Begin P:=P+1; Next:=False End Until (P>Pn+1) or (B=G_Exit); If B<>G_Exit then { End of Month Processing } Begin If (Wet=True) and (Rand(2)=0) then Begin Wet:=False; Fade_Color(TerrainColors); For X:=0 to Mx do For Y:=0 to My do If Tiles[X,Y]=11 then Begin Tiles[X,Y]:=3; Sx:=Rand(18); Sy:=Rand(18); Copy_Rect(Terrain,Screen, 167+Sx,4+Sy,X*TS+Ox,Y*TS+Oy,TS,TS,3); End; End; If (Dry=True) and (Rand(2)=0) then Begin Dry:=False; Fade_Color(TerrainColors); For X:=0 to Mx do For Y:=0 to My do If Tiles[X,Y]=13 then Begin Tiles[X,Y]:=4; Troops[X,Y]:=0; Copy_Rect(Terrain,Screen,250,10,X*TS+Ox,Y*TS+Oy,TS,TS,3) End End; If (Month>0) and Snow then { Spring arrives } Begin Snow:=False; Fade_Color(TerrainColors); For X:=0 to Mx do For Y:=0 to My do If Tiles[X,Y]=4 then Begin Troops[X,Y]:=0; Copy_Rect(Terrain,Screen,250,10,X*TS+Ox,Y*TS+Oy,TS,TS,3) End End; Month:=Month+1; ROrder; P:=1 End; Until (Month>Campaigns) or (B=G_Exit); Hide_Mouse; Paint_Color(11); { Sea Blue } Paint_Style(1); Paint_Rect(5,181,312,19); Show_Mouse; If B<>G_Exit then { End of Year } Begin Repeat If (Count_Troops(Order[P])>0) and (Order[P]<=Pn) Then Economics(Order[P]) Else Next:=True; If Order[P]>Pn then Add_Bandits(Order[P]); If Next then Begin P:=P+1; Next:=False End Until (P>Pn+1); If Rand(5)=0 then Fate; Year:=Year+1; If Snow then Month:=-Rand(2) else Month:=1; Campaigns:=Rand(3)+Rand(3)+2; ROrder; P:=1 End Until (B=G_Exit) End; Procedure About_Dialog; Var A_Box: Dialog_Ptr; B,B_Item,C_Item,D_Item,H,V_Item,Ok_Item,W_Item,W,X,Y: Integer; Begin H:=13; W:=30; A_Box:=New_Dialog(7,X,Y,W,H); C_Item :=Add_DItem(A_Box,G_Text,None, 1,1,W-2,1, 0,Borders*4096|Text_C*256); B_Item :=Add_DItem(A_Box,G_Text,None, 1,3,W-2,1, 0,Borders*4096|Text_C*256); V_Item :=Add_DItem(A_Box,G_Text,None, 1,5,W-2,1, 0,Borders*4096|Text_C*256); D_Item :=Add_DItem(A_Box,G_Text,None, 1,7,W-2,1, 0,Borders*4096|Text_C*256); W_Item :=Add_DItem(A_Box,G_Text,None, 1,8,W-2,1, 0,Borders*4096|Text_C*256); Ok_Item:=Add_DItem(A_Box,G_BoxText,Selectable|Default|Exit_Btn, W div 2-2,H-2,4,1, -2,Borders*4096|Text_C*256); Center_Dialog(A_Box); Set_DText(A_Box,C_Item,'Battle for the Throne',System_Font,TE_Center); Set_DText(A_Box,B_Item,'By Terry Pack',System_Font,TE_Center); Set_DText(A_Box,V_Item,'Version 1.11',System_Font,TE_Center); Set_DText(A_Box,D_Item,'(C) 1987',System_Font,TE_Center); Set_DText(A_Box,W_Item,'Written in Personal Pascal',System_Font,TE_Center); Set_DText(A_Box,Ok_Item,'OK',System_Font,TE_Center); B:=Do_Dialog(A_Box,0); Delete_Dialog(A_Box); Hide_Mouse; Copy_Rect(TitlePage,Screen,0,11,0,11,320,188,3); Menu_Normal(Menu,3); Draw_Menu(Menu); Show_Mouse End; Procedure Show_Scores; Var B,H: Integer; Box: Dialog_Ptr; GStr,TStr,PStr: Str255; Na_Item,Go_Item,Tr_Item: Array[1..MaxPlayers] of Integer; Ok_Item,P,T,Ti_Item,W,X,Y: Integer; Begin H:=4*(Pn+1)+1; W:=20; Box:=New_Dialog(4*(Pn+1)+1,X,Y,W,H); Ti_Item :=Add_DItem(Box,G_BoxText,None, 1,1,W-2,1, -2,Borders*4096|Text_C*256); For P:=1 to PN do Begin Na_Item[P]:=Add_DItem(Box,G_Text,None,  1,4*P-1,W-2,1,0,Borders*4096|Text_C*256); Go_Item[P]:=Add_DItem(Box,G_Text,None, 1,4*P+0,W-2,1,0,Borders*4096|Text_C*256); Tr_Item[P]:=Add_DItem(Box,G_Text,None, 1,4*P+1,W-2,1,0,Text_C*256) End; Ok_Item:=Add_DItem(Box,G_BoxText,Selectable|Default|Exit_Btn, W div 2-2,H-2,4,1, -2,Borders*4096|Text_C*256); Center_Dialog(Box); Set_DText(Box,Ti_Item,' Scores ',System_Font,TE_Center); Set_DText(Box,Ok_Item,' OK ',System_Font,TE_Center); For P:=1 to PN do Begin Long_Str(Gold[P],GStr); T:=0; For X:=0 to Mx do For Y:=0 to My do If Owner[X,Y]=P then T:=T+Troops[X,Y]; Str(T,TStr); GStr:=Concat('Treasury : ',GStr); TStr:=Concat('Troops : ',TStr); Set_DText(Box,Na_Item[P],P_Name[P],System_Font,TE_Center); Set_DText(Box,Go_Item[P],GStr,System_Font,TE_Left); Set_DText(Box,Tr_Item[P],TStr,System_Font,TE_Left) End; B:=Do_Dialog(Box,0); Delete_Dialog(Box); Hide_Mouse; Copy_Rect(TitlePage,Screen,0,11,0,11,320,188,3); Show_Mouse; Menu_Normal(Menu,P_Title) End; Procedure Background; Const N=12; W=31; Var Box: Dialog_Ptr; H,I: Integer; Item: Array[1..N] of Integer; X_Item: Integer; Begin H:=N+4; Box:=New_Dialog(N+2,0,0,W,H); For I:=1 to N do Item[I]:=Add_DItem(Box,G_Text,None,1,I,W-2,1, 0,Borders*4096|Text_C*256); X_Item:=Add_DItem(Box,G_BoxText,Selectable|Exit_Btn,W div 2-11,H-2,22,1, -2,Borders*4096|Text_C*256); Set_DText(Box,Item[1],' In the Kingdom of Thrania',System_Font,TE_Left); Set_DText(Box,Item[2],'the crown has never passed',System_Font,TE_Left); Set_DText(Box,Item[3],'down peacefully from one',System_Font,TE_Left); Set_DText(Box,Item[4],'generation to the next.',System_Font,TE_Left); Set_DText(Box,Item[5],' As the news passes from',System_Font,TE_Left); Set_DText(Box,Item[6],'village to village, the sons',System_Font,TE_Left); Set_DText(Box,Item[7],'of old King Tharn gather',System_Font,TE_Left); Set_DText(Box,Item[8],'their troops and prepare for',System_Font,TE_Left); Set_DText(Box,Item[9],'battle. Even Crobvar, the',System_Font,TE_Left); Set_DText(Box,Item[10],'bastard, assembles his motley',System_Font,TE_Left); Set_DText(Box,Item[11],'force of bandits at his',System_Font,TE_Left); Set_DText(Box,Item[12],'forest hideout.',System_Font,TE_Left); Set_DText(Box,X_Item,'The battle begins...',System_Font,TE_Center); Center_Dialog(Box); B:=Do_Dialog(Box,0); Delete_Dialog(Box); Hide_Mouse; Copy_Rect(TitlePage,Screen,0,11,0,11,320,188,3); Show_Mouse; Menu_Normal(Menu,I_Title) End; Procedure Instructions; Const N=13; W=34; Var P1,P2,P3: Dialog_Ptr; H,I: Integer; It: Array[1..3,1..N] of Integer; Page: Integer; X_Item1,N_Item1,P_Item1: Integer; X_Item2,N_Item2,P_Item2: Integer; X_Item3,N_Item3,P_Item3: Integer; Begin H:=N+4; P1:=New_Dialog(N+4,0,0,W,H); For I:=1 to N do It[1,I]:=Add_DItem(P1,G_Text,None,1,I,W-2,1,0,Borders*4096|Text_C*256); P_Item1:=Add_DItem(P1,G_BoxText,Selectable|Exit_Btn, W div 4-2,H-2,6,1, -2,Borders*4096|Text_C*256); N_Item1:=Add_DItem(P1,G_BoxText,Selectable|Exit_Btn,2*W div 4-2,H-2,6,1, -2,Borders*4096|Text_C*256); X_Item1:=Add_DItem(P1,G_BoxText,Selectable|Exit_Btn,3*W div 4-2,H-2,6,1, -2,Borders*4096|Text_C*256); Set_DText(P1,It[1, 1],' The object of the game is to',System_Font,TE_Left); Set_DText(P1,It[1, 2],'eliminate the other Players''',System_Font,TE_Left); Set_DText(P1,It[1, 3],'troops by defeating them in',System_Font,TE_Left); Set_DText(P1,It[1, 4],'battle.',System_Font,TE_Left); Set_DText(P1,It[1, 5],' The number on the top of each',System_Font,TE_Left); Set_DText(P1,It[1, 6],'space is the number of troops',System_Font,TE_Left); Set_DText(P1,It[1, 7],'in that space. To move your',System_Font,TE_Left); Set_DText(P1,It[1, 8],'troop use the mouse to click',System_Font,TE_Left); Set_DText(P1,It[1, 9],'once on the square where you',System_Font,TE_Left); Set_DText(P1,It[1,10],'have troops and then on the one',System_Font,TE_Left); Set_DText(P1,It[1,11],'where you want to go. You',System_Font,TE_Left); Set_DText(P1,It[1,12],'will then get a dialog box',System_Font,TE_Left); Set_DText(P1,It[1,13], u 'asking how many you want to move.',System_Font,TE_Left); Set_DText(P1,P_Item1,'Prev',System_Font,TE_Center); Set_DText(P1,N_Item1,'Next',System_Font,TE_Center); Set_DText(P1,X_Item1,'Exit',System_Font,TE_Center); P2:=New_Dialog(N+4,0,0,W,H); For I:=1 to N do It[2,I]:=Add_DItem(P2,G_Text,None,1,I,W-2,1,0,Borders*4096|Text_C*256); P_Item2:=Add_DItem(P2,G_BoxText,Selectable|Exit_Btn,W div 4-2,H-2,6,1, -2,Borders*4096|Text_C*256); N_Item2:=Add_DItem(P2,G_BoxText,Selectable|Exit_Btn,2*W div 4-2,H-2,6,1, -2,Borders*4096|Text_C*256); X_Item2:=Add_DItem(P2,G_BoxText,Selectable|Exit_Btn,3*W div 4-2,H-2,6,1, -2,Borders*4096|Text_C*256); Set_DText(P2,It[2,1],' In battle the defender''s',System_Font,TE_Left); Set_DText(P2,It[2,2],'terrain improves the defense.',System_Font,TE_Left); Set_DText(P2,It[2,3],'Castles have the best defense',System_Font,TE_Left); Set_DText(P2,It[2,4],'and clear terrain the worst. Be',System_Font,TE_Left); Set_DText(P2,It[2,5],'careful when moving into',System_Font,TE_Left); Set_DText(P2,It[2,6],'swamps, they are full of',System_Font,TE_Left); Set_DText(P2,It[2,7],'quicksand as well as nastier',System_Font,TE_Left); Set_DText(P2,It[2, 8],'things.',System_Font,TE_Left); Set_DText(P2,It[2, 9],'',System_Font,TE_Left); Set_DText(P2,It[2,10],' There are 2-6 movement turns',System_Font,TE_Left); Set_DText(P2,It[2,11],'each year and then taxes are',System_Font,TE_Left); Set_DText(P2,It[2,12],'collected.',System_Font,TE_Left); Set_DText(P2,It[2,13],'',System_Font,TE_Left); Set_DText(P2,P_Item2,'Prev',System_Font,TE_Center); Set_DText(P2,N_Item2,'Next',System_Font,TE_Center); Set_DText(P2,X_Item2,'Exit',System_Font,TE_Center); P3:=New_Dialog(N+4,0,0,W,H); For I:=1 to N do It[3,I]:=Add_DItem(P3,G_Text,None,1,I,W-2,1,0,Borders*4096|Text_C*256); P_Item3:=Add_DItem(P3,G_BoxText,Selectable|Exit_Btn,W div 4-2,H-2,6,1, -2,Borders*4096|Text_C*256); N_Item3:=Add_DItem(P3,G_BoxText,Selectable|Exit_Btn,2*W div 4-2,H-2,6,1, -2,Borders*4096|Text_C*256); X_Item3:=Add_DItem(P3,G_BoxText,Selectable|Exit_Btn,3*W div 4-2,H-2,6,1, -2,Borders*4096|Text_C*256); Set_DText(P3,It[3, 1],' Each year you are able to',System_Font,TE_Left); Set_DText(P3,It[3, 2],'collect taxes based on your',System_Font,TE_Left); Set_DText(P3,It[3, 3],'population (the lower number',System_Font,TE_Left); Set_DText(P3,It[3, 4],'on each space on the map).',System_Font,TE_Left); Set_DText(P3,It[3, 5],' You get 1000 Gold pieces for',System_Font,TE_Left); Set_DText(P3,It[3, 6],'each unit of population. Troops',System_Font,TE_Left); Set_DText(P3,It[3, 7],'cost 2000 each to build. Money',System_Font,TE_Left); Set_DText(P3,It[3,8],'stored in your treasury from the',System_Font,TE_Left); Set_DText(P3,It[3, 9],'previous year can be used to',System_Font,TE_Left); Set_DText(P3,It[3,10],'raise troops anywhere in your',System_Font,TE_Left); Set_DText(P3,It[3,11],'territory. Taxes collected this',System_Font,TE_Left); Set_DText(P3,It[3,12],'year can only be used to build',System_Font,TE_Left); Set_DText(P3,It[3,13],'troops in castles.',System_Font,TE_Left); Set_DText(P3,P_Item3,'Prev',System_Font,TE_Center); Set_DText(P3,N_Item3,'Next',System_Font,TE_Center); Set_DText(P3,X_Item3,'Exit',System_Font,TE_Center); Center_Dialog(P1); Center_Dialog(P2); Center_Dialog(P3); Obj_SetState(P1,P_Item1,Disabled,False); Obj_SetState(P3,N_Item3,Disabled,False); Page:=1; Repeat Case Page of 1: B:=Do_Dialog(P1,0); 2: B:=Do_Dialog(P2,0); 3: B:=Do_Dialog(P3,0); Else: B:=X_Item1; End; If B=N_Item1 then Page:=Page+1; If B=P_Item1 then Page:=Page-1; Obj_SetState(P1,N_Item1,Normal,False); Obj_SetState(P2,P_Item2,Normal,False); Obj_SetState(P2,N_Item2,Normal,False); Obj_SetState(P3,P_Item2,Normal,False); Until B=X_Item1; Delete_Dialog(P1); Delete_Dialog(P2); Delete_Dialog(P3); Hide_Mouse; Copy_Rect(TitlePage,Screen,0,11,0,11,320,188,3); Show_Mouse; Menu_Normal(Menu,I_Title) End; Procedure Credits; Const N=10; W=30; Var Box: Dialog_Ptr; H,I: Integer; Item: Array[1..N] of Integer; X_Item: Integer; Begin H:=N+4; Box:=New_Dialog(N+2,0,0,W,H); For I:=1 to N do Item[I]:=Add_DItem(Box,G_Text,None,1,I,W-2,1, 0,Borders*40h96|Text_C*256); X_Item:=Add_DItem(Box,G_BoxText,Selectable|Exit_Btn,W div 2-8,H-2,16,1, -2,Borders*4096|Text_C*256); Set_DText(Box,Item[ 1],'The Playtesters:',System_Font,TE_Center); Set_DText(Box,Item[ 2],' ',System_Font,TE_Center); Set_DText(Box,Item[ 3],'Dan ''Spaniel'' Sprigg',System_Font,TE_Center); Set_DText(Box,Item[ 4],'Mark Kelley',System_Font,TE_Center); Set_DText(Box,Item[ 5],'Neil Luna',System_Font,TE_Center); Set_DText(Box,Item[ 6],'Michael ''Fletch'' Fletcher',System_Font,TE_Center); Set_DText(Box,Item[ 7],'Brad ''Elric'' Falk',System_Font,TE_Center); Set_DText(Box,Item[ 8],'Bryce Zimpfer',System_Font,TE_Center); Set_DText(Box,Item[ 9],'Jimmy Lee',System_Font,TE_Center); Set_DText(Box,Item[10],'Sam Aten',System_Font,TE_Center); Set_DText(Box,X_Item,' Good Work Guys ',System_Font,TE_Center); Center_Dialog(Box); B:=Do_Dialog(Box,0); Delete_Dialog(Box); Hide_Mouse; Copy_Rect(TitlePage,Screen,0,11,0,11,320,188,3); Show_Mouse; Menu_Normal(Menu,I_Title) End; Procedure Save_Game; Var D,Player,S,W,Weather,X,Y: Integer; Default,Name_G: Path_Name; F: File of Text; Begin Text_Color(1); Text_Height(6); Draw_String(116,20,' Save Game '); Default:=Concat(Chr(65+Current_Disk),':\*.SAV'); If Get_In_File(Default,Name_G) Then Begin Set_Mouse(M_Bee); Hide_Mouse; Copy_Rect(TitlePage,Screen,0,11,0,11,320,188,3); Show_Mouse; Rewrite(F,Name_G); Writeln(F,Campaigns); Writeln(F,P); Writeln(F,Month); Writeln(F,Year); Writeln(F,Pn); If Dry then D:=1 else D:=0; If Snow then S:=1 else S:=0; If Wet then W:=1 else W:=0; Weather:=4*D+2*S+W; Writeln(F,Weather); For Player:=0 to Pn+1 do Begin Writeln(F,Gold[Player]); Writeln(F,Order[Player]); Writeln(F,P_Name[Player]) End; For X:=0 to Mx do For Y:=0 to My do Begin Writeln(F,Owner[X,Y]); Writeln(F,Pop[X,Y]); Writeln(F,Tiles[X,Y]); Writeln(F,Troops[X,Y]) End; Close(F); End Else Begin Hide_Mouse; Copy_Rect(TitlePage,Screen,0,11,0,11,320,188,3); Show_Mouse End; Menu_Normal(Menu,P_Title); Menu_Enable(Menu,C_Item); Menu_Enable(Menu,S_Item); Menu_Enable(Menu,Sa_Item); Draw_Menu(Menu); Set_Mouse(M_Arrow) End; Procedure Load_Game; Var D: Integer; Default,Name_G: Path_Name; F: File of Text; Player,S,W,Weather,X,Y: Integer; Begin Text_Color(1); Text_Height(6); Draw_String(116,20,' Load Game '); Default:=Concat(Chr(65+Current_Disk),':\*.SAV'); If Get_In_File(Default,Name_G) Then Begin Hide_Mouse; Copy_Rect(TitlePage,Screen,0,11,0,11,320,188,3); Show_Mouse; Set_Mouse(M_Bee); Reset(F,Name_G); Readln(F,Campaigns); Readln(F,P); Readln(F,Month); Readln(F,Year); Readln(F,Pn); Readln(F,Weather); D:= Weather div 4; S:= (Weather - 4 * D) div 2; W:= Weather - 4 * D - 2 * S; If D=1 then Dry :=True else Dry :=False; If S=1 then Snow:=True else Snow:=False; If W=1 then Wet :=True else Wet :=False; For Player:=0 to Pn+1 do Begin Readln(F,Gold [Player]); Readln(F,Order [Player]); Readln(F,P_Name[Player]); End; For X:=0 to Mx do For Y:=0 to My do Begin Readln(F,Owner[X,Y]); Readln(F,Pop[X,Y]); Readln(F,Tiles[X,Y]); Readln(F,Troops[X,Y]) End; Close(F) End Else Begin Hide_Mouse; Copy_Rect(TitlePage,Screen,0,11,0,11,320,188,3); Show_Mouse End; Menu_Normal(Menu,P_Title); Menu_Enable(Menu,C_Item); Menu_Enable(Menu,S_Item); Menu_Enable(Menu,Sa_Item); Draw_Menu(Menu); Set_Mouse(M_Arrow) End; Begin { Outside } Draw_Menu(Menu); Repeat Event:=Get_Event(E_Message,0,0,0,0, False,0,0,0,0,False,0,0,0,0, Msg,Dummy,Dummy,Dummy,Dummy,Dummy,Dummy); If Msg[3]=3 then About_Dialog; If Msg[4]=B_Item Then Background; If Msg[4]=C_Item Then Begin Erase_Menu(Menu); Draw_Map; Play_Game; Hide_Mouse; Copy_Rect(TitlePage,Screen,0,0,0,0,320,2 h00,3); Set_Color_Registers(TitleColors); Menu_Normal(Menu,P_Title); Draw_Menu(Menu); Show_Mouse End; If Msg[4]=Cr_Item Then Credits; If Msg[4]=In_Item Then Instructions; If Msg[4]=Lo_Item Then Load_Game; If Msg[4]=P_Item Then Begin Erase_Menu(Menu); Get_Players; Setup; Do_Colors; Draw_Map; Play_Game; Hide_Mouse; Copy_Rect(TitlePage,Screen,0,0,0,0,320,200,3); Set_Color_Registers(TitleColors); Menu_Enable(Menu,C_Item); Menu_Enable(Menu,S_Item); Menu_Enable(Menu,Sa_Item); Menu_Normal(Menu,P_Title); Draw_Menu(Menu); Show_Mouse End; If Msg[4]=S_Item Then Show_Scores; If Msg[4]=Sa_Item Then Save_Game Until Msg[4]=Q_Item; Delete_Dialog(T_Box); Erase_Menu(Menu); Delete_Menu(Menu); Hide_Mouse; Clear_Screen; Set_Color_Registers(DeskColors); Show_Mouse End; Begin { Main Program } If Init_Gem>=0 then If Getrez=0 then Begin Initialize; Outside End Else B:=Do_Alert( '[1][ You must be in Low-Res to run Battle. ][ Argh! ]',1); Exit_Gem End. ` 8 NuINIT_FORM ?Hz~/,HNVA-HPN .r=@~ .rr=@~~"n2~"n3n~~"n3|@~"n3|~"np3@~"nBi ~"np3@ ~N^,_X> _PNCOPY_RECT ?Hz~?/,HNV4A-HPN .$r=@6~@ .$rr=@4~A=n4=n6~C~D . r=@6~E . rr=@4~F=n4=n6~H=n~J~K=nP=nR~L0.nS@=@T~M0.nS@=@V~O=nX=nZ~P0.nS@=@\~Q0.nS@=@^~S~T?<mBg?<?<HnHnHnhHnPHn8BgN~UN^,_X> _ONINIT_FOR stackclrCOPY_RECVDI_CALL    `P}NHx?< NA\#΀?<NNT#l 8g< @ g6 _MCHgX`  g g2 gD gV ghP@^P@dP@`P@b`xP@^By@dBy@`By@b`^P@^By@dBy@`By@b`DP@^P@dBy@`By@b`*By@dBy@bBy@`By@^?`x`b`RCount Zero (Electronic Images) Music 01/07/90.Phone 071-794-0771.Please credit me if you use this music! Thanks!HJna*ABPLNu bA0a a2LNu8p QNuCE`G pXHS@BYBZB[QA>SGOA CaA TC*aA XCaNup0A "Bi 3@H@A >#H3| A8#H NuHaLNuAJPg a MaMaMnaaNuA&CEG(.B?AB."""""""""" " " " < Jkg"BkNuJno SnBn4NuJnoSn`4. TB=B npr0 0 f>=| JnoSn`0.X@=@ V 0f=|`=@H@A -H` @`o< @o@@@AN`B`J`N`R`l`p`t`z`````````DSA=ABnPNuSA=ANu=A2`(AA00Ah-H =|` =A8`=A6`H=A*`H=A,`H=A.`=A>fp-@<-@@=@DA |RARh`=AL*BCD@EFGA00:0P<0`>0p2.(AHJn>g*JnDo 0.DS@=@@`0..@=@<4B:0S@SB@BAvx6080 DnDCoJEoDC=CRBn2.`"HC2.JEo=|R`=|R=AT2.SA=AJnFoSnFLH`t:.\E=E n prtv((((8 @f\An`HHH:@=@XM0E=E0H:@=@BMEg =EFHHJAg:.4Ajz` Eoz=E4Jn8g&JBg:.:Bjz` Eoz=E:C3n:JCg:.@Cjz` Eo:<=E@:.JDgDJnPoJnb=nT0.R@`SnJEjz Eo:<=ENuACpMPKIn54m5:l5@0.0@v v0-0@uu0,0@t"tJnBg4n?Rn@LnAF`>JmBg:m?Rm@LmAF`JlBg@l?Rl@LlAFr?0.XPePe ` Pd0-XPePe ` Pd0,XPePe ` Pdi(A.Nu M / gaw GGp0S#}Y8{eQ>, ~wpjd^YTOKGC?;852/,*'%#!~wrkd_YTOKGC?<962/,*(%$"  OHl $ jF` .B,p ? X` ,d8d,,,< <,,< <,,< <,,< <, HHHHHHHH ,$,$$$$,`HHHH8,p ?P,$,,$,,RR$R,R,RR$R,R^^^^^,RR$R,R,RR$R,R =f,x@xHx,x@xHx,x@xHx,x@xHx8xLxTx8xLxTx8xLxTx8xLxTx`     %  %       % 1% % 11% %  =l; = D B @ = ; =l; = D B @ = ; =l; = D B @ = ; =l(( ###   =l;=DB@4 46/ /1 %l# % , * ( % #  8$6$43$4$318$9$86$4$31-$/$43$1$/-$/$46$4$3-$/$43$1$//;1 l     %#l      1$/$16$4$1/ 1,1$/$16$4$68;$8$;:86486436431431//1;$8$;431/64318643:864=  %%% %% % %% %% % %%% %% % %% %% %%%% %% % %% %% %%%% %% % %% %% %81 1 1 1/ 1, * ,81 1 1 1/ 1, * ,81 1 1 1/ 1, * , % % 1 # % ,*(% #  ! ! - ! ! ! ! -! --  T ` T ` =l; = D B @ = ; =l; = D B @ = ;  = % % 1 # % ,*(% #  % % 1 # % ,*(% # % % 1 , * % ( % ! ! - !   ! - ! -! / ///# // //#/-///        #    #   # #    # # ## #  # # ####  #   #    %  %  % % %  %  %  %  % % * (% %  % % %  % % %  % % % %%%%%%%%%%  1qAAAA   PP ddAdZZAZ AAAAAAAAAppppThis is the end of the file, if you're ripping it... & |"|$ "<0<$ gԁ&B Sg"QNu"QNu |$\"|$ $|&|$$9'0< fZ gR(Q Tf8l"r2*|VI/r-IA$&+N _" XXXXQNuNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNu&'C@'C'C'C'C@'C'C'C'C@'C'CNuNqNqNqNqNqNqNqNq&'B@'C'B'C'B@'C'B'C'B@'C'BNuNqNqNqNqNqNqNqNq&'B@'B'C'B'B@'C'B'B'C@'B'BNuNqNqNqNqNqNqNqNq&'B@'B 'B'C'B@'B'B'C'B@'B'BNuNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNuNqNqNqNqNqNqNqNq&'B@'B'B'B'B@'C'B'B'B@'B'BNuNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNuNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNuNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNuNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNuNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNu&'B@'B'B'B'B@'B'B'B'B@'B'BNuB` ` N`B`<C/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////.v/./r////////////BGp `Nu#)*aaaa61 A <e(H@A <tH@1NuA :B$<#"< QQ z"CG,<#z 0.<ڀHE0HEQHE0QNu#)*#). Hp<#)6 @p@rtv"HCxFDRQRAQNu#e(e$NuaNu |'p2< Q |(& <)2< Q |(f <)2< Q |(p2< Q |(p2< Q |$\p2< Q3$NuHa aaa5Yh5Y5Y5Y5Y 5Y45Y^5Y5Y5YE5Y5Y*5YT5Y|5Y5Y5Y5Y 5YJ5Yr5Y5Y5Y5Y5Y@5Yh5Y5Y5Y5Y 5Y65Y^5Y5Y5YE45Y*5YR5Y|5Y5Y5Y5Y 5YH5Yr5Y5Y5Y5Y5Y>5Yh5Y5Y5Y5Y 5Y45Y^5Y5Y5YE5Y5Y*5YT5Y|5Y5Y5Y5Y 5YJ5Yr5Y5Y5Y5Y5Y@5Yh5Y5Y5Y5Y 5Y65Y^5Y D5Y5YE45Y*5YR5Y|5Y5Y5Y5Y 5YH5Yr5Y5Y5Y5Y5Y>5Yh5Y5Y5Y5Y 5Y45Y^5Y5Y5YE5Y5Y*5YT5Y|5Y5Y5Y5Y 5YJ5Yr5Y5Y5Y5Y5Y@5Yh5Y5Y5Y5Y 5Y65Y^5Y5Y5YE45Y*5YR5Y|5Y5Y5Y5Y 5YH5Yr5Y5Y5Y5Y5Y>5Yh5Y5Y5Y5Y 5Y45Y^5Y5Y5YE5Y5Y*5YT5Y|5Y5Y5Y5Y 5YJ5Yr5Y5Y5Y5Y5Y@5Yh5Y5Y5Y5Y 5Y65Y^5Y5Y5YE45Y*5YR5Y|5Y5Y5Y5Y 5YH5Yr5Y5Y5Y5Y5Y>5Yh5Y5Y5Y5Y 5Y45Y^5Y5Y5YE5Y5Y*67Y&Nu) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, D) A* B+ C, DNu +,,S,,,-0-h--..J.../0/j//00V001 1G1112<2z22363u33454u44595{556B667 7P7788c88959|9: :R::;+;t;<>c>>?K??@7@@A&AvABBjBCCaCDD\DEE[EFF]FG GcGHHmHI IzIJ0JJKEKKL]LMMyMN9NNO\OP!PPQKQRRzRSFSTT|TUNUV!VVWbWX:XYYYZ`Z[@[\"\]]y]^a^_J_`6`a$abbcccdyderefmfgjghkhimijrjkzklm mnno)op<pqRqrkrsttu4uvVvw{xxy8yzdz{|,|}`}~3n L1xib a hw(AaDw5s4}B`*[*nBtN)bD( m[I9+"1ARdx *HiGq(Y-fXb   ; "rlu. P!#$%'V(*2+-./1u24j57e8:i;=s>@BCE/FHTIKMNPTQSU8VXZ/[]_8`bdSf gikAmnprQ x h X H 8 (   p ` P D 4 $   x l ` P D 4 (  |pdXL@4(tl`TH<4(|th`TL@80$|tl`XPH@8,$ |tld\TLD<80(  |tphd\TPHD<80,$  |tplh`\XPLHD<840,$  |xtplhd``\XTPLHD@<840,(($  ||xttpllhdd`\\XTTPLLHDD@@<88440,,(($  f|tph`XTLD@80,$  |xplhd\XTPHD@<40,($ |xtplhd`\\XTPLHD@<8440,($  ||xttpllhd``\XXTPPLHHD@@<88400,(($$  ||xxttpllhhdd``\\XXTTPPLLHHDD@@@<<884400,,(($$    |||xxtttpppllhhhddd``\\\XXXTTPPPLLLHHHDDD@@<<<888444000,,,(($$$      ||||xxxttttpppllllhhhhddd````\\\\XXXTTTTPPPPLLLLHHHDDDD@@@@<<<<88884440000,,,,(((($$$$    $@N: B|G{pH"3#A $3#Bp#@3@ m +|Nu+|6NuX@XAXBXCXXXXXXXXXXX+|+|NuX+|Nu 9).rI&A gH&S" ()A@" ҫ)A)kk"rIk 9A+|+|NuTNuXX+|NupHѬ@NuNu,n +|`+|BBBXXPXNuH2,@n +|l`+|B3@XNu$Nu,n +|b`+|@BBBB@H3@3lNu 9).rI&A gf&S" ()A@" ҫ)A)kk"HH@H#@HH@0<#@ #@+|+|Nu\NuNu0( Q`"1@ *h!M$ (oNu*h$'|Nu0( Q`"1@ *h!M$ (lNu*h$'|Nu0(j0*he5h'|Nu0(j0*hn5h'|Nu&h0 @f &H0!K5@Nu( (gNuh())(nh'|Nu( (gNuh())(eh'|Nu0(h(@n P'|Nu0(h(@e P'|Nu$*d7Bg`nz $\ewewst-90:BreakBdru ֲ'A?.9-e+*>MOQ 3w-1'/ JYY تǛāor:=Zc[F'.Gm-2( 8ᥰ,!O4 l7@*>-Z;4f$ ΰ̓  +J9K*Se#N=( ʻҸ½;:&;*+D8N6/:! ݷ %+"-&%B+(;,@32/$0  $!1<-G@;;9A7-5&*3 "$)13:1<@<:2/,2# &&/)1M6?CE@@6/7.#  ɹí'$)B7?:OB93I2=6(!# ʹ!--,H6S<G?208 ̷ $)2&B;A7TUOL>K?1D3!1(ּſö̼"/'K7>EITINKJEB6/=(%ټſ  1@;BKDMKIUUP;3$нлƻ <-6.(8/H8D1AEA54,8(#'  *15::C;6BA7DA<00.$## Ҽż '"+)@59AL<@L@M25@.1:4" ƻƸ )"5($?;9FDJ@8A35-@,0(#" Ҿ˿Ļ!4&%/9*5;=2I6>4,-3    !   "## /(#/&$)$  *     %&'$%$#$1%$#)!  "$(!.,-!'"'$     &++&.),/1 ,(*!  *(/.5.;4::A>855=++6)'! "')""&(/'%&%#         "#$ $$!%                                                                                                                                        ewew@ '<!  /!'3)/-,+)($! #*/8>EKPVZ_cfikllmlhiga]VOJA:1) Ľ $-4;840-)%!   !!"$$%%&%%$$##""!   ewew@  *1(;"(?43  &             ewew < +  6K8  ):JF88@HNSVXWTQOOONNMMMLMNOPPRSSTTTSQNJC/ͺͻ&-1589:::988776788973) ,0.*%ȥȿ '2=GJE8,!  (5?FIHDAACEGJKIFCCEHKORTVXZ\^_`aaba_^\XSK>,!%*/259;=?@A@><94.(!!(,..,& ʻ½ %,27<>>;61+&!  #).135432112469<>@BEFGHIIJIHGDB=81(  !#%(*+,--.-,+)&#  !""  Ƽ !%)-13565430-*&" "#%&&''('&'')*,.0134565531.+'"     #&(+,./.-+*(&$"  !"#$%'()))*)('&%#      !$&()*+**))'&%$#!      !#$%&''((('''&%$$#"!          ""$$%%&%%$$#"!       !# ""!!         !!!"!!!      &      ewew +UOx(.]'..W3: 0@ > 7^M8< B/G]H )60I(#"),9+Ad,# , D  %8@=R)/C #EB*A %# "014*/.%% %<.  5,< ,( 6  !)#,F5 *"  F F"*/'$;%(-D5*6+ 4*) 6KCZ #8@!! )%'   !  , ; "'>%'!+ - , ! !% ')0+C  ' $ !  (%1+( !  $ "+7,0'"  "0"'"                                                            ̃ewew"'   "1 /57 #  / -!-.* 5,$& &  1 =) %%( 5";( & ) 70&1\<3."H$$. <4.#E%)$1720$ -/0 81 *(** j =״!+C*3!?&.&15 < D */+ (. (@ &/*' -< $+ ; 9  " ,%+'' #  6AG;(:E='$  :$K08 3 !.5>1 ! %# ?X$" '(,UJ!=) , .0>$,+9) &0 L>$ ,#, *' (; G ',H :6*"8;  (F"Y[F"DO;#  L <3   &BH/,5.޴M$ $=F@-) @#J,.$   #P$. /*9 4F28'95R%Z(1 K2  . *)?-: <# !/ )1 JR/DE$*+#/%36 $ + #!9#>X/= %G!!'  /!'E$$. -8L;Q )9 ! !"&. +,,( ,$ '7- & ('  %/ 2. /R# $ %# 4  4%D ?:. )%  %,M*3& -*7 # @0 2$!>%(:='!'2& ) * * & 9 5,!& & '( 0 ( 26/#2! *   # "("9 !5? 8M   1 7 22 +4  /= .1 555 %   !@  %8 ) ?:!  ) ,6C9  " &  :    ('# *'  + "!  -    + 1"    1   % "62   # -! #     #   3 - +!   : 6  0 (+/ +   <  ?!  %  !      + 4!!&(    (  ) #  3/9     '      "  $   !" :      % !,$ :- "*  (     # /#    /   '.     ) + +"  "         #.(    !   %       " .  # ' 5 ' "   6 ]"  &!   ' 1%         %%! %      1                              !                 #            &  (        (       (         -                                 (                                                                                                                    newew2 "  5& - " -  B2 0/  6 "  0!1(1' &" ! ' !  ' "              %                                        ewew  !5+   !  #<,!̮ #(86,   )&14)06# ')0 06&),#+D9%.˺ $$!(84  '&((+98;"ɾ44  4-#(7&7.+."ǰ&4!!&%1B.4.&˷'%/) !ĺ"*2.'3ν $1/   #)+,&&(1*1-Ҭ!9CGBLVO?'.0! #7&³,36@2  ʻ *WUS\?-#"#պ(CE@DUU4)Ϻ !#Ź)5>PKB, ͬ%+9CC:#  ļ %GPbgP4# EONN>9.#˽ *.5#߼5&$:?><6% ҧ.9?CGF1 Ժ®$B]ciM5 Ƕ9\]I;/ $):/ų49.)-,)*7/1*%Ƨ?RRNBD)    )GUT]P' ֻ ,""!*9!DIgwqZBŶij#4)/8/BB.##)HKUYD)  *" #(  C`ax~[;ʿɲ9B..2,>B60%$CEGR<(*  O[]hrT-!A2%,048=10*&  &  !?97B/(+$  * (HUIccBҿ&9)")1.1.*,0ž1$$)0.'1 .  )?:&  ?VK\Z. +!2)),- ɹ2B6%!14&!+1   8D7! ȹ.3!+$ 66'.1,<$'̸/EMXR?&# % ׾,A6/>?%$!̽! '*)-B, ߾#( :WUL) (B7&04.̯ !*9><22&!&(7,$1#Ѥ#  ' >;' ˽ &742B7( ̿$.F).9G.*  ̹  ) &-*%! Ƴ' %CN(& Ʊ#613<#1,  #) "+ ë !/ 597.*ȼ#7?15@PZ' ñ-3971# # #,#+3< % ڻ"#=C7)*"#Ľ,!3BJKPNL)׿$67&'" # $IG<=5 !-$"/G42(dz ,H,#>YPDAո"2-& )10 ĸ&+%GM91)ӳ!! #2<.!ϰ'4;,ARE<"(& )" Ʊ #)-8L=;1 )# !&"ο#5'.LSE<  ( !#ͨ *7NI=-  )Ź$!0IZJ7% 0&   4C>4.&#! ǫ&BOB...!#-7&   Ǿ #"'GA.&) &5 (!   ҿ*1/AHG4,&ҵ 4.% &" ʶ!))-;?-&#) '  İ /??DF0 /.ع "70,)*!  "2*)#)!ֲewew     !'6:HA2          %DMF<    % !8?J9       $* ะ &+.8B,  &   "#,'%Ʃ/,7=0  #% ʿ& -/&' ȩ #21(+5% #%.  +&  ,''-'0' ˧48'($  "$0$ -+20,/! ȫ (;  " %"   & 6624 "&%'%   # ' ,3?A0 .,*%!       -CJ6,ǿ)1*1   %%(   *;IG6 ޸$%)"*,   '.*  -8FI8 ɪ'<, 0%+(*      /6:?68 Ԯ $/, #"*"ʸ ,>,/  &2,,-#0=3" ȵ $  *.::!.06=%)'  -  1=1-%%96*ӿ*-CC/36+#,)$ #%%%/087#,#! '1#)A786ݼż *%$#, & ):-1>C1   $,12/05@6<-ñ (+ #,FD'.?93$ ۩*/:?879??A!61AJ4 '3/"  籖3F:6CDEAA-ȶ  %2;<('%   ڵ3CACTWIIA-" (! % ӿ "8161' ٿ9JW_kO<* "' 1:/% ȼ/3A@9% 7C# ֿμ%PZm`M/#% #EM7,%6##ڽ1<1AD:2,C;-Ͻ#>ITRB$"2+ ʾ /IC: 61#à+1@A4@=87?A1ϻԺ#35;4*$%44 0F>,*01%ǝD3#ܵ#5*'!,H48'׿&08[cUNJ9" $="Ǭ 3X_XNL0 1/,7/',& ׽ ".%;PbfH6 .NbRF2  !0C#3HDȽ&4DOakh@­ ,OM;,# 293CYN(2ATZtnGݷ)::!12HFRO1 ':K]lmF%߿ 0+ 3,1'$± %-.AGYA-*);[a^:#Ӵ  &!#&7F;ӳ !%6@M=A%'%'/?H?B:׮  (#;K9 ˿ "!196IC1 п .37D6(16-¨1  2E3  /:=A<,!Ƚ17FRH@1'ε*'  # .*/   11=B3,  03KWFFH: ñ ""$#   *,2>=3&1GMV?=F6#ھ  0*%'  /<27&7+ ɿ #)>UC6743ſ   ';71)% 9,#3415 鸳+"-7+66& $! /B61% (%6<  )5-#%'?HH%  6C7:)'":6  * #8GQH@  6FA '33   6M_I9' # 7? %6,# )' #:FTR@  .   00 6(*--!7ADI-  1# #2?5,2+"350-#  1; 1:* *?D:?=, ۿD<3 ʽ&.A ANF÷#30DSO;  ó&6<,2   !)<*#'D?F2ȼ$98?YF1$  51$ *8$%#*=? yŷ 0*&S'"0 # ޺!*1(#3  #    $"                                                   ewewh + $O:9 #B> 0K Iϟ %76- 5B7*(Q ,37ξ'%L # .(&3+#B& 0(*-- ,> % 4.*+6=' 70%+<7& 83&;0' %7 4ȼ! A+')53ƹ @# %+3 3 ? ",1 1껺># +.#0踽 :' **(- !5 ' ***'ܴ '/ (  *',$ҳ '* & #)%-͵ +& $#*$-Ƿ +! $*#!,ú ) $)"#+ ¾ ( !$)!$( % #$)#'& # $$("'"  $$(#( &&)$( &'(%(  &()&' &(('$   ')'&#  &)'&! "'*'% "(*&% ")*&$  #)*%#  #))$!  $*)$   $+(#  &+'"   '+&! (+%  !)+%   !)+$   #**#   #))!  $*(    %*(   &*'  '*&   !')$   "((#  #'(!   #''   $'& %'%  &'$!''# "''"   #&%     $&$  $&# %&# %&"    %%!   !&$    !%#  ! #%#!!$%"!!$%"" $%!  $! %%  !$!  %% !$   $##$  !%#$%"%"$$#%!%$#$  &%$$ !&$$# !%# $##&#  $"#&# !$"$&" !$!%&" "$ &&!#$  &'!#$   &&##  &%## "'%$# "'% $# #'$  $#$'$ !$"$'$ "$!$&" !# $&" "$  &'" #$  %&!#$  %&#$  '&$#  &%$# !&$#" "&$  #"#&#  #!#%#  # #%" !#  $&! "" $$!! ## ##  $#  #"  #!    #!   #    "   !   !   !!                                                                                                                           J                                                             ewew # ,42++,)  ΥC_rzscR?0 ԻGbPMPX_a\M8;:P]_^\SB- 1OfrrgWE6# ¯5MCCFHJKE8&ý+=GHFC=1!Ѱ 7HQSK>1' żĽ"3-/35774,ѽ )2532.'ƾ$1:<8.% !$()+*%$((&%  ")-+# !"   ""                                           L                                                                                 ewew& +91YK @)@,/B(  36>^9 $<#)B47 & 08KV)+4&3:3*% +@PH'*--6-.%  +)JK;$&+61% '$ " %)-O?6 0:'# !&  ۽5% !9N5679& !+ξ* <EI-7;/(  #- ޿ .!=! N4%& ) Ŷ-C- &R@?& $?0+(Ա26H ?QD<  .?2% + 𸮴 0 'J5KNG* 8?0&1ϩ'0=K3OP? "@># 2/쵠6Կ +K8?PL.,C7< ˥-4ʹ!9L"%IOB9?%.: 괔#6!ҽ!(DB 7JF6  #<17(ҡ #,6Ƿ%,I7 @B<.#,4#  2𿎐',2$+L. A29+ '0&$'碉-".-&1P/3%>-& ' ""͐*7#׻ CP%5#'? ?! #"/"*!(򳏞%@ κ U<#./1J < 9,窘 $<&T&"%  #*,O:?%ݪ *5 2E'/" 8J  '*;ݮ)/63 -B/  a-׽<3 ǯH\lX3IY%?F3)NZ ͵,3#ȶ,RSeO5[Y-2:21TR+!#ϻEKIcH9eK##:3/WL ܻª#&I:Hc<;m;?+,]H " ʩӳB/J[3Fm7&?.fH 0έ5/LN/Ph*,36g6<ͳ-6F=1Q`,+!Da(!C͹  0<917SV' $LS0@۴̻"% 7:&,?PN$'$J? 97լ˼' .?./DLE!+,E0 =*¨Ⱦ(/@!7FG>-'  1<# ? !(%-6=DE3; 02(=Ѿ' 3 4"(A@A)&?  ,,08˩м+!.0 9?<> 75 *)5)һ')7,#B6=:G' '%6ɯƸ 3#9-@B.?04E# %"%- ŷ秶ɶ8?&%O6*?&E.)  "!&ϳ.1$D $9K%/>(1B' #"  蟦+ 8":0 M68=-;1)  !' ĖͰ!(!9&B+G"<:29%&& 稟0 5375 <7*B631 )  ) ͚Ų-=-&@# #;5>.2(,  &  𰟽޻,+=%0?#&0 >4(3#&+ "ԡ°ȼ- =4:8 .+%9$)51$$ "D$"G+/ * --.. =1' $ ն19/M**$)2)A&5#++!ܱɼ 9&>G 7% ) 65?08"6Ҵ.L9B&  !@"KF7 ص 'N/!L$"  8 L G &/ ڰƽ 7H1R'- !#(/B3C,* ٪θ <; 9S"#9 4/<9-$ѨѲռ )<+EP1C  3 <- .% ǩϰͳ 54 )MH@H ) ;"/!ͯ =*5PBIF% $31 űⲹ -='AO7+V@,$ .+*/ #ĶԨ665KK,AZ07 36) طù⾬>,BSC',TV -8  1 =(ŸԬ ;"*OW7#BaA>, ))/7* ɱ (16ZS*+Z`-4C ,? , ɥڪ''"A_I$DmM'L7&</ #%+N]8-^l7CL 0"-Զخ(+5TR3FmV)6V=",* غϯį ..>TG:XhE0OS)%" & ǼƲл &01DQDId[>FYB%(. ӿǻ --4IMETcPDVU9,6.  ̷Ϻ.)6MKH\_LM^O79>+龾ɸ̿%)')9KLVT@NpZ*AxS +n?P.˵пͿĚҡ4$G'!AJDOO?TkI*Tt;Fm5N-̽켻̶ij͹ޱ #76'JA9LL@Ta>4bg)!`W N<1ܹ±̳Ҩެ9 8G17NF>SU;AaP';a:.L0Ӷӽʮūɴ %%?5'>M<=TM;J[A1LS+>9 (޾̮һ'6=)1LH9IUF@QP<>M<&05 ʰٹεʸ$ (A1+DPA?ORFGOG@E@013  ر˩ůý!=<,9PM?HSOHIIFE@437%% ׸ª۹Ϲ'3D4/GSGBMSNGGHHC409/%﾿ڮάȲ$%AA2:PRDGRTLFFIG;.48 %ײɦھ,0H>2EVMDKVRHEHHB4/5. Ķ⳨ձ̷!.@K78QXIESWLFIIC;2/0% ҩɥŮ.-'HG6?SSIINQOF>CH9%+4  Ȼž !)257>CCCFHEDEC><:3,(#  &-/29<;=AA>??;774,&$ %+,0676:<:9;9422-$!  %)*.234775574...( #&(+//143023.)+*! "$&*,,.0.,/.)'(%   !$'()+,))+)$#$    #%%&((&'(%!!! !##$%%#$$!  !"! !                                              ewew"F )((⮑*JG-]dZq{e]Vɿ ݜUO -9kkLLXVS?ˑ"P>(4 *`1Ļ)%"{=맅 ΄ 6%E`**ɖ'Y_5脒ݵ A)BvB3 CP6Ƿ*q̘헄Ok%,Ob( +!TYgmhN , (,3B6#ɦ/O *`u.Jr\&89̂&RP7v5f@Y4#KšǽڲՒ V$& ǴؾI_SR,sbEB՝5#ΎQj紬ű֪J?IL4Ҳ 0 @ bAm{bJ','Z2[KBD Eh  P'1¯ҝȺ߶︜4@O3O5N2$'IK VDVNΘ_@F$0V馄"67G!l .0!}5cngDo=ã,PXUCa񱭰نʛƸ:,@3 qT:?;$A$ MzV6(з#:0La|<략 QT#/ P*,B%RL@ 6WŇ *>217HB#NwD7`[2)"&X)./(nsd5GDv_9͏᛭ 9:!+)A<+&)4 $8!8RqM8>CV)ǜA7 2[]nzX3">E;C,*,kS$;**M61D.!#տֿ̨  >6C?dI.G:$! ܺ-.GTD(G=%=- ݺ̌.IK&Am`)1.>'%;APo$3 /G  >?QfiA@!ڰ0278 %  #+ ܴ !< )(-M[$ !ճ,#  + $      $=>=6&(%& ޼,! 41=% ,  &"  #&",!!;" !&   " 13'$19*    )!074!    .7E?+" % )-!          0@$'+-# )   !15#23+$!/    %$$      $3.(.1  &   "$#  -,&    &))-0'#   %  " %)(    & $+  '+          3?1&%    (# "#   +  !    $               #            $!                                                                                                                                             MAJAlet's partyST-MOD. CONV. 0.01M L0``B`V`b6  R 2  z &ndpP0pX !T"(#h$$%` !%) )  "&**    $(,  ,  #'++ P P P               @ @          @ @ P @ @ @ P P P @ @ @ P @ @ @ P P P @ @ @ P @ @ @ P P P @ @ @ P @ @ @ P P P @         @ @ @ @             @  @  @               @ @   p    p    p    p    p    p    p    p    p    p    p    p    p    p    p    p  @ @ P @ @ @ P P P @ @ @ P @ @ @ P P P @ @ @ P @ @ @ P P P @ @ @ P @ @ @ P P P @         @ @ @ @                 @  @   @              @   @  @ @ @   p    p    p    p    p    p    p    p    p    p    p    p    p    p    p      @ @ P @ @ @ P P P @ @ @ P @ @ @ P P P @ @ @ P @ @ @ P P P @ @ @ P @ @ @ P P P @         @ @ @ @                          P         @  @    p    p    p    p    p    p    p    p    p    p    p    p    p    p    p    p      P P P P   P P   @ @ @ @                   P P P P   P P       P P     @ @         @ @ @ @                          P         @  @    p    p    p    p    p    p    p    p    p    p    p    p    p    p    p    p      P P P P   P P                   P P     P P P P   P P       @ @ P @ @ P @ 0         @ @ @ @                          P         @  @    p    p    p    p    p    p    p    p    p    p    p    p    p    p    p    p      ` `   ` `         P P                 @ @ @ @           @  @        @  @        P  P        @  @    p    p    p    p    p    p    p    p    p    p    p    p    p    p    p    p  P P P P          @ @     P P             @ @ @ @           @  @        @  @        P  P        @  @    p    p    p    p    p    p    p    p    p    p    p    p    p    p    p    p           P P       `          P P     @ @ @ @ @ @ @ @ @ @ @ @            P     P    P     P                @  @    p    p    p    p    p    p    p    p    p    p    p    p    p    p    p    p           P P   @ @   `          P P     @ @ @ @ @ @ @ @ @ @ @ @            P     P    P     P                @  @    p    p    p    p    p    p    p    p    p    p    p    p    p    p    p    p                         (  @ @ @ @ @ @ @ @            P     P    P     P               P P P      p    p    p    p    p    p    p    p    p    p    p    p    p    p    p    p 2rJ2r  %&,,-"" TVeeFG&' 7moofg12੧ DDD<<ĺdd__AA00DeeeII((^^FFF䳯++J000*III22":::ffmm333 0666!!333??'' 88VVV>>000222OO@@@!! ,,;;;1%%  !!! **999,,     &&&33$ &***))FFUURRR$))((44,,,$$$""!!)))??="""33344))  ::HHH7  '''!! **7000 !!!%%55577* $11... ## ### ##""",(( )))..)))  //11"""  3331 ""'''!!  ))++    )! &""                        O&          ##  ##,,%::FFF...      %## #   44... ""*))      "b %%%       !!,'')) !   !//"" "                 ##    """               --  (      $$$                                                                                                    $#0 # 䠇7}f*7cx}P𰊀[xܳ5,  򼆀 aF ;f{VɌ[`ȥ( ꠍC}}4Ƅ'GmyX;B&*%#ĀF^B #FJ\Q@ͫ3{lVԹ  ,رKy^&IcS$c\ծ  %)4<}Z쩎;YYGⲄ#s@̶ ) %89}xPܠ'2A=D,ذ9mtN"Į ص>e\57$;8ιNm]0ҹ)! ȸ=[Z%<:&0'ඨ3Sg[ͺ ),$ħ3G^(,JP==1˿-NqqT$⵰01-($檭F_vX(Ė%1@!''1X`H.з'8E' Ю Cgd 1HJE ٿ7X4!!հ1Xoj0:B6 ýFLV@Ŀ>YVB fw:;B7A3Ҳ`sI+$ Q}xC𐀇2.%/7& 2dke< &'䩩Abr6 ;GI6+$ܻ 9Jc4в謿S\$5QP@- £Jab@ɤ07A(  aV/;#ȳGihDν 0@A0 ԩ^}83OJ1+ʰ/_lf9Ǡ'!謌Q}L#OH@NT2 ܺFgdG"' FiB,@2( f{h4Ҹ ##,, ̐KxxD ,+5H@ô3_bY5Ƴ$  ؠWzu@ -*9P^:̠)M\@ ž  %  ̚#ox$ 7_`,&<@J2  $䨱Yw0#AMHͰ6F7( !#)ċZixHCg{` .C8'  'oX ĺɿ'YevZ ȳ *08 )Ɍu11Qa[8 "')' Nfkl9඘=:D4"/9  &EWUZ0 3OBSB '?O( "!Ԇ%ZHHH*3='@AE:4)'*rJ<9'+3H<.!(ģ9UCL)*DE6梧[hTA0  %+6" 򥓻-:@F@HT$ѣ-TsP2()H59ɝ@3.J@:@زǵ 3GAjxdTɼ/192&! ެ  =QbfDƲ G{bP-ñ1MB63 ֶ'UP@)"Ш'}^pjGƷ &#,ES@ )0 ȴȳ#KTZeTE4μ &E5D+м2 AnPG@&D3?$ # 足ѽ9!1it200ܾ%3LV-6:9 ư' !-N]QF ӻ)H* +#B Բ 'J]cY0?E$Ĺ3)"&?A $685Rfkdӹ$F@/J%#(河Ȱ)'/7aP. й+7j. =, çĺ@5CVXT:  0)J21 -Ĺ.!+UebJ),0 ,)1/(/!D=' =]md()#˾A<$'A22ȧ>,9YchVD2µ 'B00!S`-ưʪ"-MhiD.¹=N30,>H켱'+3njD--­UQ,)5LVQDڰ'G7SuqP5(漪CTJ=A_pU:$ᰔ '+IjtT37@EFspRR М4YvvvR6겙Ŭ&7HEIrYH”&A.=b}d9# Ť使D7NAObG;ڶKaF_{VԸؑTD'!]TH"갃CYGXv{}LĢ'`)7zX(ڠ԰ff@CRjh Ͷ KM&OJW2쨀%gpM=:Y`źԱG@0 U\+D Ԓ"ghH:,1Ų /D6@9S6D" +op@-10Cʾb("K`5A񸀀W}QGD>;㶰贁3P%?pA).梀ж1Np*'8'̀?x47]L0٢ֺ5p09-#0  \8/xhWH BR# щH삣fa8 ]Y2֬,?ql ħ&삋E^j![^w`ػ򶈀jP'Ȭ 7&JQTGd0ȡ "'xTCW"3:[<2 "M&30̊0DRULS+=}P9謀64'ku`HG:4;hI!쒀#H+d[9B,0?bah)]:/GUL+;4KUXFñ̀IF!3YxLǧE=Rg`8̀)IC&'JfX,RPC`ĀIf4 @nj@̴ Ka3rz8ʪȌCgJGSfn&ؾΐiL+Z}TٳIJ1IKQeYЀ/D#Swyn :PPIB>B ɀ?C3_{rDȿι70IddY-吀 S2^f7PWUSdP .*Cy{8 Ͻ2CV^aR +!Jx&ƣ+=7U_aY 2Fbơ=I=\`Q@ɀ#)gY 3.MdcZ,- ?v ʰ>+2RY\9/&Fp ള/I?cdM8ր -^DǸ+:Kfid 󒀣(M}pɾ)+4WYS0 Ʈ&6bt* Ĩ$:ob֬NJ#5J8ؿ YR;ks, RF#)=Q2̮Ȁ!ClOh0ʹ:J -7)N*9UEɰ7T.A @31gl(ķǦ ?@1NF€&%*n٢=0*U@" ـ" _i 뫐4 +BA@ Kg@Ш'(";L ړQ%&!@!䲹( 42ح J1F ᾭ'ԅ# 1i\(ְ  5@  ;D0̳ (2<33-;1٦ $0+R!#Q@ ŧ;J ;/ CQ) ܜKTм#>H($+B 췱/T ΰ ?PH@0;D87+ԷG, + % %)&. +GٻB+'./a@) Of 61'.M접 ct 2 3OH0$/8 !8 LL2⽸ );74<̱ķL!'+ ؠ9hL  ൲#4<4#7$ĺDBF,.ưŹWqV' $5/RV0+5ҢXOM, $ҧUlN6"!= Ŧ-ILJ& )DҀZIo* "?juj@ 긢)GbT#tЀei$Ҥ [rB#Ѣ ;`lDԀ'%YJ4?I洰#&%@J=D!̊#'4S`( 䴫&/9#;D=ҼKB- 10!&$%ֹ ##(&Ҭ !LX@0˻13B</8$  +$)' %5<,3- "'+ "5J4԰ +:%⨷+0,=@@$$$'5D,    '4$;!̫+')N\ A0%79! 32ٰ !%BF8   '5$ /JƳ':K; %< +45Ħ-0+5B(/@( %)L\KiHؖA))cr3Ѳ%3!*.1 ( &1U ɰ+4=R?L 4#3ZUй 6@"&IH#;1."ÿ #,(.7[Jg8ó%<5)nḏ BS)(03@9.ض&57YaaE ұ3]PGCM8׻9E;0F- Ġ#NL7SE)A(٪GlbA&) 3L0% 'CB +7@"8OU1  )WH)$(+56K0#0Ľ1,! ! "&990 H   $     ؽ!3W6˱8R@$Ƹ''"'% # 1Q&Զ/G,%7@'/74..A&'-!)ؼ#  +3A !)OM+CA9032"5+ # %PPNuF%HB8N6LNsHB9PJyTf"Jy@jgNFaaJy@hgaRLNspJy@df yP0 @*fAT0#P#tPѹPF'P‚PJy@dfP 9p#tp#t 9##F#Nu?< NATJ@g ?<NAT`Nu?<NATJ@g ?<NAT`NuC yx$y|AESyJyf`&y0jG03#HpQiiiAQiiiECQNuC yx$y|AESyHJyHfN3H&yJ0jGN0#Jp   $$$$ACEQNuPPPPPPPP9PgJy7fByPP7`By79PgByPPRyP yPf&ByP9PgByP9PgByPNuJ9Xf$09Ry73RH3P yRm6ByRByPRyLJ9Vfa2J9WfaPWPV?<?<NAX]aJyPg 9M]faVJyPg 9K]fa 9P]gJyPf|,ydp.9`Y l.#`X#`09LR@ yNCYNPZJf"09L yNCYNPZJg(#X` 99]gJyPf RbPXa09LR@ yNCYNPZJf$NuJ9^f(?<NATJ@gD?<NAT @B ngr 3@lHA#(6#(vL`AC$yx&y|EnGnINKM09@l|m>|m|m|m0|mְ|m||m"|mȰ| mn| m| m| m`3 @lPX37#RhP@fP@hp$&&$$&&$$&&$EGQNu37#RhP@fP@hp$&&$$&&$$&&$EGQNu37#͎hBy@fP@hp$&&$$&&$$&&$EGQNu37#RhBy@fP@hp$&&$$&&$$&&$EGQNu37#RhP@fP@hp$&&$$&&$$&&$EGQNu37#RhBy@fP@hp$&&$$&&$$&&$EGQNu37#RhBy@fBy@hp$&&$$&&$$&&$EGQNu37#RhBy@fBy@hp$&&$$&&$$&&$EGQNu37#RhBy@fBy@hp$&&$$&&$$&&$EGQNu37#RhBy@fBy@hp$&&$$&&$$&&$EGQNu37#RhBy@fBy@hp$&&$$&&$$&&$EGQNu37#RhBy@fBy@hp$&&$$&&$$&&$EGQNu3@l37#RhBy@fBy@hp$&&$$&&$$&&$EGQNuRy@l09@l|m|'m|)mp|*mR|:m6|Bhm37AR#hBy@l`V37#͎h`B37AR#h`,#͎hBy@hBy@f`P@hP@f`P@fNuPTPPNqNqNqNqNqNqNqNqNqNqJ9PfPPNNICRA@LHN6.E@NNLC,NENC2NICRNEAL"yx$y|0<"$QNDC,NEN6.?<?<NMXJ@fN7`JyPfp` ?<?<NMXBbCRNEaNP2YOU WON !!B9VPW09L yNCYSINPZJf:JyPg&09LR@ yNCYSINPZJf SyNPVNuB9WPV09L yNCYRINPZJf:JyPg&09LR@ yNCYRINPZJf RyNPWNua<9L yN$yd&yh``S"yzpNLFaNQNuBBB9XRb&yd`(yh`S09L yNCYprQHA#(6#(vLa a yLoNB<3NByLa Nu 9bAhNEP YOU HAVE SCORED X POINTS Z 1THAT IS A NEW HISCORE ;PLEASE ENTER YOUR NAME ? x8A!`@>^>?p}vA08 A!`@0΀|2) A!`@<) A!`@x 8p@< A!0`@ '8 q < A!`@Bo8s z< A!`@L08w< A!0 `@8y- A!`@- A!`@6( A!p??@ 8 A!0x @8 A!0y% @04A!0x @8 A!x @08 A!q% @8 A!x @05% A!x??@6 A!y% @{5 A!x @q6 A!x @{II 6 A!y% @0mII` lx8 A!x `mII` l88 A!p mI lx8 A!xaII  8 A!a00ImI (` 5KA!0x mII m5CA!0 O$II@@ l>CA@!0x <OmO ,?a0   8E0x0ax 60xax|~*  40 ? ?0 ~UOɿ $$$I II6@ 0TT   C@ 0| ~UOɿ , [A!0| ? BA~!|| ~* X=@~?|||  (<~||| `=~T|||! `<~|||P ?PP`<~|||Pp eh`<||w ` `=||Pw \`|<_| |E@_w`=|?@=/w p=aop`=p 8p= E@Ͽv'pD_p'p5 UTϫ X>00>> * O1?5?Hxhhnnhhnn ( 4?x`` nn`` nn *`5??Hxppvvppvv  4?xfffff *( ?5??xfffff 4?x<<<<< 4??x @( 4?x  4??x 4? ( ?4?? ?9aaa`y4?  B0 4qQ0P@y4??W &@( 0 < 0 05200y4? &@9ap4?:  @?y4? #???  y4? @?ay4?  ?W?4? ??4?  ! >??4? !p4? (Bw6?:B?wUUUS+_2??w UPUP/82? ?wHHI2??w; 2?@ _ ?ww2? ?w<wQ8P2? ?0w72?a?;x 2?i0 ?ww2?i0 ?w?wx2?i0 ?0 wx2?h0 ? ;H@2G?h00  ?w x2< ?w<{|{H@2G?p< ?0 x2p ? X2G?V ?w 2? ?wp82?*0 ?w 2?h0 ?w 2?*h0 ?w 2?h0 ?w?2?* ?w  2?  ?w 2?*P ?w 2?P ?w?2?*P 2w?>w 2?P >g?>w ?2?*P ,3?>w2?P \ ?w2?*P? @3w2?P!|?w2?_"p?2?P%  2?P+?2?P72?P?T2?P/``2? /``6?/``0?pp0?pp0?op`p0?*5?y @@KK5?" @@?JJ 5?ш w0pQ5?!  C``p0?P C m&R``p0?1*lQ2 V` `p0?  9 pF``p0?1*PLF 5?| `5??ib? p5? *| ?5? *<? s``p0? *< 0 ``p0? " 13Rg` `p0? " >?``p0? " 3S5? " ? o?? * 3R(o@ ?? * ?(o_? *3S `dp(o_?? >?`dp(o_?13P` dp(o_? 00 I`dp(o_?'7 I0(o_?}'7I`(o_?$4  I(o_?$4>IPT߷ _?$4 `dpo@_?%4`dp A~`_?%4)4` dp?_? D88U<opdp_? D8j?_?488UUS#@?8P#8 $opdp?pp  z#>pp b ppyG"  T*000D0 0Ppw@` 0@8 @^`H A B ?3 03 0 j 00~ X@?~3s ax 4x U U0 @8 G fNp8uu` ߒ?3+8nn͑> >> \| ;8 pAAix'(px y xB=,pB@@K{p .100 bfnowDD bDbDdl*upʌs5`DD;`0#0#HHs4;0ll 66;~~a L>}Z}Z@`p..Qo` p)x&@8S z~?/0!~T\ 00 ;8@#_``  >8#W( p/0=@@ p@O0p/00 *px ==0000 88}Ѐ88'8F?00t D8|  ^@@ 074_ `@ ~0p 6?00YGnm|;`  7 `@``O@_ `r `` ```\ |  '?00#3N<? r @@8?"h?@`8? p W@ ?00-v@P@00@ 08x/00@?O> `@0p@00 04@C /00h7  `@ p ?@0`0S8<  (00`?2͐`p  ?``h 0`08O0p!!ߏ  00H (pxwlh8 @?``h0`00`p2   0_!B޾ "S<~@}Px @ pI 00``0Q  0)  .?vP\PPw p @00H#W ` N  0?0&}m  3 00 0 0w``oh@T 2=0w<diO`   @0p= p$`` w  ;40Bò :\[-     @ @?B(``=`ph$` `q@pJ8 -"0@  H.xxh `O0x`|\S p``Z%L``3 Q6` 00 008 `d tpx 0JL0pX@Dz``)ie``100 l  0*--8 W@`'px``  D)](?8?000 _aC,  p|@ 0 J ~8| @=b `` $5&@y:+00 < ?}q`q~?b``$-`N3hl``  }Ob`100 00 zI0pn| (@!70HurX`` $K@am~300x `}Rϲ0B 7.H>@"BFx)``  Z޷8700  @lr `` z I"8`` g$0P p 00 | X 0 ?00:f(z``` uW_`@ 000 _@;  <$<  7`<pp/`` \@ 00 @P@8x 0`pMPP p8 @<88 T  `A(Fp0p dP 0p8!p  xx<< `P0p@ 10@08p?PHF8~0P\cy 0ΐo? F@? T9T? L}Pc?3Cr V94 ccT0Pp 88$8 @:s0b7r=Àhu ` cncn>&<--< 8 888@ۀ$<<C` p,kk8<ޞ!@ xX'(pxZeZeB@@[[$p%%( #psy p `@`cc00""N0>QQMX8@ g./bDbD`| o##u5--c` v!- ` p0II0YY//)lFF 98&L>  -pn0 Pp 00 2099Enhpp@~1p--J0ߟߟ ` / Z05%08Ǖ8 8l` GG 4>00==Sl s`A((hhmr2|`XzXz gxotY{ `p<0$ { J jJ050`ggǘ8``  ̀3?~xkϏϏ0pTWP,  ? ݙݐ"m 0|#c @3;8| 1G_//0F9p\ ow( 13pp>? OSЀ#sbv `}00׏pp00Q. U23@Оaʀ3;?8#==0088__ `H@ m"6/ _ `  x`;@ p K^@@ 0 ``i s6`p0 00  ?`pm=7 `@``S`830?!^ @@Z@@;9>(@M *0 0pHrP0@@8?W@00=p@  00 ``b <  .$/ 0* @ 8w4xMP? 0R`p pp pp $<   l/8C% {0h@? p00'8`? xx&<,Fΐ08 0 ?0 0 ` 7``00$O0p Nllz~<< ?00    [``p  ``  D@? `F00i`0 Fff@p F<<```  K@ ?  2 @{ `H?p00M H #ccĠ?(B߿<<AD>i58$ ߏ@@~}  @} p= 004X ~aa = W<<@?  *I-8J^U@  ` N  0oP 0 ]``@0D<<EP 00?u@00 ho@00E 0D * ``P/PF4> 000| Ow0p,JDs@``` U @p``8u` 0- @```92]46+`` ` E  pa``SKxE VM& ?~p@{@T p@ /008( M W``NC$66Q0'<0 wa@>_$X 8H ]kO0 xlU| Q K0 pa@ G000p wlٗ% @``)m27[h@gp I@ 3L0@p $HЀ_ ,888 888 ``pppp0`pp `0`0|``ppp v @``88 ` 0`0pX` 8 ``pp` `0`080p@8p@ ``` 01  `00`0 p `@p` @`@   ` 0` 88@pp ```0`0p  888 `` `0`08 ppt @`8@@ HH` `0 88  ``pp``8```0`0  pp  ``08p@`p0p@`0`0p 8  ` `@px``88`x``0`08 8 ````|`pp@|``00`00pp p ````n`n``00`0088 ?0pp. ````'g`00`00@psp@@? 88??? ````#?À#`00`0008  pppp p ````8 `00`00  `8 8 ````p nn ```00`00   @q  ```` tw pp`00`00 ``  "8  a`a` 8; 88`00`00 8 8 pp `cc`    `00`00aq:/z @G  cgg`_  `00`00py \^hO  Eؿ  `pp`pptX{p]_oO? 18888(``YppppÀÀ(aaY)ccY)ggZ)nnZ8)| lZp0)x8xZ `)PpP0A @) @`Z)@@R 3<0X @#?5  =?@pp<~~IͰ @E@` !~ ??**`J5X4 v59083+8oomm ]}`p.>qpQQ|>+a`@Nς Ç=D>B=pff-LL 9@l psp%=8xr cc_^ &s<<:llDD;`ňw:gv1 ``;{00v $F$G۹ =v8pp  ŏMp̿!!@@@..Q``G==$#a```Ѱ@0<< zz0px8II $$ 55`cg`>>!GG и8)@@`\ 0"000 ~~HLL VV ɾ A>!00NN1`4q`055xP a a;; `p,C,̢آ]'kkB=pٿ@--!f9@` 30 L L  S>S>??C # 08(33̨̠3\ <&8?˿@cc0POq``g'00?T> I|>? ?ဠ``?00+8;?2 ~ ߃ GC?W xU20W``?00?0C0  <B_ ]?|p!`````?00_r_ `'8܀ {{7_``@ ``n00>?@` #_H̊``{``=00p@8  //0yO ܎@@@m``̂?}p?00x000 .>r 0   ܀~׏ cs] N``<a~!?01g `p~ttY_ p@T l;xEGW9@ ``@ k11t``?px``?08^@ ~  @C̥ @`>_``Ĕ011 A@ &```8`` p  h V@``2_``H11 4_``0800E  A, D@``P``@@. 11oǀ@@ $[``0P1 0 "  i`L !``A`` @BA11  b_``3;p0   "M0p D@`` ]$;@` 11H( B}`` > 0  '8 ̃D{ ``4+@`8H>@q11pp A>````   J (w````P4op11׀ `T ``*   ~ ``ez`xc 01;@} p>>  QA b@vi`po00KZ`  dl= 0Xd   JM@[D `xm``@00du000"v!?኿@ J:M̯P[@ ``pY&``,00mK@ p 00,8M B=:OČyX:@C``p``800 Q```` +@KLp%jp} ̄x&~```@`` 00Ul p@ p`[00/'> L48_ v^8!U ``_ @`` 00?0Z0Ԙ g` V&?5&n  :'!?``@``00YBU `06?pd|2\   ̶K!f`` ``00P@o[t="0[    N̯kWШ !n````01m(8` `||f   M̽6B!-@``@ `[!1{P p```  Χw00!```xm``611@r```}(88    @`! ``o``7@01nb @`o ``p p4 i6!1p0pP88@bq`q^܀8m`0p<>a` "88`]c.1pqb a.c  8Agg  CCÇ@n~"``!~ ?? L3-  {FG8?>$#? ! 47?@`$f~@@c??BB)!)!x QQ))//  T*"3DUfwC#`0"3------- ((#88||__||99NN@@88@ @  }}||__DD DdDd@A@ADDDDEEQQEE@!@!AA  AAAAdd 88yyDD}}__@@EE!!AA  yyyyTT DdDd@A@AEDED@@EE@!@!QQAA  A@A@AALaLa88@@DDE4E4QQ@@88@=@=CC<<}0}0||__DaDa &>~>A?>~>>p~>|>62 &cA@@AA 0AAAB@@A6>(44$AA@@AA<0AA@A@@@$0  A>>?>~>?0 0~@A~|@> :0 <> A@AA<AA@A@@C<&40  0c@AA 00AAAA@@A5$ >?>~>>>A~>@>AC@A>~>~>AAAAAWAD@IaAAAAAAAA"AWAH@IQAAAA@AAAA /p@IIAAAA>AAI?<8/AH@IEA~A~A"U>"@"/ADD@ICA@DDAAc"A "@"/A8CIA>@>B>>AA><8 @?  ]@?   F@?   &@?   &@?   &@?   &@? &@?  @? &@? %@?@? %@?@? %@?@? %@?@? %@?@? %@?%@?%&@?6&@?f@?f@?@?qqAAss<<//<<AAȀȀB""""""B(B(  "B"B,,B##0>0 z z((00s``vQ -XXO/------XXOXXOXXXXXXXXOOOOO`_۾Yz{-g*L& =ٽ^͵j,{) =gzҽn}o $$$I II=]~n}5) =?Jkow{oo =k~kmp޽}F{߶Kkg?  =kIn߮9z7) =]~VWK <<) =q]m_?׶ =_۾YzZJo_Umpٽ^m9[Ne[ =gz{_{kmX) =]~+wNW '$'I II=?JkO};uݽsz) =k~[lB =޽}FϵJj=M}pkI~wWm =]v}znuT) =gӼz/kjSCm $$$I II=ٽ._ͳ~YnW) =ѾQjuʼ[VU =m]^.o^NOpݽ^ٽ^v =k_~ۛ) ?$<$$I II =HA.lL=R @I$$$I II ?v;=?vD =?v;$$$  =?vD =?09==nDD=^ddv;==>TTvD ==^LL09$$$  =<1λnDDF =?v;=?v=''<<09=  F N$ 2  &l<6""X8""VO2  < J  6         0  f<<<<<<<<<<<<:0    &               ",*   "4 &$  R2p *       (         "   4 B(J}&R NEW CORE PROUDLY PRESENTS BATTLETRIS (Bugs included) Welcome to Battletris, a Tetris game for all Atari computers. Well, at least most of them... Battletris works on every ST with every combination of TOS and memory, but you will need a colour monitor or TV. If you have an old ST (not a STE) you won't get the digital stereo music and some other goodies. Battletris also works on Falcon030 and perhaps on the TT too. Battletris is GREETWARE. This means that if you want to play this game you MUST send greetings to New Core, preferably by mention us in a wonderful new and mindblowing demo or game. Otherwise a postcard will do. The address is: New Core c/o Daniel Hgg Prstgatan 27A S-77433 Avesta SWEDEN  You are free to copy Battletris and give copies away as much as you like. But please re member, that the authors cannot be held responsible for any damage caused by this software. Battletris is not a standard Tetris game. There are many 'special effects' which makes Battletris unique. For those of you who have never heard of Tetris before I will briefly explain the objective of the game. Tetris was invented by a russian programmer for a couple of years ago. Tetris is hard to explain but very easy to play and very fun too. It's kind of a jig-saw puzzle where you control the pices (blocks) which is falling down from the top of the screen one by one. You have to rotate and move each block, while it is falling, so it fits the rest of the puzzle. If you manage to build a complete vertical line, the line will disappear and the blocks can continue to fall forever. But if you fail, the blocks will pile on top of each other. When the pile reaches the top of the screen the game is over. You can control the blocks either with the keyboard or with a joystick. The joystick should be connected to port 1. LEFT ARROW KEY / JOYSTICK LEFT This will move the falling block one step to the left. RIGHT ARROW KEY / JOYSTICK RIGHT This will move the falling block one step to the right. ARROW DOWN KEY / JOYSTICK FIRE This will rotate the falling block 90 degrees. SPACE BAR / JOYSTICK DOWN This will make the falling block drop down immediately. The score is located on the left side of the screen. It shows your current score. You are awarded one point for every block that lands. Every block you drop down fast by pressing space or fire give you an extra bonus point. Every completed line give you 10 points and if manage to do a 'real tetris' (That is completing four lines with one single block) you are awarded with 50 points. In the top right corner of the screen is small monitor. It shows how the next falling block will look like. This can be very useful when you are deciding where to put the current block. It is possible to link two computers together and play against each other. Connect a null-modem between the two computers and select link mode. In link mode it is important to complete as many lines as possible as fast as possible. Life will very fast become difficult for the player who has completed least number of lines. The status is displayed in the bottom left corner. Have fun! -The Gambler-