diff --git a/apps/plugins/bitmaps/mono/SOURCES b/apps/plugins/bitmaps/mono/SOURCES index 82bab1be12..0fbc4766d1 100644 --- a/apps/plugins/bitmaps/mono/SOURCES +++ b/apps/plugins/bitmaps/mono/SOURCES @@ -31,4 +31,22 @@ brickmania_powerups.112x64x1.bmp tetrox_background.112x64x1.bmp #endif +/* Solitaire */ +#if LCD_HEIGHT > 64 +solitaire_numbers.8x10x1.bmp +#if HAVE_LCD_COLOR +solitaire_suits.8x10x1_filled.bmp +#else +solitaire_suits.8x10x1.bmp +#endif +#else +solitaire_numbers.6x6x1.bmp +solitaire_suits.6x6x1.bmp +#endif +#if HAVE_LCD_COLOR +solitaire_suitsi.15x16x1_filled.bmp +#else +solitaire_suitsi.15x16x1.bmp +#endif + #endif /* HAVE_LCD_BITMAP */ diff --git a/apps/plugins/bitmaps/native/solitaire_numbers.6x6x1.bmp b/apps/plugins/bitmaps/mono/solitaire_numbers.6x6x1.bmp similarity index 100% rename from apps/plugins/bitmaps/native/solitaire_numbers.6x6x1.bmp rename to apps/plugins/bitmaps/mono/solitaire_numbers.6x6x1.bmp diff --git a/apps/plugins/bitmaps/native/solitaire_numbers.8x10x1.bmp b/apps/plugins/bitmaps/mono/solitaire_numbers.8x10x1.bmp similarity index 100% rename from apps/plugins/bitmaps/native/solitaire_numbers.8x10x1.bmp rename to apps/plugins/bitmaps/mono/solitaire_numbers.8x10x1.bmp diff --git a/apps/plugins/bitmaps/native/solitaire_suits.6x6x1.bmp b/apps/plugins/bitmaps/mono/solitaire_suits.6x6x1.bmp similarity index 100% rename from apps/plugins/bitmaps/native/solitaire_suits.6x6x1.bmp rename to apps/plugins/bitmaps/mono/solitaire_suits.6x6x1.bmp diff --git a/apps/plugins/bitmaps/native/solitaire_suits.8x10x1.bmp b/apps/plugins/bitmaps/mono/solitaire_suits.8x10x1.bmp similarity index 100% rename from apps/plugins/bitmaps/native/solitaire_suits.8x10x1.bmp rename to apps/plugins/bitmaps/mono/solitaire_suits.8x10x1.bmp diff --git a/apps/plugins/bitmaps/mono/solitaire_suits.8x10x1_filled.bmp b/apps/plugins/bitmaps/mono/solitaire_suits.8x10x1_filled.bmp new file mode 100644 index 0000000000..497dcae149 Binary files /dev/null and b/apps/plugins/bitmaps/mono/solitaire_suits.8x10x1_filled.bmp differ diff --git a/apps/plugins/bitmaps/native/solitaire_suitsi.15x16x1.bmp b/apps/plugins/bitmaps/mono/solitaire_suitsi.15x16x1.bmp similarity index 100% rename from apps/plugins/bitmaps/native/solitaire_suitsi.15x16x1.bmp rename to apps/plugins/bitmaps/mono/solitaire_suitsi.15x16x1.bmp diff --git a/apps/plugins/bitmaps/mono/solitaire_suitsi.15x16x1_filled.bmp b/apps/plugins/bitmaps/mono/solitaire_suitsi.15x16x1_filled.bmp new file mode 100644 index 0000000000..541bfc0688 Binary files /dev/null and b/apps/plugins/bitmaps/mono/solitaire_suitsi.15x16x1_filled.bmp differ diff --git a/apps/plugins/bitmaps/native/SOURCES b/apps/plugins/bitmaps/native/SOURCES index 7ddb042def..8df3bef608 100644 --- a/apps/plugins/bitmaps/native/SOURCES +++ b/apps/plugins/bitmaps/native/SOURCES @@ -158,21 +158,6 @@ solitaire_cardback.220x176x16.bmp solitaire_cardback.176x132x16.bmp #endif #endif -#if defined( HAVE_LCD_COLOR ) -solitaire_numbers.8x10x1.bmp -solitaire_suits.8x10x16.bmp -#elif LCD_HEIGHT > 64 -solitaire_numbers.8x10x1.bmp -solitaire_suits.8x10x1.bmp -#else -solitaire_numbers.6x6x1.bmp -solitaire_suits.6x6x1.bmp -#endif -#ifdef HAVE_LCD_COLOR -solitaire_suitsi.15x16x16.bmp -#else -solitaire_suitsi.15x16x1.bmp -#endif /* Sudoku */ #if LCD_WIDTH >= LCD_HEIGHT diff --git a/apps/plugins/bitmaps/native/solitaire_suits.8x10x16.bmp b/apps/plugins/bitmaps/native/solitaire_suits.8x10x16.bmp deleted file mode 100644 index df8ad2e8b2..0000000000 Binary files a/apps/plugins/bitmaps/native/solitaire_suits.8x10x16.bmp and /dev/null differ diff --git a/apps/plugins/bitmaps/native/solitaire_suitsi.15x16x16.bmp b/apps/plugins/bitmaps/native/solitaire_suitsi.15x16x16.bmp deleted file mode 100644 index 530921db3d..0000000000 Binary files a/apps/plugins/bitmaps/native/solitaire_suitsi.15x16x16.bmp and /dev/null differ diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c index 0f0f56e14a..8d6890db83 100644 --- a/apps/plugins/solitaire.c +++ b/apps/plugins/solitaire.c @@ -265,15 +265,15 @@ static struct plugin_api* rb; #define draw_number( num, x, y ) \ - rb->lcd_bitmap_part( numbers, 0, num * NUMBER_HEIGHT, NUMBER_STRIDE, \ - x, y, NUMBER_WIDTH, NUMBER_HEIGHT ); -extern const fb_data solitaire_numbers[]; + rb->lcd_mono_bitmap_part( numbers, 0, num * NUMBER_HEIGHT, NUMBER_STRIDE, \ + x, y, NUMBER_WIDTH, NUMBER_HEIGHT ); +extern const unsigned char solitaire_numbers[]; #define numbers solitaire_numbers #define draw_suit( num, x, y ) \ - rb->lcd_bitmap_part( suits, 0, num * SUIT_HEIGHT, SUIT_STRIDE, \ - x, y, SUIT_WIDTH, SUIT_HEIGHT ); -extern const fb_data solitaire_suits[]; + rb->lcd_mono_bitmap_part( suits, 0, num * SUIT_HEIGHT, SUIT_STRIDE, \ + x, y, SUIT_WIDTH, SUIT_HEIGHT ); +extern const unsigned char solitaire_suits[]; #define suits solitaire_suits #if ( CARD_HEIGHT < SUITI_HEIGHT + 1 ) || ( CARD_WIDTH < SUITI_WIDTH + 1 ) @@ -284,9 +284,9 @@ extern const fb_data solitaire_suits[]; # define draw_suiti( num, x, y ) draw_suit( num, x, y ) #else # define draw_suiti( num, x, y ) \ - rb->lcd_bitmap_part( suitsi, 0, num * SUITI_HEIGHT, SUITI_STRIDE, \ - x, y, SUITI_WIDTH, SUITI_HEIGHT ); - extern const fb_data solitaire_suitsi[]; + rb->lcd_mono_bitmap_part( suitsi, 0, num * SUITI_HEIGHT, SUITI_STRIDE, \ + x, y, SUITI_WIDTH, SUITI_HEIGHT ); + extern const unsigned char solitaire_suitsi[]; # define suitsi solitaire_suitsi #endif @@ -302,6 +302,16 @@ extern const fb_data solitaire_suits[]; extern const fb_data solitaire_cardback[]; #endif +#if HAVE_LCD_COLOR + static const unsigned colors[4] = { + LCD_BLACK, LCD_RGBPACK(255, 0, 0), LCD_BLACK, LCD_RGBPACK(255, 0, 0) + }; +#elif LCD_DEPTH > 1 + static const unsigned colors[4] = { + LCD_BLACK, LCD_BRIGHTNESS(127), LCD_BLACK, LCD_BRIGHTNESS(127) + }; +#endif + #define CONFIG_FILENAME "sol.cfg" #define NOT_A_CARD 255 @@ -403,6 +413,10 @@ 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 + +#if LCD_DEPTH > 1 + rb->lcd_set_foreground( colors[card.suit] ); +#endif if( leftstyle ) { #if UPPER_ROW_MARGIN > 0 @@ -442,6 +456,11 @@ static void draw_empty_stack( int s, int x, int y, bool cursor ) #if LCD_DEPTH == 1 rb->lcd_set_drawmode( DRMODE_SOLID ); #endif + +#if LCD_DEPTH > 1 + rb->lcd_set_foreground( colors[s] ); +#endif + draw_suiti( s, x+(CARD_WIDTH-SUITI_WIDTH)/2, y+(CARD_HEIGHT-SUITI_HEIGHT)/2 );