From 9d7ed6583bb280784689f7f2985224c0bb2cc067 Mon Sep 17 00:00:00 2001 From: pixelma 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 .../bitmaps/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 .../bitmaps/native/pegbox_menu_items.60x13x16.bmp | Bin 0 -> 21114 bytes .../bitmaps/native/pegbox_menu_items.60x15x2.bmp | Bin 0 -> 8170 bytes .../bitmaps/native/pegbox_menu_items.60x17x1.bmp | Bin 1286 -> 1286 bytes .../bitmaps/native/pegbox_menu_items.60x17x16.bmp | Bin 27596 -> 27594 bytes .../bitmaps/native/pegbox_menu_items.60x17x2.bmp | Bin 0 -> 9250 bytes .../bitmaps/native/pegbox_menu_items.60x17x4.bmp | Bin 5016 -> 0 bytes .../bitmaps/native/pegbox_menu_top.128x27x2.bmp | Bin 0 -> 3526 bytes .../bitmaps/native/pegbox_menu_top.128x42x16.bmp | Bin 0 -> 16182 bytes .../bitmaps/native/pegbox_menu_top.132x17x16.bmp | Bin 0 -> 6786 bytes .../bitmaps/native/pegbox_menu_top.138x31x2.bmp | Bin 0 -> 4410 bytes .../bitmaps/native/pegbox_menu_top.138x34x4.bmp | Bin 2568 -> 0 bytes .../bitmaps/native/pegbox_menu_top.160x42x1.bmp | Bin 902 -> 902 bytes .../bitmaps/native/pegbox_menu_top.160x42x2.bmp | Bin 0 -> 6790 bytes .../bitmaps/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 .../plugins/bitmaps/native/pegbox_pieces.8x8x1.bmp | Bin 286 -> 0 bytes .../plugins/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 rewrite apps/plugins/bitmaps/native/pegbox_header.160x24x1.bmp (100%) 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 rewrite apps/plugins/bitmaps/native/pegbox_menu_items.60x17x1.bmp (90%) 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 rewrite apps/plugins/bitmaps/native/pegbox_menu_top.160x42x1.bmp (78%) 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 31ee1f1a7..b95fd379c 100644 --- a/apps/plugins/bitmaps/native/SOURCES +++ b/apps/plugins/bitmaps/native/SOURCES @@ -324,50 +324,74 @@ 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*/ #if (LCD_WIDTH >= 320) && (LCD_HEIGHT >= 240) 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 zcwTez-Nyg{c0jBF#05ai0mO_z2m%d2EW{1LObiI{|Nnm={`>#`ejw}rzyJU5GcbJ1 ziw4sF|Ns5~6o1da@b&F&2>%;||0M(>|MO%oL_QS4|F!EanE&k>ME$R>yI}tJ|4{yl Qy-@yLuzf%8o&(zl0ILUU_W%F@ literal 0 HcwPel00001 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 zcwW6#ORmB&47427UaJfpS%toC%MO9uTF|$RtzNa@= z+W&C>wK`_&B*>e+GZ7jX5A~1EM^XQMF*|y71LNZRXD?Ka|A22|eu&v){}H-&_y7o# B91H*e literal 0 HcwPel00001 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 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 Xr>LUm#s6f{5X|Cmg?!t<4+_8+sZA@i literal 0 HcwPel00001 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 HcwPel00001 literal 2136 zcwVj5%}X0W6aerSqg`#VYZT+9trCP53T?oHNC`$830R7)HXs(7f)KTr4JLGL3muCW z@uIZ7c#4ohAw48Wsnme^2Rta)OCczt^dOjMHrZr@na<{OlB`DBKA2@T`{tLOH?zC_ zk4Ebu6R$|SP1*u!*GW@BZRYoV2B2A!ZFFe0TF~qD(ACuiX0sWrRx8-;cHns)=I7^O zd3hPUUM~a!0odH!git61$H&KjF_zoE2Q=+fOSx41pS!7WB85t^%K0ThC6_tH(GgrV zB2=%`p$DIPLmjY~?NHh5UpNil5ILsw160O^PMYVjLTCg;j@v<8;l$y}ftK5X+EPbS zcVLCcIup3k5#Bm=fe}w&smx(li4N9%g=m~2CUHDM@@`kcwf}WT_ zuU_7Xb5bvM(oXvOO&*H|sfYZ? zmH!us{hd%JH%N*HZJb<{67?}OlX3i{oW>Yh2{M_QW1M%$x<}Y0sTupmX=f$PM3Lc) zjiBzRe3I}@AIaVN9=-v!yv((b0+0^c@{0@^U9B<`xz%0G!&d#w@8L*Vm7(X_XYI1 z-0AErI>ml=Ua08Q9C?R`gE3k6Q?ha|xbUf)awPsu!J+zOy^?jJTYJoHq1UI4J4sdI zT|0UI1js&IABm#4v2A?>Q_eXdv3S*i4sO}70i_+oyQ{7^cUOKN%FhLN)*it>RorD9 zvVBuc>hMI&iA;Cmz>xjiP`D~P#klahxodrX~O=;UI0c&>%1 Rl5-gc<0SvKN(RVZvp>IJYb^i( diff --git a/apps/plugins/bitmaps/native/pegbox_header.160x24x1.bmp b/apps/plugins/bitmaps/native/pegbox_header.160x24x1.bmp dissimilarity index 100% index 8f627f69f9f155849a877aae00a6d4d5c5203ddc..1ad6ef682788bddf73d75e339a2f0483fee18513 100644 GIT binary patch literal 542 zcwUXqy-UMT5CHI0K?>FnoB{=BM<>xm#M$B>;Gzh2(1){wT+~5usH+gMZf+uU5{d>h zxENhiAGCrE#f(-*Q0sas$@evZ=2uaRRL3ujsU55Q*2wSbEICMEPgH**{JsbQhUrh wOJuE$gzsoSRLQg~Y);Gnh5N%~p)3q`S80xpJGG3NSO?xevV?iDH~fG60A8Dn!2kdN literal 542 zcwTMLF-yZh6bJBBK_V7hGXznQpwL+dixDXnp?(QPUG)>3;M7HtF1m;xL2wmJ3Dg|c zc5sj*r4}+cmky>}_4(dwBdPdue{%QZap7facW%Pq+Q2MhZZQ@ngAY{)UyC!tQ0u7O z007Fr4&me_hlnj>6N zPLqu0koVg(Z(>=RS5^uVzZlLdrv`eh9=HHO@2E_cS55=_>WXY{f0``0k4&284p~ke zz6c#XT?jN@(6&zeve2^PpjCN+=Py`>i0$=bJVd;(R$Tt80#aqN#bY)YJN>O63D<&r 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 zcwX&QOHu?O3{8Ryt6W&+$|HCV7w%ln{anu_$9#Z5cWCI*ja9xHh6WPy$Oqm(Kb}GH z!R?LP7q?e#2#>bF>n~5%9>8(AT;O`W!tHj0^ydKqW;zo@Tik0Ulv-0A0=gZBWLB&U zWH#ITh!BzX@;zF91bHTwn_+=pGXfw1V5H;dRGR-lZiZ9*s^=yy?D^3!*ScAg0y%rp zz+sZc{J2NK?BqNDE%D=@Bm*}I54!;9r2j-4Im9U)2e{>j^0mrOCrCT8JU_)xG)Sny zJiaQz0aAh|_*H2etnm|0axDJf;_wSYvZWbz+PtIz(gI%OhxhT5oKRh~f$5WF3v@1S zw9SQP?F2tPEM8Ks$td+ zNBNX|E7l`*p{MT}KNnu-hdsX|Q?lq4$NaFC{|dih{-IP`6kqJbTy=mVR&OlQ>+@JC zmBnrSQXTMf2b%{at2FnEcWHzXk0pMP@7m_ID)*nH@@5NLFZZ(!;qW9@mr|;W`Zrw%KrfBs+r5TI4l2;Wqbq7D=pyw literal 0 HcwPel00001 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 HcwPel00001 literal 2040 zcwV)Xe@GKy7{}jH4U~X+wvoL`X0+h;SmqfsuiA-7nqU?#c-I!gKe$_dd^u_kExD zIhSXr3<$c$Sp#Q}IU_mKfy2W00d5{E7fmjfWkEil2ia^EWHK3$NF)HmFd!Tb1Dd8m zZ*MQ??(PO&uNS!8Zs2e@fX!wD5JKMmuZqh&Ah4SKCV5qVNU18iI{tytv^q#oZC9Ls zc|I~aWr{+wF9MpVSX9M`s&(=_!)JMpY&DWpJY5U_y2aHaqKp)I6p};!mS^hW9_`9V zk!QXjKQ)Q>h#iUM3@jTVSG9ST(+u;x1}Y@2&j*twDGM}J1C&Ro5iB*Sz==n zR6a2#XZ--^C0_l*lcUWUySg56a@&FeD6*-=Bl<6oU5Y|{ZOl7;<7)qq8PO8YL4^(W zr^Hs`*No%FJj;;w6mSwu1J%T0G1haxG0E{9JKTC-Pb_ zy%i-5x+;{m@&i-ry*(bj&GW`p{lW359)Eoyh_2%${ma)wZyj3{cqBJCX2(-99=mHF zSM{%054_+<0bEbUpiBaf%xvxR^vL2X@-R2IK4OlVTbCyZ_vN^;(78lVX$_vyncU}< z`$$yeQ9V5Godv~}yoJ$@@}})8^KEyuczfq3?6=+jL1Ka6VO`n&yjr(cVLE7Ah(p>vPl^Qkv$_MNAMBnC)=FC~A{0S{(}Jc E1(NV+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 zcwW_*TS!!E6vwxf-L#vgrB+_DvU`@P9edDY_#)~FDx#-|$QQeSbf5@=f?ks9Axe=1 z1vR=sF}Z}*J#a?WDU=G))5*8f{;eQU3^ z_WW7&cZ{Y}CciX(vHbqx7p5)O=W|()iV(m53eBE9d-3AM!MIck3k!>gh=`4iO-f4I zxN&1nBC$;oWb zDm>QPX|QbDwr$t0UFtSVmMk%CV?!G@Y)DH>i;Rq%F=IwB-l-@tF>&3xb-}nSC?zFj z^XAR^aOu*e+qZAG;l(ISTd`sVTcNS^3R1XRAI_gYA5W-;%$qlF*|KH$Y15`nSy@>* z24!Sqq^71ywk=z>z-Bz*&;<(?Xa=N^U~=o$tq8@($1hyCaOTXJnm_H_xl@TT5Mh*y zNT7;lOGsyDXDh%Qrs17XY0jKEvu4fmpFne5((GunzgpTIZ5{27&c|G0Mu9=AjxJ~G z<916q=7nhcKONjvHh=Zt5-belX3Ur`u>`gWL*R-n%|cAFgq*kp5BDiBgdFRF-NrYt znJ@&prB^I3IQ=mMuFb}lmoDn_`FeVKh%xoV)Jyu8UF8AEt#k~h)2ZoU*6!?NU5dix z^0?hTZ@1UOpr_Zv*zM~LU^8JzPcZ0oIgyj>!cROhX|hFNa3_JP8#udNL>)-%?d|XL z^!d<(c@+a){V_-q1if_e+_`g?FBg?bBYE(4kVpt;`F4^>41R&}>eZ{OSFe(UNh?Q> z9&Kr9;qlh3TQ_gsWc9;`4~>nDeSLkf-M@dov$K$!N8D1hYme?@}!}m;oiM_ z+IRH@7}$8_Uze(3m5Y9^DkYx)Z5#;a^*?|qq4G+dtF`K;NT#t z)YR1QCbRML=g-;i#*G^!G(zC*+qVp=tE)*;0|Nu=*RNMFK7Rbjy}Z2q&6_t2UcY`# zX1jg+HX9@K_3Kw40e<=NCH?>j_jo)W?I)=iCr+HeVg^W~`S|!a){(S7fBwuQ`cF;Bhhg%!Z{MsiPMtah20~Y^Twy;9?C$QCt6<<<1}L{^(IT;=U_5y6fcv#;*YF3* zx3;$O`0(LF^kCridIit>_wN~0RaHqr1A|j14^t)4-|cpvJb6;nYuD4KPutqsii(PO zWECgkgWbD#$Hm2QG-zXB0FCpRKw|ISy&O5)yIii0jt)+kQh{}=R;_{ou#%DzkY2oa z!5QV|<{B8p8V5yuXeQ!lI9Q~)vjcUGfQ^cZQp4FG9Dt9^7(_D?90UduQDz2(C@yM^ z`X$0{VpDh)e^DO^?qEVc$_c%V@kHqrtrF#rx(NnR$-5BH_{f$_lyi7+q_N0L9UUFb zyCvCi4^^Jmm}UV;?xH2jF_C6RluqoT%~C}}YwOJ2V`y!irn@zudz@xl2N8+5$#$Ed zgimo|Fs`43s|aCE6YZ604h8GY4U-@;4go9LI$AmDWn#gfkqKf3R}*cIfM0g?%d&VVq${CbougSsuracNaFtb z_3L;X;E|CLD-4VyV~QikYuJKk>+9<&17&4p)R&7FFKYVd0CowVnJ~C>Ze(i)$Po$* zs5MA)Kqy4X<$z$=vuBSC2mI%cp_xeOFn$usamWNcrr}T{ZBfHOrkIcYL_S5 zX4#vWddmQSW}}N$AI)8FFbuJ`eajmHhUi9r52IOEMQv*3CF}|fquJ==)z1?7JrOcS zv+^Y*KSG+PVT+VAUm@EfKb$PD&@k+eR|_N?TSCULBwmnd7CbXiFsKa_VXE%x)vHr= zA{S0ojI0P=QIse^)F^W9Fa1-pW5*5(!!LmD&_!Y5ti4ZX~Hhu84B)|MD5)$^R=Zt_}$~CQ0#1g&z|X z6cydn>-C9=mnA7hsjxNS?(Qi`>5{bDgfl7eS>WpWlq6{-sf2yB&dwo{lu5Eu^Xh{U z)`H~a%XJ_uaBfuMlaf+{%Rz%K=ovt@efv_awiYs!?b?ybWI0xm_)yb28N=H{)`h3Y6FCg2GIWo7jw zbMiC_xD+{yRjk1|lV+v}7njqPaMoLCZeRz1t%xCjLC4e;H;~7WGeaCmVlsmO__HnU zzQ(YX(H2)gI|<5g&P=w#UdQ3&6b6emH#u>O?2LgBIa|rd7D1!wgGmm;*gzyHpXLlS z&?{B7;qL%6-5EIPj($Z20`}glJ zFE59Xlas?a_wL=BilIu|wr!PqP#+#19z-BMK7QJ?X(VGY64kkL=h7$?6cljIusIdW z%*<@xzP(Zpj|4}K9MK6lbm$P26%`ebQ&Us7ZQBN6m-fB*gW z#Np)0lK}w%(qqqAVjCUiFm?mJcXjL5&C}D<(a{lm9RwE_7tH*am>6GQU(PuwD9Fyv z&V0+(#l(pd!4qcZobez^m8^^b0|r!9R=)AZ8$EjTn8DDlT|1>pHar|`fu@JUgU}Ec zSd<2Qwi#TiIKkBtIhU|9$x2o zB|VGDFt1jgGq2KWUSV^bDMkcVupvIsh~W+{K+i)=@DP=HQwJhvu;QFa5G^TErI;Aw zSwb>yvDw}l5IJ)|Lt!P@km92HreP(c*rT3>A0=s~Qg7-&-`yxW`VDHQYa%P(8&g@5$u(IC*! z(BR|aL+;X`L4)A_Z{50;f*x?maS8r(7p@9%&dtred-v|qqetOFDs`eVWI1o%yct4W zUERft7gJL1?`*Q1NmE^2jk`+ys0mZfLxv2wcI_I38n;=~D3@?zk8`0!x}m^{9|zQ6ze zJLFehc}1xoHNnYnczJn!^2sLhk&`?K5D`dTJ&gP4ma<(F1%v=WZ#X5EBM8#ykWo)qFaR7D+S65eY zuP}v^lauAA4|aBT8jVK9cc<9c*!=wbS+i!*C3b-2%a=owot+&R7>Mpxty-0qmNszU zKq}C&V@G^_=jG+CT)A@i@cSu#c>hHCsHmt>qeel%S2ij_$jHdRU3@JrTC@n4Xa`@W z&C&Q%5IN)R0xjcm@#4jE=gx&??CtII89)+uQRbzWUdlHBN{omZ&d$!x_^yYn)oPb4 zS)$f~1#y1$)mI@u_uO-kVa6w(cmjs)+qZAeo;@c_m_Q82jT?tDD^{$444xzm9Xiwu z=fQ&qLs+(K8LUkWKJ}Ce&UkcmG&Sq(?LB_{c*xVIPsghf*(WY84rS0gX2n!Z0K+7;SWO|8hA%cU0iN@=%zYg- zWnh)Tu*4acFcD2@kbm~sM)$v4w{B!=SU3AF1!#i}Hdq&w zVbzaehae>^C7UNM^7L#mk=rO|yFm7Y&XC2un_XtI%N8Pqr+uDgi;H&>cT9Hr>GR$HrTj&T#tXpkBwh^G%cFm9T&ZJsl)u4kNKYIQmD6G>Q` z63Fp^OlN0Q#x!T!4CmO`YEGUv*kV&Ra%QJIC0r(AoB%&x<916Fa*27Zh=?jG#!u)H z5*jP2de%8p9BbYeCMwaU(d1-`gv5R$&awbKI%`I2bgG3*b{gJ7Jjf@9N%07LN`nu^ zk*)N`b2M4bJab;po{{E^-tfGbTKq1}x|Sc`(_Ta;Xl##42M3zQd;@H{p_%4vgTppM z6>MvTTxN|o-ev8pnQuTRXe48SK!(PA6(fjMOshlFvN>#n4gVm(74q}*qX=_z=-Ra_ zd@C~rMA+Ng`}+EJ>eNZ8pru&9e!WhoJ8<9tUBchLa^(s|_@kqv(Oq3#-SOkcCrz3} z1zcQQ4jnqw(9m%E_U+lTXG?}OX}Hz!b9L-U1r;HbmzU#iSXdaPnBKW_hoUGghsb%z zkRf!?bN1}nva&K*25vG%#X%BxQRbtMKGGR*@7_I(h#Ags$**3$3c0GP>fE_=US3{G zbSwgKK6vmTWH|efzx?vc$jC@KPzw(aFDNJ=hMAf8zL08bYaxRt2}wywW;josI#tKc z3Sn((aO~Kz3WO{`R#p}@8xj)o_S#yg`nFHa>nKPIS5Kf&sg_eK)^;gJ;4Q+@IHGa%=+UUCD9iy&U=X-;=@OK%49d{q8t~d{uaN-#x8HsXAuTQKop;{R$>GS6 zBbYfiZ{CEwWy_Y6Cr?6HxNxBoBW2jx*}<^H8JDT4sdS2pxtg7wO=W_Dg2>deocs0b zM>fP-$j!~A0Rq+7*jS0hFi8Ux6&0x%h3?z8Z*Xuh$r_CY%gx>0-KY%qH%CWDPlgU1 zI(T?^K%gBDtCfxmCHBV)M%7UZchy>eHrVh8P`GJRRdI1OyprzS|ErW9_L$(opT6o< za7&HRG+3k<;Yl}Ww1V6u{zDCdCwyD(qO#~yvLU0}sJn*ogvr=QlX zTlZHv6b=jwd-v|0K7G25<#S3bPm=zu7`}FXem=DT#~+vQM&Eq%&CfpjjNEXF z7l|EZWMsgtUbSk~Z@>M97G}(tVQ+80bm>yOIqlf7;s9v17*|?AoDZuXwOZ-|2B&uLXfQizFyf}1D=RCZ z!Hy9e98Br`7$CAOltDp3TuGeQu3bw}zWw|6FI>1#$3jx+>FE$kOG`Iz-dtT>4SCAfM-o1PGS6_Vv0d+0pym8}3v9;RTS}e&mYu1R$nwlCcZJrTr zgaZc-^zPjoD+NziSXf8{XS8a74I4I4`4cBjP#RBISQuFtC@Cp%b91whGZ=pH#TTT< zqNDhjqoX4wqU+e)i;j+l678UXjt%I_l`CliU%!5x?#9Q*lSap;jqHZ$@9#fgzyR?- zkYFFf^y5kF6ea?BtWXG)AxwcI(*^?q0x&m>{>IlepMdeL=Fc^Msrg6E2=BT5XFdP%gXDJ*czSw*%jE*s>lMoLqfN2ZX9VDM42QYI z216@amY*$>fUxGutwll5$|SdSBkL{36U}o`C}>=qq$X}oa{w9J{#6JG#lEPW9!R+q=C8f6fi9|?iEHCM7$wm62mARC3(rB=2m4(CRi z2Fe?d(q8gG?gEFYJFm9`;#QAWh%;~hVRu#ban-SgkL9Mh6|G)1JNQb(DYAQHssiEM zIlF_a28$81T+FlWw|~G}hn+cW5-|pH;HDQE(BR-skF-O5M3J^e~>~i?PTvtZlnl6w&G6 zEsVXG_Ohl&gBa22ed+^m9J0<)*F%X-nJzkA;o43NL^Yz*ag4@X8JgrR^i3I?dI+X@ z3>q_17oFY*pF$wwP}C;Xmjdm~m~1hq&&78PQ*`>kv*V0|;x&4Z4CMR$gAVRW+p=)G;igX=^c^FhLdFN%jA{wbXCjBtj$@u$64 zIrroZ@sXlar4YoB4lJP{LbZ<+9XAQ0OO_m{n&^R@%G|UfJCzH=?r?7fQA|*k>$nJd TDvG5bW|ix>rhH!f--7rX$>Uo* literal 0 HcwPel00001 diff --git a/apps/plugins/bitmaps/native/pegbox_menu_items.60x17x1.bmp b/apps/plugins/bitmaps/native/pegbox_menu_items.60x17x1.bmp dissimilarity index 90% index dad5592ac4ec6e9998efa2b5374f0aa947e7184f..3a048cbe2a79d23bd9acd6e069b0d609c98bb8ad 100644 GIT binary patch literal 1286 zcwUv$L1+^}6adg^Q7;yH^<-BWYLD?Mp&RsK4&q6A5>hDS(oM!gARuHD5OT97y(mKW z-b2YLLJ_mFm!8s-By}*efrW)u$dphFR6EX}nWBMKw}1IOX7=y@%dq?K$&Kqs#j?yL znQ58tWX{M7V(%J44{qw5MSnsF0SUo{I9o8XX}OPFFz)7+BUV&?r|ajcx)CiXVZ{;hqnllyOVf9s8Mj5nv`xS{Ke@{V!S=p~yk0wbN$N4H#%rkSlQvyL)% zpsi?GLGKStUBBw<=gyew6TpEddXIDC3ylIxTenpI$XnFbv|&T<4^3SR2lXrOGEibWD@khs`0BA%~fzN*L(ynuQi{7v$zTKhIeuG zvGll({b7QBmpiewr=F2X{TU>GTtsNPlHYId6IvEU)*cX=qw5Fleu`E=)?x)(WF6Y- zrfGg-VIvh*5wS8BNig>^f4WB7?1NEIo20TS9@P=IvUhmo;qhYj9*=6EMZyN=RtA&f M08dCrlFXU%Hxy_t_W%F@ literal 1286 zcwW`eze~eF6bJCLR1qqon@+|K;usaw!J1NM{{okr>ZU;#CzFccBI>9pO(*A0MG!Pn z&4fHy7A^Jvq;?>2{oHrF*bHEJz8#w_P1n2%_Z`GivJT={T{p9^qZc&zcgDY0J{ z+AVqCs~vd){$b6xhgI6`-$#u;-S*U{-0XguIR(m9;kN^t3Id$ zBKAo-Ai0$;$%JIC|2e-Qd{%@8(VPSIThOPX!S$7^_?3#Ly~SKSt0IV&tax6wqiESO zti9|RD(@P(PYv7Tq*e*Yt^-Oa=-HRJ`IiARESPmcja&&cD4YP!T>ulKMsb0 S>clp2!qk&=mZ7ZvHva|r=s%(W 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 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 A9{>OV diff --git a/apps/plugins/bitmaps/native/pegbox_menu_items.60x17x2.bmp b/apps/plugins/bitmaps/native/pegbox_menu_items.60x17x2.bmp new file mode 100644 index 0000000000000000000000000000000000000000..74f459fc03145c1c9116d0e6de9c789fa5acad03 GIT binary patch literal 9250 zcwX&UP14jL5bbVUSmn+ms0$C_%7r_Zb2zUsXYwv1^go$lLJ~i}s?WTFfe;>an2^`N z_n)7>0OLoEUu*nUlJRd8Bri@CRrT=_+JH==k2TnUr-OKy6s>R+PbUyAx?YcvLA`?`yDbnowxm-)mt z92x0<#Z?tSa4kic6$jxq@wW@jPr!te;(})FHeUflgg0=TiS-#tTosUlDQHc3Naapa z`~PItSj7?Ui4%9ACRl`sRkds6Jhf5_I94>$nw3V>vs#cl&$(SY9d|^G`ly!PbDtQ^ zR!Q{y!scfWjKvynYzOts}m<)0OG@$uTPRq+ewlga9a@nwaGq_Z}t^)qKDok zR{{3*q4*vhq#(^b<%((Sb1b++qd_+#$nr+P#VX)2SD#e!&W)yr>jr)p^YFvkwo6K} z3K-1(*yC#-iS*YX#wy@3^~8x6fy^(|_profU$+W)!nGYfh-|C^#=bCfrD>Ac@0)$r z^$<*RUq5=JZWZttd<%hyU4H9SCnMUOG1+{5?~6wa(<3@`nDX!Gu`n^21 zbNz>Mzqhx>HKW0LkG(w)ao>_$Q{_JI?Ro3r0%&rt|LlT2IM_3xkL1+R58BOVZvX%Q literal 0 HcwPel00001 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 HcwPel00001 literal 5016 zcwX(-UuY9|902fda`{tJ*0ghTPqNW5a0oSeO>N?!VU2YTTnnXp=ormbTUm!T+R{2< z%a{)nUn)A>x|fK}toxOEWppnoF6`YGVe?_7rVMmYu{lk0Y3{iD?ss<)n(({p_B3UF z;ddnYT#`$^zu))wy|<5iw;ha_pko&uZ_zPLhXY*3>&?_(tT)HzXliPL=H_PLc^;zC zDD?I9!SL`fOioV1xpU`WdU_fNA+WTx1h;P8f|ZpOSYKZUMAU~(T>N#@6OCA&XT&N$ zVCysJm$TOV8;9QQFBRZ}o&gpsUKt(PVlTp!pXG%q8S4prst+L z(>HdqTpC3wY&eEluJw_=V=2;1{K{^Y;|4!tv^4-bTjCmloxEgcr@a+VZ_gD z^}md*=8wF^WTb94f9`XjHrC0Y^{_p{K@s2&dSE-8hP)RDh+YeiR@|LsdK|o_13P~- z|57`@#EZ@h)6LMjM4t`QKf&Ig;{2PT%-j3Ly;)liO9|%dJ#IJ>b1yO*<$vq(JB&QKUol7szt0YtFWQn3oh~aB<*&2U1_weqTAkUkgURkNmA-PGG z=j1uv2}#eVZ<6W{NDFClLnhQU+Q`vIHCw5gQE%pOS@~rNAKYE0kE-APJpMswHxSpD zON&;`?yns2z^KG|?s0)$_g{^>s$9g@11hg|jpzQHkcAPcE4xtjK_c$OG>@x0QQe_? zw>(j`3`J~H-XH3IME4kv?!v@yRT&rYvifP+ujsC3=cVN3+_BAGNQxQE@6`7wjy}z| zpw_V2<+>T~_28-V;S>qJd-nXnkI$bR-R$^t=uWGkbY5!blb8BClS=1td>;QYY~~NG zx>p?pl4Ynbae*;!sj;QT=izl3{Ext4_?KLDdJtxvU!T740^MT_4;-7UF5_^>ampn+ zb$2xG^+pasqRJx;uYvCo-Jn3G_lv#-fa(jq*Kt26D82c19xwIxCY9d*Y5vQt_S@s_ zAA=U62}(xq>hLwsnf|L} zw-){W=`)KP2ham4-Fnr82dB$+FFRgeK3ba3sH*t;QuDDnCBDnOv)bu!bXaU)C ng?`x_K!fhu*a^Ka9Xxx0&s6fCE4Mz$f3f!G)WlPte}KOM;^gq) diff --git a/apps/plugins/bitmaps/native/pegbox_menu_top.128x27x2.bmp b/apps/plugins/bitmaps/native/pegbox_menu_top.128x27x2.bmp new file mode 100644 index 0000000000000000000000000000000000000000..a37bb01fa6cf99ba5bb0e7cdcb3e19c5249ed2ad GIT binary patch literal 3526 zcwW_(OHKnZ42ENe1rlPzmJ4tW7VKE|K0Qwl!nI2LNXB_M35ZtW7t_3qKgV%K^Zxnu z99SRec}veZJ+JA3@W}J$wEprW&qFwLI-SDhatYV#HN<}_q(A<-yD(bt9Ri?3J#a1X z_5q|aLExUSKr0D!{nil>pG#HoB^PiDa__V7Sr%%u@&~Fbt0?oaj6~dz@rMDp#s%G4 zbbKvDx_XOE{@FAf{f+G_nVT)^N;RLaf{gd-uaJK$<_C5I=}mw#4sr@m=J{Aa z@1-pzCFcNU1u(RbyGH=vR>#00(Ij8Q^g|Vi67Rt4T8^pa9`q#?@>uv~o}*BH7WSK3 z$1^y8sx&0uK-_walyLeVY8$@wwggY|kIacjEe7RtAEgvEF__=W>Z^6TjH6Y>M+BFT zQV@=tHP<;J%ZDVF&!c=*4`;QzSs3Fr%a61Ci$y+u546rhV^ZyZ%11S?eQf|me*U}q zAM$}&&^fXGrop)RC*}K|KZf!cA>V%r3QPUl-E5~o)a5_&5il6EMdf1|lcBx;L+Csb zG@a5vzP3Q$_nduU<@wZN{>1N{I)~v2O*67L{K2Zq=6{RYTA@2P;$zc#%xNUe;*q&} QLGrCxkBvqXqpc);0}KEy?EnA( literal 0 HcwPel00001 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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 Kyzt+m>wg1CItg3= literal 0 HcwPel00001 diff --git a/apps/plugins/bitmaps/native/pegbox_menu_top.132x17x16.bmp b/apps/plugins/bitmaps/native/pegbox_menu_top.132x17x16.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2257f7cd766466907ac6459f15fc70094d13da63 GIT binary patch literal 6786 zcwX(8=`USt6vhu)Go_`dAyHD=kQi?$5-u^%DVk1cC`pSLnwnxfF;#19tEGlU3883+ zF=~jZ{;T`DcJG_*9QOIp`@xAm$rgK^wb$Nzt@S?7diUQc>Km$K{KetT(ad4XVW4t6 zwkPxZuC;XNKMV{E?Ck7r-n?mRYpcum5B^VFy?Qk~JpBIs`{m{3-QC?YGc)`9`$tDd zKY#w@@5aVPSy`E-rKPSgfACvKN=h0ZA1C4K>+7FCe{N`K$ji%%i;KH+=gyTYR}2je zuV24TnMOxPmzS3v9UXPWyNG}~e0_Zr6B7#x3e;*fx%%+ogRYBC;L@c_Z{NOMTU#Rn znTM2={hOPczkK;}`SN9Dw+o0*pFZvE>`Y8dw70hx6&011mTqot>bmFzprhH@SwumX z<1d(-o3E^_L`FvHa=dV;tE;Q1s1T>H2RvhAW21119M`U0+uPgo^Yhc?cmg#wHQZO1 z*M-B=r%&I#dnZm|7;+11DO@5)e0==$^t6VNAPx==0RaIiDJjpNKW}Mifs_^(7n75d zB?l;Ra&l5D*lz(Fa z*pDASxEJ^3;hEo{&G+x$x3#q?#5{-a_VzwJJVbwmrL(g$KR;jL5;-0{di3$*N9lhn zE35kYdUBqVlXLg(-TC=>awU%}fc^FB*V=XspzjYJJV4PXD5+*VrrV>UqWGz=uWxB- zNz%CV^mOisgIt5s($cZs>!XgjJrffXjh>f)axv6>`}Xbe&DLNE$s)jhG@R zD~iL$kewsXz?wbnhN{fWO!BPpkd#s>8qQ8FV=U0hsvQ=MNb$QT2y^s?lc zBo7V_Mn^{rhp@0PvcX`09!Z};ii?Y1ym+BN#SeTEwuLt zG&8Bt=4xo1w6Fm|l%W?Clg`Y@$XHldfFIa3XpF~l*xTFFsA{#E9Lm4hqR~PofSH+@ zG!pYv!UzpwVZjOu3wd>Ql>(jGGc3vN?QOZgz5p_3T!eFk1!9+W2fQz16*-ses* zy%Qw2tPX}-7L@ixBtVL&BVpwcm|D3?E)5J|8beV~P!JZ@l&~OhLqkLG7>kG=P@M#0 zaBXd^N)N$~l{a;AauOCgiaC>xjfjZo@9(D~US3{wEQLr-O+7UTiIU0(SqURWM1{pE uWs){!^6atM#3FBRmL3-EFEjV<-4hlDKS{e^y?VtHs!oEQQCOkBiGKi514^9$ literal 0 HcwPel00001 diff --git a/apps/plugins/bitmaps/native/pegbox_menu_top.138x31x2.bmp b/apps/plugins/bitmaps/native/pegbox_menu_top.138x31x2.bmp new file mode 100644 index 0000000000000000000000000000000000000000..a86306c30ebe5f3dfae1b841048b9732dcea4a91 GIT binary patch literal 4410 zcwViSF?QQ942FSU9r|9ECKu@1Gj#0GEu$~hqxgK;9TJ2nkN_#kGM;6M3`lgG zSj%xumo(q_SB;=|JHqT$+XWUIuEWYKCi9Q!GANXmCHIQS{pg`#KK@VEJc~KPdUGtA zFv=3mQHEy8QJ{L3slQ=?#zp(17$LkJnA2r8rPT!)p!8>zUd`l5oG|0u4VD)c63scC zG$?&4k>WZop<`d`d%#0o2Kll`0W(XheHOetD8-$=(sv%)tI@-{1g5@>^1$m{WvSyr z6tL{Q#-cj1O=HEf-0 z*we)rhAOEUmYJKC!-Q*Tm*3L`L6EoMh9wGwlX&)M2XqW!)JjbB_d)-t;hfIts4l^X QSz_{pkwUfYD9kcMUkr~oUjP6A literal 0 HcwPel00001 diff --git a/apps/plugins/bitmaps/native/pegbox_menu_top.138x34x4.bmp b/apps/plugins/bitmaps/native/pegbox_menu_top.138x34x4.bmp deleted file mode 100644 index 3184d7453cac3ce0e2e346470160c49abf5d3f3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 2568 zcwUW^O=uHA7=|ZntlA%Kq8>a{<6iV4g1w1im3kBlrAMg;$XKvj&+74)Y zO!`IApOUVUo&ZT2&mRLI-NCxtQmGVBRTcF1_JaQYelRpN1hUyI7#kY{6B84lP$+=8 zxj9fOmB7l%3P1<}+qMD5IOqp9oBRP)T1)_KN{dn6D5W*%KeDkX!}iI$+H}%^97?HB zfZrmagE&@1AE8a>m;$7Zmb!nR(gYjbmANFP~+LnIW7qNKsH4j zw-`nJCIVTgDF-f4T}RWZ+C3bF8*==>)zY^uWz9Le9ptxnI*3qh8VgN|Avl3)#SrCK z=JsUpVN_}T@qUhP+bkM#m}y1Ul!HvizM`tvwlzAskK^+{364kYCe4aC**^8^2Q6GA z&f&+dYDt{B-7`*gd(zJ%q_2jaj&az5vrvUd7jfvoKF;nDltzC#wq}IbO_V$o+Q6+yct`;HDFt$fSXE5hsXwG6%owQQ%q{;*TkaUL8-Dza&Q- z&B1A-wiR&KxCdji*etGG39V=Wp9%rRU?jx!`*R?jz^#9 zcmOWpQE1HPMx3&K&(LOq!qSYSMG-Pvar9yi-w)n!b4nj^;AYqQ>LAO4WFUzk`I(hU z7?E-obJ>jG6pfSUYdahEX|ba^i}S_kqO6nyXVq@{b~OE=p&7Z#@4I~5LUd)1>nb>? z5ywIUoRcHk7>_poUgqP(JTk|MbA%BYM@IwGGlFybvv(q#fViUU>4h97vCz&9>NLG% z4QM$$4xK4dFD-ZG(|l(*!D6{{PE_}L1G&({nHzf;T>nn|vxje<+p`C|*5)sevEZuU zCz6{{=9qOH{Hvo4Z}qgHKM9C;I!{%14tE*D4T zM-k&=Jize4K^#Tw$;Y2{{<0`WUjO*>PrdwHRI%cn|LW~A#NL%#V-xE~6Ke#DEl2V4 z_2Qo(vF(^*>zAX7fy`TvrVb>w7S+7ZKY;G*Mf1lmOn)4CR9WMP>fZ};{MLmJ4xog~ o{m(ylm)oO;-vI`O-6d$@{Qv*IX4e1c;NSnhm|_f!7-G}{0D7GKS^xk5 literal 902 zcwTezZDVEt13Mtr0OAEetOdl3KnMaJKzSu@2xek{U=aBK|33&1QShN2o7f)=AAPU? zz<{pwd;RDC_84N%|L?~Td&Wqd*z^0CVxRBZql?)K-e7*%Ade!(!+3zP0Zr`T#~**@ zS;+=P%6-#0flSdPq2^8bEM-^)XiPfWu{lp@+6N_Gum@KB4vE+Uf tv5y~sZblP(@~Gm^JXEm{JZwb|51@tt5R^Utj{(ZwV~Vly6DLMP000`V3SR&K 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 zcwXg~OO6yV42B(t1rj@!a{|OE5DRuJ`%0XHbzibc9OrGvrZmH}ghdT`xRS4aCri?h3R?p+|nnp>!R{rVCE<*?*^n)h@20odBLVHQT ztH~WRTjir|3z?V=0E=3ozU=@_{b&kVZFK)z9`6dX5}x!!BKbt=XPaCIldfNgmI4H zrL9HxID8C>#l>gZACdP27U3>!VEKbYfH^3l6+TLJh-u9sW~ju6lm>GP`ISOlnObU$ z!aVB5){a7CzCepDsQ+`&>K>gEH4KF;p3HYaKhve%qyiFGiY4+D zrXFGdv8I*OMA&VEEbB*|PK8CWI5gHDYxQ?qo`vIC!cJ_Qc%WL_Ad6&E#S~}t5CcqB z`lt|j^R(z7%Q6vrn{Nb6cAPN1AnaaKxHp+>P3skf*ViVzo2R4@_;plzfT9D+HK148te z3r#LawM0~|;bg1oK8J3h|$S%Jk?M%Iy|;{&fjsXdbsmqAF@Cr^uh8DTekocR#KQ@-<5;Ez&x3H3uf5Fv z`aGH5fCA%~5R!Dk1NZ1PZZqdQ?FW8;3R*%j}v+E4VnwO|93uES)KR9{Ct z(F4Aj8O7_?ew@r%^Uj8TVUh=O#Chz^DISK-(JcA52+-KlEu1*7#~0W|5iMYG(tf<~ z9N90zZxfNO<2)?0L_ec?N{yPHls9^xJh4B$b7?>SZDqLn2_e7QcaLnl`u>{1)AvJY z*0V2fDc89^UAa7V@Gh#@)yk{Shu$k~zj^D08?J86GY#5I6|jOt-YD2GqR#??6wJw zySp#1KuTLqE8t&<^I11frpe+rd-IRynYer|AM^S#t~No!hM+mG97;(gf=ynyq(#ZiEYdaKs3*oTq8FeO02BMw5Ecfp^68;j5@ zC?8r39)VRk^?}oZmOOw%#e19w%3A`Wc|>-g{GVbfFeO0A`)A9E@orBY>`rSZbwb7S zGI_yYVc<&SmWda4q_ ziqfAFG;aP-{~4hEU7O_Fg@6QK(RVc69{q9J+#SF(($(iiRrh!&4~*9mv!1G@B*ZNp zoaRYw(U0M3A+T?@#Iz)6$;B-lof05c&FFz;UFllZE_P!CkX9$M%=;v{V|`I#*;Goa@9&rh~eJoc6sm#fe PDm)P}G0~o6wGsLccEIbq 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 zcwXg{drVVz6vq#;D3FPkmC{-VmA259hdgR2Zy2n=3$L5Qm2q=HZkcdXu zkfnn#7{sWkBdk;hbdd2_9FVH8jK#nfh9I&8UAByv5lZjQ?{`JY1o!u{Z@xb`_k8Z} z+;dNUx39%Nu>mR-E*UO6TpC4d6ivBK zFf=?&rfW9Sn~oJ1Lu?`xl){B3;-WIV%+5PX_um^IC$L-#o1UJ25>$SMNqtWb09J$i z5|S%E3yohAV}O?@&JYCL@Mx&0BioR)d_#-@s-Tn`6~ppI9Z4AOz|aIS2B^|1%1IGj zKNjR%X?MCehsJ=^zwwxQl@M#h}*o${64dL^!{09kx=pBx+=2?2|F5XPo76&~TkSe>+@X&F!{tW#YV& z;1Z*3WA+^Bwimk#p3ZNHe7`rF(lTdJB0xblh}Y zl0j$BKXw0ejd7wD!!Xb|jx@JXZ7n*I> zqp4u;EjjvI^qPGwFP=Y18~$e9)^G?!+ydqWIMDSt!^9v)`ZG7on2E3UUud0*W%Tk2MgMc!7aXa1H=9c5PW|F1ivqU;BOxw_$LTYj%G9l07T&w A$p8QV delta 68 zcwXyc?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 zcwV(qI}XAy4E2Wr2_{a#2{-@)8ymf3Psa_4?bxv+6sb#}o`- z5!M1hdk>;?U{XEO!Kk%r52FwM1C!dhRR^C zlPncu(FxT2yEq4}w}Q*0XgG_zf+@^x19xq7I<%~wNL@Q4Njh`JTx$8{SL7LZH!1Va q{NX}5=cPLwExYxAQK}cKeA)wJ(r|Cz9qu+v@65pS{>*1Lnb!{{-3|T# literal 0 HcwPel00001 diff --git a/apps/plugins/bitmaps/native/pegbox_pieces.12x12x4.bmp b/apps/plugins/bitmaps/native/pegbox_pieces.12x12x4.bmp deleted file mode 100644 index 5b75c3f323a294cc1afe89de418c22df6e82ff24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 2088 zcwWVj2UO2(6vsa)X$c`Cl3ivQg;GRF5-KxFL&%OKWM@=nXi?ckQg&uhqC#e66lqvd znN1Y>mG^&+^Pcmb_j}I0_xn80z2AGEt8c6-ML9GjK=pf+`)+36O^k|%d~r~atuP_P z#KfpkqXy#Q;z&qHP_t%DBqb%ORjU?KQc_4uOCuvAgRHD9a&mIiu3Z~>d3oy8sYBhm zb*Wdc9tsKy)URKk1`Qg}uwg?K6%}dJs1c1DH>OFGCNyo@6eT4knl)=i^XAP_R#v7( zix#M;sL--yOIo#RMeEkBY15_+ZQHh`UAuO)Z{HqORaMl~)acNm106edq*JF(bne`l zE?v6NwQE<@)z#6^(4bqlZglV7ogO`U(6eVxG&MER($b<=uU_=--J3pr`k<|?jgF2E zef#!BS63H3Jw5vM>qr0o{n6LgXTX2~3>-KR0|NsF4I0GY!GjqxWC(_ah727#6eA-e zh7B8rv9U43hY!cZ#DozeMlf>ZNJfnsg{i42W@cuXo0~Iw^k~M68N=AIV;MJY9OK82 zXTpRDSXfvvapFWKO`3$Ir6pEYR!p8e8Eb26Y;0_>wYA00&WC+uvSbNMmoCNC)sgP&6+j1xw)}+ z?ON8YTgUqK>)Ehj1McqbczAf=>FLSFjT_mtX%m|_Z)VGuEo|Mom2KO$;pOGU_U+r* zv1122ckaa7+Z!JrAAEg%@$>V;-`}5IyLPdA_ih3L0tgHYBq%6|J$v@Bckf>I?c2xx z{rfp^-~a~?9^}xWLj(s06A}`_;lqbHa^wi1p`jc-dX%uRFpeENMtFEQ5fKp_KYpAO zCr)tkqVJr#W-x3}?@tB{DLSbLY-+{``3^T)4o+ix;_c=@OSOUnVLlis;GVm)^=tZGwra<6#5Y_je_5MFpo%7eUmGlSsO@+Vv7hI@WrI)Dv zh|u}ZdG!(guIdkt2>ea0DE_BV`E8ZeQc0_9nX+nL@F=JeNC`R!N2#RM{wTPu6z7*F WKV^QNE7C=HL5`qSpegKC1>XQ0gSIdL 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 HcwPel00001 literal 286 zcwTezm1AT813Mtr0Adaxwg6&A28hH1AQs|=U}W(B|9^(VK>9flJ0XcXLB$R;5C$MM zdx5wP4ew<@=tq}>VGwwZgkb<(tQLr?fw&xq^MN=Xi0y&69x87G#8E(;2E|cOF%SR% D?WY@$ diff --git a/apps/plugins/bitmaps/native/pegbox_pieces.9x7x1.bmp b/apps/plugins/bitmaps/native/pegbox_pieces.9x7x1.bmp new file mode 100644 index 0000000000000000000000000000000000000000..c06d67d95f49770714f5e5506859542a93ad77db GIT binary patch literal 258 zcwTezWnyFi13Mtr0AfxcHUwfu28hHFAQs|=U?v6x`2YVu!@&jyhQ~nc3FON#Kxhyj zB#sY&Z=3Nl|Wn$#Qs2R55)CQIgtNA L?kk7Vc2F|`kpdw} literal 0 HcwPel00001 diff --git a/apps/plugins/bitmaps/native/pegbox_pieces.9x9x16.bmp b/apps/plugins/bitmaps/native/pegbox_pieces.9x9x16.bmp new file mode 100644 index 0000000000000000000000000000000000000000..cf1be933484339da1b7e46834fe1c161d4e9765b GIT binary patch literal 1818 zcwWU(Z%kWN6hE)C_x3#>uD}DKqt&<3KY|Pc_$Xs7rHU<3D7eu<8z3wKV_9ali7W=` zU^6OO1ZF4G7)^{C_d${^8H$TDF}fHNHy!iC7X6@GA~Ej!5~ZH|`q0Bx>p(6$yuF3{^OaR zzcXr<%gl}8hqjc}w|8mYf2mYSsHezPndc8}3O*|_`!S)Y@|UYOKyKZ`J8DdwqmLX& zT8H1XJwKl}aLgcA;n}QbQ_qmSW2Aik`_2n%o=>ki_D(ks?$^&d{O)34WP1MBTWxda zx(~mRIcFrEEQ`cTBL_3*Ok-p7(5#H%9heX;1)BB9noo+uWOr$y#HY9>)T98=(J54>6nF$ZkUCCuxM?m{C2 zy-ubBHko>o?ceulfq2~wRTcs8j1wNV|DaI|#DW*gXm{ij?GA|G(~Y0C2tT|~hZ(tczw{F%lkeGVL5pRF z&DM%s|L+z{y(EoG(xN1ND@kW0X#y4Ijg5_~#!r%TQDV5L#*wkH34Hwkz;^&Q)qr(! zNfeub(j5SQWL^TUQ`()bORWdo=AzgRvDhH8hK7{S$2`o)QDHjHL#Z-3nMx#5F4u1} zGb!Yh*6IJfzki=7;sMIP7pg(naL&s5$P%?VnfIYDq73Ve)LgB!HFAOJd7T_@$<^q1wa*fBo= 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) -#define LEVEL_TEXT_X 28 -#define PEGS_TEXT_X 119 -#define TEXT_Y 15 -#elif (LCD_WIDTH >= 128) && (LCD_HEIGHT >= 128) +#elif LCD_WIDTH >= 138 #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,36 +729,28 @@ 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++) { for (c = 0 ; c < COLS ; c++) { @@ -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 53addf012..c1a0974a9 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 -- 2.11.4.GIT