From 54684dffe09436269036f3c455f779a599b4112b Mon Sep 17 00:00:00 2001 From: "Kirill Lipatov (Leency)" Date: Sun, 17 Sep 2017 10:38:19 +0000 Subject: [PATCH] The Bus v0.9: playable version git-svn-id: svn://kolibrios.org@6984 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/cmm/the_bus/compile.bat | 5 - programs/cmm/the_bus/compile_en.bat | 10 ++ programs/cmm/the_bus/compile_ru.bat | 10 ++ programs/cmm/the_bus/draw_scalled.h | 29 ---- programs/cmm/the_bus/objects.png | Bin 10770 -> 10108 bytes programs/cmm/the_bus/road.png | Bin 7586 -> 7806 bytes programs/cmm/the_bus/the_bus.c | 228 ++++++++++++++-------------- 7 files changed, 133 insertions(+), 149 deletions(-) delete mode 100644 programs/cmm/the_bus/compile.bat create mode 100644 programs/cmm/the_bus/compile_en.bat create mode 100644 programs/cmm/the_bus/compile_ru.bat delete mode 100644 programs/cmm/the_bus/draw_scalled.h diff --git a/programs/cmm/the_bus/compile.bat b/programs/cmm/the_bus/compile.bat deleted file mode 100644 index 4d6f907200..0000000000 --- a/programs/cmm/the_bus/compile.bat +++ /dev/null @@ -1,5 +0,0 @@ -@del the_bus -@c-- the_bus.c -@rename the_bus.com the_bus -@del warning.txt -@pause \ No newline at end of file diff --git a/programs/cmm/the_bus/compile_en.bat b/programs/cmm/the_bus/compile_en.bat new file mode 100644 index 0000000000..448947680b --- /dev/null +++ b/programs/cmm/the_bus/compile_en.bat @@ -0,0 +1,10 @@ +@del lang.h-- +@echo #define LANG_ENG 1 >lang.h-- + +@del the_bus +@cls +@c-- the_bus.c +@pause +@rename the_bus.com the_bus +@del warning.txt +@del lang.h-- diff --git a/programs/cmm/the_bus/compile_ru.bat b/programs/cmm/the_bus/compile_ru.bat new file mode 100644 index 0000000000..42cac61727 --- /dev/null +++ b/programs/cmm/the_bus/compile_ru.bat @@ -0,0 +1,10 @@ +@del lang.h-- +@echo #define LANG_RUS 1 >lang.h-- + +@del the_bus +@cls +@c-- the_bus.c +@pause +@rename the_bus.com the_bus +@del warning.txt +@del lang.h-- diff --git a/programs/cmm/the_bus/draw_scalled.h b/programs/cmm/the_bus/draw_scalled.h deleted file mode 100644 index 11ef8be217..0000000000 --- a/programs/cmm/the_bus/draw_scalled.h +++ /dev/null @@ -1,29 +0,0 @@ -void DrawScaledBar(dword x,y,w,h,col) { - DrawBar( - x*SCALE, - y*SCALE, - w*SCALE, - h*SCALE, - col - ); -} -void DrawScaledImage(dword image_pointer,x,y,w,h,offx,offy) { - img_draw stdcall ( - image_pointer, - x*SCALE, - y*SCALE, - w*SCALE, - h*SCALE, - offx*SCALE, - offy*SCALE - ); -} -void WriteScaledText(dword x,y,font,color,text) { - WriteText( - x*SCALE, - y*SCALE, - font + SCALE, - color, - text - ); -} \ No newline at end of file diff --git a/programs/cmm/the_bus/objects.png b/programs/cmm/the_bus/objects.png index e96b60862d2b6aef8850f46dee399b1ad7920105..782f89c90875119b30e21d7fdffc95de12f3bf83 100644 GIT binary patch literal 10108 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 WHw&9Za!FZr5H(e8m8$y|VgCmeFG6bo literal 10770 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 EKP`@xIsgCw diff --git a/programs/cmm/the_bus/road.png b/programs/cmm/the_bus/road.png index b5ce1bd3adc2221525c2cfa39fc9a398b56af2a0..b995b9c3c8b17928234dbf8ca967528e0fab49f3 100644 GIT binary patch literal 7806 zcmZWt2|QHm`#))JDT+%aAxoBP-?!{pvZo^16GjqQvea0jsIf2E$xRnYma=A>lt{Lu z>|54Kj4cwz|DE@YZuj^1`81t5@0{m-p6|1Kzwf~t8J^s?_sCuZLH6lrYn(w4Dhz_` zxJkVe+?hNWwu&G-5hHzLP4IPVYs)-J&IB)cCRFTvgv`Z6)l;{G4T1#q0{JiB*Vgdm zvWZu6NKx1E=hf6Y`QpX9j0cag4i{Wq9An~A?uNxiL?uSYCWS}d!$-uMdxp5&NwbPo z82+-TrENeWk$`ao;ojOJAqWq=<^^sb2p@v%Mv%V{gbqRY5ri2*1Q3J^K?LDVA$U_5 zJc1x12yzrbL=ofwf`}mq4T6Xx2#7@zT9bm7rNK445QR5EObD{e7(pt4HF$>~t_r|U zU>rOSj001^I4}#0gDrq@upKZC{E>ieNJ5vSpnKBLRT=2EEDS*oT9$`4kHc#P@Cm;H zuRzpfuaMo;&<$aDM+ANXCjlB_@EUAK1-AoefbHlJA~}7x<@t+&;Z5(8o>BL zXdIvcjDt)8<6vtg=!PG=4z`?gJ+Q8f56;b^r~q9Y6zY2haf99f8{&LlCeXKm%+CTvCTu9JM`}WUfgx?sDc^|r)i$69h zLuQ??U}$#J#(YpJEn(75$ZU*`R=Zh8`|h{H$qpOh(RM8i_Q6Za2MllZ*lS?7uBvND zKF<5QY_slR2>AC_dFdlb@gZ(~kbmes3yJ^X`+%fGmC3j}c8-A~$}$@!195ZJfm4En zk*)dD1G>VOoKJPDcx(-RDcX6k_RPNE9hjRhS}QCUeSYe*e|xU@?vG7}z^(jELOBon z+EDp&n!jIr(OL^BGJSY}n6inJ*J&|Tu}m9GTp*VSV#0sUW4`U?0IazSK_^LrNd=Z_n`TwmfMXt|LXuhLOZ} z&pWsg{ArD^&!7g0=ML&0TwWCsUFyy;-@e8C^4St8aJEA`x3NPWCBr?A}EZZDPw2&>dp58dhr%1I{?O$81mg&}^ zVXjPD&sbrN9aLMM&1WKV{R|ywIT1rV)h9J>`Jqd5`D8X4>OHTn=;r4I^Nn>c%N#rc z99(Rc-blOkyd~tX3sim_pW{8nEliN33UZorE0hV@+VNKz7-gAD1!%N10Fd9IP%QF0n)(r(fljS+S{KWm=WB`f*g-oJ3bOS1WV9 zDdJn#0gg+#aXxJ~Y2ED#2w6VR&`o{pk1O8g)1y;zy6bOGu6tcETimUUFDE9Tl=zlhxMn(Fl=KZw18R#qbR)zgEyjXA0VD!q35?t%EoHnC{=Pc`Q z6-afHEX4|^Dt6hnuO3+~8vQcJ+@a++R(=1;hS_L;aujo)j_T;41p5t1_b#F7FTwH+P17bpJ-!?8cgky(daS1cdl~tA1z4Dtq<-FyCR-UU&gby?6Hp0T}mk*}`BTVcv zQ9IP?)indsox6=|XpNUoOHKQ%NC?Y)`na5R)^Z` zk)Bq@R~t;Pr2L`NvUQ|V#tfjt4LT>6FiA5S73q@m-IP+BD^?m6TAlN)SuD;QukL?T zz_q&`c-1DB{?1~3iKplBrBrOR-)#SIvx?{zk-e~ulh3ZM=%cOHiu+!AAvuiXVtCX2 z%J@oZ<7*U%4)BN${`g4Ru(5Vm^=oPSK`NU{&ta_dIlTWCO=}dXWBB@p1YHkrYy#nP zrCzx_bB>*sHdE+xtw>)+aaDZ$TnJ0- zwY5l=qb`<9Y_HwU8kpDN1fIJPHsp>e;PWPA)+Vl}ttfAoHb;q@?0{@~>;zU}sQ6oV zIsdtpPPQa($@tkTkJecTT}(K>weXV6;en%fOZ{{{O~ex&?QJ&3N3)~V7xAYUzps5) za4r3AvTP3Vp2x%y&l*Vz%~XWA%{(03*Q;deasOear`#v;(9~QX&vj*X9rLrz_SQWzH0JV&x}>;2J0PQ6gr&K=VJ{Z&rBsiTo&l@9kHULRY^i{kbZQ zRb2EPSw6OL98PQR8Ke2;Ds4_1 zwcCX=6Y@JQ@(y#heOD5>KDB^vV)HK7jCBWv7T}Hv2KB+$DQ5XDy4o#NCht6jdr}5= zem|z7Zm@N+Z8n6@y0-F@&-#mMmcfM^A<}fqhtk*eCsvIT?$PZ#G|2`cxOBKmz>h#P z-J_~0_>lvlQoX?U{m!-@mgV`EgP&zF^ zcWeL*m46>C7t-(^V~dcEp0LVjiNgLKPm1pUbcocT}<6Fa%yn%(_lHyLs2BoYdedO%I zSe(QZyOWnhF4pV+|tGaF4ptX7{U4I&tU}+l&ml^136YR=)3@HwL z?Mxh+ceuaAvqGc5wA`LJGXLY@h`9Xt$Pe!*iwB>zI0oNhoYvkMdsHW6JH_-GX4}eH zMtzCSrtoR=lbJKl>zlDW(>eGv0|x2z81>2Ixym#9$ThBb{vRioj$3-|o7hBVQDM)A zqKy5m9ucf1A*zBf0Qq>cp6u?G0NZkfFl^K@=Wf?(I|dfh$OOAW=w48WD%L8=eBc#* zshw~@?edk&Rt=v#TG7o%rKAj;*EPlVxePyf^CnYRB28nl`MmrTWnRR$K-YTyCN++n z%ri6B8th5cUu-@sKZOpZ^VIg;UU_A;b5_PPu}Cp{u~=3;6g*FuIDmqqWsSi7SFH}WBCe`^YAtr96KSGgubOV`X7x~{0uf4aJ0 zlAGboowwoxVZ*T4gKHU1we$~XHz-WlCvP4~3@A(7x=uw;n`HMh3=MXNo~Ts8ti{g~ zN7~npr*Y2lgfq(0{#>^-)hCiWzRRXUbtOaVK=wL=>Q$pOvATFjg)8itjwUU2DAavTdlQ$-~YE8RWTJV^S-*q!u>PCSD3R)>=;ZJPlFTM|;mIz2-|1|Hw zyR-g0&wbRzc(gPfnlSGH?-~Xy9Uu8?IqEr{_Rzl5V{8Id#;`=~rzB>oKJ*)ASoD_3 zGs~|vAG<6eWc3Aq#Z*!s-*b*a%wWM733mI>uN3mKy48GewpJxX~> z3iS$Rm-fp~aq_(yQ5k5P**Fr3R}~{$q0nFqKg?Y%wU9vGb(hARzS(+W`;i^NNy?4< z3x0S?_IS~rI9@s7*WDUcUX(m|$XorM@7yD_BU}#eEtugJWI^q=7n^Ij(vyF zaeDR*toS+YMI9<0Ylzhx3TJpRsI0VOTu(5%HRtIg&W<^u+W$FB^wnS%OTN=&V^0{a zQbhMX2+Mu1D{dL*@k~2|pX%1=qS`4Bw#{ZsY<(86c9=fGblX}Av^KJvFUC5Ofr$Qm z{z7a{nNkH|Goau#C*L@qDS-Y4MeU@+4B;xos@s~ivl_zV{Ur49KHAEikRT6H!Tb_K z|3+6!tlA*pda%e}I9*EZUJ1W1B^Bru_t(PMl{4ZHX)V;rW{C8rvr(YrLvqaQyIy8o>S#7oXM*q3@+$Vn4W7S5I1HV1VDM{z)}DL5?#lZc|5~`~3Xu%jl#78g z;m+uZE^gf#xmS(j_k2;Ue4(hJ>sk30-CqkA)x@mvxd+J{eg4J+Czp|3*-S-Rc%K3| zFRr{YfuQd%n>q7q?oV<@{~H(5icuY=Ius_r3mj0u2T)ZGl zK_KNqm&P{^JiR_IWgaj87B z&P1|1$6?;4D}q($&^|bXM&0M23Tw%$VIrvQSYC}&c7@axq$>XLEp%m_y8HW%x|w9JfNIL%<| zT_gMrJcbehkQpatj_b7C(L7IfvLc^Zpw;>dY@y$K4m>n_IciS{-N9N@2&&M__oe0Q zSZfu&3vPe2>MUKdtG$BjFY zwe`Z_2i8pP$zlViHZP&gn*iG_a1ZUF=O1H$U*tliE^!_Z`+y2e3HUf6H*j}0lS-M` zx)EjP7q>J)>(qD_e@4`(AgFsw2>-*#%C_Yy03SP5G0WuHXjD8G)5H0KYf~r+eg7_t zhPw>SZqdO$z)c%PaPtaiw+ZDljooP2eIpFmZx9Yp*-78jZG}YYX2x%FyDmIrML!x_g;8%w# z*;ps4MltUu6S2<|3eBOBuFK}l({snzH3na(WbN|#v>Xgialf-DFP>Gh``qgIL^9L? zH_>MNBIM>0_eOmDilww+)OB>cyrGQM>r$N3RjiWjjV9nBQ_7IZgEb@i*(S#BrzX!0 zvZT1FkG5}8z3?|+%jV|~zHNoY@mmMR#K&qxG4Bkv^=MV!MzkWov$VWA!~8@u-=2wN za`S?La^oTTF2fi`u1xIvTIc#Q6GTpyAg$nd_#XxF=Z6vQSP=MVCF_z=C*_oeQa6t6 zyodFYz@yI|tpL=2HER%s0!Kt&>T)+l?5KB>&rvy71?3S6cO4CHCfVxE3lXecY^!MO zn&(0K4UBF}=VHhPfm*4WbU?w>7l8vT?HG$CfkA%i49X!WTPvlmLS0Uz1@n-r8c zefE?PK8|Q4*){eRV(+ppU0=kbYDOqc&36UKuuXoAPd`9mlAixV6$ZZA=c@*mQ`@Hr;;yR0R`?pc(#Q79!e zOv@yzehc*2q_Q8?0G#vgqf80F<+^3@b5UQS6yS0(5CmoeuXGjFK~VsfIo5O~!Pgv? z8f-xqqZ_dr6iwlb8e|DY+oV3!mVw7wh#C;?QA&qYz?Hh*j;GhG(g5Rv%$bY{!$nlb z()s)u4=7hv>>R#=lApaWKR!M}4ip*G{T~W6YcgKs1OtLWbUy|tt2@75n@}3AJbK+z zBH#v(wM8fD-wQ@=$q*5Q?(a+aJbt6>Y}0lY`Cj!AO5f646jx3iq82t5sx8P0eHUbpcRxyR1(|DGcmoVO;O*Tob^yaAgR%LGFs1N z;EX$J>2V)`OcVS-SJB53Rm>7-{@T}K>htWkl(HB^cVU2@a}_XygMC{lPGy*yB=~|- z&ZP)4Dns?I(sCPC9d#U!ZVd%_3ZWOBT$U};z*nHUilSnRZqeHtw7iwFdd)|=VN1Pn zZoepvn%W0ryQag3>%MIsETEjme`7w_JA6$w|HFLClgUrXJymlSG9r%Weqvdz9^MC_ z&P5)EV)9cDvINnTyr%&vDL;FobIKkahmTm7{-&sla@)UP5Q4egkxoQFsDcBbTc2Em={JgKRhcZQd#tVtkD$&EOQ8>K9TIQeT2z@8rgfVt7QV1 zInKqGl3Bah|67DYatY~>PsBa+>4M;(<0wI;b%%)LaiC1(r}WszCzBiYsn?QK1f>Tv z7`11~L_`xT?$JsyIfV*0z0^NAwK>QbfR_LiCh-)2QP9*)=D!sOdga_Nmb8bR8^GNA zQY4mDau>#KGFcDppzX#Rd?^A*7Zk)Kg>zB5o9Vh5qVq4*vXs$6IsX~TW6?3ZGx!0- z>juiPXoYKbWHEsA${VsPV4ezAQ3e*J{cuU?J(i2PiQwIWIa;6tVh7B7bj(TW9DH_K zV4N-h-ID~~-V}O~$3PH2oF79DXI6fB9BFIs0pJheevMHEmNY z`gVl3GG#KI0aXxMQC|)vQ07`T)CqSO&%^^?)x@--%qR^*5uIPsbzP$Y!JW5i0C_-( c=|35>tjp`;lm+D3#iR_VRbBPiPGj_=`BMpN@2;InDhH&XpTCCY;tYxdQ zg$xE2*<$G0vV`Ar&Qag)?|%RMdd=%}<~j2`&*%9p@Avz2x^qtdG}jivEf558>6|%X z2tjP@5QOpH1g_A=*U=FW#15U)GdjrzzC)1l9eKkL*-Lj7ZQ?WyZXG-uAfbCHEHYwYI#+5t`; zaW0TlKidfB)xUoEzaD^h0I4c@{DnWb)4nAQT~zT&NPZFTbf zebRK9+lAu$Gg)fUGk3~gkTa$e4W`#>@U%Sj9%^Y)U-Vc?_c(3P#NupA`O1+P!TeciLBDi>S!Y_`moX4hr%Zm%%Lg4|tyRXkBEWh@R z(rc7{RsTqoRjMGQ(OMH zf1@G1Y_>(x3_nEcDJnMUJACc zlesvWvS<|^#+c06+iqFZ`v8C6$tJ;l{$sL2$m$%n5!)U0@lGMPtC>LSu667B0@Hg%AroVNa-CcWj(x1~q8CnE8TX&2kWT{Xi^rRBBU-q}2% zm09k7HfLjI_O_1*loW;18_Yr;I?as|UY&FB!EuUvigwpe9%QsBV(WzkHpppmmf>~^ z%3csMNPP5J#hG8mSVII>(xN1uGpkk#}H6 zg=6y6JFyDnSd#AvDI{0FOg>dG)6Ww4TUB4q=~H0giYQgFxo<7~$y-c=tcaT}tB^#y z?q|1zOKzPK2=tw;7}$x`%euYa-8Gncaj&Us%P1$}Wp^)YXOY_e>s@uF+Kg%SSvzjO?SBS?pJK}w!i?>ZwpE$dpooxT8bRp!?A1v zV(d=|UQWhw?OmDPA9>qcO0M>JKfJZmpx0n}A=&=-+oCN4AJS;fao=WUT}68z^tFX` z;~$f?a}#&VUbXp!zf|_ZM332RiG;f{(Z|Ku?KDTCT!t=IHqh7d$&`G@R_Y7wjRGDY z+qk8a%T89CDvjnCPW0AH-d>Czvz$7xr@d_}>?bk8EAh)>!nVs@EP=lDkX7^;$nfAK z6jQ(SJ{I#4n&dYP)}rlJnqGKAa&ypyX zw$rQ~6KOa3j?U+q+wL?84B?n9R;1GorlEmrT^1JPmYJ^&!Hc?A2b%2DC)jlKP*vUI zt?lqz!^21PKM^!8@zow4W7gjllsZ=_5-75P-Emtz0mnc1!nQuVgEs(ik+~)H(`cQ> zY>nhDh6$UGv>Em!G7`8dnAflX*yt`L!%U&^6rBNO#4+ZSCC1{?kSw7(Su=vzer& ziTJkwMnQ?a1bKB(FTVT3OUk8b{onHPgLSSm3bo|JwMDot`0_Xz=OY^?3jxY3}`tyZQaqf{)+4_l*k z{v*M>9e{Lsq?)FJ+Y1}Bj-!Q!3!Xktu^pK4_Vf{t?MjSB zUp|}|f)bJ30?jV$gW)`al`0P5ch61`v0PEIEKMcV6*^VeHS^=)FlGu!V2Q~ug0aim zxwpC!iJyNZW+&KM1tTS3W|!Q3^(D7?y+UC&_8`e%P|n`LJjF3>FquoiY2#pTh*mv$ zWiEQmV7u%WkRoEAgCr(D4nHVW-yesh+K&13C97baD-Dem zk>eRMW%TNbz-8Wi>A7peZh*!Z(l^VN6>*8Y#_5AAKtos!? zpZ4B-Vba|gB2aANHC8Yr`>@-b`?q^-_315HhXnwhz`0QBQ&Ku?DxQ`S1?Qufiwpnn zU4?2Cr(2{$y*`N%>0H<>yCkMoZJp{d?KFqqa@3)b+wc&Zz2IZaKTD?F zPIT6n7r>)IFyTp3up(wvUv<)r%9dX2)OhyUpx{=u`NqMTBBkXVh3k(M^T$6m%o2P| zlsfaKuY!{Gcu9<)FUts7Ar!9hmuFG)r=HN9)~u44^vdoX>CJzayeK{voj8|Y{&6Fp zFe%3+cJ_UQ-ur&QB6aQi$-Y6)Ijc1<*4zK?7J|f4L*`5y?P$K5@bJ|?sUtB*-AO^+ zeca1upA3xJonU#j-r1A}IIJ$BecOGFoo@2?RINSh?Ug%`7)B*A#8}j%84}$WYv?4p z?T>)$2winv^cg?o$RLc@3A5|an1&-62Eb8V<73B)FM|>CPp^=0dS-g{&PrHX3Zc^_09mH+@ z&ko75sOdLj@wNk5d8BdT)Z^n=n)uPCKEE1CyXR$y_KJcm|^NSaR zb@#-DtRuge%e~Z%CulN}euOdA%`%B%R$G)LGu1`Uh@R)GAM&Me$!@aq$9jF;^%PHG zFqcDx68C$MzBZQb@i}+TD)srG+@mfO`L`W{3di$qKk=PdU)vuX@hdYDBPSO zXh)Ipe$zhf!EXo8MGH_&Z4E<_P@$!mN;>1;Gq>PGoKQ|`=QZHy39+9~9UUy`P!&QA zkP5Q~K3$U>FLAMnYTIyDX&2{`ip)A?WaS1rGWMFkFx_xD$b? zdze%*zRf_sSX^0}i0^6sSVtTe;~yOG_-YUq!?psji!ldIpiBtXVj$^eo!GG`J<2Ibh;sdlP{oM?C@Sxqx#< zRR!a`fl2f_=FB+FKBoQQ#92lyp_o3(fv$2%ETCZg+B2z`}07Fx}M zH_7;}0ey|)$$g9L`p>rzX*;pAB&MV2FGvJN)7etVea{YC72`K^E>T$;i1ReNx^_Iq zQ)az0j5&(&2RN5XS^fxHKHmZ|7`J$Yt_jAG3242h`knv}(vNwR7GCD*CGX=O9WP4U zi}JzN7|k9Jm67E?BuiMo%eKBJY(xU^+MBBlRGZS}*;gg3pDKIb%Hpl3JfJ|{m%^?_ zos@2z4Df(CRi>|d=vfKt4Jf?fB4*ZM4B{Yy5OB~zZ2BWU<6g4;{9j`OMNIp3LDet0 z6*wm8G;kjBFm-geNLQd-6Peieoc9ShrV6F$NeDB$!}GXOG5(AjN<-G+AVFkCloGO% zo&&>K`1kMr<4^B2s~(T`!^Q6(L_hyfBsGI?ttX81?n46VCDiW^^46EA@5ob(PpBC1 zBhn&KWQjB$bd9I67!dO%Au6jNlM}I3 z!~$|+4E`?vggKcPd2^u19C5FvlTcv6_{N?P_;4Wmi_FowZQhLmzkW{8Jye%xIAkmI zcaI-um4CBPLe0dHyx(cB?cBpqw0UC_PcFCL9$GN_SLomiEPJ0Yn@c#TV6k3>t-4n02m_bEo$L@b~xa!Lh@T;(<^7D0`IMlkK#FMcz%MGr(zyo08whJ}a4_ZeZ_AVpz894&Z=0G7&X+ny;U}BgcrxW=^VVPJ15O ztBGdp_AeN3W_2e{I^RC&hCEfvd6oB5b?MWW=FMlcm2>7w(71|jls(?#QTo|_xHBlc zYpYt0?%~!xZ;_smT!f@Ov;Z{t#ge*>+$;cOwY7McqpRgg@PL>zj?v}LReR%!uGGoq zaTPQmQZIn(T>fsJ#|PZYMElcm0sk4am*g z4Hg`0!7aCiNj8tm0g`PVzqg*$SBx zlVvj1nwBGTyeLcwa>KuOZAI4cuxLSd;1dSfE^dVZfs$=yc>At1VTcOC4p;TZh+`*t zMm!F10`GVVto(rj2w`JeHf@DSgHspICvchrY3sS>V>pI+n@vx%{HmDnvS|^M#CUDb zj!d)oYzK}*I_TW=5^-zcaKZB#GkNOq|5Tan_VYCQV-QU&yKfSMTDJiShaq!EI^NY$ z=y4jd8_3?TBlp-4j9afZ7U{L5vJ73ewa@KoJ$m4>`?a#H>zB8OR%vq7+aKVhs>x_G zxe(P~#^nTFxHAweVrHkMrQhA4>Vi1h7&5jBr9$^ZcdnFyEc1Z4h z$TEes*nQX068GUGe*|Dyd)b^A+cQ(WyOuSNV^M@dtApM3yNB#e)JcT~)b zU^<>MV_q=$qVd;VE5a012cE$KIEq;nW|c_K0oecU|AKMuGqlNhm7Gd)_byLdTzA;x zu)*n7L2gt}!>Y4_60q#72WQ9)KH&1lcfadSdki4knTo>8jv&qJ?Ez(E!$6Df*ZMp=vRf)vDIZe#Lqdafr0GN_P?rYv(IR31fdlPMsd&ekUh$uCWcP(GF*5QlMX z7ln)J{VM(gj;DUeRust7>o-vN`&7j4$iVj#M(`k41vrL)Wr(9j`z&5 z6JANK4<%zfl_1~TD&1v}gLGH^^WUVxKY!Xp28DY0cMjIB3Y zq{|m3`^X2@Ukse%^atmwyxF+F)TP3?xbM5zy&@qFm&567Ut}%NE^ec-4A+5ihw2gF z6~ImAwuaS&i`SaQtYIa9N<~#N7B0Hp`18PqQiY7ZUh?%!#O$hi$4#IjNT#=IyNs_g z??2_9cVmuq9Y&;8&|hqz6Unwe^x&$I8xzrrN z0&MfY0ATiEBuyd{!5I=^O@>n9LW$UBxIpM}G99^q{NTvp;W#*>O-i#f=na}#BzmIq ztYH`7BH$DvEy@PP_B$BBHV^bl%g10tHE*a@(T%|d-(jua5dFROd|KoRX9($1UG1jd*Mnyj~ID)m*$CeLoT?6qLF z?3Ld^cJjh;K5njc=@sO7P}}?Ku75UbRS|S}E8O>Ypnsdfo_r-jdBhJInQuQ+kuQ<< z-w-ud;{LBYSk$9EBe`dQi$R^j;8*(H#S~Qm5b~VL*V5%r05(-?f-bn>$6G~ELrR6e z!|DOH!`%(nZ)wYh#Plg)6VT5F%l+=*XJ1QBmPprX@`2_%5A7L}wb?qd>o3mu81a&E zai8~o9xlOtr=+=eFX5tsMSQ(I5b??~?Ck5fxtAN3{WH?+08%4;XFYLFmS{4gaxaD2 zo7A=?f^G;j04^J;f6Zfikg_u6ggFeb_jf>)eG5>n_)e=8vWKe7MFh4}ZRW^9f7NJxJ2?Retsh!{8HJ150AjpYGc=don_step_y) DrawBar(x, y-don_step_y, don_w, don_step_y, COLOR_ROAD); //Fill donkey old parts + if (image_h>0) DrawLibImage(objects.image, x, y, don_w, image_h, 0, don_offset_y); } -void DrawBus(dword x, y) { DrawScaledImage(objects.image, x, y, bus_w, bus_h, 0, 222); } -void DrawBoom(dword x, y) { DrawScaledImage(objects.image, x, y, 39, 33, 0, 268); } -void DrawHighway() { DrawScaledImage(road.image, 0,0, WIN_X, WIN_Y, 0, 0); } -void DrawMenuBackground() { DrawScaledImage(menu.image, 0, 0, WIN_X, WIN_Y, 0, 0); } +void DrawBus(dword x, y) { DrawLibImage(objects.image, x, y, bus_w, bus_h, 0, 444); } +void DrawBoom(dword x, y) { DrawLibImage(objects.image, x, y, 78, 66, 0, 536); } +void DrawHighway() { DrawLibImage(road.image, 0,0, WIN_X, WIN_Y, 0, 0); } +void DrawMenuBackground() { DrawLibImage(menu.image, 0, 0, WIN_X, WIN_Y, 0, 0); } void main() { randomize(); - GetNewObstacle(RAND); + StartNewGame(); load_dll(libio, #libio_init,1); load_dll(libimg, #libimg_init,1); - Libimg_LoadImage(#menu, "/sys/fonts/menu.png"); - Libimg_LoadImage(#road, "/sys/fonts/road.png"); - Libimg_LoadImage(#objects, "/sys/fonts/objects.png"); + Libimg_LoadImage(#menu, "menu.png"); + Libimg_LoadImage(#road, "road.png"); + Libimg_LoadImage(#objects, "objects.png"); loop() { @@ -114,30 +110,28 @@ void main() { if (active_menu_item==0) { - lives=3; - level=0; - score=0; + StartNewGame(); SetScreen(SCR_GAME); } if (active_menu_item==1) notify("'The Bus\nControl keys:\nLeft, Right, Space\nPress P key for pause'tI"); - if (active_menu_item==2) notify("'The Bus\nVersion v0.4 Alpha\n\nAuthor: Leency\nMenu image from Freepik.com'tI"); + if (active_menu_item==2) notify("'The Bus\nVersion v0.9\nAuthor: Leency\nMenu image from Freepik.com'tI"); if (active_menu_item==3) ExitProcess(); } if (key_scancode == SCAN_CODE_SPACE) && (screen_type==SCR_GAME) { - DrawScaledBar(bus_x*40+100, bus_y, bus_w, bus_h+1, COLOR_ROAD); + DrawBar(bus_x*80+200, bus_y, bus_w, bus_h+1, COLOR_ROAD); if (bus_x==1) bus_x=0; else bus_x=1; } if (key_scancode == SCAN_CODE_LEFT) && (screen_type==SCR_GAME) { if (bus_x==0) break; - DrawScaledBar(bus_x*40+100, bus_y, bus_w, bus_h+1, COLOR_ROAD); + DrawBar(bus_x*80+200, bus_y, bus_w, bus_h+1, COLOR_ROAD); bus_x=0; } if (key_scancode == SCAN_CODE_RIGHT) && (screen_type==SCR_GAME) { if (bus_x==1) break; - DrawScaledBar(bus_x*40+100, bus_y, bus_w, bus_h+1, COLOR_ROAD); + DrawBar(bus_x*80+200, bus_y, bus_w, bus_h+1, COLOR_ROAD); bus_x=1; } if (key_scancode == SCAN_CODE_KEY_P) @@ -149,7 +143,7 @@ void main() break; case evReDraw: - DefineAndDrawWindow(250,150,WIN_X * SCALE-1+10,WIN_Y * SCALE-1+skin_height+5,0x74,0,"The Bus",0); + DefineAndDrawWindow(250,150,WIN_X-1,WIN_Y-1,0x01,0,"The Bus",0); //0x74 is also possible if you fix bottom border DrawScreen(); break; @@ -158,16 +152,67 @@ void main() break; default: - if (screen_type==SCR_GAME) DrawRoad(); - break; + if (screen_type==SCR_GAME) + { + if ((don_x == bus_x)&&(don_y + don_h > bus_y )&&(don_y < bus_y + don_h )) { + lives--; + DrawBus(bus_x*80+200,bus_y); + DrawBoom(bus_x*80+180,302); + pause(150); + GetNewObstacle(RAND); + DrawScreen(); + } + + if (lives==0) { + DrawGameOverMessage(); + break; + } + + don_y += don_step_y; + + if (don_y - don_step_y >= WIN_Y) + { + GetNewObstacle(RAND); + score++; + bus_y -= don_step_y+1; + DrawBar(bus_x*80+200, bus_y+bus_h, bus_w, don_step_y, COLOR_ROAD); + WriteScore(); + } + + if (score) && (score % 15 == 0) + { + score++; + NewLevel(); + DrawScreen(); + don_step_y++; + } + + DrawRoad(); + } } } } +void NewLevel() +{ + level++; + bus_y = bus_y_default; +} + +void StartNewGame() +{ + lives=3; + level=0; + score=0; + bus_y = bus_y_default; + don_step_y = don_step_y_default; + GetNewObstacle(RAND); +} + void WriteScore() { - DrawScaledImage(road.image, 10, 83, 60, 12, 10, 82); - WriteScaledText(10, 70, 0x80, 0xFFFFFF, "Score"); - WriteScaledText(10, 83, 0x80, 0xFFFFFF, itoa(score)); + DrawLibImage(road.image, 20, 166, 120, 24, 20, 164); + WriteText(20, 140, 0x81, 0xFFFFFF, "Score"); + WriteText(20, 166, 0x81, 0xFFFFFF, itoa(score)); } void SetScreen(dword _screen_type) { @@ -181,35 +226,23 @@ void DrawScreen() if (screen_type==SCR_MENU_MAIN) { DrawMenuBackground(); - WriteScaledText(10, 10, 0x80, 0xE8783F, "TAKE THE CHILDREN HOME"); - $add ebx, 2 << 16 - $int 64 + WriteTextB(20, 20, 0x82, 0xE8783F, "THE BUS"); DrawMenuList(); } if (screen_type==SCR_GAME) || (screen_type==SCR_PAUSE) { DrawHighway(); - WriteScaledText(10, 10, 0x80, 0xFFFFFF, "Lives"); - WriteScaledText(10, 23, 0x80, 0xFFFFFF, itoa(lives)); - WriteScaledText(10, 40, 0x80, 0xFFFFFF, "Level"); - WriteScaledText(10, 53, 0x80, 0xFFFFFF, itoa(level)); + WriteText(20, 20, 0x81, 0xFFFFFF, "Lives"); + WriteText(20, 46, 0x81, 0xFFFFFF, itoa(lives)); + WriteText(20, 80, 0x81, 0xFFFFFF, "Level"); + WriteText(20, 106, 0x81, 0xFFFFFF, itoa(level)); WriteScore(); DrawRoad(); if (screen_type==SCR_PAUSE) { - DrawScaledBar(0,0,70,30,0xFF0000); - WriteScaledText(5,7,0x81,0xFFFfff,"PAUSE"); + DrawBar(0,0,140,60,0xFF0000); + WriteText(10,14,0x83,0xFFFfff,"PAUSE"); } } - /* - if (screen_type==SCR_PAUSE) - { - for (i = 0; i < 8; i++) //calculate image y offset for current obstacle - { - GetNewObstacle(i); - DrawObstacle(don_w+1*i, 10); - } - } - */ } @@ -223,95 +256,60 @@ void DrawMenuItem(int item_n, text_n) { dword color; if (active_menu_item==item_n) color = 0xFF0000; else color = 0xFFffff; - WriteScaledText(10+1, item_n*28+48+1, 0x80, 0xAAAaaa, ITEMS_LIST[text_n]); - WriteScaledText(10, item_n*28+48, 0x80, color, ITEMS_LIST[text_n]); + WriteText(20+2, item_n*56+116+2, 0x81, 0xAAAaaa, MENU_LIST[text_n]); + WriteText(20, item_n*56+116, 0x81, color, MENU_LIST[text_n]); } void DrawGameOverMessage() { - DrawScaledBar(0, 0, WIN_X, WIN_Y, 0xF3E1BD); - WriteScaledText(20, 20, 0x80, 0xA48C74, "GAME OVER"); - WriteScaledText(20, 40, 0x80, 0xA48C74, "FINAL SCORE"); - WriteScaledText(20, 70, 0x84, 0xA48C74, itoa(score)); - $add ecx, 2 << 16 - $int 64 + DrawBar(0, 0, WIN_X, WIN_Y, 0xF3E1BD); + WriteText(40, 40, 0x81, 0xA48C74, "GAME OVER"); + WriteText(40, 75, 0x81, 0xA48C74, "FINAL SCORE"); + WriteTextB(40, 140, 0x85, 0xA48C74, itoa(score)); pause(350); active_menu_item=0; SetScreen(SCR_MENU_MAIN); } -void DrawAccident() -{ - DrawBus(bus_x*40+100,bus_y); - DrawBoom(bus_x*40+90,151); - pause(150); - lives--; - don_y = -don_h; - DrawScreen(); - if (lives>0) DrawScaledBar(bus_x*40+90, 147-17, 39, 45+23, COLOR_ROAD); -} - void GetNewObstacle(int N) { int i; don_x = random(2); - if (N==RAND) { - don_type = random(7); - } - else { - don_type = N; - } + if (N==RAND) don_type = random(7); else don_type = N; don_h = don_h_mas[don_type]; - don_y = -don_h+1; + don_y = -don_h; don_image_y = 0; - for (i = 0; i < don_type; i++) //calculate image y offset for current obstacle - { - don_image_y += don_h_mas[i]+1; - } + for (i = 0; i < don_type; i++) don_image_y += don_h_mas[i]+2; //calculate image y offset for current obstacle } #define LINE_LENGTH 10 -void DrawRoad() +int line_y=0; +void DrawLineSeparator() { - int y, line_y; - - if ((don_x == bus_x)&&(don_y + don_h > bus_y )&&(don_y < bus_y + don_h )) DrawAccident(); - - if (lives==0) { - DrawGameOverMessage(); - return; - } - - if (screen_type != SCR_PAUSE) - { - line_y+=2; - don_y+=2; - } - + int y; + if (screen_type == SCR_GAME) line_y += don_step_y; //the beginning of the white dashed line between two roadways if (line_y>=20) { line_y=0; } else { - DrawScaledBar(129, 0, 1, line_y, COLOR_ROAD); - DrawScaledBar(129, 0, 1, line_y-LINE_LENGTH, 0xDDE9F2); + DrawBar(258, 0, 2, line_y, COLOR_ROAD); + DrawBar(258, 0, 2, line_y-LINE_LENGTH, 0xDDE9F2); } for (y=0; y= WIN_Y) - { - GetNewObstacle(RAND); - score++; - WriteScore(); - } - DrawScaledBar(don_x*don_w+93, don_y-2, 30, 2, COLOR_ROAD); //Fill donkey old parts - DrawObstacle(don_x*don_w+90,don_y); - DrawBus(bus_x*40+100,147); +} + +void DrawRoad() +{ + DrawLineSeparator(); + DrawObstacle(don_w+10*don_x+186,don_y); + DrawBus(bus_x*80+200,bus_y); }