mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-10-13 18:17:39 -04:00
pegbox, sliding_puzzle, sokoban, solitaire, sudoku, and superdom: Add support for vertical strides
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22573 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
1baf5c9463
commit
cdafa3e498
6 changed files with 37 additions and 27 deletions
|
@ -745,9 +745,10 @@ static void pegbox_draw_board(struct game_context* pb)
|
||||||
|
|
||||||
if(type != SPACE) {
|
if(type != SPACE) {
|
||||||
rb->lcd_bitmap_part(pegbox_pieces, 0, (type-1)*PIECE_HEIGHT,
|
rb->lcd_bitmap_part(pegbox_pieces, 0, (type-1)*PIECE_HEIGHT,
|
||||||
PIECE_WIDTH, c * PIECE_WIDTH + BOARD_X,
|
STRIDE(BMPWIDTH_pegbox_pieces,BMPHEIGHT_pegbox_pieces),
|
||||||
r * PIECE_HEIGHT + BOARD_Y, PIECE_WIDTH,
|
c * PIECE_WIDTH + BOARD_X,
|
||||||
PIECE_HEIGHT);
|
r * PIECE_HEIGHT + BOARD_Y, PIECE_WIDTH,
|
||||||
|
PIECE_HEIGHT);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(pb->playboard[r][c] == PLAYER) {
|
if(pb->playboard[r][c] == PLAYER) {
|
||||||
|
|
|
@ -404,8 +404,9 @@ static void draw_spot(int p, int x, int y)
|
||||||
/* the bottom-right cell of the default sliding_puzzle image is
|
/* the bottom-right cell of the default sliding_puzzle image is
|
||||||
an appropriate hole graphic */
|
an appropriate hole graphic */
|
||||||
rb->lcd_bitmap_part(sliding_puzzle, ((p-1)%SPOTS_X)*SPOTS_WIDTH,
|
rb->lcd_bitmap_part(sliding_puzzle, ((p-1)%SPOTS_X)*SPOTS_WIDTH,
|
||||||
((p-1)/SPOTS_X)*SPOTS_HEIGHT,
|
((p-1)/SPOTS_X)*SPOTS_HEIGHT,
|
||||||
IMAGE_WIDTH, x, y, SPOTS_WIDTH, SPOTS_HEIGHT);
|
STRIDE(BMPWIDTH_sliding_puzzle, BMPHEIGHT_sliding_puzzle),
|
||||||
|
x, y, SPOTS_WIDTH, SPOTS_HEIGHT);
|
||||||
#else
|
#else
|
||||||
/* just draw a black rectangle */
|
/* just draw a black rectangle */
|
||||||
int old_fg = rb->lcd_get_foreground();
|
int old_fg = rb->lcd_get_foreground();
|
||||||
|
@ -417,8 +418,9 @@ static void draw_spot(int p, int x, int y)
|
||||||
else if (picmode != PICMODE_NUMERALS)
|
else if (picmode != PICMODE_NUMERALS)
|
||||||
{
|
{
|
||||||
rb->lcd_bitmap_part( puzzle_bmp_ptr, ((p-1)%SPOTS_X)*SPOTS_WIDTH,
|
rb->lcd_bitmap_part( puzzle_bmp_ptr, ((p-1)%SPOTS_X)*SPOTS_WIDTH,
|
||||||
((p-1)/SPOTS_X)*SPOTS_HEIGHT,
|
((p-1)/SPOTS_X)*SPOTS_HEIGHT,
|
||||||
IMAGE_WIDTH, x, y, SPOTS_WIDTH, SPOTS_HEIGHT);
|
STRIDE(BMPWIDTH_sliding_puzzle, BMPHEIGHT_sliding_puzzle),
|
||||||
|
x, y, SPOTS_WIDTH, SPOTS_HEIGHT);
|
||||||
} else {
|
} else {
|
||||||
rb->lcd_drawrect(x, y, SPOTS_WIDTH, SPOTS_HEIGHT);
|
rb->lcd_drawrect(x, y, SPOTS_WIDTH, SPOTS_HEIGHT);
|
||||||
rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID);
|
rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID);
|
||||||
|
|
|
@ -978,44 +978,44 @@ static void update_screen(void)
|
||||||
|
|
||||||
case ' ': /* floor */
|
case ' ': /* floor */
|
||||||
rb->lcd_bitmap_part(sokoban_tiles, 0, 0*SOKOBAN_TILESIZE,
|
rb->lcd_bitmap_part(sokoban_tiles, 0, 0*SOKOBAN_TILESIZE,
|
||||||
SOKOBAN_TILESIZE, c, r, SOKOBAN_TILESIZE,
|
STRIDE(BMPWIDTH_sokoban_tiles, BMPHEIGHT_sokoban_tiles),
|
||||||
SOKOBAN_TILESIZE);
|
c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case '#': /* wall */
|
case '#': /* wall */
|
||||||
rb->lcd_bitmap_part(sokoban_tiles, 0, 1*SOKOBAN_TILESIZE,
|
rb->lcd_bitmap_part(sokoban_tiles, 0, 1*SOKOBAN_TILESIZE,
|
||||||
SOKOBAN_TILESIZE, c, r, SOKOBAN_TILESIZE,
|
STRIDE(BMPWIDTH_sokoban_tiles, BMPHEIGHT_sokoban_tiles),
|
||||||
SOKOBAN_TILESIZE);
|
c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case '$': /* box */
|
case '$': /* box */
|
||||||
rb->lcd_bitmap_part(sokoban_tiles, 0, 2*SOKOBAN_TILESIZE,
|
rb->lcd_bitmap_part(sokoban_tiles, 0, 2*SOKOBAN_TILESIZE,
|
||||||
SOKOBAN_TILESIZE, c, r, SOKOBAN_TILESIZE,
|
STRIDE(BMPWIDTH_sokoban_tiles, BMPHEIGHT_sokoban_tiles),
|
||||||
SOKOBAN_TILESIZE);
|
c, r, SOKOBAN_TILESIZE,SOKOBAN_TILESIZE);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case '*': /* box on goal */
|
case '*': /* box on goal */
|
||||||
rb->lcd_bitmap_part(sokoban_tiles, 0, 3*SOKOBAN_TILESIZE,
|
rb->lcd_bitmap_part(sokoban_tiles, 0, 3*SOKOBAN_TILESIZE,
|
||||||
SOKOBAN_TILESIZE, c, r, SOKOBAN_TILESIZE,
|
STRIDE(BMPWIDTH_sokoban_tiles, BMPHEIGHT_sokoban_tiles),
|
||||||
SOKOBAN_TILESIZE);
|
c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case '.': /* goal */
|
case '.': /* goal */
|
||||||
rb->lcd_bitmap_part(sokoban_tiles, 0, 4*SOKOBAN_TILESIZE,
|
rb->lcd_bitmap_part(sokoban_tiles, 0, 4*SOKOBAN_TILESIZE,
|
||||||
SOKOBAN_TILESIZE, c, r, SOKOBAN_TILESIZE,
|
STRIDE(BMPWIDTH_sokoban_tiles, BMPHEIGHT_sokoban_tiles),
|
||||||
SOKOBAN_TILESIZE);
|
c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case '@': /* player */
|
case '@': /* player */
|
||||||
rb->lcd_bitmap_part(sokoban_tiles, 0, 5*SOKOBAN_TILESIZE,
|
rb->lcd_bitmap_part(sokoban_tiles, 0, 5*SOKOBAN_TILESIZE,
|
||||||
SOKOBAN_TILESIZE, c, r, SOKOBAN_TILESIZE,
|
STRIDE(BMPWIDTH_sokoban_tiles, BMPHEIGHT_sokoban_tiles),
|
||||||
SOKOBAN_TILESIZE);
|
c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case '+': /* player on goal */
|
case '+': /* player on goal */
|
||||||
rb->lcd_bitmap_part(sokoban_tiles, 0, 6*SOKOBAN_TILESIZE,
|
rb->lcd_bitmap_part(sokoban_tiles, 0, 6*SOKOBAN_TILESIZE,
|
||||||
SOKOBAN_TILESIZE, c, r, SOKOBAN_TILESIZE,
|
STRIDE(BMPWIDTH_sokoban_tiles, BMPHEIGHT_sokoban_tiles),
|
||||||
SOKOBAN_TILESIZE);
|
c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -482,7 +482,12 @@ PLUGIN_HEADER
|
||||||
#define CARD_WIDTH (BMPWIDTH_card_back+2)
|
#define CARD_WIDTH (BMPWIDTH_card_back+2)
|
||||||
#define CARD_HEIGHT (BMPHEIGHT_card_back+2)
|
#define CARD_HEIGHT (BMPHEIGHT_card_back+2)
|
||||||
|
|
||||||
#if LCD_WIDTH >= 320
|
#if LCD_WIDTH >= 640
|
||||||
|
# define MARGIN 4
|
||||||
|
# define LARGE_CARD
|
||||||
|
# define SYMBOL_HEIGHT 24
|
||||||
|
|
||||||
|
#elif LCD_WIDTH >= 320
|
||||||
# define MARGIN 4
|
# define MARGIN 4
|
||||||
# define LARGE_CARD
|
# define LARGE_CARD
|
||||||
# define SYMBOL_HEIGHT 12
|
# define SYMBOL_HEIGHT 12
|
||||||
|
@ -615,7 +620,8 @@ static void draw_card( card_t *card, int x, int y,
|
||||||
if( card->known )
|
if( card->known )
|
||||||
{
|
{
|
||||||
rb->lcd_bitmap_part( card_deck, CARD_GFX_WIDTH * card->num,
|
rb->lcd_bitmap_part( card_deck, CARD_GFX_WIDTH * card->num,
|
||||||
CARD_GFX_HEIGHT * card->suit, BMPWIDTH_card_deck,
|
CARD_GFX_HEIGHT * card->suit,
|
||||||
|
STRIDE(BMPWIDTH_card_deck, BMPHEIGHT_card_deck),
|
||||||
x+1, y+1, CARD_GFX_WIDTH, CARD_GFX_HEIGHT );
|
x+1, y+1, CARD_GFX_WIDTH, CARD_GFX_HEIGHT );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -630,8 +636,9 @@ static void draw_card( card_t *card, int x, int y,
|
||||||
static void draw_empty_stack( int s, int x, int y, bool cursor )
|
static void draw_empty_stack( int s, int x, int y, bool cursor )
|
||||||
{
|
{
|
||||||
rb->lcd_bitmap_part( solitaire_suitsi, 0,
|
rb->lcd_bitmap_part( solitaire_suitsi, 0,
|
||||||
CARD_GFX_HEIGHT * s, BMPWIDTH_solitaire_suitsi,
|
CARD_GFX_HEIGHT * s,
|
||||||
x+1, y+1, CARD_GFX_WIDTH, CARD_GFX_HEIGHT );
|
STRIDE(BMPWIDTH_solitaire_suitsi, BMPHEIGHT_solitaire_suitsi),
|
||||||
|
x+1, y+1, CARD_GFX_WIDTH, CARD_GFX_HEIGHT );
|
||||||
|
|
||||||
draw_card_ext( x, y, false, cursor );
|
draw_card_ext( x, y, false, cursor );
|
||||||
}
|
}
|
||||||
|
|
|
@ -73,7 +73,7 @@ Example ".ss" file, and one with a saved state:
|
||||||
#include "pluginbitmaps/sudoku_start.h"
|
#include "pluginbitmaps/sudoku_start.h"
|
||||||
|
|
||||||
#define BITMAP_HEIGHT (BMPHEIGHT_sudoku_normal/10)
|
#define BITMAP_HEIGHT (BMPHEIGHT_sudoku_normal/10)
|
||||||
#define BITMAP_STRIDE BMPWIDTH_sudoku_normal
|
#define BITMAP_STRIDE STRIDE(BMPWIDTH_sudoku_normal, BMPHEIGHT_sudoku_normal)
|
||||||
|
|
||||||
#if (LCD_DEPTH>2)
|
#if (LCD_DEPTH>2)
|
||||||
#define BITMAP_WIDTH (BMPWIDTH_sudoku_normal/2)
|
#define BITMAP_WIDTH (BMPWIDTH_sudoku_normal/2)
|
||||||
|
|
|
@ -62,7 +62,7 @@ char buf[255];
|
||||||
/* These parameters define the piece image dimensions, Stride is the total width
|
/* These parameters define the piece image dimensions, Stride is the total width
|
||||||
* of the bitmap.
|
* of the bitmap.
|
||||||
*/
|
*/
|
||||||
#define ICON_STRIDE BMPWIDTH_superdom_boarditems
|
#define ICON_STRIDE STRIDE(BMPWIDTH_superdom_boarditems, BMPHEIGHT_superdom_boarditems)
|
||||||
#define ICON_HEIGHT (BMPHEIGHT_superdom_boarditems/6)
|
#define ICON_HEIGHT (BMPHEIGHT_superdom_boarditems/6)
|
||||||
#define ICON_WIDTH (BMPWIDTH_superdom_boarditems/2)
|
#define ICON_WIDTH (BMPWIDTH_superdom_boarditems/2)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue