From d47e87e6ac3ddee0e45c16e24a22d9bc05c07bdd Mon Sep 17 00:00:00 2001 From: Zakk Roberts Date: Sun, 9 Apr 2006 09:39:16 +0000 Subject: [PATCH] Patch FS#4952 by Tom Ross, with changes by me: Snake 2 now uses external bitmaps for build, and is fully adapted to larger LCDs. Also some keymapping changes and usability adjustments. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9572 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/bitmaps/native/SOURCES | 39 + .../native/snake2_bottom.160x128x16.bmp | Bin 0 -> 4856 bytes .../native/snake2_bottom.160x128x2.bmp | Bin 0 -> 918 bytes .../native/snake2_bottom.176x132x16.bmp | Bin 0 -> 5336 bytes .../native/snake2_bottom.220x176x16.bmp | Bin 0 -> 6654 bytes .../native/snake2_bottom.240x320x16.bmp | Bin 0 -> 7256 bytes .../native/snake2_bottom.320x240x16.bmp | Bin 0 -> 9656 bytes .../native/snake2_header1.160x128x16.bmp | Bin 0 -> 18296 bytes .../native/snake2_header1.160x128x2.bmp | Bin 0 -> 3158 bytes .../native/snake2_header1.176x132x16.bmp | Bin 0 -> 20120 bytes .../native/snake2_header1.220x176x16.bmp | Bin 0 -> 25136 bytes .../native/snake2_header1.240x320x16.bmp | Bin 0 -> 27416 bytes .../native/snake2_header1.320x240x16.bmp | Bin 0 -> 36536 bytes .../native/snake2_header2.160x128x16.bmp | Bin 0 -> 18296 bytes .../native/snake2_header2.160x128x2.bmp | Bin 0 -> 3158 bytes .../native/snake2_header2.176x132x16.bmp | Bin 0 -> 20120 bytes .../native/snake2_header2.220x176x16.bmp | Bin 0 -> 25136 bytes .../native/snake2_header2.240x320x16.bmp | Bin 0 -> 27416 bytes .../native/snake2_header2.320x240x16.bmp | Bin 0 -> 36536 bytes .../bitmaps/native/snake2_left.160x128x16.bmp | Bin 0 -> 2616 bytes .../bitmaps/native/snake2_left.160x128x2.bmp | Bin 0 -> 758 bytes .../bitmaps/native/snake2_left.176x132x16.bmp | Bin 0 -> 2744 bytes .../bitmaps/native/snake2_left.220x176x16.bmp | Bin 0 -> 4150 bytes .../bitmaps/native/snake2_left.240x320x16.bmp | Bin 0 -> 3894 bytes .../bitmaps/native/snake2_left.320x240x16.bmp | Bin 0 -> 6200 bytes .../native/snake2_right.160x128x16.bmp | Bin 0 -> 2616 bytes .../bitmaps/native/snake2_right.160x128x2.bmp | Bin 0 -> 758 bytes .../native/snake2_right.176x132x16.bmp | Bin 0 -> 2744 bytes .../native/snake2_right.220x176x16.bmp | Bin 0 -> 4150 bytes .../native/snake2_right.240x320x16.bmp | Bin 0 -> 3894 bytes .../native/snake2_right.320x240x16.bmp | Bin 0 -> 6200 bytes apps/plugins/snake2.c | 748 +++++++----------- docs/CREDITS | 1 + 33 files changed, 334 insertions(+), 454 deletions(-) create mode 100644 apps/plugins/bitmaps/native/snake2_bottom.160x128x16.bmp create mode 100644 apps/plugins/bitmaps/native/snake2_bottom.160x128x2.bmp create mode 100644 apps/plugins/bitmaps/native/snake2_bottom.176x132x16.bmp create mode 100644 apps/plugins/bitmaps/native/snake2_bottom.220x176x16.bmp create mode 100644 apps/plugins/bitmaps/native/snake2_bottom.240x320x16.bmp create mode 100644 apps/plugins/bitmaps/native/snake2_bottom.320x240x16.bmp create mode 100644 apps/plugins/bitmaps/native/snake2_header1.160x128x16.bmp create mode 100644 apps/plugins/bitmaps/native/snake2_header1.160x128x2.bmp create mode 100644 apps/plugins/bitmaps/native/snake2_header1.176x132x16.bmp create mode 100644 apps/plugins/bitmaps/native/snake2_header1.220x176x16.bmp create mode 100644 apps/plugins/bitmaps/native/snake2_header1.240x320x16.bmp create mode 100644 apps/plugins/bitmaps/native/snake2_header1.320x240x16.bmp create mode 100644 apps/plugins/bitmaps/native/snake2_header2.160x128x16.bmp create mode 100644 apps/plugins/bitmaps/native/snake2_header2.160x128x2.bmp create mode 100644 apps/plugins/bitmaps/native/snake2_header2.176x132x16.bmp create mode 100644 apps/plugins/bitmaps/native/snake2_header2.220x176x16.bmp create mode 100644 apps/plugins/bitmaps/native/snake2_header2.240x320x16.bmp create mode 100644 apps/plugins/bitmaps/native/snake2_header2.320x240x16.bmp create mode 100644 apps/plugins/bitmaps/native/snake2_left.160x128x16.bmp create mode 100644 apps/plugins/bitmaps/native/snake2_left.160x128x2.bmp create mode 100644 apps/plugins/bitmaps/native/snake2_left.176x132x16.bmp create mode 100644 apps/plugins/bitmaps/native/snake2_left.220x176x16.bmp create mode 100644 apps/plugins/bitmaps/native/snake2_left.240x320x16.bmp create mode 100644 apps/plugins/bitmaps/native/snake2_left.320x240x16.bmp create mode 100644 apps/plugins/bitmaps/native/snake2_right.160x128x16.bmp create mode 100644 apps/plugins/bitmaps/native/snake2_right.160x128x2.bmp create mode 100644 apps/plugins/bitmaps/native/snake2_right.176x132x16.bmp create mode 100644 apps/plugins/bitmaps/native/snake2_right.220x176x16.bmp create mode 100644 apps/plugins/bitmaps/native/snake2_right.240x320x16.bmp create mode 100644 apps/plugins/bitmaps/native/snake2_right.320x240x16.bmp diff --git a/apps/plugins/bitmaps/native/SOURCES b/apps/plugins/bitmaps/native/SOURCES index 0718ffab86..d019cb8924 100644 --- a/apps/plugins/bitmaps/native/SOURCES +++ b/apps/plugins/bitmaps/native/SOURCES @@ -61,6 +61,45 @@ jewels.220x176x16.bmp jewels.320x240x16.bmp #endif +/* Snake2 */ +#if (LCD_WIDTH >= 320) && (LCD_HEIGHT >= 240) && (LCD_DEPTH >= 16) +snake2_header1.320x240x16.bmp +snake2_header2.320x240x16.bmp +snake2_left.320x240x16.bmp +snake2_right.320x240x16.bmp +snake2_bottom.320x240x16.bmp +#elif (LCD_WIDTH >= 240) && (LCD_HEIGHT >= 192) && (LCD_DEPTH >= 16) +snake2_header1.240x320x16.bmp +snake2_header2.240x320x16.bmp +snake2_left.240x320x16.bmp +snake2_right.240x320x16.bmp +snake2_bottom.240x320x16.bmp +#elif (LCD_WIDTH >= 220) && (LCD_HEIGHT >= 176) && (LCD_DEPTH >= 16) +snake2_header1.220x176x16.bmp +snake2_header2.220x176x16.bmp +snake2_left.220x176x16.bmp +snake2_right.220x176x16.bmp +snake2_bottom.220x176x16.bmp +#elif (LCD_WIDTH >= 176) && (LCD_HEIGHT >= 132) && (LCD_DEPTH >= 16) +snake2_header1.176x132x16.bmp +snake2_header2.176x132x16.bmp +snake2_left.176x132x16.bmp +snake2_right.176x132x16.bmp +snake2_bottom.176x132x16.bmp +#elif (LCD_WIDTH >= 160) && (LCD_HEIGHT >= 128) && (LCD_DEPTH >= 16) +snake2_header1.160x128x16.bmp +snake2_header2.160x128x16.bmp +snake2_left.160x128x16.bmp +snake2_right.160x128x16.bmp +snake2_bottom.160x128x16.bmp +#elif (LCD_WIDTH >= 160) && (LCD_HEIGHT >= 128) && (LCD_DEPTH >= 1) +snake2_header1.160x128x2.bmp +snake2_header2.160x128x2.bmp +snake2_left.160x128x2.bmp +snake2_right.160x128x2.bmp +snake2_bottom.160x128x2.bmp +#endif + /* Solitaire */ #ifdef HAVE_LCD_COLOR #if (LCD_WIDTH >= 220) && (LCD_HEIGHT >= 176) diff --git a/apps/plugins/bitmaps/native/snake2_bottom.160x128x16.bmp b/apps/plugins/bitmaps/native/snake2_bottom.160x128x16.bmp new file mode 100644 index 0000000000000000000000000000000000000000..9a4bda83eb4a3d63b69b4d1d46e2bc67e6bccae4 GIT binary patch literal 4856 zcmeH`y$u2}4245WK|#d`Hvt3Cvm+x=F#t$x!VXlxvtOKZM3880IOWHANu+!E?A`vp zF8XaTPUr{pCHkUlFqU%0{$<6k0*2f5Kbq{a}+`0HYKi}#>fDWF#@KBSlGRB#NBqiqIAW}^AUBin!?B@KptgR zxgK%eSorE!lQVT(tzxpert6j)SyMf+!OGNt$`Ub~?#jsFbX|wO?=cJm zLI@bg5iv$g(}a1Rky0Y`o9e$c2}zg4kVy>*p+Zp+lmS(?{RXw=h9p{q2wO^^EI>^O xF(v7EYf&9vP*z7CUP_A%(_4EB(<4zHpT%AJX7M+VjsiCeem>IClWih@mj#aZPVWE! literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/snake2_bottom.176x132x16.bmp b/apps/plugins/bitmaps/native/snake2_bottom.176x132x16.bmp new file mode 100644 index 0000000000000000000000000000000000000000..6849276b0c0f883ffbecb6946c753ad3e47dbca5 GIT binary patch literal 5336 zcmeH{yAc903`9)|8ACt`R{;f((X0$EZrX10ia>f3B$EE_h=l$lZ$?KRU1D?L0FY&)$1r?T>Csx^_7+4P<;1H-$ z_fEjvWaF-Dm;obu5!4J#iKmATZ~)Yp0&BB`u>RtXyX|^K?>+~fkEBZqLI?N@s7K%Z z4Bis?=Hdq})#NGXH3b;#-(WVHm$E&Xgn?HNm;q#oIjin1IpLOx80i)f>^hYIdYC{I z*I$4-YR&)+E{WqouaEU6w2u8B%ED&j1OZg~`16yBv<= zF37XTIH2Fr*XXOT#Tdd3>z9po5imTiXWvZbn*@GGz&p@?Pk-DFK9}zuhy3~84DJ11PI#H- z9cd0$xkaRe)(x#lK&zRFA*QA%-l*eoB4){`)RlS3fpC<-A`V5cGhsHKx(;C}Qe(uH yDpGHA0Kf>-*tUZSv)~iiO*K$wGXc85kp#X;VAgmuqSVH3{s_+|fubsU6TSdfka*(& literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/snake2_bottom.240x320x16.bmp b/apps/plugins/bitmaps/native/snake2_bottom.240x320x16.bmp new file mode 100644 index 0000000000000000000000000000000000000000..dae961a5e3dea907137e73f5703a873fc8339193 GIT binary patch literal 7256 zcmeH}JraU26og~z2`sFvY@KmDfW5uPwDJhv#NHFAn`{yu%BX}CsLLcFEcxSmOJKX( z&s{h+D3{0=#C;gMf9ftv9Q`T^$l$iNlh~-=ZkJ zm_u<#1%l{0IV9IwC!?O^7>SQ&LLzO{t;07+{SI5bapFaWdk+moD z-LJ#}R0WnVV=WHR!{*1so0%!xYnbCQHRJ4Y4bsyG?sGl@NaI!H&~l?Oa1IJ)L>neQ yyYabnQYz+9+);seZ%EIm*?W1_0!~S#2#lLRr)fLH^qVp6r_t*En1Hcp+rW1&0p5iG literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/snake2_bottom.320x240x16.bmp b/apps/plugins/bitmaps/native/snake2_bottom.320x240x16.bmp new file mode 100644 index 0000000000000000000000000000000000000000..8eaa4ed3fb4b7fcf58175bad64e2fd26216d9b3a GIT binary patch literal 9656 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 J-*M}u>o;9}Y7hVb literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/snake2_header1.176x132x16.bmp b/apps/plugins/bitmaps/native/snake2_header1.176x132x16.bmp new file mode 100644 index 0000000000000000000000000000000000000000..3f38d111293d9658770f5da9c27b82e34e1a7b51 GIT binary patch literal 20120 zcmeI2y>A><6vfwNWE%q!V4NZippB70DM*2E5P`-dF+_sS6r@Z9ZA54T5_F+TD2zme zw2FfXO(H5J5TQbJ`~^mCExE`1c8~Y?dS-VR&(6*a)~+^_`|i8%ym#+8^X9{Q?&7VL zR_}9$W1D~X`S$|W_uqlwA@Pij zLn4&yKYqM({*Bk3KK?`uD{O-U8kp&cn(wKs6tTRCvUIz``A#dza{prCfkIQ5k8-AW z2?H9|I2b>FcWd#~srB{st*x!yGCtsd1}4aHqUPI`l_GqO->$3_2|C~o5A{j=)fN32W$cE9jU`ILI5O1b zqws}1J2Sn#y?uboG8#KOJJZLGWh}mdT@{oX(#{MmbL1YX&GH{}YM0u&n zc+QO7SnXkqB#2{(J=lB_s~y%=C7s{rXYi(1e=ksJVo;q z7;zT+AbMrHOAFh3+^<&scKq9GP%_>VFE+Q{@26BhLKssIg-kShDCr1an3@!> z)04(2D!8eR(-pJX3dkbCyL3WVG0gO+%1R+>bd(-MlbDM1r5AZ9PXbUUzMLH0jF`Mj zod1=4$*4g=|jt^Vgq5R;0R_@;~s?h^AZ+p`s!R`! ztw5Cv>)iZ&s{c8A=JfCP)@b4M8cv>gw%49~Ui&A6d5Jw6)MO;i1n{PTV<*qX* z23-B%ed>T;Q>Z3_l^9S+`n*fy*XTi?WQ0~(s&y-=lTIEzuz2bzgc1`$46E-fa}UEi zhcB*uBxDS|f}o3lJkyaKj3^RY^l>CLFI)VQ0?vW)aUx=3bAbDp=jP880*|)aYnR7J?!(ny4qbKUkrITS|r&M zu~cV)L6dlnQ4bMeV7vl!%4jSeYLZhA5(#Rd)T*%_uPmTdnR0@&Y z+@|V|S0LO%bDyk7n|LcrWk&yNCLkG0&FF$G3jkW-6eyjxQ4bf+Er~%v!7oi-K&c4= zO=-Y-Fq-irV8)WNyO^lNazTWj!bB)E>D3?0(8DaOnJ)}zO*DxlS=c91izfgyKlsqZ z7QVBKdZ5exauYOcF(XoDn|+=|>SNfG3-f46Z=$g2)kVR2(3?zahJgk&NCAV1#;OOH zjdb(+LOfbFI-?_lWWhtRb^}<}a00|Qy=)8E!jW<{oI-r4H$KsP5iCBn|uL(E9j1B*hi zg)bRMA?fP{;N>P5*OSwRCeg=A_`t6Qiav=1Nw5{rYfN7<;>Chq>7j?Tw_|vS0M(_V zyYd?hEO&o^dh`H67`nd0J|2ie174V$(u4O9n#72DUoSigX@RK=5PDz_p-C{27}f(_ z9#U?ChRtc{?B?|6OouP+`5G(wBm?{jJrKiXg0F5ZJWzVjJ`*n%#0!ukG5Y3QWDF~} zT+j+H&>=BkYc3Io2IACQJ79L;{y-QYzF}avbb_>)f};Ykg((p0!Rlfe_1-X3UbsWC zF>%?Vj{uZ_C#?r-DP9+(2fDQ90AgeT5@1gOqug>qgx+bh62xFVKs{Y53k;es3{hzh z3>L^DV+b!8NBkM>DDNMjJF>|-&7k!l2Ge@bB?ANxVYu{whhl1%NIYM#Y0#^$ca@C# zB)aM?S7I^aX#V!Y9bPaN`x&i%F+0lpNuA^D`S1vFdQwoDG|>QEY7(i9A{K#OoRL;U zf=3#V?EnGN^p}8$mdCEQTzOVFdJHe*-@CMOVqt-E?NA?vFmS}bUvR4GL}qIC3V0tq Uqp>2?TduLDHUU2x6==2o1@f(Zx&QzG literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/snake2_header1.220x176x16.bmp b/apps/plugins/bitmaps/native/snake2_header1.220x176x16.bmp new file mode 100644 index 0000000000000000000000000000000000000000..6e13c6b00d9e8ffce5b3f7bd356e39da618d28f4 GIT binary patch literal 25136 zcmeI3F>D+~6o$`b6ek8nfN_d6fE*(MDM*2E5P>EnF+_qc6r@Z9ZA8)rB5l9gMgNHzW z04XNjw+*amgeC%Gia=l3#AFxC$N#l>bq*P~#Y|(%Mra~1as)(|pju~4m~}{tp1a1K ze;bSk*wZ#PiLNC7@zafyZ@&KYfhVKc$TEKLhR@!P8qF{fNS2P6;@rU6RbkzulqW5_ zaJ!+r$;@Xddsj<4v|IZ@_~pB=77ic2b?ernM~@ztao`7U_{4MUsF8<>K(cfcP>}=4 zfSDf*`p%`>F#8wnGu`^0$QlXJ;fXh1yL0DG88B|}floZgjv9HG2qa5K4hi@{!w7rz zs*3u8iL}ka0voZk9|@}RS^njD-}K(q)zu9=l~Gt*Tid&5Pr=}us=g6OkPciX1$)M9|@J77H@QTNDO$+I5`) ziDxtolf@BES(_#u#-M&$cEzP-bHLfAmjr$1{29JP&HS$KtC;G<}3j z*TNviq(Ye?rAde9j*!D+1413BMh=L2+2F7aErV2_h#MhPfiMx$##D@9MAlklCV__qfv&x*LC7#n#>B-gG>Z!#exM|($nuMSF-fMpa@LJW zKw>V8obfYq4-bJc6Dw*NzYa%0MKIO`HRT#IDf}Ri*M+m~3GzaahOir z+MPb6eS3^yM9wj(XzNPq=3-JsWLmijA(uEbO4g9q?&!fukN&Hbb=B6}M8lIT_6UXF zL0Cp(suUU9o9$|6RKwnhl@~E&F{!vwWWYp{YpXP@21K%$Nt(o5DDrWSgF|fS)IQZ| zOc@@qiAl#;X6Tz&6M@|vfj{rwJhOCacJ`Sq-4e%`CN!k^ZjN3hbKlu1yZ`;SFD@*M z_R}!^3XJABsU$VKv(p`)vZa&nZ1bmKG{;F*c(5I~e&tiX*rQkc0;IkziGjw(eIDQH z(RU`}n61GcGy9QVMLCooo$Wlj8n-;@DcdwYGcz;W{An1!0-K(m-n64J8O-dP=2HY` z?&L`J{has>G!W7!6Agp=KNNvkMbM)7()@E2Wl39PfW#*+1d4JfKRRP94=K;JO&QxI zHfY*Iu|Z?Y&+bf-(T#4lOWMIn$%czvRqvLH*lzz@KsZU6l-L)*7(&p3D+Z(GD>8ZN z_@XH4hG_X3MQ)O-hzE+|&`jE!{YQs!42fliT4KsTNSkzKA*evbx7LxNDDLRB6Bl?o zYhzBhAW%DZTv3HL-#Va(EdLHyWRfcD%blRzRwYDiEOX6enmRnNLvyq6th?pN)an9l zCiTR}+|tkv?W7Wcp^lYF=!(d3r(G-=U9D`9BI3~Z*^{WF7O;`!NAyDSj%SjYaxDfk z(`AI<3cZ$4Q>4o`>!$==xTzJBGPY8!?9fgs5yrtJH=kMJ#0-;SorD>&r@QVT$3jPt zsV!zQ#zgqx7RZt1Unq*w-fK6`%bj2xPcj))gb;J#fH8F~gaj&BvLsULQSlLxBKmmY zrdCY09c3%0o5-Q6baqurfv(G4C&5o&m_g9zJqSbtJaFi#xhN*RmQut<`1#uHR^W|K zeHegAuJ05v#uC9yQspM)PS9?X30mb?23hf7M%Q2UE`)?4`W%zkaLMMSkD6{MCbizi z3pe(1$Qc{Gl1(#qRBp;Z3pPMPKq9Lz!2^e}YdtaVyG~+;6MulDxmeX>bj~uMJNc9o zGikyZMr}87F%$(d34$NqcfB@32m@%OwwFos9Iw%0k}9peII(9r#K4+LgmO~`40>wJ zTmaHcf*(~1EEJg;1mR>26qOqX9>i?(r(xCJp9Hx`6u~h?W>OUOGO5cq9^8cHViFDM z&}y06ce8j>tCv^Ta+6Z*ZPHU#JUeQC`{4!;Vn+LEn0^IT?QxChQF}>xs6R^ps6>@SDL;N(5T1{{e2dGB*GK literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/snake2_header1.240x320x16.bmp b/apps/plugins/bitmaps/native/snake2_header1.240x320x16.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d1b87728dd5f9b8c640608d7b28a2300775ad14c GIT binary patch literal 27416 zcmeI3!EaSX6o(&6La`d6R#>o6Q!vqxC<`MP(G3Ds65ZiKmk`|&VGAa@gO#|zL}JoV zMcqJLnP|k7apxakYS=bmFMjX+dVf8g_ug&$df(jFc5ZHO&zw1PX6BslPUpVccjC;< zg--7{%5|2XC4QdgXIE#2Yp3(i`A+BMBl_tnxcqznF4x%~XMI*R<#&m|q({KeA~059 z7SA5H4Xi0biNFL#U?8aCc^T6AVt|b5Y)2&l)y!O<-C!*QNGJf!e&;E{zX510Tmdc1nGO2D=SZ^t%lvbM! zH!o!CT_w3$XGx$=~cmy(}QsfvU2`CX< zWx+~QT0iA(!-{8nMz`Xp=h{_KphnKSKE`vni~3oV+NL6qA(eC?x*|)`P^H5~+nCZd zXIlAK*>c;7gke`2$~nS#aDL=2)|^E#Xe0s|Qb`xXh)Te-C4!E1&QZpAi^8x@mt9vd z(*>Hs^EyL4;bwVKX@qJROK7CYhC=5q5MnRZOQ~Yw8D-%)iOCi%=1iqnid>-?$R7F; z;@S1z`=r`FyPE1iS&7}>(Lcq)a}3DVm9wR?%TRSBXsyDp2js}{R1d2h_E<%qbQ-(J z@K7APEAsdvkS&!J%iZ5XizQLY1iwvAR{rG^SqpFMRQ<+Yc$dfPkH(ki^7(TNavnKb zDr?Y+JU23H`WkrPT>7M!U+2H#UEcis{NmzbBUIxDZ{_`966XxXoT)TR17Sm%VZOt< z;HCfETgPXf+&64&8`9$kZ{`0thDCd<`jX1AhPOB`5ojd>^VdGxRUOBV9{J6p_gSf;2D9K1UL+=lti1R2b(C}}&Et>lRi{cfRdj(*+G6Qe2r`qycCUZ`d|Sh2R0+=x zCL@GrM}VRyNOSZ_+}fSdw&|UyIt9pLMk^0q?apQU^&V4zOtP4x zc?LWdA~ar3p-TiR6v(vd4@*pX>_V0oK6qaMsK~O9fALI~y<$%q&p^mr7&+r-;&z$MS&T4NwlnGmZEu<21`yY&fcqtXKn$Q=k$hwN!j6=6Wp0RLuSO4w=m++ z*lR_N1QJQV1AUW0;MDRfO3kyj9FU9#XaQB54FV`j zL5^8OxA4sJP7o9m*n>}AG_bUaH}tH}@Fs5cMh0A2U=`kao@1zmE^g@sS^kBw2=Cu- z;GD5F_y;JCCz~vc#U#^V7vU9E`01~_HV@{R;n4)+WV3-@Jk!?OX3qs>Jfb(-NZ29k zGwA9?FoO2C(2EA}VAwHnQ9OGMr-+Tv^?t*xxHa&p4GcW9C!vTjmI&sVDmNiJTbgHR z6v-^7Y@7R+Q}h@>WFpP- zpm{?Oiq=42O$f4Id9zR|u0t8cuv`+iXS4X^|)IMEgYY&3Dm zgjGa8pT_QK;seU Gbp8j&&f{7D literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/snake2_header1.320x240x16.bmp b/apps/plugins/bitmaps/native/snake2_header1.320x240x16.bmp new file mode 100644 index 0000000000000000000000000000000000000000..54c00262199713de4aa6e43c5466aa6e6edec3f7 GIT binary patch literal 36536 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 F^*=Mz{(1la literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/snake2_header2.160x128x16.bmp b/apps/plugins/bitmaps/native/snake2_header2.160x128x16.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2d1c3187996aa161eba4b62377c4ffb519bc0d4b GIT binary patch literal 18296 zcmeI1v2Pqj6voeGlsJGQkbxo%Acq1(K?;O}Fi6OP08KhmK$!^IKxhLJbfF>?0SO_U zFtVT_qCx^GRJ8mBMs6*+C;aw4@8@^3cYD6o-Eb#nwVr$P-kWdUd*965?RxX_hp+Vp z*G1ZO{=VVwDgIV^YqY)ICidUY>TjT+`TO3_wCg{v`>rkJbNMP@5)p_Va>cJRv4b^5 zSc(daBu@MuQGEZO9{1pqb0yXqdlq3qDj=pr&@o@4Y`|KK^T>JdG2}ePpRsXBgp&N{ zPv5@&@{5n0dnmefmcaoH%;rS-HQ7>&2_-mf$m(GNh(Ty08*ZBG_cXO0(8pglb^TuaVIm;|!o}iUJmaR~YlT zJVkpJ^Rs41jVV;^SX*f@>2lXTW^H2bHOBE*wm~F}YZ+Mh?YypI^~O~=A%Y>+h_#92 znjnqUC_oI=oLWA#21o9kX8XW6i>J#ewXR+QBp-GU@ zwA0kt+MFwyI_ci~;ZFb7C%W(6`9f9%D{)AMw0Co+##~&n&h92k^zC7fv{vYYCuQ?n zY3d7QEmofqfo^98+Xp5S#YsoXH?F>01vj`ho_|h02(_+3K$AF+Xa4K1|3;_-jY)%?sGyKSm)3wWNRiaIJ6z`bY$2P6mQd8w!e*{*JyJAG$ zW{^{90Ezr+eM(8|Zp7qW6R#sWujFw9yFLHTmfvit#oAK;q-%a-**nXCkGuesK0*Gi z{}u0=`u+ai-rhK}rqY80TDSLCv*kBuYOd|b;-gH;p0mqK+BaXlwD$11aj{LM2M4rn z@1JMOFEw18)N&HKuyf6v--XRITVNkweed!s8=4OJ{Ns;qzrA(o;?d7n^q*h>+dIM=-u#)9B3vPYdzm^r`Ac!-}k6{HfURrlHTC+~h;J(rP}f~S4(?5Zl@ zyy%`Vokei_>zD5xIl{GfuAGElN1ixauVwJZluxWP=eHRTITEw=4G-`h8DXvLB&nVK@zHX8AZ9yhX9 z>k@e}U_z!i5?nNUP838XY;s@Qz9N4FX=qLQL?}BX@sJDWt*r>-_*MK^DT4SF1Cb zC>1CbC>2=13h?!J`{qad14wuL2d@6xt8aWF=h?@PKl-0IzUeY7HKt ziaf&#Jg|C(=UG~wZY28|C;rzDI`oQLQ}awjmxZA&G|_!#{Rz7AWGph|g2|0QSAfD% zi?a|)JEsazd=m;ya75*`ts=i~Y;K4Vg#ll5d7+^$2z14%`8AsHBjB9UDX{Goh!j}n zTot*r9)A9@HP(jSY#?LOA#8s2rps%9fd({45wcZ)?Z$ZvWoF8Bz!7?FZO5Y{ntd%n zhcj03D`zV;%76wbLWT-ZcG00t3SW^9kq*Ud)wq9sM90IKf#O$C+R;uy{K}-(rXtL# z0@{6SPj({pkBo>8(TYCdmv}gqx%JiTf#O%^Ks=oB7a%P@y62QsfprDgM{uDZR8~q5 z9XP-&nkK(q8}S?#znF9;0Ag4H;$Te?=3N2ki|jC+88N?Nq{*+2Xb?Pv;o=t!Yeu^` z`TfkM#;V)9e%@*RZ}GJUIb-1kBJ@jG)u0QfnAF8n8#&erE6PX{q@xk1lIh($ literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/snake2_header2.160x128x2.bmp b/apps/plugins/bitmaps/native/snake2_header2.160x128x2.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2b5e726d522e734b551f0ecceb8193b6d6265c58 GIT binary patch literal 3158 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 literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/snake2_header2.220x176x16.bmp b/apps/plugins/bitmaps/native/snake2_header2.220x176x16.bmp new file mode 100644 index 0000000000000000000000000000000000000000..3f71108eb7ae32e8aff11eaee556150240defc20 GIT binary patch literal 25136 zcmeI2KWtl76vpkbYEwWJD8SGKkjucIfewhYqOe3zVCfbHI<|tfqO1i8wlYzMbU;WJ zsUldYn2E-6!bI<+mz2E)bx$$$ZTz%zw zqkCPXZ1M9qKQHjpY%EhY8vlOOX#9RwKV1jKKaYN z$98}{X(R(j#6VxMNs~QU?)}%`?p_M+n1#oYX(R&^Gaz+IRQno}%(_a8$i3k1uLHpY z;^`Z^L@3#R{`B2DZ@%%=xhG=S#5Opffmt0WJ)Q__r4_Qbj zEF{<{OXJ8;lS|QndYVRMcX#*nsZ&EHpG|!ks9`&_`xb)?oEUDhVW*YW zciMJ#Iu@EVGQNGBF0`AXL5pxY7)Nt?2v0bTLm8-HI~YO=iF%NSCS9&N#!4Gy2?i04 zL1YXn=_PQCqmksEhd6W<8DIu#*basmq>7Sw9EqXJ^Bis{7_?{%8ng#p2ohvGsmb9C z*V$Unc31{ObW&0jUB=?ULtw;F?3Yv35;D$XugOOb*4uYK*Zpw)YcYUfCjli|W>u|o zJEVuG4Lp7IgMR`-I{4i;na1pRiVJ69c78{Es>fcFw{P%8ZSPun?Nu!wqwqBdh@8yO zW=i#Jhu4l#lE(oFbwxEXAsXcXV0VGlLE{iLe9()-&B`Vv!b3@W(ke}}npJh&+O|V# zv1TxM7F?BzRIN^OEDs=2lX~Lhq;xf6@|_E>xTpSX&fELRMbTt!+Y$AEW=d6SGD>A) z8}Pmtfby4+e`|lscP{OAduwZJD#`>0w0Zj;XHhg+=XO{ReFcNFB$Ya=e8KwO+n1J~ zJU3`=WBI`WZQj1`UKCBT?Xi4~jXs_%sa_1Z+)zpVCWSkO$5wvdex!fT)V(_Kx65|A#eC-qwmYD z=e;j%lQZW+Ym(=VRL{Ct9c#4ASUVnR62Bf#m8Q`Gh7D|;7Z@cP9X}I8@8r z0se5kcjr_7u}63O2T1+5r2aOB1m5%bRgeB>GBRTi@q`&iepLl19F+!-P-&lV1|C~F z!}~@`-sH&k`<(b6Xh=w3){8FQ|4>EDsv<3_FSVYdsz~}`BScv)qX7+)Mlvvj0n!?0F*38dEFpA-Un$fGI=;!DGIVg$ zDorZbPW3XNLDEPD`Z9o2Bq1e3G^Q{~NJ2%Hq{NsfeSF7*n~u_?pp-d1r~uWZ(oJb3 z17<*3jx>@4 h00C0TL}(Kv=#q+1gaRR1 z7+KH|Q6W);ik3eB8M(FO9`m{T-ursIckg^L_ck`n)4RRd+1c;x&V1k8`p%cHEUfhg z*G1YzUOT*=?N1$3NCorlYp~-3PVK6oh z!->sXv~P6#e?M9yAp$PH`ts)H<}8SO00T^rqob6&jzG0k7IcDpXxQDTUPDnoAqai5 zP}n1-jUz!rZiO%8`7@_?c6JVMaTcB3-QCltPEA;R4$V9Q6;dhYm`D;(B6!Gxm1gPW zE%zrjd^R$=eVhTbhoZoU!21~8Ty`;e7dbks2vkTVF2t_LC21Ja<*sea(nELJVC)~c z4I-hfWum|lx}o!)T^zcLG?+;QDx?w@ZHy|2XG;WKQ|?j5phcn0=@2@Q8BOwe%1|G3 zvpT6Xg(h&UU?WrRD|B{&5WQG0rMd+&%H(qqlM~vlnM!df@(RsZ?x8o*i z*EAQ(M(n>we7ec!7?6`IS4(A|L(NrC>j3=*ggkOQ<>3I}fUD>Wr_n`)KZ>Kfl)H;S zwNy4-?!Sv#ltd{D`u)qz3SXGWD!kFD{6;VQmdDQ@GcVEk{c{X*9l2U6Cr~T$c_zEY z*Vqei=?gEvu7AaEdF$)zTU%Q*VKq3Qn{c z&CR*He)BWBx-i4I>CG`01b2}=D}@RXC{iPjB-a_a`}Hl9&e04I@)5(n*d2Q`McF$V@fp1yZM9B~$xk$p z^*M!5gwggXbQb}t2Ly($Bu-xLi_c6^a={UwRm5oNcDL*xe>VaiPI8|jv zsjik`V|5t?r;8OP=AjYrvB8!~$CT#{W*Ol`*Jn1u6AepsJbM)oEZ^d(lCeO{$jDRCx4x_QGG8+jd4b^`H%<|*sG^@f<#l*4pMhlx#>HU+z4**rADg`fl<|sawvmv0 zE&`I>X(9j{#bnAU$L7&;iXH=)IZ7}Ub7nzNA2x6*J~NBkkA@b5C4fNb#(Uc$N8Mqm zCySxBS*ib@M?ef|tCOy!q95I8sUwFT2OlKzxp6 znTqNHC_amUV+kfQ`wkP*lT{5K-d>-_`wi@Ub~ literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/snake2_header2.320x240x16.bmp b/apps/plugins/bitmaps/native/snake2_header2.320x240x16.bmp new file mode 100644 index 0000000000000000000000000000000000000000..a7b9fe82cd53794222d508763711edd473e23f72 GIT binary patch literal 36536 zcmeI4F>D-F5QfiXlsJGQkbxo%Acq1(K?;Nu2s9Q1Xy{Ami5D8RB1euDK9x!ri$vx)V`+dL1Z}-l}Cv;lp!T9OR&z?MSVs&+Ob8~ZN5(jz6Mou!viPBC4CW}C8 zOLvHZ3ej1N)*1ngPrW;^|0BlteS5#}vPVWtxP1D#wY9ZL2zOr&a*|mS{r=-u-76o( zNonH5W5d0-KEL|w*Eih6&~PF->BU2Unz}03VR3BQZ6W{#pImtFgLCh279>WdhVVt0 z7KYeVlE`&T+rrY-trqe@Yk26Y`_&cwL-4P{Lg9`Qb{-k(@>ThjdH%@Zt*xzn+M7gU zdwcuvp+lMiF6QRuu3fsQCI(H>gaJG88Bd*j2KJ+e0K)Kdo`362x(K-c=)62!@t|uw zPcJ@x{LzOwBg-*W+EYaUE&v~P&c3t+9b$p2NP!)kdIPft8u{{iSb1aF!8jQ!x_LkN z5n5QfQi_Em11E;NY}jd4`c@l_YG7Z#&Wvv_PcOB*qCt;xRyn3~cnT(hP#DpS7&K*@ zFEzPBQ=@(zfI)y{YbUG1%))h%!C`4k6#>7ZnZ+!?HMU;Ya3uYrO>+d5#d;u&h2d=V zMWUx@Vd*l3)D*QN4_!Lkbc|JbAlm&LdmovdM8=>i16u=uiNpv*=&;skLN4^V3d1I^ zYp#w_{f$u6^{ZYMiC*kp8*x10bCIZqO>}Zp$sa=SDC-g$MV|Z5+qh2oqZ@=-|=?pSjTe?gq?L-~nY1A72 z;yy=dR{48>Q|z3Tr+?t=o7K;lkY+pjg(fz}Fco)GPy^kZ7<%6#OqPMlv?3ez3%~ev z@;F)&(r>YT;=`srRRsLXWfp3&c0t-)L6EAmIMRnEJo@dHcgtE2upd<~r?_@eW{TF9 zZl#(2QAlZ@+*9arQ6qT^;1%!?|(fV;79!JPvf3J z0NqJ$Xx6Hn($lrJbcaYO>UScK$y|*G$>lF*`MGow)!^sQ;Uyr zVso`HX)Zmx`%fJ)Xc7-Z*Dk$}eSW3-&-Zj{tOhDl{*~94iR7v#c08Qid1Uym2zHFp zYPfEr7?sULVAc>o2(O-5ayg^^A`lDH@}c$>!ntq$$ni%O1Q)~UC6Aicud)q#Aq4K;&G|I(;NRhU8-HMc`35!$sg%F*McIvkgmUJcp1p<<-G>E>~ z6}w_eZrZhKGi?2mgdqeMn`iveFJt|&*E8abN6h9J8L8g_kZdLbbp%kKluNnfV{g4& z;wJzl)&-?v%_t=4%`;O-zl`Gat3Xo|NkUTTWcK6kRk@v zLDx#jjb@D07FzQ6<{9*)U)5`RV;33d9R=ak?CO#dLv_exD5WEM@7STLYQa7pvfCRoB0@@b|Nsd2uPSJwFsGFde;k_ cq*`cPuL3zO>X~INA3PCA1QLNeL7>z57aH_FO#lD@ literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/snake2_left.160x128x16.bmp b/apps/plugins/bitmaps/native/snake2_left.160x128x16.bmp new file mode 100644 index 0000000000000000000000000000000000000000..1f35a950f6a0d649abd28ae44a2721b050f7cbe7 GIT binary patch literal 2616 zcmeHHOAZ1t2t}7JTziC`z|7jciASB47clWAUc-@3(IPZlfTpDxc+k${rI+h+03K(w z4HtdhaP8oP7GRH#$59qL#I%*beQa-#sSYf)Hkm&cLjFg9QpkV~QSMAcX)f(qK4Zhm zv&c}9|BrEO++FJb17;0>LSBGURtI#5a-1Vdb7{}=85>rfMTUyif5W!xMd?3KmeCK3 zEP5p+kn7iRZaR|Z&s5&e&+czdb9br!XZ%(FiGhHnuD|sCcA7JaEd39!&79>)%q24z4}1BkhRH~@$l8CZZM149E){xBZ|g9V_3pr9awl9CdGv9U3Oi;D|G zXlN)yT3Q-Id3iZQM@I+4%$YM8R;^mauzUAzhBIf*Fx7VORE*#W7=WIRiI^xA#{}7gHGpTy1{pt}3tIVX=^{NTu|9TA=lfQ4 z96=LSe!O69q$>1_xPqA4AaJ3|xUlAa`gPUpGb9wYxvw7XnH{gcXS z>PL%=osySX)&Lwk7B;@f;_s+QrTFZm=d*jhtjES< zrFEgXr+KBhYbRQ1ko|s;DI2^lTL+Kvel>Y?gF^Vr23yQV5$XnsZevSBCG#r{4vXr+18$q8=1wZdbEsw00$F; AC;$Ke literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/snake2_left.240x320x16.bmp b/apps/plugins/bitmaps/native/snake2_left.240x320x16.bmp new file mode 100644 index 0000000000000000000000000000000000000000..a3a78a6b63e013df61936dfb18f910c9b228d746 GIT binary patch literal 3894 zcmeHI!41MN3=CgBd>J8MB-8=;vkznS#RzQDH2}v>gpDt<5MM`4D#d3fJ)hmnbvYCs z3$2yrp5~3_t{iElLH6@Wrfl$9*9Pw6^(^v?4GOhZc|KbN`5pi@APNmp?o2`r-}a9D z84DxNEGi;@ALDp&cggPu%o_fLJb)UkDl|kn&IvVq+dJ}SEQ~y}sEC<=!?w#s>K`b} z=!Zpyx}+Fl{W{J~Mq>Y&%KQ1z{mp6aE}8#`zs!GQ0I<~c7xr(bIitwbzv?z~mVdIS vi246BYI9nI$~OFE{b&6{m1O@D22{1cF6C;@ROEmCe|y~N5_0UwhmQCLb4prd literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/snake2_left.320x240x16.bmp b/apps/plugins/bitmaps/native/snake2_left.320x240x16.bmp new file mode 100644 index 0000000000000000000000000000000000000000..1a2eac252f1520ca9d1f8a73b76a9cfc8513a6d2 GIT binary patch literal 6200 zcmeHLF%H5o3=E76%sinlK+Np?wG%TE5BzA9!|%W&OVm+97~xq_GWd=$Idgt(d~yFOC_`ECH!APx;tX-`45wRIe= zS1k10vpA3Xe2UXsIt!m4FdO(Y@&Kx_>d+9CI2Tk~TgTCQ#X`?Li}T3%2ewlzsDGfW zpdS?(s*+|H>o;*8A~IgzQ~9$0==@=~bQZ>c#2@2d82~IT`Wx2oq`9C->fcqHKFdE@ zoJYR@g4&W6p|S&i%zx%TR0->!G2pTVR;iS8AtPD;NBk+vklCKad1U<$YD-##nH~5u zk@xxM_s{2V5o9TG9wNg0cWQ(D^|IWAiN4I8N9KP}Thb!)A80P<$CZw?eWC9!jC1C(4 z13@qWI8Blal8HdqBHM=H7O*_JohbStPQYzH$a64&RTYMvC@x|ks2^-NR+DkbAh~GN z|0to25f`KJk0oWHq#sDy#-a+A=#f-oRfQ4eC^0gc{t1O2u3Qcce=K2+Wa4Q4M@elM pX>m0F6G}g$`5zPlSV9S!{|MIK7-Pi7)C#hm4)V3pt8RW46TU`D=>nzmaM=Ew*sXtE3g8gvORv#7voQIC-1#4 zR$OoIy|(9J_r=c9&fU&V2fL-G_1EchHu1ee2r7y~F-DbTsj8|}*R`6aQQNlax=tx2 z^?k2l7&MNfrfE{nS<18K^?&B|ZGC<}f1VwkJszfe57XJ>VY>G)ojo3=dk@pu<6*k@ rFr7Ufrh5<5+2dil_b{D39;SN_)7j%;y7w@hJszfe57TXbwy$jgc&qN9 literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/snake2_right.176x132x16.bmp b/apps/plugins/bitmaps/native/snake2_right.176x132x16.bmp new file mode 100644 index 0000000000000000000000000000000000000000..7a6a01af49c9d2a8eaf2a454d3a0f43ff4b4058d GIT binary patch literal 2744 zcmZ?r-ND5G24+A~1BgM~5Fln`kN}bl3{5}*A#Ml;3m}O9{}><$CZw?eWC9!jC1C(4 z13@qWI8Blal8HdqBHM=H7O*_JohbStPQYzH$a64&RTYMvC@x|ks2^-NR+DkbAh~GN z|0to25f`KJk0oWHq#sDy#-a+A=#f-oRfQ4eC^0gc{t1O2u3SDE{*VwL6n>-WZ?yge XH$h+-X0-en-t8}7JU>0Q4HVk|pGBu4 literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/snake2_right.220x176x16.bmp b/apps/plugins/bitmaps/native/snake2_right.220x176x16.bmp new file mode 100644 index 0000000000000000000000000000000000000000..a7f60aba64ecf6c61b6f2eeca2ebb9dba5224034 GIT binary patch literal 4150 zcmeHI!41MN3^ZRJh$ka-f)2o+ofwH13m~xxYXFzHsch^h>KC1rq*9zX&gITMU*@A! zn=wx4d-N;%PEHtM@IMaPbz&VqZ_(Cfrdx@y8l27G(bgu`?X$f2LaXQQqV+5n2Bn+X5F;W;^_- ef9gMF3G1ICVAPUUsh~Nh$Um(AfaUePi+llL0D~w1 literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/snake2_right.240x320x16.bmp b/apps/plugins/bitmaps/native/snake2_right.240x320x16.bmp new file mode 100644 index 0000000000000000000000000000000000000000..8fa2d9527054be867ec976e3b2b2490a74907eed GIT binary patch literal 3894 zcmeHI!41MN3^ZRpd>Nr%B-8=;vkznOVgxqn8o(uPDjPeB`adg9B|CAP%h|o%=aW>K zF;CDV^Z`A{88Za_>qS)!+x-2Aj%JyjCBi0fHi1V+Gi={o9upDS+S5WV)&GB{+pj6~ z&o7s2lCBD8x{PGFzXneu_dF&e-ru1e-h%I+Fw5~rxt*+Pq&KV6RRMGNBIN%Fzh0HE z_$Qc~h^&9dw!lT!|A;@V|AIh*(prDR|99Y=V=i_CLqAz{Ql=4nNjE V>px`)`=26UsztjL%**>F@&iQdT4VqK literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/snake2_right.320x240x16.bmp b/apps/plugins/bitmaps/native/snake2_right.320x240x16.bmp new file mode 100644 index 0000000000000000000000000000000000000000..9fd9884195ae3e31a2fcc9e662c231ea47441afe GIT binary patch literal 6200 zcmeI0F%H5o3`Gkg12aeH2@o?ocV%KmLgFS|190M|eAl+3uINV%MRn?=KkpmV^W}6H zYCFp3D19gWE`2j-U@ND`Ub|ez_IVF_w2R}lWSE--Ta$<$?ZSLs6@iShTAazaFo;B>6f{D(m&7~GSdHsHpe3U-{Xh=FA4-IP5$ftemmw2k*t4Et#XxDMIa;VpP|jM7?N%D zqyOpukP_BERRG))Rw?H><4D&3o_MU( literal 0 HcmV?d00001 diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c index da83c00f7d..1cfbdf972b 100644 --- a/apps/plugins/snake2.c +++ b/apps/plugins/snake2.c @@ -20,7 +20,7 @@ /* Snake2! -Board consists of a WIDTHxHEIGHT grid. If board element is 0 then nothing is +Board consists of a WIDTHxHEIGHT grid. If board element is 0 then nothing is there otherwise it is part of the snake or a wall. Head and Tail are stored @@ -35,16 +35,106 @@ PLUGIN_HEADER #define WIDTH 28 #define HEIGHT 16 -#if LCD_WIDTH >= 160 && LCD_HEIGHT >= 128 - #define MULTIPLIER 5 /*Modifier for porting on other screens*/ +#if (LCD_WIDTH >= 320) && (LCD_HEIGHT >= 240) + #define MULTIPLIER 10 /*Modifier for porting on other screens*/ + #define MODIFIER_1 10 + #define MODIFIER_2 8 + #define CENTER_X 20 + #define CENTER_Y 55 + #define TOP_X1 34 /* x-coord of the upperleft item (game type) */ + #define TOP_X2 281 /* x-coord of the upperright item (maze type) */ + #define TOP_X3 42 /* x-coord of the lowerleft item (speed) */ + #define TOP_X4 274 /* x-coord of the lowerright item (hi-score) */ + #define TOP_Y1 4 /* y-coord of the top row of items */ + #define TOP_Y2 25 /* y-coord of the bottom row of items */ + #define BMPHEIGHT_snake2_header 38 + #define BMPWIDTH_snake2_header 320 + #define BMPHEIGHT_snake2_right 192 + #define BMPWIDTH_snake2_right 10 + #define BMPHEIGHT_snake2_left 192 + #define BMPWIDTH_snake2_left 10 + #define BMPHEIGHT_snake2_bottom 10 + #define BMPWIDTH_snake2_bottom 320 +#elif (LCD_WIDTH >= 240) && (LCD_HEIGHT >= 168) + #define MULTIPLIER 8 + #define MODIFIER_1 8 + #define MODIFIER_2 6 + #define CENTER_X 8 + #define CENTER_Y 34 + #define TOP_X1 34 + #define TOP_X2 201 + #define TOP_X3 42 + #define TOP_X4 194 + #define TOP_Y1 4 + #define TOP_Y2 25 + #define BMPHEIGHT_snake2_header 38 + #define BMPWIDTH_snake2_header 240 + #define BMPHEIGHT_snake2_right 120 + #define BMPWIDTH_snake2_right 10 + #define BMPHEIGHT_snake2_left 120 + #define BMPWIDTH_snake2_left 10 + #define BMPHEIGHT_snake2_bottom 10 + #define BMPWIDTH_snake2_bottom 240 +#elif (LCD_WIDTH >= 220) && (LCD_HEIGHT >= 176) + #define MULTIPLIER 7 + #define MODIFIER_1 7 + #define MODIFIER_2 5 + #define CENTER_X 12 + #define CENTER_Y 46 + #define TOP_X1 34 + #define TOP_X2 181 + #define TOP_X3 42 + #define TOP_X4 174 + #define TOP_Y1 4 + #define TOP_Y2 25 + #define BMPHEIGHT_snake2_header 38 + #define BMPWIDTH_snake2_header 220 + #define BMPHEIGHT_snake2_right 128 + #define BMPWIDTH_snake2_right 10 + #define BMPHEIGHT_snake2_left 128 + #define BMPWIDTH_snake2_left 10 + #define BMPHEIGHT_snake2_bottom 10 + #define BMPWIDTH_snake2_bottom 220 +#elif (LCD_WIDTH >= 176) && (LCD_HEIGHT >= 132) + #define MULTIPLIER 5 + #define MODIFIER_1 5 + #define MODIFIER_2 3 + #define CENTER_X 18 + #define CENTER_Y 40 + #define TOP_X1 34 + #define TOP_X2 137 + #define TOP_X3 42 + #define TOP_X4 130 + #define TOP_Y1 4 + #define TOP_Y2 25 + #define BMPHEIGHT_snake2_header 38 + #define BMPWIDTH_snake2_header 176 + #define BMPHEIGHT_snake2_right 84 + #define BMPWIDTH_snake2_right 10 + #define BMPHEIGHT_snake2_left 84 + #define BMPWIDTH_snake2_left 10 + #define BMPHEIGHT_snake2_bottom 10 + #define BMPWIDTH_snake2_bottom 176 +#elif (LCD_WIDTH >= 160) && (LCD_HEIGHT >= 128) + #define MULTIPLIER 5 #define MODIFIER_1 5 #define MODIFIER_2 3 #define CENTER_X 10 #define CENTER_Y 38 - #define BMPHEIGHT_snakebmp 128 - #define BMPWIDTH_snakebmp 160 - #define BMPHEIGHT_snakeupbmp 36 - #define BMPWIDTH_snakeupbmp 160 + #define TOP_X1 34 + #define TOP_X2 121 + #define TOP_X3 42 + #define TOP_X4 114 + #define TOP_Y1 4 + #define TOP_Y2 25 + #define BMPHEIGHT_snake2_header 38 + #define BMPWIDTH_snake2_header 160 + #define BMPHEIGHT_snake2_right 80 + #define BMPWIDTH_snake2_right 10 + #define BMPHEIGHT_snake2_left 80 + #define BMPWIDTH_snake2_left 10 + #define BMPHEIGHT_snake2_bottom 10 + #define BMPWIDTH_snake2_bottom 160 #else #define MULTIPLIER 4 #define MODIFIER_1 4 @@ -54,21 +144,18 @@ PLUGIN_HEADER #endif - - - /* variable button definitions */ #if CONFIG_KEYPAD == RECORDER_PAD #define SNAKE2_UP BUTTON_UP #define SNAKE2_DOWN BUTTON_DOWN #define SNAKE2_QUIT BUTTON_OFF #define SNAKE2_LEVEL_UP BUTTON_UP -#define SNAKE2_LEVEL_UP2 BUTTON_RIGHT #define SNAKE2_LEVEL_DOWN BUTTON_DOWN -#define SNAKE2_LEVEL_DOWN2 BUTTON_LEFT -#define SNAKE2_SELECT_MAZE BUTTON_F1 +#define SNAKE2_MAZE_NEXT BUTTON_RIGHT +#define SNAKE2_MAZE_LAST BUTTON_LEFT #define SNAKE2_SELECT_TYPE BUTTON_F3 #define SNAKE2_PLAYPAUSE BUTTON_PLAY +#define SNAKE2_PLAYPAUSE_TEXT "Play" #elif CONFIG_KEYPAD == ONDIO_PAD #define SNAKE2_UP BUTTON_UP @@ -76,9 +163,10 @@ PLUGIN_HEADER #define SNAKE2_QUIT BUTTON_OFF #define SNAKE2_LEVEL_UP BUTTON_UP #define SNAKE2_LEVEL_DOWN BUTTON_DOWN -#define SNAKE2_SELECT_MAZE BUTTON_LEFT -#define SNAKE2_SELECT_TYPE BUTTON_RIGHT +#define SNAKE2_MAZE_NEXT BUTTON_RIGHT +#define SNAKE2_SELECT_TYPE BUTTON_LEFT #define SNAKE2_PLAYPAUSE BUTTON_MENU +#define SNAKE2_PLAYPAUSE_TEXT "Menu" #elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ (CONFIG_KEYPAD == IRIVER_H300_PAD) @@ -86,12 +174,12 @@ PLUGIN_HEADER #define SNAKE2_DOWN BUTTON_DOWN #define SNAKE2_QUIT BUTTON_OFF #define SNAKE2_LEVEL_UP BUTTON_UP -#define SNAKE2_LEVEL_UP2 BUTTON_RIGHT #define SNAKE2_LEVEL_DOWN BUTTON_DOWN -#define SNAKE2_LEVEL_DOWN2 BUTTON_LEFT -#define SNAKE2_SELECT_MAZE BUTTON_REC +#define SNAKE2_MAZE_NEXT BUTTON_RIGHT +#define SNAKE2_MAZE_LAST BUTTON_LEFT #define SNAKE2_SELECT_TYPE BUTTON_MODE #define SNAKE2_PLAYPAUSE BUTTON_ON +#define SNAKE2_PLAYPAUSE_TEXT "Play" #elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ (CONFIG_KEYPAD == IPOD_3G_PAD) @@ -100,31 +188,35 @@ PLUGIN_HEADER #define SNAKE2_QUIT (BUTTON_SELECT | BUTTON_MENU) #define SNAKE2_LEVEL_UP BUTTON_SCROLL_FWD #define SNAKE2_LEVEL_DOWN BUTTON_SCROLL_BACK -#define SNAKE2_SELECT_MAZE BUTTON_LEFT -#define SNAKE2_SELECT_TYPE BUTTON_RIGHT +#define SNAKE2_MAZE_NEXT BUTTON_RIGHT +#define SNAKE2_MAZE_LAST BUTTON_LEFT +#define SNAKE2_SELECT_TYPE BUTTON_PLAY #define SNAKE2_PLAYPAUSE BUTTON_SELECT +#define SNAKE2_PLAYPAUSE_TEXT "Select" #elif (CONFIG_KEYPAD == IAUDIO_X5_PAD) #define SNAKE2_UP BUTTON_UP #define SNAKE2_DOWN BUTTON_DOWN #define SNAKE2_QUIT BUTTON_POWER -#define SNAKE2_LEVEL_UP BUTTON_REC -#define SNAKE2_LEVEL_DOWN BUTTON_PLAY -#define SNAKE2_SELECT_MAZE BUTTON_LEFT -#define SNAKE2_SELECT_TYPE BUTTON_RIGHT +#define SNAKE2_LEVEL_UP BUTTON_UP +#define SNAKE2_LEVEL_DOWN BUTTON_DOWN +#define SNAKE2_MAZE_NEXT BUTTON_RIGHT +#define SNAKE2_MAZE_LAST BUTTON_LEFT +#define SNAKE2_SELECT_TYPE BUTTON_PLAY #define SNAKE2_PLAYPAUSE BUTTON_SELECT +#define SNAKE2_PLAYPAUSE_TEXT "Select" #elif (CONFIG_KEYPAD == GIGABEAT_PAD) #define SNAKE2_UP BUTTON_UP #define SNAKE2_DOWN BUTTON_DOWN #define SNAKE2_QUIT BUTTON_A #define SNAKE2_LEVEL_UP BUTTON_UP -#define SNAKE2_LEVEL_UP2 BUTTON_RIGHT #define SNAKE2_LEVEL_DOWN BUTTON_DOWN -#define SNAKE2_LEVEL_DOWN2 BUTTON_LEFT -#define SNAKE2_SELECT_MAZE BUTTON_POWER +#define SNAKE2_MAZE_NEXT BUTTON_RIGHT +#define SNAKE2_MAZE_LAST BUTTON_LEFT #define SNAKE2_SELECT_TYPE BUTTON_MENU #define SNAKE2_PLAYPAUSE BUTTON_SELECT +#define SNAKE2_PLAYPAUSE_TEXT "Select" #else #error "lacks keymapping" @@ -136,7 +228,7 @@ static char (*level_cache)[HEIGHT][WIDTH]; /*Board itself - 2D int array*/ static int board[WIDTH][HEIGHT]; /* - Buffer for sorting movement (in case user presses two movements during a + Buffer for sorting movement (in case user presses two movements during a single frame */ static int ardirectionbuffer[2]; @@ -148,308 +240,38 @@ static int dir; static int frames; static int apple; static int level = 4, speed = 5,dead = 0, quit = 0; -static int sillydir = 0, num_levels = 0; -static int level_from_file = 1; +static int sillydir = 0, num_levels = 0; +static int level_from_file = 0; static struct plugin_api* rb; static int headx, heady, tailx, taily, applecountdown = 5; static int game_type = 0; static int num_apples_to_get=1; static int num_apples_to_got=0; -static int game_b_level=1; +static int game_b_level=0; static int applecount=0; static char phscore[30]; - -#ifdef BMPHEIGHT_snakebmp -const unsigned char snakebmp[] = { -0x00, 0x00, 0x00, 0xe0, 0x20, 0xa0, 0xa0, 0x00, 0xe0, 0xa0, 0xa0, 0xe0, 0x00, -0xe0, 0x40, 0x80, 0x40, 0xe0, 0x00, 0xe0, 0xa0, 0xa0, 0xa0, 0x00, 0x00, 0xf0, -0x08, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, -0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x08, 0xf0, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x80, -0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, -0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, -0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x08, 0x04, 0x02, 0x02, 0x02, 0x02, -0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, -0x02, 0x04, 0x08, 0xf0, 0x00, 0x00, 0xe0, 0x40, 0x80, 0x40, 0xe0, 0x00, 0xe0, -0xa0, 0xa0, 0xe0, 0x00, 0x20, 0xa0, 0xa0, 0x60, 0x00, 0xe0, 0xa0, 0xa0, 0xa0, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x03, 0x02, 0x02, 0x03, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, -0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0xc3, 0x22, 0x22, 0x22, 0xc0, 0x00, 0x07, -0x08, 0x10, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x10, 0x08, 0x07, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x27, 0x4c, 0x4c, 0x79, 0x3b, -0x00, 0x40, 0x7f, 0x47, 0x0e, 0x1c, 0x38, 0x7f, 0x00, 0x40, 0x70, 0x5c, 0x13, -0x13, 0x5f, 0x7c, 0x70, 0x40, 0x40, 0x7f, 0x7f, 0x48, 0x0c, 0x3e, 0x79, 0x60, -0x40, 0x40, 0x7f, 0x7f, 0x44, 0x4e, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x08, 0x10, 0x20, 0x20, 0x20, 0x20, -0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -0x20, 0x10, 0x08, 0x07, 0x00, 0xe0, 0x13, 0x10, 0x10, 0xe0, 0x03, 0x00, 0x03, -0x00, 0x00, 0x03, 0x00, 0x03, 0x02, 0x02, 0x02, 0x00, 0x03, 0x02, 0x02, 0x02, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, -0x80, 0x98, 0xa4, 0xa4, 0x98, 0x80, 0x81, 0x02, 0x82, 0x82, 0x01, 0x00, 0x00, -0x00, 0x17, 0x15, 0x15, 0x1d, 0x80, 0x5f, 0x45, 0x45, 0x42, 0x40, 0x5f, 0x55, -0x55, 0x55, 0x40, 0x5f, 0x55, 0x55, 0x55, 0x40, 0x5f, 0x51, 0x51, 0x4e, 0x40, -0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xf0, 0xf0, 0x10, -0x00, 0x10, 0xf0, 0xf0, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x04, 0x04, 0x1f, 0x80, 0x51, -0x5f, 0x51, 0x44, 0x44, 0x44, 0x40, 0x57, 0x55, 0x55, 0x5d, 0x40, 0x5f, 0x51, -0x51, 0x51, 0x40, 0x5f, 0x51, 0x51, 0x5f, 0x40, 0x5f, 0x45, 0x4d, 0x92, 0x00, -0x1f, 0x15, 0x15, 0x15, 0x00, 0x00, 0x01, 0x81, 0x81, 0x00, 0x98, 0xa4, 0xa4, -0x98, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x30, 0xf8, 0x8c, 0x1a, 0x7f, 0xc0, -0x90, 0x60, 0xc7, 0xce, 0x4c, 0x8f, 0x00, 0x47, 0x0e, 0x1e, 0x57, 0x90, 0xe0, -0x00, 0x10, 0x28, 0xc6, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x01, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0f, 0x0f, 0x08, -0x00, 0x08, 0x0f, 0x0f, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -0xc6, 0x28, 0x10, 0x00, 0xe0, 0x90, 0x57, 0x1e, 0x0e, 0x47, 0x00, 0x8f, 0x4c, -0xce, 0xc7, 0x60, 0x90, 0xc0, 0x7f, 0x1a, 0x8c, 0xf8, 0x30, 0x20, 0xc0, 0x00, -0x00, 0x00, 0x00, 0x00, -0x80, 0xf0, 0x9c, 0x16, 0x57, 0x4d, 0xe9, 0xa1, 0xf5, 0xfc, 0x36, 0x3b, 0x39, -0x37, 0x33, 0x31, 0x30, 0x31, 0x32, 0x35, 0x35, 0x35, 0x35, 0x33, 0x30, 0x30, -0x30, 0x30, 0x30, 0x30, 0x31, 0x32, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, -0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, -0x34, 0x34, 0x32, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, -0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, -0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, -0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x31, 0x32, 0x34, -0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, -0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x32, 0x31, -0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x33, 0x35, 0x35, 0x35, 0x35, 0x32, 0x31, -0x30, 0x31, 0x33, 0x37, 0x39, 0x3b, 0x36, 0xfc, 0xf5, 0xa1, 0xe9, 0x4d, 0x57, -0x16, 0x9c, 0xf0, 0x80, -0xff, 0x88, 0xad, 0x25, 0x77, 0x52, 0xda, 0x88, 0xff, 0xff, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x88, 0xda, 0x52, 0x77, -0x25, 0xad, 0x88, 0xff, -0xff, 0x88, 0xad, 0x25, 0x77, 0x52, 0xda, 0x88, 0xff, 0xff, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x88, 0xda, 0x52, 0x77, -0x25, 0xad, 0x88, 0xff, -0xff, 0x88, 0xad, 0x25, 0x77, 0x52, 0xda, 0x88, 0xff, 0xff, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x88, 0xda, 0x52, 0x77, -0x25, 0xad, 0x88, 0xff, -0xff, 0x88, 0xad, 0x25, 0x77, 0x52, 0xda, 0x88, 0xff, 0xff, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x88, 0xda, 0x52, 0x77, -0x25, 0xad, 0x88, 0xff, -0xff, 0x88, 0xad, 0x25, 0x77, 0x52, 0xda, 0x88, 0xff, 0xff, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x88, 0xda, 0x52, 0x77, -0x25, 0xad, 0x88, 0xff, -0xff, 0x88, 0xad, 0x25, 0x77, 0x52, 0xda, 0x88, 0xff, 0xff, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x88, 0xda, 0x52, 0x77, -0x25, 0xad, 0x88, 0xff, -0xff, 0x88, 0xad, 0x25, 0x77, 0x52, 0xda, 0x88, 0xff, 0xff, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x88, 0xda, 0x52, 0x77, -0x25, 0xad, 0x88, 0xff, -0xff, 0x88, 0xad, 0x25, 0x77, 0x52, 0xda, 0x88, 0xff, 0xff, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x88, 0xda, 0x52, 0x77, -0x25, 0xad, 0x88, 0xff, -0xff, 0x88, 0xad, 0x25, 0x77, 0x52, 0xda, 0x88, 0xff, 0xff, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x88, 0xda, 0x52, 0x77, -0x25, 0xad, 0x88, 0xff, -0xff, 0x88, 0xad, 0x25, 0x77, 0x52, 0xda, 0x88, 0xff, 0xff, 0xc0, 0xc0, 0xc0, -0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, -0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, -0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, -0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, -0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, -0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, -0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, -0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, -0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, -0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, -0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, 0xff, 0x88, 0xda, 0x52, 0x77, -0x25, 0xad, 0x88, 0xff, -0x0f, 0x1c, 0x39, 0x6d, 0x77, 0xda, 0x8c, 0xb8, 0xe3, 0x8e, 0xb8, 0x8e, 0xe3, -0xb8, 0x8e, 0xb8, 0xe3, 0x8e, 0xb8, 0x8e, 0xe3, 0xb8, 0x8e, 0xb8, 0xe3, 0x8e, -0xb8, 0x8e, 0xe3, 0xb8, 0x8e, 0xb8, 0xe3, 0x8e, 0xb8, 0x8e, 0xe3, 0xb8, 0x8e, -0xb8, 0xe3, 0x8e, 0xb8, 0x8e, 0xe3, 0xb8, 0x8e, 0xb8, 0xe3, 0x8e, 0xb8, 0x8e, -0xe3, 0xb8, 0x8e, 0xb8, 0xe3, 0x8e, 0xb8, 0x8e, 0xe3, 0xb8, 0x8e, 0xb8, 0xe3, -0x8e, 0xb8, 0x8e, 0xe3, 0xb8, 0x8e, 0xb8, 0xe3, 0x8e, 0xb8, 0x8e, 0xe3, 0xb8, -0x8e, 0xb8, 0xb8, 0x8e, 0xb8, 0xe3, 0x8e, 0xb8, 0x8e, 0xe3, 0xb8, 0x8e, 0xb8, -0xe3, 0x8e, 0xb8, 0x8e, 0xe3, 0xb8, 0x8e, 0xb8, 0xe3, 0x8e, 0xb8, 0x8e, 0xe3, -0xb8, 0x8e, 0xb8, 0xe3, 0x8e, 0xb8, 0x8e, 0xe3, 0xb8, 0x8e, 0xb8, 0xe3, 0x8e, -0xb8, 0x8e, 0xe3, 0xb8, 0x8e, 0xb8, 0xe3, 0x8e, 0xb8, 0x8e, 0xe3, 0xb8, 0x8e, -0xb8, 0xe3, 0x8e, 0xb8, 0x8e, 0xe3, 0xb8, 0x8e, 0xb8, 0xe3, 0x8e, 0xb8, 0x8e, -0xe3, 0xb8, 0x8e, 0xb8, 0xe3, 0x8e, 0xb8, 0x8e, 0xe3, 0xb8, 0x8c, 0x5a, 0x77, -0x6d, 0x39, 0x1c, 0x0f, - -}; +#if (LCD_WIDTH >= 160) && (LCD_HEIGHT >= 128) +#ifdef HAVE_LCD_COLOR +extern const unsigned short snake2_header1[]; +extern const unsigned short snake2_header2[]; +extern const unsigned short snake2_left[]; +extern const unsigned short snake2_right[]; +extern const unsigned short snake2_bottom[]; +#else +extern const unsigned char snake2_header1[]; +extern const unsigned char snake2_header2[]; +extern const unsigned char snake2_left[]; +extern const unsigned char snake2_right[]; +extern const unsigned char snake2_bottom[]; +#endif #endif -#ifdef BMPHEIGHT_snakeupbmp -const unsigned char snakeupbmp[] = { -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, -0x80, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, -0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x80, -0x80, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0xc0, 0x40, 0x40, 0xc0, 0x00, 0xc0, 0x40, 0x40, 0x80, 0x00, 0xc0, 0x40, 0x40, -0x80, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x40, 0x00, 0xc0, -0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x27, 0x4c, 0x4c, 0x79, -0x3b, 0x00, 0x40, 0x7f, 0x47, 0x0e, 0x1c, 0x38, 0x7f, 0x00, 0x40, 0x70, 0x5c, -0x13, 0x13, 0x5f, 0x7c, 0x70, 0x40, 0x40, 0x7f, 0x7f, 0x48, 0x0c, 0x3e, 0x79, -0x60, 0x40, 0x40, 0x7f, 0x7f, 0x44, 0x4e, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0xc0, 0x40, 0x40, 0x40, 0x00, 0xc0, 0x40, 0x40, 0x40, 0x00, 0xc0, -0x40, 0x40, 0xc0, 0x00, 0xc0, 0x40, 0x40, 0x80, 0x00, 0xc0, 0x40, 0x40, 0x40, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, -0x07, 0x01, 0x01, 0x07, 0x00, 0x87, 0x41, 0x41, 0x40, 0x40, 0x47, 0x41, 0x41, -0x40, 0x40, 0x47, 0x44, 0x44, 0x44, 0x40, 0x47, 0x45, 0x45, 0x45, 0x40, 0x45, -0x45, 0x45, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xf0, 0xf0, -0x10, 0x00, 0x10, 0xf0, 0xf0, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, -0x40, 0x40, 0x45, 0x45, 0x45, 0x47, 0x40, 0x47, 0x44, 0x44, 0x44, 0x40, 0x47, -0x44, 0x44, 0x47, 0x40, 0x47, 0x41, 0x43, 0x44, 0x40, 0x47, 0x45, 0x85, 0x05, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x80, 0x80, 0x80, -0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x30, 0xf8, 0x8c, 0x1a, 0x7f, 0xc0, -0x90, 0x60, 0xc7, 0xce, 0x4c, 0x8f, 0x00, 0x47, 0x0e, 0x1e, 0x57, 0x90, 0xe0, -0x00, 0x10, 0x28, 0xc6, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x01, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0f, 0x0f, -0x08, 0x00, 0x08, 0x0f, 0x0f, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -0xc6, 0x28, 0x10, 0x00, 0xe0, 0x90, 0x57, 0x1e, 0x0e, 0x47, 0x00, 0x8f, 0x4c, -0xce, 0xc7, 0x60, 0x90, 0xc0, 0x7f, 0x1a, 0x8c, 0xf8, 0x30, 0x20, 0xc0, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x0c, 0x06, 0x07, 0x0d, 0x09, 0x01, 0x05, 0x0c, 0x06, 0x0b, 0x09, -0x07, 0x03, 0x01, 0x00, 0x01, 0x02, 0x05, 0x05, 0x05, 0x05, 0x03, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, -0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, -0x04, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, -0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, -0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x02, 0x01, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x05, 0x05, 0x05, 0x05, 0x02, 0x01, -0x00, 0x01, 0x03, 0x07, 0x09, 0x0b, 0x06, 0x0c, 0x05, 0x01, 0x09, 0x0d, 0x07, -0x06, 0x0c, 0x00, 0x00, - -}; -#endif - -#define NORTH 1 -#define EAST 2 -#define SOUTH 4 -#define WEST 8 -#define HEAD 16 +#define NORTH 1 +#define EAST 2 +#define SOUTH 4 +#define WEST 8 +#define HEAD 16 #define EAST_NORTH 32 #define EAST_SOUTH 64 @@ -478,7 +300,7 @@ int load_all_levels(void) max_levels = size / (HEIGHT*WIDTH); num_levels = 0; - + /* open file */ if ((fd = rb->open(LEVELS_FILE, O_RDONLY)) < 0) { @@ -532,8 +354,8 @@ void iohiscore(void) rb->fdprintf(fd, "%d\n", hiscore); } else - hiscore = compare; - + hiscore = compare; + rb->close(fd); } @@ -545,9 +367,9 @@ void clear_board( void) { int x,y; - for (x = 0; x < WIDTH; x++) + for (x = 0; x < WIDTH; x++) { - for (y = 0; y < HEIGHT; y++) + for (y = 0; y < HEIGHT; y++) { board[x][y] = 0; } @@ -606,7 +428,7 @@ void get_direction( void ) } /* -** Sets the direction +** Sets the direction */ void set_direction(int newdir) { @@ -640,7 +462,7 @@ void new_level(int level) tailx = headx - 4; taily = heady; applecountdown = 0; - /*Create a small snake to start off with*/ + /*Create a small snake to start off with*/ board[headx][heady] = dir; board[headx-1][heady] = dir; board[headx-2][heady] = dir; @@ -669,21 +491,18 @@ void draw_apple( void ) #if LCD_WIDTH >= 160 && LCD_HEIGHT >= 128 char pscore[5], counter[4]; - rb->lcd_set_drawmode(DRMODE_FG); - rb->lcd_mono_bitmap(snakebmp,0,0,BMPWIDTH_snakebmp,BMPHEIGHT_snakebmp); - rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); - rb->lcd_fillrect(0,0,BMPWIDTH_snakeupbmp,BMPHEIGHT_snakeupbmp); - rb->lcd_set_drawmode(DRMODE_FG); - rb->lcd_mono_bitmap(snakeupbmp,0,0,BMPWIDTH_snakeupbmp,BMPHEIGHT_snakeupbmp); - rb->lcd_set_drawmode(DRMODE_SOLID); + rb->lcd_bitmap(snake2_header2,0,0,BMPWIDTH_snake2_header, BMPHEIGHT_snake2_header); + rb->lcd_bitmap(snake2_left,0,BMPHEIGHT_snake2_header,BMPWIDTH_snake2_left, BMPHEIGHT_snake2_left); + rb->lcd_bitmap(snake2_right,LCD_WIDTH-BMPWIDTH_snake2_right,BMPHEIGHT_snake2_header,BMPWIDTH_snake2_right, BMPHEIGHT_snake2_right); + rb->lcd_bitmap(snake2_bottom,0,BMPHEIGHT_snake2_header+BMPHEIGHT_snake2_left,BMPWIDTH_snake2_bottom, BMPHEIGHT_snake2_bottom); rb->snprintf(counter,sizeof(counter),"%d",applecount); rb->lcd_getstringsize(counter,&strwdt,&strhgt); - rb->lcd_putsxy(42-strwdt/2,25,counter); + rb->lcd_putsxy(TOP_X3-strwdt/2,TOP_Y2,counter); rb->snprintf(pscore,sizeof(pscore),"%d",score); rb->lcd_getstringsize(pscore,&strwdt,&strhgt); - rb->lcd_putsxy(116-strwdt/2,25,pscore); + rb->lcd_putsxy(TOP_X4-strwdt/2,TOP_Y2,pscore); #endif if (!apple) @@ -821,7 +640,7 @@ void draw_s_to_w_bit(int x, int y) void draw_boundary ( void ) { int x, y; - + /*TODO: Load levels from file!*/ /*top and bottom line*/ @@ -830,7 +649,7 @@ void draw_boundary ( void ) board[x][0] = EAST; board[x][HEIGHT-1] = WEST; } - + /*left and right lines*/ for(y=0; y < HEIGHT; y++) { @@ -851,13 +670,12 @@ void draw_boundary ( void ) void redraw (void) { int x,y; - rb->lcd_clear_display(); - - for (x = 0; x < WIDTH; x++) + + for (x = 0; x < WIDTH; x++) { - for (y = 0; y < HEIGHT; y++) + for (y = 0; y < HEIGHT; y++) { - switch (board[x][y]) + switch (board[x][y]) { case -1: rb->lcd_fillrect((CENTER_X+x*MULTIPLIER)+1,CENTER_Y+y*MULTIPLIER,MODIFIER_2,MODIFIER_1); @@ -865,25 +683,23 @@ void redraw (void) break; case 0: break; - + case NORTH: case SOUTH: draw_vertical_bit(x,y); break; - + case EAST: case WEST: draw_horizontal_bit(x,y); break; - + default: rb->lcd_fillrect(CENTER_X+x*MULTIPLIER,CENTER_Y+y*MULTIPLIER,MODIFIER_1,MODIFIER_1); break; } } } - rb->lcd_update(); - } /* @@ -905,7 +721,7 @@ void draw_snake_bit(int currentbit, int previousbit, int x, int y) case(NORTH): draw_vertical_bit(x,y); break; - + case(EAST): draw_e_to_n_bit(x,y); break; @@ -922,8 +738,8 @@ void draw_snake_bit(int currentbit, int previousbit, int x, int y) case(WEST): case(EAST): draw_horizontal_bit(x,y); - break; - + break; + case(NORTH): draw_n_to_e_bit(x,y); break; @@ -941,7 +757,7 @@ void draw_snake_bit(int currentbit, int previousbit, int x, int y) case(NORTH): draw_vertical_bit(x,y); break; - + case(EAST): draw_e_to_s_bit(x,y); break; @@ -952,13 +768,13 @@ void draw_snake_bit(int currentbit, int previousbit, int x, int y) } break; - case(WEST): + case(WEST): switch(previousbit) { case(EAST): - case(WEST): + case(WEST): draw_horizontal_bit(x,y); - break; + break; case(SOUTH): draw_s_to_w_bit(x,y); @@ -977,50 +793,53 @@ void draw_snake_bit(int currentbit, int previousbit, int x, int y) */ void die (void) { - int n=100; - int count; - char pscore[18]; - /*Flashy death sequence (flashy as in 'flashes')*/ - for(count=0;count<24;count++) - { - rb->sleep(HZ/n); - rb->lcd_clear_display(); - draw_apple(); - rb->lcd_update(); + int button; + bool done=false; + char pscore[20]; + + rb->splash(HZ*2, true, "Oops!"); - rb->sleep(HZ/n); - redraw(); - rb->lcd_update(); - } - rb->lcd_clear_display(); - draw_apple(); - rb->lcd_update(); - rb->lcd_clear_display(); - + applecount=0; - rb->lcd_getstringsize("Dead",&strwdt,&strhgt); - rb->lcd_putsxy((LCD_WIDTH - strwdt)/2,strhgt,"Dead"); - - rb->snprintf(pscore,sizeof(pscore),"Your Score %d",score); + rb->lcd_getstringsize("You died!",&strwdt,&strhgt); + rb->lcd_putsxy((LCD_WIDTH - strwdt)/2,strhgt,"You died!"); + + rb->snprintf(pscore,sizeof(pscore),"Your score: %d",score); rb->lcd_getstringsize(pscore,&strwdt,&strhgt); rb->lcd_putsxy((LCD_WIDTH - strwdt)/2,strhgt * 2 + 2,pscore); if (score>hiscore) { hiscore=score; - rb->lcd_getstringsize("New High Score!",&strwdt,&strhgt); - rb->lcd_putsxy((LCD_WIDTH - strwdt)/2,strhgt * 4 + 2,"New High Score!"); + rb->lcd_getstringsize("New high score!",&strwdt,&strhgt); + rb->lcd_putsxy((LCD_WIDTH - strwdt)/2,strhgt * 4 + 2,"New high score!"); } - else + else { - rb->snprintf(phscore,sizeof(phscore),"High Score: %d",hiscore); + rb->snprintf(phscore,sizeof(phscore),"High score: %d",hiscore); rb->lcd_getstringsize(phscore,&strwdt,&strhgt); - rb->lcd_putsxy((LCD_WIDTH - strwdt)/2,strhgt * 6,phscore); + rb->lcd_putsxy((LCD_WIDTH - strwdt)/2,strhgt * 5,phscore); } + + rb->snprintf(phscore,sizeof(phscore),"Press %s...",SNAKE2_PLAYPAUSE_TEXT); + rb->lcd_getstringsize(phscore,&strwdt,&strhgt); + rb->lcd_putsxy((LCD_WIDTH - strwdt)/2,strhgt * 7,phscore); + rb->lcd_update(); - rb->sleep(3*HZ); + + while(!done) + { + button=rb->button_get(true); + switch(button) + { + case SNAKE2_PLAYPAUSE: + done = true; + break; + } + } + dead=1; } @@ -1034,17 +853,17 @@ void collision ( int x, int y ) int bdeath=0; - switch (board[x][y]) + switch (board[x][y]) { case 0: - break; + break; case -1: score = score + (1 * level); apple=0; applecountdown=2; applecount++; - + if(game_type==1) { if(num_apples_to_get == num_apples_to_got) @@ -1061,7 +880,9 @@ void collision ( int x, int y ) rb->splash(HZ, true, "Level Completed!"); rb->lcd_clear_display(); new_level(level_from_file); + rb->lcd_clear_display(); redraw(); + rb->lcd_update(); } else num_apples_to_got++; @@ -1086,7 +907,7 @@ void move( void ) /*this actually sets the dir variable.*/ get_direction(); /*draw head*/ - switch (dir) + switch (dir) { case (NORTH): board[headx][heady]=NORTH; @@ -1094,7 +915,7 @@ void move( void ) break; case (EAST): board[headx][heady]=EAST; - headx++; + headx++; break; case (SOUTH): board[headx][heady]=SOUTH; @@ -1105,7 +926,7 @@ void move( void ) headx--; break; } - + if(headx == WIDTH) headx = 0; else if(headx < 0) @@ -1115,11 +936,11 @@ void move( void ) heady = 0; else if(heady < 0) heady = HEIGHT-1; - + rb->lcd_fillrect(CENTER_X+headx*MULTIPLIER,CENTER_Y+heady*MULTIPLIER,MODIFIER_1,MODIFIER_1); - + /*clear tail*/ - if(applecountdown <= 0) + if(applecountdown <= 0) { rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); rb->lcd_fillrect(CENTER_X+tailx*MULTIPLIER,CENTER_Y+taily*MULTIPLIER,MODIFIER_1,MODIFIER_1); @@ -1146,7 +967,7 @@ void move( void ) tailx--; break; } - + if(tailx == WIDTH) tailx = 0; else if(tailx < 0) @@ -1166,7 +987,7 @@ void frame (void) int olddir, noldx, noldy, temp; noldx = headx; noldy = heady; - olddir = 0; + olddir = 0; switch(dir) { case(NORTH): @@ -1174,7 +995,7 @@ void frame (void) temp = 0; else temp = heady + 1; - + olddir = board[headx][temp]; break; @@ -1207,34 +1028,36 @@ void frame (void) } move(); - + /* now redraw the bit that was the tail, to something snake-like: */ - draw_snake_bit(dir, olddir, noldx, noldy); - + draw_snake_bit(dir, olddir, noldx, noldy); + collision(headx, heady); - + rb->lcd_update(); } -void game_pause (void) +void game_pause (void) { int button; rb->lcd_clear_display(); rb->lcd_getstringsize("Paused",&strwdt,&strhgt); rb->lcd_putsxy((LCD_WIDTH - strwdt)/2,LCD_HEIGHT/2,"Paused"); - + rb->lcd_update(); - while (1) + while (1) { button = rb->button_get(true); switch (button) { case SNAKE2_PLAYPAUSE: + rb->lcd_clear_display(); redraw(); + rb->lcd_update(); rb->sleep(HZ/2); return; @@ -1249,21 +1072,23 @@ void game_pause (void) } } -void game (void) +void game (void) { int button; + rb->lcd_clear_display(); redraw(); + rb->lcd_update(); /*main loop:*/ - while (1) + while (1) { - if(frames==5) + if(frames==5) { frame(); if(frames>0) frames=0; } frames++; - + if(frames == 0) { die(); @@ -1279,24 +1104,24 @@ void game (void) } } } - + if (dead) return; - + draw_apple(); - + rb->sleep(HZ/speed); button = rb->button_get(false); switch (button) { case SNAKE2_UP: - case SNAKE2_UP | BUTTON_REPEAT: + case SNAKE2_UP | BUTTON_REPEAT: if (dir != SOUTH) set_direction(NORTH); break; case BUTTON_RIGHT: case BUTTON_RIGHT | BUTTON_REPEAT: - if (dir != WEST) set_direction(EAST); + if (dir != WEST) set_direction(EAST); break; case SNAKE2_DOWN: @@ -1328,7 +1153,7 @@ void game (void) } -void game_init(void) +void game_init(void) { int button; char plevel[30]; @@ -1340,41 +1165,42 @@ void game_init(void) clear_board(); load_level( level_from_file ); - - while (1) - { - rb->lcd_clear_display(); - redraw(); + rb->lcd_clear_display(); + redraw(); + rb->lcd_update(); + while (1) + { #if LCD_WIDTH >= 160 && LCD_HEIGHT >= 128 - rb->lcd_set_drawmode(DRMODE_FG); - rb->lcd_mono_bitmap(snakebmp,0,0,BMPWIDTH_snakebmp,BMPHEIGHT_snakebmp); - rb->lcd_set_drawmode(DRMODE_SOLID); + rb->lcd_bitmap(snake2_header1,0,0,BMPWIDTH_snake2_header, BMPHEIGHT_snake2_header); + rb->lcd_bitmap(snake2_left,0,BMPHEIGHT_snake2_header,BMPWIDTH_snake2_left, BMPHEIGHT_snake2_left); + rb->lcd_bitmap(snake2_right,LCD_WIDTH-BMPWIDTH_snake2_right,BMPHEIGHT_snake2_header,BMPWIDTH_snake2_right, BMPHEIGHT_snake2_right); + rb->lcd_bitmap(snake2_bottom,0,BMPHEIGHT_snake2_header+BMPHEIGHT_snake2_left,BMPWIDTH_snake2_bottom, BMPHEIGHT_snake2_bottom); rb->snprintf(plevel,sizeof(plevel),"%d",level); rb->lcd_getstringsize(plevel,&strwdt,&strhgt); - rb->lcd_putsxy(42-strwdt/2,25, plevel); + rb->lcd_putsxy(TOP_X3-strwdt/2,TOP_Y2, plevel); rb->snprintf(plevel,sizeof(plevel),"%d",level_from_file); rb->lcd_getstringsize(plevel,&strwdt,&strhgt); - rb->lcd_putsxy(121-strwdt/2,4, plevel); + rb->lcd_putsxy(TOP_X2-strwdt/2,TOP_Y1, plevel); - if(game_type==0){ - rb->lcd_getstringsize("A",&strwdt,&strhgt); - rb->lcd_putsxy(34,4,"A"); - } - else{ - rb->lcd_getstringsize("B",&strwdt,&strhgt); - rb->lcd_putsxy(34,4,"B"); + if(game_type==0){ + rb->lcd_getstringsize("A",&strwdt,&strhgt); + rb->lcd_putsxy(TOP_X1,TOP_Y1,"A"); + } + else{ + rb->lcd_getstringsize("B",&strwdt,&strhgt); + rb->lcd_putsxy(TOP_X1,TOP_Y1,"B"); } rb->snprintf(phscore,sizeof(phscore),"%d",hiscore); rb->lcd_getstringsize(phscore,&strwdt,&strhgt); - rb->lcd_putsxy(114-strwdt/2,25, phscore); - + rb->lcd_putsxy(TOP_X4-strwdt/2,TOP_Y2, phscore); + #else - rb->snprintf(plevel,sizeof(plevel),"Speed: %d",level); + rb->snprintf(plevel,sizeof(plevel),"Speed: %02d",level); rb->lcd_getstringsize("Speed: 00",&strwdt,&strhgt); rb->lcd_putsxy((LCD_WIDTH - strwdt)/2,strhgt+4, plevel); @@ -1385,7 +1211,7 @@ void game_init(void) if(game_type==0){ rb->lcd_getstringsize("Game Type: A ",&strwdt,&strhgt); rb->lcd_putsxy((LCD_WIDTH - strwdt)/2,strhgt*3+4,"Game Type: A"); - } + } else{ rb->lcd_getstringsize("Game Type: B ",&strwdt,&strhgt); rb->lcd_putsxy((LCD_WIDTH - strwdt)/2,strhgt*3+4,"Game Type: B"); @@ -1402,16 +1228,12 @@ void game_init(void) switch (button) { case SNAKE2_LEVEL_UP: -#ifdef SNAKE2_LEVEL_UP2 - case SNAKE2_LEVEL_UP2: -#endif - if (level<10) + case SNAKE2_LEVEL_UP|BUTTON_REPEAT: + if (level<10) level+=1; break; case SNAKE2_LEVEL_DOWN: -#ifdef SNAKE2_LEVEL_DOWN2 - case SNAKE2_LEVEL_DOWN2: -#endif + case SNAKE2_LEVEL_DOWN|BUTTON_REPEAT: if (level>1) level-=1; break; @@ -1426,17 +1248,32 @@ void game_init(void) case SNAKE2_SELECT_TYPE: if(game_type==0)game_type=1; else game_type=0; break; - case SNAKE2_SELECT_MAZE: - - level_from_file++; - if(level_from_file > num_levels) - { - level_from_file = 1; - } - + case SNAKE2_MAZE_NEXT: + rb->lcd_set_drawmode(DRMODE_BG|DRMODE_INVERSEVID); + rb->lcd_fillrect(CENTER_X, CENTER_Y, CENTER_X+WIDTH*MULTIPLIER, + CENTER_Y+HEIGHT*MULTIPLIER); + rb->lcd_set_drawmode(DRMODE_SOLID); + if(level_from_file < num_levels) + level_from_file++; + else + level_from_file = 0; load_level( level_from_file ); - + redraw(); break; +#ifdef SNAKE2_MAZE_LAST + case SNAKE2_MAZE_LAST: + rb->lcd_set_drawmode(DRMODE_BG|DRMODE_INVERSEVID); + rb->lcd_fillrect(CENTER_X, CENTER_Y, CENTER_X+WIDTH*MULTIPLIER, + CENTER_Y+HEIGHT*MULTIPLIER); + rb->lcd_set_drawmode(DRMODE_SOLID); + if(level_from_file > 0) + level_from_file--; + else + level_from_file = num_levels; + load_level( level_from_file ); + redraw(); + break; +#endif default: if (rb->default_event_handler(button)==SYS_USB_CONNECTED) { quit = 2; @@ -1455,6 +1292,9 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) /* Lets use the default font */ rb->lcd_setfont(FONT_SYSFIXED); +#ifdef HAVE_LCD_COLOR + rb->lcd_set_background(LCD_WHITE); +#endif load_all_levels(); if (num_levels == 0) { @@ -1466,19 +1306,19 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) while(quit==0) { - game_init(); + game_init(); rb->lcd_clear_display(); frames=1; - + if(quit==0) { init_snake(); - + /*Start Game:*/ game(); } } - + iohiscore(); return (quit==1) ? PLUGIN_OK : PLUGIN_USB_CONNECTED; } diff --git a/docs/CREDITS b/docs/CREDITS index 3f66170da8..732ab26e67 100644 --- a/docs/CREDITS +++ b/docs/CREDITS @@ -194,3 +194,4 @@ Dominik Riebeling Alexander Bondar Peter Cawley Rani Hod +Tom Ross