From 312ccc2f2ff6921a37addfe1ad7afd4588123d7d Mon Sep 17 00:00:00 2001 From: Antoine Cellerier Date: Thu, 3 Aug 2006 19:57:33 +0000 Subject: [PATCH] Some graphics fixes for solitaire. (Numbers for hearts and diamonds still need to be colored red on color LCD screens) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10443 a1c6a512-1295-4272-9138-f99709370657 --- .../native/solitaire_numbers.8x10x1.bmp | Bin 582 -> 582 bytes .../native/solitaire_suitsi.15x16x1.bmp | Bin 318 -> 318 bytes .../native/solitaire_suitsi.15x16x16.bmp | Bin 3126 -> 3126 bytes apps/plugins/solitaire.c | 41 +++++++++++++----- 4 files changed, 30 insertions(+), 11 deletions(-) diff --git a/apps/plugins/bitmaps/native/solitaire_numbers.8x10x1.bmp b/apps/plugins/bitmaps/native/solitaire_numbers.8x10x1.bmp index 2ba40aa97b398eba724e16a16df23851f5734c11..228532b54bed7d7281d1fca0dc7b5233fbdd9c44 100644 GIT binary patch literal 582 zcmZvYy$%6E6h@ayqVp7Qt1T9ZA?^E}I0&l6MX5JsuGR?{PI*g+pcQ+Mrt z`1bVX%wP?#ggy!1gZ>8h#ELqB1E_^BW;%ZhX8fBQKDA=6-*x0I>E#4h@c+!#C*dn+ z4ADGS&I?~;6n(|KxCd*@n$ZX4xf`?#oWZ_4H!{3$eNUMG@h#YsG4v8g>J~ib+z&r0 BWS9T| literal 582 zcmZvYF$%&!6hzfR0*XaIv=D1cE47dm7OAwf4+yD(UC<&Zc!HeNGx#R%KnR)ecK`05 z%nvzT($Sz%!n%P7J}~5wBKq;x<0b)ZmA z0cV&7gb-MAAEcn5au3FtlP2iDpq6#xJL diff --git a/apps/plugins/bitmaps/native/solitaire_suitsi.15x16x1.bmp b/apps/plugins/bitmaps/native/solitaire_suitsi.15x16x1.bmp index 2554f0b349fcc46d38d15631347d9120eb419f0f..541bfc06888efff9be241baf85896280c74602d6 100644 GIT binary patch literal 318 zcmZvVF%H5o5Ck_AG)N%v0BT-gA$oXH#0z*6d;}rE1JaQqve}6_g(7E-E#KYl9#5&! zSjqR^Y|OzlK4baWt||*RfGVY^WGT0m!3NOpD&1Ow_{Ti<(ZbM9bk^RM(#0YF&|?<# nscO;ZANbH`=jq%zpSyitSLySZ^pXEQ&uj3(4`2M*CzI?i)Id=u literal 318 zcmZXOK@LDL5JjiDAhBp-C9$w|2tn+fNpIjvj^Y9mOA8DCS4;4lH*IJ7XW9>q5~l{S z0tR$IVL4&T(u)WQGOd&3Rqo0fQQM1n79nPN2zTvke6K8mS8U+{%+ojSf7IX?l$e6s0)iG_wg$^Yn<+e~9;RJRUBnW9LE`@f zFD2f*q>}H!x75Si5dzozzu==YmH2*YWP^tZN34aOia+9)KGuJ}0qbXtB$0pKB%Mhp zfy_0_tF{~8(-IhB+;G*7ODuqdu|xm~hj`Qq@7tLH{oHz z5l?}hiaoqB+|bHI+ET>cnA*nkHAZyW_L#G9H@>GOFvPgwULMdw&)B|JB7hHLNz97k OOVU&nSu&)jFn!+sk2whd literal 3126 zcmds$!A`?45JbZnBqUD#gnmKKh&%uPIWXxc!)j(@+y*3sm00WDH{-S2yuDwZmg~4+ zKI47H`-=BrIbp^?{pFD_6U*{(%YZ0x*eeD+5YJ!a|AZ*yr@=qhL^;gxlI2pziyOck56**>0I{c?*Du`pY)_I`w@&_h6h7Q z!pN9^HCJ4Pe5!|F^L5Sf-?!CvVkU)_$^@nU-(A zL~8f=J;{J?CB}oX$Bs~WBe}elHx>O`=bF?mlRUH>f0IXV^>i8Ad5zzW_GOa17?lv{ zT9mB6uabk{IA1@>+^F@ZBw=JKFRX5XxC+S|kV{D>c{-?{G|UXQnD;-zLz@lM49zj; feO65IJTH<#^+!gA3dTIEgpK6V{O{viXZe2ufUK0F diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c index d39ddcec14..aeb3de1e63 100644 --- a/apps/plugins/solitaire.c +++ b/apps/plugins/solitaire.c @@ -209,12 +209,20 @@ static struct plugin_api* rb; # define CARD_WIDTH 19 # define CARD_HEIGHT 24 #else -# define CARD_WIDTH 14 +# define CARD_WIDTH 15 # define CARD_HEIGHT 10 #endif /* where the cards start */ -#define CARD_START ( CARD_HEIGHT + 4 ) +#if LCD_HEIGHT > 64 +# define UPPER_ROW_MARGIN 2 +# define CARD_START ( CARD_HEIGHT + 4 ) +#else + /* The screen is *small* */ +# define UPPER_ROW_MARGIN 0 +# define CARD_START ( CARD_HEIGHT + 1 ) +#endif + #if LCD_HEIGHT > 64 # define NUMBER_HEIGHT 10 @@ -234,7 +242,7 @@ static struct plugin_api* rb; #define SUITI_HEIGHT 16 #define SUITI_WIDTH 15 -#define SUITI_STRIDE 16 +#define SUITI_STRIDE 15 #define draw_number( num, x, y ) \ @@ -376,14 +384,20 @@ static void draw_card( card_t card, int x, int y, rb->lcd_set_foreground( LCD_WHITE ); rb->lcd_fillrect( x+1, y+1, CARD_WIDTH-1, CARD_HEIGHT-1 ); #endif - draw_number( card.num, x+1, y+1 ); if( leftstyle ) { +#if UPPER_ROW_MARGIN > 0 draw_suit( card.suit, x+1, y+2+NUMBER_HEIGHT ); + draw_number( card.num, x+1, y+1 ); +#else + draw_suit( card.suit, x+1, y+NUMBER_HEIGHT-1 ); + draw_number( card.num, x+1, y-1 ); +#endif } else { draw_suit( card.suit, x+2+NUMBER_WIDTH, y+1 ); + draw_number( card.num, x+1, y+1 ); } } #ifdef HAVE_LCD_COLOR @@ -1149,13 +1163,15 @@ int solitaire( void ) if( c != NOT_A_CARD ) { draw_card( deck[c], - LCD_WIDTH2 - (CARD_WIDTH*4+8)+CARD_WIDTH*i+i*2+1, 2, + LCD_WIDTH2 - (CARD_WIDTH*4+8)+CARD_WIDTH*i+i*2+1, + UPPER_ROW_MARGIN, c == sel_card, cur_col == STACKS_COL + i, false ); } else { draw_empty_stack( i, - LCD_WIDTH2 - (CARD_WIDTH*4+8)+CARD_WIDTH*i+i*2+1, 2, + LCD_WIDTH2 - (CARD_WIDTH*4+8)+CARD_WIDTH*i+i*2+1, + UPPER_ROW_MARGIN, cur_col == STACKS_COL + i ); } } @@ -1174,16 +1190,18 @@ int solitaire( void ) prevcard = find_prev_card(prevcard); for( i = 0; i <= coun_rem; i++ ) { - draw_card( deck[prevcard], CARD_WIDTH+4+j+1, 2, - sel_card == prevcard, cur_card == prevcard, - i < coun_rem ); + draw_card( deck[prevcard], + CARD_WIDTH+2*UPPER_ROW_MARGIN+j+1, + UPPER_ROW_MARGIN, sel_card == prevcard, + cur_card == prevcard, i < coun_rem ); prevcard = deck[prevcard].next; j += NUMBER_WIDTH+2; } } else if( cur_rem == NOT_A_CARD && cur_col == REM_COL ) { - draw_cursor( CARD_WIDTH+4+1, 2 ); + draw_cursor( CARD_WIDTH+2*UPPER_ROW_MARGIN+1, + UPPER_ROW_MARGIN ); } } @@ -1192,7 +1210,8 @@ int solitaire( void ) { /* gruik ! (we want to display a card back) */ deck[rem].known = false; - draw_card( deck[rem], 2, 2, false, false, false ); + draw_card( deck[rem], UPPER_ROW_MARGIN, UPPER_ROW_MARGIN, + false, false, false ); deck[rem].known = true; }