From b774adafe44a39d3aa1f5956881246b741a5b643 Mon Sep 17 00:00:00 2001 From: Marianne Arnold Date: Mon, 13 Oct 2008 23:13:12 +0000 Subject: [PATCH] Pegbox - new graphics for Archos, c200, small H10, Mini, M3 - also cleaning and small tweaks to the rest of the greyscale and monochrome bitmaps. Aspect ratio correct the pieces for the Archos screen (now uses 9x7 tiles) which made it possible to also add the header with statistics). Necessary changes to pegbox.c: don't assume piece height = piece width, prepare a new 'wide' layout for the c200 with the statics at the side. Additional cleanup - make the code more readable by replacing repeatedly used bmpheight_XYZ with defines, splitting some too long lines. Let the 'Start on level' line in the menu actually appear on the Mini's screen. Also rename the greyscale graphics according convention to '...x2.bmp' and set the mime-type more accurately for all pegbox bitmaps. Finally, add Joel Puik, the creator of the original colour graphics to CREDITS. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18803 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/bitmaps/native/SOURCES | 60 ++-- .../bitmaps/native/pegbox_header.112x8x1.bmp | Bin 0 -> 190 bytes .../bitmaps/native/pegbox_header.128x16x2.bmp | Bin 0 -> 2118 bytes .../native/pegbox_header.128x42x16.bmp | Bin 0 -> 16182 bytes .../bitmaps/native/pegbox_header.138x26x2.bmp | Bin 0 -> 3710 bytes .../bitmaps/native/pegbox_header.138x28x4.bmp | Bin 2136 -> 0 bytes .../bitmaps/native/pegbox_header.160x24x1.bmp | Bin 542 -> 542 bytes .../bitmaps/native/pegbox_header.160x24x2.bmp | Bin 0 -> 3910 bytes .../bitmaps/native/pegbox_header.160x24x4.bmp | Bin 2040 -> 0 bytes .../bitmaps/native/pegbox_header.22x80x16.bmp | Bin 0 -> 5494 bytes .../native/pegbox_menu_items.60x13x16.bmp | Bin 0 -> 21114 bytes .../native/pegbox_menu_items.60x15x2.bmp | Bin 0 -> 8170 bytes .../native/pegbox_menu_items.60x17x1.bmp | Bin 1286 -> 1286 bytes .../native/pegbox_menu_items.60x17x16.bmp | Bin 27596 -> 27594 bytes .../native/pegbox_menu_items.60x17x2.bmp | Bin 0 -> 9250 bytes .../native/pegbox_menu_items.60x17x4.bmp | Bin 5016 -> 0 bytes .../native/pegbox_menu_top.128x27x2.bmp | Bin 0 -> 3526 bytes .../native/pegbox_menu_top.128x42x16.bmp | Bin 0 -> 16182 bytes .../native/pegbox_menu_top.132x17x16.bmp | Bin 0 -> 6786 bytes .../native/pegbox_menu_top.138x31x2.bmp | Bin 0 -> 4410 bytes .../native/pegbox_menu_top.138x34x4.bmp | Bin 2568 -> 0 bytes .../native/pegbox_menu_top.160x42x1.bmp | Bin 902 -> 902 bytes .../native/pegbox_menu_top.160x42x2.bmp | Bin 0 -> 6790 bytes .../native/pegbox_menu_top.160x42x4.bmp | Bin 3480 -> 0 bytes .../bitmaps/native/pegbox_pieces.10x10x16.bmp | Bin 0 -> 2294 bytes .../bitmaps/native/pegbox_pieces.10x10x2.bmp | Bin 0 -> 910 bytes .../bitmaps/native/pegbox_pieces.12x12x1.bmp | Bin 398 -> 398 bytes .../bitmaps/native/pegbox_pieces.12x12x2.bmp | Bin 0 -> 1078 bytes .../bitmaps/native/pegbox_pieces.12x12x4.bmp | Bin 2088 -> 0 bytes .../bitmaps/native/pegbox_pieces.8x8x1.bmp | Bin 286 -> 0 bytes .../bitmaps/native/pegbox_pieces.9x7x1.bmp | Bin 0 -> 258 bytes .../bitmaps/native/pegbox_pieces.9x9x16.bmp | Bin 0 -> 1818 bytes apps/plugins/pegbox.c | 302 +++++++++--------- docs/CREDITS | 1 + 34 files changed, 201 insertions(+), 162 deletions(-) create mode 100644 apps/plugins/bitmaps/native/pegbox_header.112x8x1.bmp create mode 100644 apps/plugins/bitmaps/native/pegbox_header.128x16x2.bmp create mode 100644 apps/plugins/bitmaps/native/pegbox_header.128x42x16.bmp create mode 100644 apps/plugins/bitmaps/native/pegbox_header.138x26x2.bmp delete mode 100644 apps/plugins/bitmaps/native/pegbox_header.138x28x4.bmp create mode 100644 apps/plugins/bitmaps/native/pegbox_header.160x24x2.bmp delete mode 100644 apps/plugins/bitmaps/native/pegbox_header.160x24x4.bmp create mode 100644 apps/plugins/bitmaps/native/pegbox_header.22x80x16.bmp create mode 100644 apps/plugins/bitmaps/native/pegbox_menu_items.60x13x16.bmp create mode 100644 apps/plugins/bitmaps/native/pegbox_menu_items.60x15x2.bmp create mode 100644 apps/plugins/bitmaps/native/pegbox_menu_items.60x17x2.bmp delete mode 100644 apps/plugins/bitmaps/native/pegbox_menu_items.60x17x4.bmp create mode 100644 apps/plugins/bitmaps/native/pegbox_menu_top.128x27x2.bmp create mode 100644 apps/plugins/bitmaps/native/pegbox_menu_top.128x42x16.bmp create mode 100644 apps/plugins/bitmaps/native/pegbox_menu_top.132x17x16.bmp create mode 100644 apps/plugins/bitmaps/native/pegbox_menu_top.138x31x2.bmp delete mode 100644 apps/plugins/bitmaps/native/pegbox_menu_top.138x34x4.bmp create mode 100644 apps/plugins/bitmaps/native/pegbox_menu_top.160x42x2.bmp delete mode 100644 apps/plugins/bitmaps/native/pegbox_menu_top.160x42x4.bmp create mode 100644 apps/plugins/bitmaps/native/pegbox_pieces.10x10x16.bmp create mode 100644 apps/plugins/bitmaps/native/pegbox_pieces.10x10x2.bmp create mode 100644 apps/plugins/bitmaps/native/pegbox_pieces.12x12x2.bmp delete mode 100644 apps/plugins/bitmaps/native/pegbox_pieces.12x12x4.bmp delete mode 100644 apps/plugins/bitmaps/native/pegbox_pieces.8x8x1.bmp create mode 100644 apps/plugins/bitmaps/native/pegbox_pieces.9x7x1.bmp create mode 100644 apps/plugins/bitmaps/native/pegbox_pieces.9x9x16.bmp diff --git a/apps/plugins/bitmaps/native/SOURCES b/apps/plugins/bitmaps/native/SOURCES index 31ee1f1a73..b95fd379c0 100644 --- a/apps/plugins/bitmaps/native/SOURCES +++ b/apps/plugins/bitmaps/native/SOURCES @@ -324,49 +324,73 @@ minesweeper_tiles.8x8x1.bmp #endif /* PegBox */ -#if (LCD_WIDTH >= 320) && (LCD_HEIGHT >= 240) && (LCD_DEPTH >= 16) +#ifdef HAVE_LCD_COLOR +/* currently only LCD_WIDTH is important, e.g. Nano and e200 use the same set */ +#if LCD_WIDTH >= 320 pegbox_menu_top.320x68x16.bmp pegbox_menu_items.120x32x16.bmp pegbox_pieces.24x24x16.bmp pegbox_header.320x40x16.bmp -#elif (LCD_WIDTH >= 240) && (LCD_HEIGHT >= 192) && (LCD_DEPTH >= 16) +#elif LCD_WIDTH >= 240 pegbox_menu_top.240x80x16.bmp pegbox_menu_items.120x32x16.bmp pegbox_pieces.16x16x16.bmp pegbox_header.240x40x16.bmp -#elif (LCD_WIDTH >= 220) && (LCD_HEIGHT >= 176) && (LCD_DEPTH >= 16) +#elif LCD_WIDTH >= 220 pegbox_menu_top.220x60x16.bmp pegbox_menu_items.70x20x16.bmp pegbox_pieces.16x16x16.bmp pegbox_header.220x40x16.bmp -#elif (LCD_WIDTH >= 176) && (LCD_HEIGHT >= 132) && (LCD_DEPTH >= 16) +#elif LCD_WIDTH >= 176 pegbox_menu_top.176x46x16.bmp pegbox_menu_items.60x17x16.bmp pegbox_pieces.12x12x16.bmp pegbox_header.176x28x16.bmp -#elif (LCD_WIDTH >= 160) && (LCD_HEIGHT >= 128) && (LCD_DEPTH >= 16) +#elif LCD_WIDTH >= 160 pegbox_menu_top.160x42x16.bmp pegbox_menu_items.60x17x16.bmp pegbox_pieces.12x12x16.bmp pegbox_header.160x24x16.bmp -#elif (LCD_WIDTH >= 160) && (LCD_HEIGHT >= 128) && (LCD_DEPTH > 1) -pegbox_menu_top.160x42x4.bmp -pegbox_menu_items.60x17x4.bmp -pegbox_pieces.12x12x4.bmp -pegbox_header.160x24x4.bmp -#elif (LCD_WIDTH >= 138) && (LCD_HEIGHT >= 110) && (LCD_DEPTH > 1) -pegbox_menu_top.138x34x4.bmp -pegbox_menu_items.60x17x4.bmp -pegbox_pieces.8x8x1.bmp -pegbox_header.138x28x4.bmp -#elif (LCD_WIDTH >= 160) && (LCD_HEIGHT >= 128) && (LCD_DEPTH == 1) +#elif LCD_WIDTH >= 132 +pegbox_menu_top.132x17x16.bmp +pegbox_menu_items.60x13x16.bmp +pegbox_pieces.9x9x16.bmp +pegbox_header.22x80x16.bmp +#elif LCD_WIDTH >= 128 +pegbox_menu_top.128x42x16.bmp +pegbox_menu_items.60x17x16.bmp +pegbox_pieces.10x10x16.bmp +pegbox_header.128x42x16.bmp +#endif /* different colour displays */ +#elif LCD_DEPTH > 1 +#if LCD_WIDTH >= 160 +pegbox_menu_top.160x42x2.bmp +pegbox_menu_items.60x17x2.bmp +pegbox_pieces.12x12x2.bmp +pegbox_header.160x24x2.bmp +#elif LCD_WIDTH >= 138 +pegbox_menu_top.138x31x2.bmp +pegbox_menu_items.60x17x2.bmp +pegbox_pieces.10x10x2.bmp +pegbox_header.138x26x2.bmp +#elif LCD_WIDTH >= 128 +pegbox_menu_top.128x27x2.bmp +pegbox_menu_items.60x15x2.bmp +pegbox_pieces.10x10x2.bmp +pegbox_header.128x16x2.bmp +#endif /* different greyscale displays */ +#else /* mono */ +#if LCD_WIDTH >= 160 pegbox_menu_top.160x42x1.bmp pegbox_menu_items.60x17x1.bmp pegbox_pieces.12x12x1.bmp pegbox_header.160x24x1.bmp -#else -pegbox_pieces.8x8x1.bmp +#elif LCD_WIDTH >= 112 +pegbox_header.112x8x1.bmp +pegbox_pieces.9x7x1.bmp #endif +#endif + /* Rockblox */ #if LCD_DEPTH == 16 /* colour versions*/ diff --git a/apps/plugins/bitmaps/native/pegbox_header.112x8x1.bmp b/apps/plugins/bitmaps/native/pegbox_header.112x8x1.bmp new file mode 100644 index 0000000000000000000000000000000000000000..fe2eab48505b23aec877b8bd98ccf40319d52645 GIT binary patch literal 190 zcmZ?r-Nyg{c0fu4hzo$21Be-c5Cj^4Scn^fnLq+i@c;jRhX4Qn{{O!p$ol{9|Nr|8 z4Bzsif%O0Xzdr!Q-!m|LeR~_i{|4cI34zG}JlPA84~6i5?RpF5f4c@z|EudRnE(Ah Tl)qvxln)dK+V}JBIk0^Is|RcM literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/pegbox_header.128x16x2.bmp b/apps/plugins/bitmaps/native/pegbox_header.128x16x2.bmp new file mode 100644 index 0000000000000000000000000000000000000000..9ba96ec591d96d7a56f3b3d2d118402c93786e0f GIT binary patch literal 2118 zcmb_c%WlLV3Ra zwIYuBSt6ihic(=2VC8j+I5daG#xE?Twa%P=B<4_8C?b=6is|;-W^X45uaf0oi-1XR zan*ZNhb?`aHiqWVXy?b1XF`!!z5h9Xtq$k}njWkZN<&B$8jb%M<;D30UY{S-#zd$2 zRr;L-zJRe={#$kEpXwZcEY>rP%yrE;)jt&AfL8zKFqyou#cbZneR}`;pXLi-(Lzbk U{O(IF(`&z!We$cD&z+;^7YLIa3;+NC literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/pegbox_header.128x42x16.bmp b/apps/plugins/bitmaps/native/pegbox_header.128x42x16.bmp new file mode 100644 index 0000000000000000000000000000000000000000..539db347f7547728fe4d7ff06bad55dcadd5db0d GIT binary patch literal 16182 zcmeI&39O!D76)*(6dh`(mf8kE2qH>^U^I=4G(-pyg9ssnXd=}#L?swOM39!W75g%= zwSu;^z3pvp_kFW+A}?Q@_pa^`rWqfRq>`?=RNOvpXGnf^FQZ#zWcY{ zJxfpwm* z4>#uCI<)q~4?p~S_4VVAKOT47adleQY_rX_+;Yp7sgoy7n-c$;C%23q z*VI-J>U7c8S8eUO+PfqnIckjcYr)U1NB&Esmms#eyV-LhrN{@8XLu_Q|H3Zo20Es{hZOJC{=9W1Gj%oI6JVxHnB`9y#W9a{jCC zy+TuSFzu;q1pnurdv3sh0Yek4V}!;m1qbXoul0}r90vTq|Ni^PMB8q=txmBYcU*SaW#h+> zPn0YH^4x{A^z;6HK7q()|% zbFVqm90vR)`mm97w%&Sc^1_7+Uw--JhaY~JeCVO8_SM#cS5kj83-%Cpd-+s&W5m>gdYf&wF}0DSUmG=cG^XW+G2@$n zFk{XvB`D?imWgIvKNo1c`YQ2%^UXKI0R9HUBVT|0wS7vjUcKlac;Er|C!Tm>>eQ*b z?Y3Lu4|)GMB4JMKLG6nn<`pllFwxCYZy3cH(c-@sHJ)YUkHqf8B1o?R-9N+&K4}Zn|md(xsUZEX=>G zzElW%?zw05ve#aFwbtG5N1qd)J$v>IH{4)g*IaXr$;x+Rm8Vre5POt?f9KAfZNy>< z-Me=WneWzT;yH{G|9kGa$BtV^ufF=~FTeZ}J-++yyM!~(JQE)#{sRXNjJIa-!3Q6N zoNdPA@AIC6w9=J%26_DP$AelCPKLmkF=Gf~FY!O`yz`>`p#SKjk0wo;M35H0`syo! zOWq8j@p}#f{>uLNF!>+VprBBO!0+DL9fZ=_41sqxcKq#gK^^I*?HahlmU$z^-^6dd^;S3o+#D~s z-~t8q{rBG={D0VChfzj?F8SZw<5*yeEw^o_J!N*suoe#QXQ}|Iam7-@bi~D%WP6ZyS6iz|0ZU=bUqnzV_XB z-^U++9E+;?DbGIp?AY%({}Es#M~>92s@o9_fwSQM@y8!WUr`;wEj4w<5YVMT8UKNQ zzG{=u2>#iZZFL>|t$pAqhHbt7wdNvQYbF>cByAd7g)yKY2~|5R3)$X^2EkhRaToKQ zI&~6zJkE>~x5p+(Q(|Dkgb9y5_SpRS^W$_b+JE7N7i<n5!naKHhj zjTxD&i|ch)zG{-9%Sd2lZ?#>^K z?X0uT^6k0jo@*8~wmG<0{-so!vX6eP1?4v{aNj%cyu(9mLnc74=8>+r4cBe`g(1d7Uws<|UV0QpceFD?AfNE2o}%YBH-(ulNeK3Q@~s z#~pW!R|@{XU+^o9(jFIClJ2PqL7W3$*vD5Mx8HvI3Y&I*Yy^L0m85TA!cxe|_0r#e zS6_aZpnvqyNAJ4pEMj&soaI3|FVfNm8Z|xYBzINSp*EI8p z_wunrghud(3I11;#0V?!SCaq%hGv>mFio?|$2tNtAsPn0I`F^)F%Jz7)@%W!p|{rf zg3LRmuZ>nDcvW`FBb1`OTx*!0vNUUdxx`HlIFy zx?&shxX7-bz(C!8?X}mkvCI!S$9 zgT!;LHBN`BFs2Mv=eUw&;zM^XunK%$IxF9Hl#uviNC)gnO7(-mI02J$X+-0__uk9Q z+2f5j-slxeYgvKqG=|1$3?+U*7j}y(QX78-q$T4J02=fv!<8#nqAA-Y##dZ%MQ%*E z11w1|-o{mt7eu?&p()Oi0z9rU{Qv(sOJBZn&sWUKmifrVAksmab)b;=in9@Cine){RB`1^qpf5u{% zm!tQz_b68R5xoG7jCq(<5KGz<Hj-KxJa{kz zReh{7GSG|_e3%OVq`u|U#*?@ES8Q1K{hlx|A<_7@U=``;)s z<5*8@8w}_sPo7K=jfp>!$=#eYsKnn%qrDj8JMX*`{({XMo0^(zmnqHNS?>GqzaMK~ zgJ8F7Ky*+7qlOiK@* zC41A9dnoG&Q>6hHdlU)T6a)5Fita+mI1+c-w5L!Xe^qoGxx23w|L?y04*p;d{LKRX zQb_>rQC~7L3X1X)Eal;t;1{~!Dl?|m5=<>f1n}pkgs5T<1=|V(IG1aRfk&>?R5ntx z(9O5MsZbw(XFl=Ut1&c!KmLJg;tx_s6T^lLGiyld%kSy-5&RP2r}!yjFW@b!N8wt5 z9(c=*2I$H?6mF?7;OlZt;jyR_N}3X8zbVLd8c+P~CF3Vof7%4<*lpc%%PsMXDjX=| zkU=I*{q1oPYlLk(B*dz?B-YDBvGop(B4xiw#)1&^10U zqcIX_1-v*)*ZGOZvMA+W8cl^k0A8*sZ#7%GHFH6H(w_IkKRUJH$|HA$P$&Unml_A} zaUdLen>FX{iGL{j_3LM=CAZ@CB#LO^y6diUEKHUrxR|{Ie5I@)k8j=ad3|`fPr#RZ zSkYb%+WF9?0PP5S`(=k44$8QI8G_QOzu8bAmK2mt5xnKW@Iv-juDH^;9pw5)?ieZl_9I8)JSQe= zKZ{cQ2$J|)Bfx=7N#MsGd#wFJd=3_oFQH#};e~n5@7xlea-t}eyCVf4sO*tk!i&1u zmk~?DgK5uM#-Ks)rZNO9Bs)k<5%XH+=%lg=R<^p~Z5?WAzY11ptD(yEq*>+f*qpA2E5F?=!kFLN! z0L-9@$C8bMz%%DoBM>Z<@M?-jlEB$}tcfJclB_%eA6shBLNX0{2)= i;APGwmqk8VgqMIrFB`-jz}Fyb6EsSs7y4ATN%$WGkfH(r literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/pegbox_header.138x26x2.bmp b/apps/plugins/bitmaps/native/pegbox_header.138x26x2.bmp new file mode 100644 index 0000000000000000000000000000000000000000..5b465503186009fac7a849285a5e1e54649c15bc GIT binary patch literal 3710 zcmd5-OS0225R_yVR8hr(B`4qrtXZ&Qnd@)>j*?4;?w(I1TM7=O0N1mm8O`+ce4O{? z+xPcH&sVIU@czL25pOMTv6k`~_aENb`$igDE|*KWUa#eLyOr&~dCHng$32fP;+=T+ z1CZBTrX;7zrwPtbpj&d8*^~S8fsy;@v=jZZ{0%Nc0&2=g?O$b5mI z&mFu+X5tC8R%>n3T&V<5V%Z_Z!6$n}hlT|&=xnXs{RfBO(&N(sj@m|JNrVnH&&oO! z-9B(JkID_HrhjLSqp7jReNtGJrn5Dt{V02YJs0{ZNL@G_xxgGPs-Tpt4(tUG`lu{j;wN?nqv1 z7It)y#OxTG6N~m>V-hyLC=yG+Cv35YAl(d_km*1qwh7QkLRW^^uR@0rcO;@zjg+aH zeT?*WD?jjC;9qP#sLmbVyBV@_E^KiiItkyP#$$D`l^m$jrl|-|gK(7t1~d8O($ytl zz=ef&XbX}KIv75iVT@chE+(*KovpaA08-=k6vcP`3Egqw6^w+ATC4u%n$~eJHCC38 zeDco)D0s)m?mVs+gi<~HhIL%n5{#mClB_d`F#9EAfUq?e`Rg1fUl>Vw7E zf`*iPa)IU?mzWUq3@HJ1h`J!Z@xr7s*E<)Rmn6o62>?T3vq!*+IJoa53AwmU%I6M_ zh@wXnp9h0O=Q!26wpL;KYyc&Ov3nl OQu7KfOYkQzO8E(?O)Inj literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/pegbox_header.138x28x4.bmp b/apps/plugins/bitmaps/native/pegbox_header.138x28x4.bmp deleted file mode 100644 index 0754793c2b40d88fcbacde86f66e8670d78576ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2136 zcmb`I!Al!K6vm%MyV_vaDC(uHAqXuLTET-z5u=R+EX7tE5DQH~h}z2r6B=8gWAP$h zl(rX75mG3mhXg5=8ZiHW2L*d61Vxk{1QX3Bn`}s?v%5)lvT7>Wff;6Z-~8tL-n>cr zo{ZFh+}@D!F6j%T-z2>Ps>lei&j2*&l`g-?4+et)OePa_baa5lVgZ}Y1`dYWQsUA^hyqGgy;#}eIGp^>)urIWv;jk+b$Njv&-%bG)J)?VY#uty=TqN$s z+e=h9i$$4}lCt`h`k-(oar_*PD_|8EA?BpQ3mpEp#Wr$6eNZ^7(epUYuvM@oPTHyP z0w*38n_kd{^?Y;m(D3@!`5ZHJC3w0D3Y;V-_Fxyafj;-+c5~=a_u2E}ku!X>rr+lo z)iO~)^3#>;Z83>WW~g|XZtrpeFc|BzyAG1hI;@J!*R#Z#5N-s8&XW5jvf}K=(a*g& zQ$OnO`>-%Ooj|0b^!(r_lFsfV(%vr~NqJ_2B-MjKBOAlxR64^0~*@C9weq#%Rt;j)|l8EE_|eah5!!0+V@;86-|67Yvke zT+Qp|$IhR+fwjgG4rby5Mwug!VyfKD^yE25YlP#ok3G}qIW$ZVw-2VOcQhQK1Bx65 z@!mXVLh|KXv}%1R>c~hu7UohtGwHD6OVU&26%gSh>{6Z|^5~0})7Dm4i+Ob}a|-#9 zeI5A+2?t|x?x*DBUUAV=ud-6kv*>wOJVYdGe%(A(3xopeR&eJjSbAyS9y z!*P`CZdo7BFQhBD$jVPd7Oy(d!5uqpM>*%v?y5V<-N)Dn(!Joatug$og1Zcdly9b9 z7adQykojH`7*fx*#myv++REv{{%;s(qu9gGp-%Eks;-h|+3Kg%i?W=2+|) R+hsTyr#&-eDf0gyz+b;$Yb^i( diff --git a/apps/plugins/bitmaps/native/pegbox_header.160x24x1.bmp b/apps/plugins/bitmaps/native/pegbox_header.160x24x1.bmp index 8f627f69f9f155849a877aae00a6d4d5c5203ddc..1ad6ef682788bddf73d75e339a2f0483fee18513 100644 GIT binary patch literal 542 zcma*iy-UMD6aes4K?>FnoB{=BM<>xm#M$5<;Gzh2(8Jk5UerNwsH+gMZf+uE5=4U; zT&%8%2dyB|Q6*qouJ-xfODql!zT{o*e%!mun|H?hEQwhfCn!%TZOR-y9MAL_8%#6X zDvpR2<)0B){h7A_U2B9FH~5vAfdH_{3&1XhogB>!oY3%Ny4?}G{%xi!cENUAnB-b* z2E?w|qSv$3XoUuj+2W5wvGygKT@drDY|)N8ItL~!r{=KLW|F%in8t(H-U3^FD|z$4 ztlf(xi`<7+TCveVO^kiVrGD8eWJBC<>?@CM)GJz*!IY{;fEXv6V%u7sBh`9j(Mzew z`>6JS&trSaTT5j1jfC%LJXXlGyjYu-{|onr$wGNC*j=SQTK3d374>2rc>38}^CS;E JzVqUnoSw66>V`^cG|P6!R?WG5HnJ09 z4{YJV+rVmKA7bryu^#Qv<_m24vczV5KfkW5KL2OUtM>D?vT;M~Oy;6u@5_K)-Vy6; z@japikn*JEg8n1?Sr5-B8uya&qD;lpsXX}P-Z-0_4`5v3j zX1Cc2=I{k<{B!|ivaso%1ZA+g;*nKlp&!h-4s`RY$8;!`Ma`0;f)=QxkyYGwfol?d INV-w)KMB`@d;kCd diff --git a/apps/plugins/bitmaps/native/pegbox_header.160x24x2.bmp b/apps/plugins/bitmaps/native/pegbox_header.160x24x2.bmp new file mode 100644 index 0000000000000000000000000000000000000000..fb583b6e2ebe51c8143142058b43092c6f1c1386 GIT binary patch literal 3910 zcmeHIF^=3Y43xYn0;C9#Do@BeQe2mE|Cf3{xtSS?BI%V6cCHE#!Cq0+%#ac#@6TUv zUz^$+et+QojrTj=-ag|O4fEf=*!#&m`n})p?eTcD=kwWa|9ndeo8|`>MV-CG)DB}0 zS&m?dom~NnxA6FWU`71NjwaASsrXb!$B&Lpe8qYV*>rwQDU$Iy08-E)=ADMIN@Da zE|TQHe#3!-&U0QMK}~L$J|bgdYFybnjTAvpASHMqKXIu|PMe{3(L5vK@GvJX3kEI+ zPl`q4X-PvD5gSt~kS=i2bC5~LXvAS>d|K!7R6rH%u83I#5o;Vj-oD_+7BglL@c!6_Km$WHR` z=sJ-T&$PH~r?R&RZZ957v&;`{^$~4C=y-d{C4JFegOP0s-C>N4iZ&=wAPNj;pmrAK4RX@&Fp=>6V@CLQgWE#+_m5X?Cv6n}J}a#4 z|2hMUWH-s9Mt|gY1n0Rs*lecAhd&(POFgUMaQ38d-U`I8yApfvc4YcT?3v#ck&)jO V%HLwSGuodk0wP@@{KuZ%fj`VEE#UwF literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/pegbox_header.160x24x4.bmp b/apps/plugins/bitmaps/native/pegbox_header.160x24x4.bmp deleted file mode 100644 index 444e78088296486ec6f328fa0227a8a4df2b96df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2040 zcmcJPZ%7ki9LJwg<=j5)2I@oXAixGO(`ap1bW%cam>Bc%J9?{Qi9QefIou zx_62I`EKF92Dj(9vAF5LaohvYgX2`O)QCgw1VI4VY!;-`X^={#Ks+7?;cyrPgF)c; z`$1=CCunbP2Of_HxLht^x7$HgRTY2`itT7WMd*Kir(F0YXO!h@3QNiqmrgV(zhCj} zv21NIaqj*aCW$1bSh-Y{hoG5~g!*>Xk8kHJ3TZuu5r)v-+_was%

?3 zcpQ@QBU7^L}yfC5oWnQdq zez<=6I1)bL}G(dKc3%oGeLIz-Fnct1o%GOfIZ zK6cuId*JvGg)uSX13*u}Hb?c-v%~c%UZp#?UUu7p`cY^@i^p_d zAGsER^y-Lb^3KifJ~NU|q|IUHf(AZu08iNUhCZNyLVY!+5~Fhy!mG$x@slwXnNgpt zFK)!k3h)oflyr(d$~E9zoIvy?B}mYWu7T29QNo}rLrJSRF*QEQ@o2oP06(f|kgXWI z&2{*yw*u%koxh9HvBEs4w~j0j9*ZZZczR036L$I0g8LgI`$2E{P(Q6_ql!cb36D)} z=6QN#@hUvZh4nGB-0YgVC?=kl)5fjVMTSdi@Qe;=y`sKiFN+i&*CFygSrB;}a?BVz zKipDWw|!%->46q6_y3XgR(ql{FHH8sG0MCx;Jt}tx&`46yYe!&Utf*!BUG- zUoRTX{>J=VZHrD%6Mi%+q2Jtvk`U7Qyu5*VdHe9j{jsi%9nJKMs`p+q;Q*)6-+Msh IDBS@31CsD)lK=n! diff --git a/apps/plugins/bitmaps/native/pegbox_header.22x80x16.bmp b/apps/plugins/bitmaps/native/pegbox_header.22x80x16.bmp new file mode 100644 index 0000000000000000000000000000000000000000..c49723c74b251bf9347b81782915b77f9ee8c875 GIT binary patch literal 5494 zcmd6rSxA*z6vvM?YlAtZndQ)+HmRA_%?G=MFQVR{B6^aDd~pb(3q}wW_)@43QHc~3 zl%Xa_U8nROr{k0jHt2&iA&5j&PZ9KTe}3zp?LO!GJbm8#(#Ll`*Is+A|5|(Pz1Ldx zd(NL>4&zDZo4_xe-yi(^91(mSj!fo*1LbEheu2-zg$sj%g686gpPye~U|@K7cuY*p z=FOYa)6@6v-OJY}#)1V4FcTFOwPC}Cl$4a;j0a-l#*HwU!VgaXF%uRR=4A$xv9Yn3 z#|dOSmDC84P4;9x zq~hY@wr<^OutGyaQ&UqtW<3Wiilwbtvj$UmtfGPz;WlIg0s@GHzK|tLmaJN}ia2fA zvSrt-msU&e>rAt&JM&C22x$F-rj+}?mibpPrnPgcc9-(%!HvL0nyRr zL{Fg-K5+u3vIC)E;0*~>X)x*R?&8#egzdheLD%2_e!$l;@YNH8B*CFKc+;Q7ix)>k zNM&-6Jh&Ys5{|RFog@;syu{oj*gB# zefspmg$w)l?=LGW>+kQ6j*iwau3x{-==SZ~g*&^Q9G zU%!T^uC69eJ$dpZF)>lYc>DG(qtmBPzk2lw;^oViWVUzC8@dKi-ua7S> zV`F0wRaI4d#W;jPvg_nwiZTB8_V$*Pl)$HU4G#~uw6x^pi=~s~or6ohj>rpCJ1f`R8(PrVF(t}q0*6eMaxqGzN*5L+Woeqd*W{zzg z7@S199wc(3u<6avSVYrGkfjKhJIwvJYgB}o@MILp+g9eQTFZIM=FpECW;6+ z974W(_wMrL%VYqovKBN*>KrE=hDL@^6%`e60T7s)no^1y23hy$(W9(#XlMvFDe&RL zhewVa$;!&Ys<=%OAcp$rrj z7E)g>Uc87N0<247X7U3D`$o2gK#!vUL9IcX4ZqP3~5f4hMBN|ffBCpdMyFItjit-;&?+~K!Om@B)D*FV~ADhalwF4 zZrQ^S+vu5JknCZ|DkLiAuRRR(@POr5zMdG2ETv>EmQyfI7?un!2)Dy>$~KdNL2cmw zR%jXGMh-g z&h$wG;Ql9qgN~I_O;Mz7l8k)n>66kG5Jz${v7xL`!gT=~v~&fuXGFy-JKE4zA~^B? LIvj=cD--_!qa6ZU literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/pegbox_menu_items.60x13x16.bmp b/apps/plugins/bitmaps/native/pegbox_menu_items.60x13x16.bmp new file mode 100644 index 0000000000000000000000000000000000000000..71ac4e04b4ecf3f5a3e45f1ffa63a383fbd7ae1c GIT binary patch literal 21114 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 ptPQ9$vxWdSPQ@K|OoG literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/pegbox_menu_items.60x15x2.bmp b/apps/plugins/bitmaps/native/pegbox_menu_items.60x15x2.bmp new file mode 100644 index 0000000000000000000000000000000000000000..78d76584bfb07f2755cbcc18d99ce5276d253a18 GIT binary patch literal 8170 zcmeHMJCfTl3>D=RnMs!mq|G5xrAU|3XUauV`DnR>^FAOcdPRxW?Cd7H=13$6-~r$l z8vFatKVK%5AE>|L{f74!-ZXtgJx#wM|NP1C2XS1T&*$lKxlGsVbviwNp_8Ll0epGv ztbivrd|i!=U{0sgjF{1!5`!l(I0C8>D^J9tJG&>=Rs}V=LnC1Hw;)AUv7pLR#G3@v zSqh3o@GRM=IaeiYTZqALfU>AA3|ELghy7*~YVCJ4N(~i)mK+KHnR@< zRj>(H9+ni1w}pCR(+E{+;{`Z~F(h5hgy_NuVia1j2C^P53|4*%_FixSg17^F6X9W~ zgTJvh*iE`c29^I6HLcgdV6Z-im*^fWV?@zKD~cN&JA9UOO4qqFyb*53KH9;d=5DlKg3R85ODQdqp*HmRTwzHf8N#8d9gh~* zFdgYouwmJ=yVeQbTW=0ub(ol!!p5!2>=1cL32|s?j0KdNQJtU%(8k79;SRRt08p-| zsvOLQ&mCBXi!shXnAr-yj(|BD%zd4bOj&K4K!~LpVANfr*tetu4t+^iu^k-Qq0gW*O=tOm=YG)Cir2Acl;M{4e8Vt6 zHqPl1mK;7s(nCM^Z+8a#p`ouDr7?Z#Sl+*jsQ??E6g{?#sWq{2j^G4qWvJ=(+v1#0+l!kD|d^^9HM+nYI|I zp8Ow0c+6}?9e%9~<28tFtTm->vi=5B+=T5#<8bWEQ&O^AL4n|0an@?{G#@hhoaO3T z0H$GONnO2Q)9|A_(+ub|9JGZs)AAmJ^UCfQWe{v2ZIODD6M#G2*FBr^WK}4bM<~K$ zV@lBcCq;t|RT|Isc#hD)mcv7u9ZREWRYOB?nk&*(Y?$>OBn^iUS+2k-q67n3HtyGi RxXf}5mMAV!Y2J52{0qtBTRZ>& literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/pegbox_menu_items.60x17x1.bmp b/apps/plugins/bitmaps/native/pegbox_menu_items.60x17x1.bmp index dad5592ac4ec6e9998efa2b5374f0aa947e7184f..3a048cbe2a79d23bd9acd6e069b0d609c98bb8ad 100644 GIT binary patch literal 1286 zcmb``KWGzC7y$6sqAnI(o$M(`b&RWoUeLu1;v}7f6of3jC#`n zCrdI0u(j*jD_V69j(?6Vo&U}B_G?+sjhE7y`6?qfJ2FnS05cf_s5$^o$9jK6++Vhg zfzH#6KDp|OdYWgJw9W?7(w?%RWEGX4=(=&!SL;q0i26W0@XUF5gTKbHp3fQuhRjE8 z!xifzZ$;Tsh8>lk>be*#Sw9y~mGOU?Y#;9&;Q2ou*G6k-@^ODB5%F4W^awrJ+TPkn zk4CjGN2qG&XFv=>aNn=bUfA!1Gtd4Y{PfoDxg5qnsXag^->CZ@9oDIJ4Gr;)D8TvM zWB$G3=TE!qxNp2v>fRHsKIuLbE}C6&-t>mqypJBXO@E5c*PY$eQorA^r)8+WK=8#S z4$U{pyZv2<)}hM!6Ni@Q#$JD%qYWYJu?nrS0qqU*w7j{znG2i5F$#vGuJKRzI&sxK wPAsMTzePbS%@uPzY7=f0uk*+=XDh{QrqWKA*jQ!vM6eM}nP9lRD)m(% z5QrNNq5-+H^cXg~=7eiR=5CukJns4C%`U{|AZL@ey!r8;_x8OvGfT_k4;a}ZuCwT` z(LbV(;iv2*&)CaJ?K#xSl>vZqWl}?N@KozTsG0aXj@pmwFNp2N9PvuLB3_FxpyKVr zdD8KuX2L&{2GDT;m+}Cx@L&C~%W!R_@sx>qO8L?_(X6D*bjpP5eSlwS{fy!8e%S8r ze63VBiT=_wQA~%H$`fD1BO-4S!_`1@u|fPj@zYW9=AUz*yg^8;sf+%XdjK@b&*ssL zY8Bd#b`3|xqtZ;uOq--HS__od2I~%0+0o|sul~DW+%@nVSDTLt`--tw_@wybuuyd* zTnEDXW+8jR@=$k;mB)Exa!|SKz)0^f^!)K&$9;x%ZGLw0lAWk{JbT;@pVj2k{j z-Me@HemcjErQh+!L;7!6?~F~^;>o+W$K_*NEWlc$T(<=m>p}V43|GZQ;05pN-$nbt zYg8{ktZY7?*fu+@e1EIEb)Wml=IJ|no`ISxs=0|-oRZNllSYxrsFas8MP^5(9a-_+ Ms?sJm?NR&R0{Q4aq5uE@ diff --git a/apps/plugins/bitmaps/native/pegbox_menu_items.60x17x16.bmp b/apps/plugins/bitmaps/native/pegbox_menu_items.60x17x16.bmp index 640664150127aebb03fe57eaf4e33b13c0d8fbc8..955be064740c3398d484dd5d1f8234e12b009044 100644 GIT binary patch literal 27594 zcmeI42apxT7KR5!RsqSe2oek+AV?Arkt|mEc%mplKz&cd5?BecfN4Qgaw-Xh1tn#` z5>&(z3J|xb2MSU?P!KH;l^i4pl7o-;-T8OV&fdgzckc#jrY^&oGu@~EKHbxM?|)8D z+kb56@3==(&b9d0l7DmfSHP*j*>PrYzf=+Za~1w6zj+|3Ter>Ar|+&?cdg@e$tU1v zEm&~+^5x5Y`W$wgL?3hZdZ0|1N{*A{I7=NT$j?%uA5p5*ZH|-dI4SNYxmd9#jx$PaHB?hnKm3iO-R_7oO~P^WuZd%$I?)?mPrDz zi{-KxbLY+nrPP^AFJ^ineJ){MiYEbp->O#KZ+@OW{UpkjE6?#k;L?lPs^IX_rK@DC z4`VTwB9Gy10BqWHflFiquTkLAi`iQxH!zRZ%oGfrOO)6V3uX%E%G_WDz`a5U1_qs} z>s>&i_&K*QyR)YoAeqcK4gBu97to|FWm@9646G!SL9gL(W$xzMQM71tR;@^rlUpFv zKzK3d#zGgXi%OQP!z5?suz)zuBpl8M4fL_#U`QJ@8-mC|tO3e(7K3%9a1; z9(UYvN4~&(%{AAAVlG*-WT{f6BH^!Iy*jlb-Hofhc=6)zyz|bfQ>P|QoM?W&?z-zf z{`lhy7cN}7bZNqb2>=*Ad^mSEY}kO@uwlbre))w<>c$mYB;$(~EfQ2O=GR|;T}qwX zv}t3Quf6u#ZQHg8GD=x#gC;j~Rq4Sw zP=M-r_UPKRD`UY_G0b!%&!QEu`t|GY+_`h;(4iG8R{Xbn6e?6Gk7M@X`5w6HJm3uk z^vEZ@3nHlV1?s$jIi0$9nJ#GjWS2!Jn6l8-KzYG~85QQmOkv6l$Vp!todu)irL)A# ziPVLAgvawzj>eZ#i!!ZSb2sNGyGWQtgo;IkFn3wUboY8Os|-9|jhA zBrhFpn9*AZ00u8-W{4LvsLW{+yxvAOsES#*Ok;{a{ch$=3}{!~sNb{sEeVFRb*%#Tj{^Tb)u3cw1(sB+5ZJYg>Co=MB+N^9&>Oj?RD7C~L} zcGH)A5BMJNJrLFdpM3HOp#a#(uy^yOQnd5aPd}Xp;gv338tx?&m|@N>LZ*HD_Rv}I z&sD2d701}9Q6uQt4?p}+q%@Q%m*Cf3s3c*AdA@k@;y2%X1H~8GuefT$Vt)JWw?TOB z+_`=G_9Z6rBg+YkS-m)P=n!|~3NpxeDCWEFy6ewB{{+u~0Ry^s@BUBsfHE~d|NQgM z$Z*k*KKdyALhjwWcaYh*UJ5hq_U+qOs9LmWasK>y!o4V zd|0w%3C)!&S8ny{)q(_h+oVYo?|dfcvtYpj-Nnz$khmfYH7?975#VISAc$sVh*02F zqJ(I?m{p)gjT%jxHYEyR<#S9h%+Xs6#T>nST<_vcR$7ketq`(zOHBy-S0;L0|E})= z-vhn}d=LCx5AauyShn|XU#NwmMT^Fs?Lh3CT%c_HEzqS)mr0W*J@d>n0>eZ{4G*U7m zQ7{)PR*dhiluS-ee);8>vn#1Xn4f+2S@1mYzysLFjW^$XGmfoWw{Ep+)gFHMVU!&A z-FF{lUVH5|WN=Do)~s0+%#9m2rtqjyqwuy2-gX;%L$Z2w>eNYQt5m7-&_fR)Kl$X7 zeASnKx^*KmwQ7YxEhYoPh!G>O zjH{9Lqb!S{8#HKuDURo!dk*(92bdlJz&R+vhW*DLd(15|>F&GlmVkcHph3vwAU*QP zBT@#Pfyc}t$qIeXo;~^5g}|K8B4DcXl;K#cftgEOq$v&f`|nR>p2>}otHWaEOPzd3 zMP`=<2&nby)x#iXX=s9HA^LLkx4KiILIo0aRE3p+$1U`GJL?-yCC?EDze>17(29qi zsii7tf~xB-h5r^Lzp(EC-vhn}d=K~@h_?r{>D7~~<0K?>aFZ^`&tZ#hQd;(oZP#@? z8+%QuM4-S1H`i1k5y*tJUA+`WKia*_Vz&~B{E`NcmTQqj2wvG2WE8lu<3L0kS$P89 zjlHHc3q+7H#Q{7CXvjt&i9-1a2wX95lw3yfbC)iM1QHCXuDP6EB4LrutebQ6&cEVz&jDUfbK5EWLX7)0* z>@EVASx*<#T7)Tl;;vCiU_f?_D_PO;yp#Y9AFXD##F4VNFs%wNE0}MxYdrO?Yd<^l z8j9`LHsLCw9jTMV!Qs9l z-3`)1V#DQT<38&*-+Yr~fG@xNQVqe!9yxLZ4H*T{yfjAw$qzsLK%R*TuxE|UkA&~f zo;?d~i&7glp*`UtsYnV36%p9c$=&A7n`@gS=^tXbWhX0VFJ_WqlvuKB*RD;QHsKj) zOj_pvBzI}(gAYEChBI4_8IdTMp-hh+Jxa;_`}gnOy_+PEtU$H8!c1ZY8pv4euU)$q zR#^!=klyTg6-aiuQs(&a<6MGM0_=Je%#T0*IEBeg!rL;~v13PTI@1E=u*{M}GIQok z_2K?BBnC zps1_=_SV zTg+9$Z8FRLR=GMXW|(~WkY|B(4h;}ci7ru{voth8@(+trrlAH^BtAl5MM~n2JZ@~| z4l2X?29r-XfaCh>uO}XapcRj&Rq07oVM}jNb!u@pyB@$GRQ{#!0pA0@2Ye4?^uYW% zbM`MFv4&0`^6_r8SqK33kaD?@B}R3>D$!pai`PJa&v@gvK;k z?5GP>;~IF$o+_GU5Ly>ZX@a+18=6o69y&cdX0fueAXM;*x(q$jdfHoOGtj@GsHkg7 z6T)H+1rQyx!NVH<nRtN^8RPQf5K`+F{E-ENbAD1tQY`()-{`z6X2{_#TLl2gt63=lt=$;p!^3pUxjX2I&3CW=63Ned5Kh0I=zuUxs3 zv|$AH_hE;9b9xORTqudYXs`e=%Oz~#8*jYv*=L`LCKaD=O;Zd?AKDYX`uE>|#~^Qj zBO>t1E3fcNVDaL`khdt=Bd~1QG6a}OtRcV*>t%Oawrs%~Ecc#0d(aay;FXVNUqUEm z!X-O)?4Uf62-+oyoszun4^8O7+eBdw%_iiz%6#2yJc$&* z&)zv#}HnD+cs0lLwgr(tJP(S#3&To;r1^qAZ`91s2d|@-p?7Zl6DYS;gOs&WlEYN z@IO2`kGAcQ_1;1zOvVdTA?NAc{Q2`Wa6wNE_-D+Rp^9uAhU-Q{Tt*&7pOTWoM$s5C zgK)))6|%-dr}zcLxHcxEXYLVhqY1`~0%#ae_TXp&pFDX|cX`{YG!)?R47*^md6{iK z47Uvd>lo9|HZ_aJ2Ru(G{nCz61ddRH>_2605ZW+n2*fVgv4R~_B76J@Fk95 ScNuOp*f)(Y_#U{*Jn(-KYlNBr literal 27596 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 literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/pegbox_menu_items.60x17x4.bmp b/apps/plugins/bitmaps/native/pegbox_menu_items.60x17x4.bmp deleted file mode 100644 index dea62f78a41aa88a05280f802ff796a139ac46c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5016 zcmeH~U1$_n6oAj}>`&ZKH>s_Cl9rT$MTo1DjoG!3rCDPw*aSlQkW#X3G}08!sv)sL zyQMx45n3M_;)a426tkoImz`ne^vujI?kuyLzSW`w z_xHQ!&fI&>xpVH@2fy0_`ZG!Sc1mwinxSL^2ju{5#9wSSlHO6yT3cJ8t*s4so`-Na z41Hjpp)H*sK$!Mg@!Yh8O^914v*aQkMo$5G z^cIG#*2cW@4l9o9{PgWE{`|Mz?6f5}I%$)# zLIa*Z6mmAeh@Um2|0UeWexwbIk$5BfxyOOh(jTHsrxtf299H7r(@d_LQZ((W&-|o(32tXw08t{Ts`Y7aA=O@xrcj!vVoU z%#!yz;b6ph9fAceZZ*JLK=@)kgh5Gqr4DaWuSbdFtvcLW82t!?#Xd_1^-8$87<-HX zIrcbZF@YDAmk}@10fe&_n9jy469=vW`U6)tS@LWEzuB{j!Ni`7HP_5ev_71O^gA@E zJPd2a|M=O+ezJAkx3c7VTy%pPaU#reT)Hy0x+I>1H#H8gR`*xx#6|bi=P>I!Z|T4y z2cj#|3<-Orxgt|tieOs@=%xb*x~uyub&=ak`pvJ6`yC^4q<`}64<{&4=`o%@2cVDRM1irI(R4YoWl z&1;;oTz5I&fb;K`?G>b#B6jRmc(r#T^Vg&#j1_v*i>8T0+=WRVSGS?E zRpWiqq)C z2VuYMghRAz+}5(o9oi2u(+fhIUjxr0`ayw2cSg@5K*q%HcHi?0@<6tW$BRP)ae3ew z)qknOysxHBqQ?;W@6 zLyfp}s9hG;hn3!I=r|^1$5}x*d{ibM?$>;p;?jvYO}ir(lhBD}j&oy3S6$*-Tq=xb zF-YeGdP+NW`LW{Yh@f#JE;TsaaW_$XI=&*MKPerfNZO0(?eI-4mJG!p+5q1P2p=@iQesVTal#IlSe5oc{p+=z{j!F6T?Jj zy5#>MfY&?Ih>J8+qo>{vw~@?K%#;o6M*_>(o>pYokCL$0u8w?GjW}@8?xTBu(GM8) zd7`}A7dvj(eVBNj;?fZLbqXUKtb@T%K_^WmB5^G)^+i1t`oVt4Iu>>Lldh@LIyd6d zG7m$J;?rm=*D~RVx;35$hZdI_JPIy4Kz3fHm(2r^eTt<2V_IA~a%L}|D(gQ}>Zs^H OU%Q-|_EWEafPVnusT*(|4xBkW`*A&IA#UsV=g*@94ZcdPl6#tj5b}jIjrZ~S z^>$->LjQp01pPZ(D7x;-CEfx+&GcE`Ko# zytm>QZn|UnOlSPj0gg#6jHs+)r%7$U{|H$`@b2aeqb&^yqQm+W`oEpYC!LfQ84%bvNhhm^Ih)&^}v#BU7v> zPCJ&f=krrgem)BO@=+6@B`{8XZcP5hFaQ7z#RirT@Gt+Vc;3!f5x)FI^vZ%o=DkNrvlL8_F0bexy;9^b^R4B z=}DUhTibQjWNGHddyqUpU@ai|{B3-BB$6fEPe1s(!G)my;=5|Op`a2Ou zAH}FsV`LPwP(s)LZpkKbyORwN&Kg;A>FCW5leGw^N{*Gn4qka^Xo^T9IV66v4yrF) tMj8Au^d&l@qnT~ScR!b7G^g$JZb@>O#Lz7Lg#MM)zMny?nL%xbnKujoE$sjR literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/pegbox_menu_top.128x42x16.bmp b/apps/plugins/bitmaps/native/pegbox_menu_top.128x42x16.bmp new file mode 100644 index 0000000000000000000000000000000000000000..f15ae0b913124e9d33a861b4a559a5907ac92be6 GIT binary patch literal 16182 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 diff --git a/apps/plugins/bitmaps/native/pegbox_menu_top.160x42x1.bmp b/apps/plugins/bitmaps/native/pegbox_menu_top.160x42x1.bmp index 252729927150c1a8254f377c70837a884b3b7287..cd46ef2c9255a0b4a8305e44603d7e9911e6f553 100644 GIT binary patch literal 902 zcmZ?rZDVEt13Mt80mKV{SPO_5fe-{dfbv4z5X=M?fe`=y|7QT=K?V-UV>;;m{Ra%_ z!WZJt|38nW^m_aahI91_n6 zTRt7d-r}DivF(^*>zAX7?F6b@kERYJwieaA&p&|f>%ESm_v0^2e;j#KS>uQ5-wSg5 x)`brah$HL0|M}MWPFQym+BZe5Y1OR%R{8|72 literal 902 zcmZ?rZDVEt13Mt80mKV{SPO_5fe-{dfbvS*5X=PRgD?pE|NkF^hbZ_^kLmCa^?xvY z^u7KA1G>`h^`HOSqiO$M|NQ@c46$d7#ECt>kE!nSeS38C>;-QyKWvak7XHq|c!041 zP3+;vAAjaq&PP%A@#mj^_Gn_oJMTOzmPAzt7L!L4n+a6MZ;xVLaU)2q9#!lo7BP?= z=z2k7vS{W3#f&BQqnP*c1JKQAVox4b{F#R;_JN13=-~m>FaVlU_8i$T2)pb(rWhMP LablRNs3rmc8m|gp diff --git a/apps/plugins/bitmaps/native/pegbox_menu_top.160x42x2.bmp b/apps/plugins/bitmaps/native/pegbox_menu_top.160x42x2.bmp new file mode 100644 index 0000000000000000000000000000000000000000..7095d0f012c30f3cea47433dc5d77f23816e5657 GIT binary patch literal 6790 zcmd^COS0533{3J^P{ocVC!jb5#eyBnxf17K{Vw@vwQQ@UvGaaBm?~T|i9Ri)4pK)gdX?##vQp9=>jv84&&DOS%w3z)Hb$mp9Mb4=IqW0 zu6&7~O>x_!vdS|5RjvrUlFmZlTf3E?p=7PCm#t7qu}+tW4cHKp+Z67Vl0AWxUvFPu zUo?}U9=|S<61p-;ckC)h#?zD3XUnfL~yo+6A&ike@|^ zAVFMTMvf-YWv0ZhuUp=4Qz8q38JjgSz=iz0EdccXhyd133j$j_`WM88G_T?F?iJ;} zf-A%x(FrXhOV^-9!JZv+;gpml5Sv=81GBJ;dCYOdP>}vX-`evlj0-=gjXA^PVx^>9 zI9!^QKY@?%!VeFHw+*qg{`v83{VoF*|8#pIlwBQ?CY11kNb75LU&b%hiu7Hw#P)sm z$o;c(_mrP+JicSDOXU`1I#YsY0WE#zH+fLX{zJ+m{|M_m!5~q}#XIV`cjt#FX&cG} zQSck*3-{)3zi_5yDnkJ+$m)dVkY38(V9bY?gbR95H$Kh}%ADT|`lkeCIw3ZG_?v_e z%s7Hwz|~n8Pp1s#csE<4#{;bSPud6Oij4AVo+40=1KjM#0hf}mTTn87uo!K+z_Sl; zF&rsrQIaa0LM(`)5_fQTA&9hb_Z`l!F=;MGHyDFb&ZK1W#nm~gS>^8U_u(@^`3*-$ z=DWHf7ge$9QoG1=$aPw*sr?k-ue}mez>*wdacZc_60|T2B2Afg5VO%XokC5{9Ll~g z<&v6|kyWiKPXWVNgcO(*0F$l?WK~Pft}2AHRl_pFSzl6us#Lwx0M+Cg_9Or@KFu+S zs;Lsh<0I>-Ghi#J)bi|+Go+j#hb5G!2zYg>M|~;>W+9FG^QdY~dR3~fCDnJ_{RW9C BQ2zh` literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/pegbox_menu_top.160x42x4.bmp b/apps/plugins/bitmaps/native/pegbox_menu_top.160x42x4.bmp deleted file mode 100644 index 6aec9170a4c6f8f0f8d2c39be379336e1d00a8f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3480 zcmbuBO>7%Q6vrn{Nb6cAPN1AnaaKxHp+>e8iCaX4BE$t06^z6IXd7t-hv1%?148te z3nUjLED@C}Iayq-G&yk!iW{|{G>kWJ=*_!}flv{zhyR<8-HjK2h>o=Doj33O_W$0z z+2pl1zs@o_ZsUF#*SEM{#x=smaA(ZI`cy_;(x7jXlatJ{EH*zs&lVRKS*cWFwr#W3 z)m65(w#F)z3ftP+VzpY0?d|O`&N*{kmkA;08g_J=oHvGb9_ZJB3L4%(&tV)44ZvaC z2l%*BSp(AWswXHNdSj9YB}9q| zS0^gIbB6av`3K}%_BV+p^#$=X=w)&R#)ub4UpF!cVR)_b_tPnBp}r}j=+JfZmm)>0`kRIXpA)u7aP|CV^%PH^bZ1M8M z(c7$Omx?bw8F?qS`}&P%t`#85)x8nvPV(ZFhCXrsm9!H~;^Ei4;En0(y7-grwB{Zc zWOM1wc8n$z(hHwuk9P6ywMSMSc^lvb47EKTgLiJ{VD9l8q|g8=su}h@s=vy#idG zJKC=R?+B?%@I;-lkaxkI z;n$XUJ7ZD|xFaKUyP<$4;bcQAeaPY1@E)c)c*`7hFhiD*dRlV83lmn#VhyNye{I*# z@NUi=?avw z2)6Iv+s$z57yt9tc`?K1vpQIfof4uw z`s{;O>kgGnMuxoZ?NrKQ4M@D|d*{U8=QmcI>Js43)!!2LFD@Jue!q(oqYG#98q7;s z`7wSg#nzvs8)Lp`<=rTlg6*WqkYk zj`9r@Pk#uyXCY4?wWy)d3bMu!WLZ~QmbKq;$U7uRVVJ3%&@xpB`5FE6OhXr(l78sdlTDYsB8T%J@!0WpJ diff --git a/apps/plugins/bitmaps/native/pegbox_pieces.10x10x16.bmp b/apps/plugins/bitmaps/native/pegbox_pieces.10x10x16.bmp new file mode 100644 index 0000000000000000000000000000000000000000..8bb2cc9e941dbf9c28bdfcf7e4779d081e97c645 GIT binary patch literal 2294 zcmd^9drXs86hG*qNah1pN-GX3w9uA^yoBvye%Ceve|6C{Z`pB&jp$lOG2YvR>nGN zf|j_s5B)gI<42^flY8st`9-=!8C?uX&W0oqr{DyKSKJk9Kce!3hx7@n70J2oIeWF+ z4ogt1+3Xo?DBDxce}8!77dL&Fe_>TZ)8(}%uf-fRxrZlNheu}RfA7H~-|(2sBdzIs z>jI7Gx9^VG^OIK0LnAlCQr4(Kq6UV3ns(ajlN?pGM^>e;pB6#5Zg1t&E7zZP{@?a5 zXabi6LBM){Y)lmyBTF;_AOnMgaEdk??{9H=Ii;+jU6pkB7(-bVwguaF@cY+q++bpL z9nF98`WdPH98Pn0HxZ&yNd@zjAE4&17(lSyy`M=Wi%+7O2KH5;w0_F~0^3z7Ta_&7 z%_iosT&01V3?Q(|LtJM;OnnIGeCmSR^#=e5i+}EWRdg&-yT!ut`(cdvBm>!B2j?fp zj`8}GzS=o09mV4!S#JSl4-{^U2CXVVEdxLXFJFRlQkdfLckkR`TuLQ+`Z$cC%%4)0()LY-{Ql^zUm^b6-f*Yh zj`Ku_hMTa~_!(e}D3FNogEgVg(2uO7B#n&gjgd^hoH_$+PsK_)f|wGRE@saFTXP~s z=~P4=W>da5&2eByrp@uCxybK$-639|kB9QR)OkXEruao6Ak@8m<*kKYN>^T=)W6Pi zrmAGExF-!X%HsZ{GoD=PfeXr*e6# zT;3*=)jKyu9z-ZgrIqUvG2=*QrxpD(tiw%+O6360KMVw0ne1ppLBL1l9MCm<>9r!HWw6#+1a9t%l4y3@vc!sXlT4zZLO{rD=HW&EB}s+><1O#`>%*5lBnBaQbu?M4L^p_wUi~5A-WE+6XxSGJNA2bYT)Y)?K9~>O_j!N~^0G zVv9(#inbJez~hhJy#*2Otd<$1eMCO5Q+NMGBEKMwcRa~`=01h^V)75sK#z9CWr**b zBnjBM2h*FiT2LB7@)tB=oP# zgj5=)RL!CmM*xsU(Li||#GTmAICjMOc25&7uqUho z7P;FV*6fP-<5+7aPnlsDY#c|MrpXepX2UFI52!YXhIxb|LKkQ#w&KXiB`0}+>80Fh zwpx%A9MPF}q+g@5b!nnq z98}5vK9p@JP3@^da8v9vXC*@UMRm3$b>}&%&z3KD!*QOV%DP{^D4sjjJXvKyhkVfl xdGW9Pav}r=zT%KX1qi`Uc@-dkTPvMqmEY{!Iak^0@>j0s#T+;v{yl*0oS%?D4NU+5 literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/pegbox_pieces.12x12x1.bmp b/apps/plugins/bitmaps/native/pegbox_pieces.12x12x1.bmp index c3eab837fe594c5445b561c4d188a75b2b31193c..d0b197fcaf5a997bed92c9467f58b17f1d65d0c5 100644 GIT binary patch delta 68 zcmeBU?qi;y#w*0lzyQKb3_!5Zm{H>a1H=9c5PW|F0|N-ZFM!~09~c-w_$LTYj%G9l E07T&w$p8QV delta 68 zcmeBU?qi;y#;e55zyQKb3_!flm{H>b14I1=ATD5FsQbXcPz%J>KwJ*Q`9K^G#P&d3 JKRKGw7ytr}5n2EM diff --git a/apps/plugins/bitmaps/native/pegbox_pieces.12x12x2.bmp b/apps/plugins/bitmaps/native/pegbox_pieces.12x12x2.bmp new file mode 100644 index 0000000000000000000000000000000000000000..4218627a2e9d05bd74b8bea7184bce7038bcb22a GIT binary patch literal 1078 zcmcIiv2nvN3`DKbcAlzq}fXF{mx5Klrhr?mHQb`cr#s{kII8n=ym1w~ZkOkV35HAZAFcl$9k+_IN2}z(p8FVxxB2JWU zN=izUD_0I>Wo1-UR48A*JgTayRH#q^H8nLVR;-A+x;h#f8fa>2qNSyUwzf8vDpjI# z<;qm4QUx6y9jaEXO0{a$s9wD~y1KgP>FH6UMh*1!^{H92CbeqSqIT`t)TvVk0|NsL z4GpPVw=PCTMi?6#Q?Fh<>esJNg9Z&SF)^WG!-klen$oCIBN{huOp_)}Xxg+X&6+i% zdGqG9Xwd>QGc#JYY)PwDtuQw?r*-Srv}w}@3kwS@EiGx=wk_@2wWEFe_E=e2(V;^J zI(F=cwY4=iHa2wX)QQfWJ7a5WOP4NP=-Ra_c6N4j>(&i>dwaTf?~a3m13h~5pl8pX z^y<|MM@L7ToSf+0yEo3x&h+WihrWIL(yw1XTwGk}-@iWt1`J@}z<~@JG>E~22Qy^I z5QYvN%CKR>7(RSBBSws1B#*ZJ*gb5RvIB_DACQZV}#|K|uUnWnU%#Tx`}XZ)|Ni|PIB;>VKFpCLM>u-)D94T+eMMtpFYi*GiNw^_AKYlo#XuZ^IW)afr}R}a_Q0~E?>UPl`B`cdi5&T zu3aN4DvImZuM-^|&5av3xOwv?F)=a3#>R5%)-7(|zRjIGces1^E^%>j+`D&=`}gnj z;K2jpC>k?d-ja< z^mH;ZGI;*{IhmQ6WMyTMot;fiP7b-bxx9Gsf|oB}^6J$qUcY|Ln>TNG`}QsG-o4}f z`}gGK+yzUnnXnqPV!2l9Cd>e*Ma~Z{PU- z{X0K?{NU%$pJEYz10qAP6|i7Qo#KczEJ>23O23dYN-?Ljwvu>t}M+<*AwIYuq7LWB`aLVsT z;f+Lt%Vrm}6pNJvE9?qEDHQT$Pz2=g_lK9CTjssw>7r?6wIU$n6ts{cwIw(3FS|mH SP$I7RjZ^FuM-;DCgnt1WgSIdL diff --git a/apps/plugins/bitmaps/native/pegbox_pieces.8x8x1.bmp b/apps/plugins/bitmaps/native/pegbox_pieces.8x8x1.bmp deleted file mode 100644 index 0b341b91c20d8a42f09d2142cfe28e401da79fdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 286 zcmZ?rm1AT813Mt80mK|YYyrfKKnMa4fLMqdfmBY%uc2;niw_igCs5y#l@KzU5trN$NaEGKd4J2#(iI+)Zg1XhpBwmC(rx4Uw^-Q zp7(j*q!;Y436u>D=)n@Pny@%30TTVf6AfrmQ0@`B^B`GUcdCbb58v;A87hMirbmGfV8UtIIObIo;Nx^?IvbYqsIuPlZ}r{}-F z*)ey%_vrJ+e)0PzPYxx?kz1X+3ohfZ^C%y=jW$VDJm-~ z%Q5tyqR4Lb{}Z*fwHppoTwF{mD=S{FH^)|0b$NN&xR-tVN2QuNe#cHAxPCRvR8`nQ*4j3?{EG2w@nu=GCq?Y7#T6<^nd&* z$ues$ir~D<&F0jP5{gEp#ihn8*MQ)S5lMJw}2PHDb*!*sr^yT9X zKyY0&?j@am)!_)+Y`Ywec5vff@UYn$73G+sEGo)pigHd-CZIs4@o}iguNCDRg#{3K ze0+QYw;v+Tq)$MeI?Oa@#K8rYmzh=GAeWf|{gfZ)1lc#|h4w$;gQp8y13 z_exc{VK3J+ZR%ez0e9}>O3QDDO^*x@-j)rs+0651iztYaP-M42C#NRgsS0^kOUn^1 z`~=r>m=i2~sZ(%yW%Bri-dPihLSx*}Tc*fU9J)ZM*EE7Zb$L_Q362-|u?r^jL^Txm z4w)j+(4h}aXKoZ>8>F>JT=>24$axcVb_RQ;bncJf%isFZ?b%N>a42j}{U}|#+YX$n zeEK5|2(F8?y{c-%jKyLU@cY|aqyNqafZxsKL_ti$hW;vcrCgS)T=jPn(Ed2#$ CBU@?! literal 0 HcmV?d00001 diff --git a/apps/plugins/pegbox.c b/apps/plugins/pegbox.c index 04f5ba9273..0b181fb3a1 100644 --- a/apps/plugins/pegbox.c +++ b/apps/plugins/pegbox.c @@ -20,12 +20,17 @@ ****************************************************************************/ #include "plugin.h" -#if (LCD_WIDTH >= 138) && (LCD_HEIGHT >= 110) +#include "pegbox_header.h" +#include "pegbox_pieces.h" + +#if LCD_HEIGHT >= 80 /* enough space for a graphical menu */ #include "pegbox_menu_top.h" #include "pegbox_menu_items.h" -#include "pegbox_header.h" +#define MENU_X (LCD_WIDTH-BMPWIDTH_pegbox_menu_items)/2 +#define MENU_Y BMPHEIGHT_pegbox_menu_top +#define ITEM_WIDTH BMPWIDTH_pegbox_menu_items +#define ITEM_HEIGHT (BMPHEIGHT_pegbox_menu_items/9) #endif -#include "pegbox_pieces.h" static const struct plugin_api* rb; @@ -327,61 +332,112 @@ PLUGIN_HEADER #endif #endif -#if (LCD_WIDTH >= 320) && (LCD_HEIGHT >= 240) + +/* get several sizes from the bitmaps */ +#define PIECE_WIDTH BMPWIDTH_pegbox_pieces +#define PIECE_HEIGHT (BMPHEIGHT_pegbox_pieces/7) +#define BOARD_WIDTH (12*PIECE_WIDTH) +#define BOARD_HEIGHT (8*PIECE_HEIGHT) + + +/* define a wide layout where the statistics are alongside the board, not above +* base calculation on the piece bitmaps for the 8x12 board */ +#if (LCD_WIDTH - BOARD_WIDTH) > (LCD_HEIGHT - BOARD_HEIGHT) +#define WIDE_LAYOUT +#endif + + +#define HEADER_WIDTH BMPWIDTH_pegbox_header +#define HEADER_HEIGHT BMPHEIGHT_pegbox_header + + +#if defined WIDE_LAYOUT + +#if ((BOARD_WIDTH + HEADER_WIDTH + 4) <= LCD_WIDTH) +#define BOARD_X 2 +#else +#define BOARD_X 1 +#endif +#define BOARD_Y (LCD_HEIGHT-BOARD_HEIGHT)/2 + +#if (LCD_WIDTH >= 132) && (LCD_HEIGHT >= 80) +#define TEXT_X 116 +#define LEVEL_TEXT_Y 14 +#define PEGS_TEXT_Y 58 +#else +#error "Unsupported screen size" +#endif + +#else /* "normal" layout */ + +#define BOARD_X (LCD_WIDTH-BOARD_WIDTH)/2 +#if ((BOARD_HEIGHT + HEADER_HEIGHT + 4) <= LCD_HEIGHT) +#define BOARD_Y HEADER_HEIGHT+2 +#else +#define BOARD_Y HEADER_HEIGHT +#endif + +#if LCD_WIDTH >= 320 #define LEVEL_TEXT_X 59 #define PEGS_TEXT_X 276 #define TEXT_Y 28 -#elif (LCD_WIDTH >= 240) && (LCD_HEIGHT >= 192) +#elif LCD_WIDTH >= 240 #define LEVEL_TEXT_X 59 #define PEGS_TEXT_X 196 #define TEXT_Y 28 -#elif (LCD_WIDTH >= 220) && (LCD_HEIGHT >= 176) +#elif LCD_WIDTH >= 220 #define LEVEL_TEXT_X 49 #define PEGS_TEXT_X 186 #define TEXT_Y 28 -#elif (LCD_WIDTH >= 176) && (LCD_HEIGHT >= 132) +#elif LCD_WIDTH >= 176 #define LEVEL_TEXT_X 38 #define PEGS_TEXT_X 155 #define TEXT_Y 17 -#elif (LCD_WIDTH >= 160) && (LCD_HEIGHT >= 128) +#elif LCD_WIDTH >= 160 #define LEVEL_TEXT_X 37 #define PEGS_TEXT_X 140 #define TEXT_Y 13 -#elif (LCD_WIDTH >= 138) && (LCD_HEIGHT >= 110) +#elif LCD_WIDTH >= 138 #define LEVEL_TEXT_X 28 #define PEGS_TEXT_X 119 #define TEXT_Y 15 -#elif (LCD_WIDTH >= 128) && (LCD_HEIGHT >= 128) -#define LEVEL_TEXT_X 28 -#define PEGS_TEXT_X 119 -#define TEXT_Y 15 -#endif +#elif LCD_WIDTH >= 128 +#if HEADER_HEIGHT > 16 +#define LEVEL_TEXT_X 26 +#define PEGS_TEXT_X 107 +#define TEXT_Y 31 +#else +#define LEVEL_TEXT_X 15 +#define PEGS_TEXT_X 100 +#define TEXT_Y 5 +#endif /* HEADER_HEIGHT */ +#elif LCD_WIDTH >= 112 +#define LEVEL_TEXT_X 25 +#define PEGS_TEXT_X 90 +#define TEXT_Y 0 +#endif /* LCD_WIDTH */ + +#endif /* WIDE_LAYOUT */ + #ifdef HAVE_LCD_COLOR #define BG_COLOR LCD_BLACK #define TEXT_BG LCD_RGBPACK(189,189,189) #endif -#define BOARD_X (LCD_WIDTH-12*BMPWIDTH_pegbox_pieces)/2 - -#if (LCD_WIDTH >= 138) && (LCD_HEIGHT >= 110) -#define BOARD_Y BMPHEIGHT_pegbox_header+2 -#else -#define BOARD_Y 0 -#endif #ifdef HAVE_TOUCHSCREEN #include "lib/touchscreen.h" static struct ts_mapping main_menu_items[5] = { -{(LCD_WIDTH-BMPWIDTH_pegbox_menu_items)/2, BMPHEIGHT_pegbox_menu_top, BMPWIDTH_pegbox_menu_items, (BMPHEIGHT_pegbox_menu_items/9)}, -{(LCD_WIDTH-BMPWIDTH_pegbox_menu_items)/2, BMPHEIGHT_pegbox_menu_top+(BMPHEIGHT_pegbox_menu_items/9), BMPWIDTH_pegbox_menu_items, (BMPHEIGHT_pegbox_menu_items/9)}, -{(LCD_WIDTH-BMPWIDTH_pegbox_menu_items)/2, BMPHEIGHT_pegbox_menu_top+(BMPHEIGHT_pegbox_menu_items/9)*2, BMPWIDTH_pegbox_menu_items, (BMPHEIGHT_pegbox_menu_items/9)}, -{(LCD_WIDTH-BMPWIDTH_pegbox_menu_items)/2, BMPHEIGHT_pegbox_menu_top+(BMPHEIGHT_pegbox_menu_items/9)*3, BMPWIDTH_pegbox_menu_items, (BMPHEIGHT_pegbox_menu_items/9)}, +{MENU_X, MENU_Y, ITEM_WIDTH, ITEM_HEIGHT}, +{MENU_X, MENU_Y+ITEM_HEIGHT, ITEM_WIDTH, ITEM_HEIGHT}, +{MENU_X, MENU_Y+ITEM_HEIGHT*2, ITEM_WIDTH, ITEM_HEIGHT}, +{MENU_X, MENU_Y+ITEM_HEIGHT*3, ITEM_WIDTH, ITEM_HEIGHT}, { -#if (LCD_WIDTH >= 138) && (LCD_HEIGHT >= 110) -0, BMPHEIGHT_pegbox_menu_top+4*(BMPHEIGHT_pegbox_menu_items/9)+8, SYSFONT_WIDTH*28, SYSFONT_HEIGHT +#if (LCD_WIDTH >= 138) && (LCD_HEIGHT > 110) +0, MENU_Y+4*ITEM_HEIGHT+8, SYSFONT_WIDTH*28, SYSFONT_HEIGHT #elif LCD_WIDTH > 112 0, LCD_HEIGHT - 8, SYSFONT_WIDTH*28, SYSFONT_HEIGHT #else @@ -392,8 +448,11 @@ static struct ts_mapping main_menu_items[5] = }; static struct ts_mappings main_menu = {main_menu_items, 5}; -static struct ts_raster pegbox_raster = { BOARD_X, BOARD_Y, COLS*BMPWIDTH_pegbox_pieces, ROWS*BMPWIDTH_pegbox_pieces, BMPWIDTH_pegbox_pieces, BMPWIDTH_pegbox_pieces }; -static struct ts_raster_button_mapping pegbox_raster_btn = { &pegbox_raster, false, false, true, false, true, {0, 0}, 0, 0, 0 }; +static struct ts_raster pegbox_raster = + { BOARD_X, BOARD_Y, COLS*PIECE_WIDTH, ROWS*PIECE_HEIGHT, + PIECE_WIDTH, PIECE_HEIGHT }; +static struct ts_raster_button_mapping pegbox_raster_btn = + { &pegbox_raster, false, false, true, false, true, {0, 0}, 0, 0, 0 }; #endif struct game_context { @@ -670,34 +729,26 @@ static void display_text(char *str, bool waitkey) static void draw_board(struct game_context* pb) { unsigned int r, c, type; pb->num_left = 0; -#if (LCD_WIDTH >= 138) && (LCD_HEIGHT >= 110) char str[5]; rb->lcd_clear_display(); - rb->lcd_bitmap(pegbox_header,0,0,LCD_WIDTH, BMPHEIGHT_pegbox_header); - rb->lcd_drawrect((LCD_WIDTH-12*BMPWIDTH_pegbox_pieces)/2-2, - BMPHEIGHT_pegbox_header, - 12*BMPWIDTH_pegbox_pieces+4,8*BMPWIDTH_pegbox_pieces+4); - -#ifdef HAVE_LCD_COLOR - rb->lcd_set_foreground(LCD_WHITE); - rb->lcd_fillrect((LCD_WIDTH-12*BMPWIDTH_pegbox_pieces)/2-1,BMPHEIGHT_pegbox_header+1, - 12*BMPWIDTH_pegbox_pieces+2,8*BMPWIDTH_pegbox_pieces+2); - rb->lcd_set_foreground(LCD_BLACK); - rb->lcd_set_background(TEXT_BG); -#endif - +#ifdef WIDE_LAYOUT + rb->lcd_bitmap(pegbox_header,LCD_WIDTH-HEADER_WIDTH,0, + HEADER_WIDTH,LCD_HEIGHT); #else - rb->lcd_clear_display(); + rb->lcd_bitmap(pegbox_header,(LCD_WIDTH-HEADER_WIDTH)/2,0, + HEADER_WIDTH, HEADER_HEIGHT); +#endif /* WIDE_LAYOUT */ + +#if ((BOARD_HEIGHT + HEADER_HEIGHT + 4) <= LCD_HEIGHT) + rb->lcd_drawrect(BOARD_X-2,BOARD_Y-2,BOARD_WIDTH+4,BOARD_HEIGHT+4); +#endif /* enough space for a frame? */ #ifdef HAVE_LCD_COLOR rb->lcd_set_foreground(LCD_WHITE); - rb->lcd_fillrect((LCD_WIDTH-12*BMPWIDTH_pegbox_pieces)/2-1,0, - 12*BMPWIDTH_pegbox_pieces+2,8*BMPWIDTH_pegbox_pieces+1); + rb->lcd_fillrect(BOARD_X-1,BOARD_Y-1,BOARD_WIDTH+2,BOARD_HEIGHT+2); rb->lcd_set_foreground(LCD_BLACK); rb->lcd_set_background(TEXT_BG); -#endif - #endif for (r=0 ; r < ROWS ; r++) { @@ -710,13 +761,10 @@ static void draw_board(struct game_context* pb) { break; default: - rb->lcd_bitmap_part(pegbox_pieces, 0, - (type-1)*BMPWIDTH_pegbox_pieces, - BMPWIDTH_pegbox_pieces, - c * BMPWIDTH_pegbox_pieces + BOARD_X, - r * BMPWIDTH_pegbox_pieces + BOARD_Y, - BMPWIDTH_pegbox_pieces, - BMPWIDTH_pegbox_pieces); + rb->lcd_bitmap_part(pegbox_pieces, 0, (type-1)*PIECE_HEIGHT, + PIECE_WIDTH, c * PIECE_WIDTH + BOARD_X, + r * PIECE_HEIGHT + BOARD_Y, PIECE_WIDTH, + PIECE_HEIGHT); break; } @@ -728,12 +776,18 @@ static void draw_board(struct game_context* pb) { pb->num_left++; } } -#if (LCD_WIDTH >= 138) && (LCD_HEIGHT >= 110) + +#ifdef WIDE_LAYOUT + rb->snprintf(str, 3, "%d", pb->level); + rb->lcd_putsxy(TEXT_X, LEVEL_TEXT_Y, str); + rb->snprintf(str, 3, "%d", pb->num_left); + rb->lcd_putsxy(TEXT_X, PEGS_TEXT_Y, str); +#else rb->snprintf(str, 3, "%d", pb->level); rb->lcd_putsxy(LEVEL_TEXT_X, TEXT_Y, str); rb->snprintf(str, 3, "%d", pb->num_left); rb->lcd_putsxy(PEGS_TEXT_X, TEXT_Y, str); -#endif +#endif /*WIDE_LAYOUT*/ #ifdef HAVE_LCD_COLOR rb->lcd_set_background(BG_COLOR); @@ -774,8 +828,12 @@ static void new_piece(struct game_context* pb, unsigned int x_loc, { pegbox_raster_btn.two_d_from.y = x_loc; pegbox_raster_btn.two_d_from.x = y_loc; - - struct ts_raster_button_result ret = touchscreen_raster_map_button(&pegbox_raster_btn, rb->button_get_data() >> 16, rb->button_get_data() & 0xffff, button); + + struct ts_raster_button_result ret = + touchscreen_raster_map_button(&pegbox_raster_btn, + rb->button_get_data() >> 16, + rb->button_get_data() & 0xffff, + button); if(ret.action == TS_ACTION_TWO_D_MOVEMENT) { if(ret.to.x > ret.from.x) @@ -787,7 +845,9 @@ static void new_piece(struct game_context* pb, unsigned int x_loc, else if(ret.to.y < ret.from.y) button = PEGBOX_RIGHT; } - else if(ret.action == TS_ACTION_CLICK && (unsigned)ret.to.x == y_loc && (unsigned)ret.to.y == x_loc) + else if(ret.action == TS_ACTION_CLICK + && (unsigned)ret.to.x == y_loc + && (unsigned)ret.to.y == x_loc) button = PEGBOX_SAVE; } #endif @@ -979,101 +1039,50 @@ static unsigned int pegbox_menu(struct game_context* pb) { can_resume = true; while(!breakout){ -#if (LCD_WIDTH >= 138) && (LCD_HEIGHT >= 110) +#if LCD_HEIGHT >= 80 rb->lcd_clear_display(); rb->lcd_bitmap(pegbox_menu_top,0,0,LCD_WIDTH, BMPHEIGHT_pegbox_menu_top); /* menu bitmaps */ if (loc == 0) { - rb->lcd_bitmap_part(pegbox_menu_items, 0, - (BMPHEIGHT_pegbox_menu_items/9), - BMPWIDTH_pegbox_menu_items, - (LCD_WIDTH-BMPWIDTH_pegbox_menu_items)/2, - BMPHEIGHT_pegbox_menu_top, - BMPWIDTH_pegbox_menu_items, - (BMPHEIGHT_pegbox_menu_items/9)); + rb->lcd_bitmap_part(pegbox_menu_items, 0, ITEM_HEIGHT, ITEM_WIDTH, + MENU_X, MENU_Y, ITEM_WIDTH, ITEM_HEIGHT); } else { - rb->lcd_bitmap_part(pegbox_menu_items, 0, 0, - BMPWIDTH_pegbox_menu_items, - (LCD_WIDTH-BMPWIDTH_pegbox_menu_items)/2, - BMPHEIGHT_pegbox_menu_top, - BMPWIDTH_pegbox_menu_items, - (BMPHEIGHT_pegbox_menu_items/9)); + rb->lcd_bitmap_part(pegbox_menu_items, 0, 0, ITEM_WIDTH, + MENU_X, MENU_Y, ITEM_WIDTH, ITEM_HEIGHT); } if (can_resume) { if (loc == 1) { - rb->lcd_bitmap_part(pegbox_menu_items, 0, - (BMPHEIGHT_pegbox_menu_items/9)*3, - BMPWIDTH_pegbox_menu_items, - (LCD_WIDTH-BMPWIDTH_pegbox_menu_items)/2, - BMPHEIGHT_pegbox_menu_top+ - (BMPHEIGHT_pegbox_menu_items/9), - BMPWIDTH_pegbox_menu_items, - (BMPHEIGHT_pegbox_menu_items/9)); + rb->lcd_bitmap_part(pegbox_menu_items, 0, ITEM_HEIGHT*3, ITEM_WIDTH, + MENU_X, MENU_Y+ITEM_HEIGHT, ITEM_WIDTH, ITEM_HEIGHT); } else { - rb->lcd_bitmap_part(pegbox_menu_items, 0, - (BMPHEIGHT_pegbox_menu_items/9)*2, - BMPWIDTH_pegbox_menu_items, - (LCD_WIDTH-BMPWIDTH_pegbox_menu_items)/2, - BMPHEIGHT_pegbox_menu_top+ - (BMPHEIGHT_pegbox_menu_items/9), - BMPWIDTH_pegbox_menu_items, - (BMPHEIGHT_pegbox_menu_items/9)); + rb->lcd_bitmap_part(pegbox_menu_items, 0, ITEM_HEIGHT*2, ITEM_WIDTH, + MENU_X, MENU_Y+ITEM_HEIGHT, ITEM_WIDTH, ITEM_HEIGHT); } - } + } else { - rb->lcd_bitmap_part(pegbox_menu_items, 0, - (BMPHEIGHT_pegbox_menu_items/9)*4, - BMPWIDTH_pegbox_menu_items, - (LCD_WIDTH-BMPWIDTH_pegbox_menu_items)/2, - BMPHEIGHT_pegbox_menu_top+ - (BMPHEIGHT_pegbox_menu_items/9), - BMPWIDTH_pegbox_menu_items, - (BMPHEIGHT_pegbox_menu_items/9)); + rb->lcd_bitmap_part(pegbox_menu_items, 0, ITEM_HEIGHT*4, ITEM_WIDTH, + MENU_X, MENU_Y+ITEM_HEIGHT, ITEM_WIDTH, ITEM_HEIGHT); } if (loc==2) { - rb->lcd_bitmap_part(pegbox_menu_items, 0, - (BMPHEIGHT_pegbox_menu_items/9)*6, - BMPWIDTH_pegbox_menu_items, - (LCD_WIDTH-BMPWIDTH_pegbox_menu_items)/2, - BMPHEIGHT_pegbox_menu_top+ - (BMPHEIGHT_pegbox_menu_items/9)*2, - BMPWIDTH_pegbox_menu_items, - (BMPHEIGHT_pegbox_menu_items/9)); + rb->lcd_bitmap_part(pegbox_menu_items, 0, ITEM_HEIGHT*6, ITEM_WIDTH, + MENU_X, MENU_Y+ITEM_HEIGHT*2, ITEM_WIDTH, ITEM_HEIGHT); } else { - rb->lcd_bitmap_part(pegbox_menu_items, 0, - (BMPHEIGHT_pegbox_menu_items/9)*5, - BMPWIDTH_pegbox_menu_items, - (LCD_WIDTH-BMPWIDTH_pegbox_menu_items)/2, - BMPHEIGHT_pegbox_menu_top+ - (BMPHEIGHT_pegbox_menu_items/9)*2, - BMPWIDTH_pegbox_menu_items, - (BMPHEIGHT_pegbox_menu_items/9)); + rb->lcd_bitmap_part(pegbox_menu_items, 0, ITEM_HEIGHT*5, ITEM_WIDTH, + MENU_X, MENU_Y+ITEM_HEIGHT*2, ITEM_WIDTH, ITEM_HEIGHT); } if (loc==3) { - rb->lcd_bitmap_part(pegbox_menu_items, 0, - (BMPHEIGHT_pegbox_menu_items/9)*8, - BMPWIDTH_pegbox_menu_items, - (LCD_WIDTH-BMPWIDTH_pegbox_menu_items)/2, - BMPHEIGHT_pegbox_menu_top+ - (BMPHEIGHT_pegbox_menu_items/9)*3, - BMPWIDTH_pegbox_menu_items, - (BMPHEIGHT_pegbox_menu_items/9)); + rb->lcd_bitmap_part(pegbox_menu_items, 0, ITEM_HEIGHT*8, ITEM_WIDTH, + MENU_X, MENU_Y+ITEM_HEIGHT*3, ITEM_WIDTH, ITEM_HEIGHT); } else { - rb->lcd_bitmap_part(pegbox_menu_items, 0, - (BMPHEIGHT_pegbox_menu_items/9)*7, - BMPWIDTH_pegbox_menu_items, - (LCD_WIDTH-BMPWIDTH_pegbox_menu_items)/2, - BMPHEIGHT_pegbox_menu_top+ - (BMPHEIGHT_pegbox_menu_items/9)*3, - BMPWIDTH_pegbox_menu_items, - (BMPHEIGHT_pegbox_menu_items/9)); + rb->lcd_bitmap_part(pegbox_menu_items, 0, ITEM_HEIGHT*7, ITEM_WIDTH, + MENU_X, MENU_Y+ITEM_HEIGHT*3, ITEM_WIDTH, ITEM_HEIGHT); } #else unsigned int w,h; @@ -1084,33 +1093,34 @@ static unsigned int pegbox_menu(struct game_context* pb) { rb->lcd_putsxy((LCD_WIDTH)/4, 24, "Resume"); rb->lcd_putsxy((LCD_WIDTH)/4, 32, "Help"); rb->lcd_putsxy((LCD_WIDTH)/4, 40, "Quit"); - + if(!can_resume) rb->lcd_hline((LCD_WIDTH)/4, (LCD_WIDTH)/4+30, 28); - + rb->lcd_putsxy((LCD_WIDTH)/4-8, loc*8+16, "*"); - - + + #endif - rb->snprintf(str, 28, "Start on level %d of %d", startlevel, + rb->snprintf(str, 28, "Start on level %d of %d", startlevel, pb->highlevel); -#if (LCD_WIDTH >= 138) && (LCD_HEIGHT >= 110) - rb->lcd_putsxy(0, BMPHEIGHT_pegbox_menu_top+4* - (BMPHEIGHT_pegbox_menu_items/9)+8, str); -#elif LCD_WIDTH > 112 +#if LCD_HEIGHT > 110 + rb->lcd_putsxy(0, MENU_Y+4*ITEM_HEIGHT+8, str); +#elif LCD_HEIGHT > 64 rb->lcd_putsxy(0, LCD_HEIGHT - 8, str); #else rb->lcd_puts_scroll(0, 7, str); #endif rb->lcd_update(); - + /* handle menu button presses */ button = rb->button_get(true); - + #ifdef HAVE_TOUCHSCREEN if(button & BUTTON_TOUCHSCREEN) { - unsigned int result = touchscreen_map(&main_menu, rb->button_get_data() >> 16, rb->button_get_data() & 0xffff); + unsigned int result = touchscreen_map(&main_menu, + rb->button_get_data() >> 16, + rb->button_get_data() & 0xffff); if(result != (unsigned)-1 && button & BUTTON_REL) { if(result == 4) @@ -1246,7 +1256,11 @@ static int pegbox(struct game_context* pb) { pegbox_raster_btn.two_d_from.y = pb->player_row; pegbox_raster_btn.two_d_from.x = pb->player_col; - struct ts_raster_button_result ret = touchscreen_raster_map_button(&pegbox_raster_btn, rb->button_get_data() >> 16, rb->button_get_data() & 0xffff, temp_var); + struct ts_raster_button_result ret = + touchscreen_raster_map_button(&pegbox_raster_btn, + rb->button_get_data() >> 16, + rb->button_get_data() & 0xffff, + temp_var); if(ret.action == TS_ACTION_TWO_D_MOVEMENT) move_player(pb, ret.to.x - ret.from.x, ret.to.y - ret.from.y); } diff --git a/docs/CREDITS b/docs/CREDITS index 53addf0121..c1a0974a9f 100644 --- a/docs/CREDITS +++ b/docs/CREDITS @@ -425,6 +425,7 @@ Roy Wallace Eric Lassauge François Dinel Francesco Rigoni +Joël Puik The libmad team The wavpack team