forked from len0rd/rockbox
Reversi: Fix warning, change the text so that it does not resize the board (text does not scroll currently), and fix some target buttons.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22121 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
4654b3c90b
commit
d66bf05ad2
2 changed files with 63 additions and 25 deletions
|
@ -49,8 +49,12 @@ further options:
|
|||
|
||||
PLUGIN_HEADER
|
||||
|
||||
int font_width=4;
|
||||
int font_height=8;
|
||||
/* This is initialized at the start of the plugin and used to determine the
|
||||
* Appropriate game board size/legend spacing if the font is larger than a cell
|
||||
* height/width.
|
||||
*/
|
||||
static int font_width;
|
||||
static int font_height;
|
||||
|
||||
/* Where the board begins */
|
||||
#define XOFS 4
|
||||
|
@ -62,7 +66,7 @@ int font_height=8;
|
|||
#define MARGIN_C_W 0
|
||||
#define MARGIN_C_H 2
|
||||
#else
|
||||
#define MARGIN_W (XOFS*2 + font_width*2)
|
||||
#define MARGIN_W (XOFS*2 + 16)
|
||||
#define MARGIN_H (YOFS*2+1)
|
||||
#define MARGIN_C_W 1
|
||||
#define MARGIN_C_H 0
|
||||
|
@ -112,10 +116,13 @@ int font_height=8;
|
|||
|
||||
#if LCD_HEIGHT > LCD_WIDTH
|
||||
#define LEGEND_X(lc) (CELL_X(lc))
|
||||
#define LEGEND_Y(lr) (CELL_Y(BOARD_SIZE+lr) + YOFS + 1)
|
||||
#define LEGEND_Y(lr) ((CELL_HEIGHT > font_height) ? \
|
||||
CELL_Y(BOARD_SIZE+lr) + YOFS + 1 : \
|
||||
BOARD_HEIGHT + 2*YOFS + font_height*(lr-BOARD_SIZE))
|
||||
#else
|
||||
#define LEGEND_X(lc) (CELL_X(BOARD_SIZE+lc) + XOFS + 1)
|
||||
#define LEGEND_Y(lr) (CELL_Y(lr) > font_height*2 ? CELL_Y(lr) : font_height*(lr) + XOFS)
|
||||
#define LEGEND_Y(lr) (CELL_HEIGHT > font_height ? \
|
||||
CELL_Y(lr) : font_height*(lr)+YOFS)
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -152,23 +159,23 @@ static bool game_finished;
|
|||
#if LCD_HEIGHT < LCD_WIDTH
|
||||
/* Define Menu button x, y, width, height */
|
||||
#define B_MENU_X LEGEND_X(0)
|
||||
#define B_MENU_Y (LCD_HEIGHT/4)
|
||||
#define B_MENU_Y (LCD_HEIGHT-LCD_HEIGHT/2)
|
||||
#define B_MENU_W (LCD_WIDTH-LEGEND_X(0))
|
||||
#define B_MENU_H (LCD_HEIGHT/4)
|
||||
/* Define Quit Button x, y, width, height */
|
||||
#define B_QUIT_X LEGEND_X(0)
|
||||
#define B_QUIT_Y (LCD_HEIGHT/2)
|
||||
#define B_QUIT_Y (LCD_HEIGHT-LCD_HEIGHT/4)
|
||||
#define B_QUIT_W (LCD_WIDTH-LEGEND_X(0))
|
||||
#define B_QUIT_H (LCD_HEIGHT/4)
|
||||
#else
|
||||
/* Define Menu button x, y, width, height */
|
||||
#define B_MENU_X (LCD_WIDTH/2)
|
||||
#define B_MENU_Y LEGEND_Y(0)
|
||||
#define B_MENU_Y (CELL_HEIGHT*BOARD_SIZE+YOFS*2)
|
||||
#define B_MENU_W (LCD_WIDTH/4)
|
||||
#define B_MENU_H (2*CELL_HEIGHT)
|
||||
/* Define Quit Button x, y, width, height */
|
||||
#define B_QUIT_X (LCD_WIDTH-LCD_WIDTH/4)
|
||||
#define B_QUIT_Y LEGEND_Y(0)
|
||||
#define B_QUIT_Y (CELL_HEIGHT*BOARD_SIZE+YOFS*2)
|
||||
#define B_QUIT_W (LCD_WIDTH/4)
|
||||
#define B_QUIT_H (2*CELL_HEIGHT)
|
||||
#endif
|
||||
|
@ -273,6 +280,8 @@ static void reversi_gui_draw_cell(int x, int y, int color) {
|
|||
/* Draws the complete screen */
|
||||
static void reversi_gui_display_board(void) {
|
||||
int x, y, r, c, x_width, x_height;
|
||||
/* This viewport is used to draw a scrolling score */
|
||||
struct viewport tempvp;
|
||||
char buf[8];
|
||||
|
||||
/* Clear the display buffer */
|
||||
|
@ -307,20 +316,43 @@ static void reversi_gui_display_board(void) {
|
|||
|
||||
x = LEGEND_X(0);
|
||||
y = LEGEND_Y(0);
|
||||
reversi_gui_draw_cell(x, y, BLACK);
|
||||
rb->snprintf(buf, sizeof(buf), "%d", c);
|
||||
y += (CELL_HEIGHT-x_height) / 2;
|
||||
rb->lcd_putsxy(x + CELL_WIDTH + 2, y, buf);
|
||||
reversi_gui_draw_cell(x, y+(LEGEND_Y(1)-LEGEND_Y(0))/2-CELL_WIDTH/2, BLACK);
|
||||
rb->snprintf(buf, sizeof(buf), "%01d", c);
|
||||
|
||||
tempvp.x=x+CELL_WIDTH+2;
|
||||
tempvp.y=y;
|
||||
tempvp.width=LCD_WIDTH-tempvp.x;
|
||||
tempvp.height=LEGEND_Y(1);
|
||||
|
||||
tempvp.font=FONT_UI;
|
||||
tempvp.drawmode=STYLE_DEFAULT;
|
||||
#if LCD_DEPTH > 1
|
||||
tempvp.fg_pattern=0;
|
||||
tempvp.bg_pattern=0xFFFF;
|
||||
#ifdef HAVE_LCD_COLOR
|
||||
tempvp.lss_pattern=0;
|
||||
tempvp.lse_pattern=0;
|
||||
tempvp.lst_pattern=0;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
rb->lcd_set_viewport(&tempvp);
|
||||
rb->lcd_puts_scroll(0, 0, buf);
|
||||
rb->lcd_set_viewport(NULL);
|
||||
|
||||
y = LEGEND_Y(1);
|
||||
reversi_gui_draw_cell(x, y, WHITE);
|
||||
rb->snprintf(buf, sizeof(buf), "%d", r);
|
||||
y += (CELL_HEIGHT-x_height) / 2;
|
||||
rb->lcd_putsxy(x + CELL_WIDTH + 2, y, buf);
|
||||
|
||||
reversi_gui_draw_cell(x, y+(LEGEND_Y(1)-LEGEND_Y(0))/2-CELL_WIDTH/2, WHITE);
|
||||
rb->snprintf(buf, sizeof(buf), "%01d", r);
|
||||
|
||||
tempvp.y=y;
|
||||
rb->lcd_set_viewport(&tempvp);
|
||||
rb->lcd_puts_scroll(0, 0, buf);
|
||||
rb->lcd_set_viewport(NULL);
|
||||
|
||||
/* Draw the box around the current player */
|
||||
r = (cur_player == BLACK ? 0 : 1);
|
||||
y = LEGEND_Y(r);
|
||||
y = LEGEND_Y(r)+(LEGEND_Y(1)-LEGEND_Y(0))/2-CELL_WIDTH/2;
|
||||
rb->lcd_drawrect(x, y, CELL_WIDTH+1, CELL_HEIGHT+1);
|
||||
|
||||
#if defined(HAVE_TOUCHSCREEN)
|
||||
|
@ -576,7 +608,7 @@ enum plugin_status plugin_start(const void *parameter) {
|
|||
char msg_buf[30];
|
||||
|
||||
/* Initialize Font Width and height */
|
||||
rb->lcd_getstringsize("x", &font_width, &font_height);
|
||||
rb->lcd_getstringsize("0", &font_width, &font_height);
|
||||
|
||||
#ifdef HAVE_TOUCHSCREEN
|
||||
rb->touchscreen_set_mode(TOUCHSCREEN_POINT);
|
||||
|
|
|
@ -64,8 +64,10 @@
|
|||
#define REVERSI_BUTTON_DOWN BUTTON_PLAY
|
||||
#define REVERSI_BUTTON_LEFT (BUTTON_LEFT | BUTTON_SCROLL_BACK)
|
||||
#define REVERSI_BUTTON_RIGHT (BUTTON_RIGHT | BUTTON_SCROLL_FWD)
|
||||
#define REVERSI_BUTTON_MAKE_MOVE (BUTTON_SELECT | BUTTON_REL)
|
||||
#define REVERSI_BUTTON_MENU (BUTTON_MENU | BUTTON_SELECT)
|
||||
#define REVERSI_BUTTON_MAKE_MOVE BUTTON_SELECT
|
||||
#define REVERSI_BUTTON_MAKE_MOVE_SHORTPRESS
|
||||
#define REVERSI_BUTTON_MENU BUTTON_SELECT
|
||||
#define REVERSI_BUTTON_MENU_LONGPRESS
|
||||
|
||||
#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD)
|
||||
#define REVERSI_BUTTON_QUIT BUTTON_POWER
|
||||
|
@ -112,8 +114,10 @@
|
|||
#define REVERSI_BUTTON_DOWN BUTTON_DOWN
|
||||
#define REVERSI_BUTTON_LEFT BUTTON_LEFT
|
||||
#define REVERSI_BUTTON_RIGHT BUTTON_RIGHT
|
||||
#define REVERSI_BUTTON_MAKE_MOVE (BUTTON_SELECT|BUTTON_REL)
|
||||
#define REVERSI_BUTTON_MENU (BUTTON_SELECT|BUTTON_REPEAT)
|
||||
#define REVERSI_BUTTON_MAKE_MOVE BUTTON_SELECT
|
||||
#define REVERSI_BUTTON_MAKE_MOVE_SHORTPRESS
|
||||
#define REVERSI_BUTTON_MENU BUTTON_SELECT
|
||||
#define REVERSI_BUTTON_MENU_LONGPRESS
|
||||
|
||||
#elif (CONFIG_KEYPAD == SANSA_FUZE_PAD)
|
||||
#define REVERSI_BUTTON_QUIT (BUTTON_HOME|BUTTON_REPEAT)
|
||||
|
@ -121,8 +125,10 @@
|
|||
#define REVERSI_BUTTON_DOWN BUTTON_DOWN
|
||||
#define REVERSI_BUTTON_LEFT BUTTON_LEFT
|
||||
#define REVERSI_BUTTON_RIGHT BUTTON_RIGHT
|
||||
#define REVERSI_BUTTON_MAKE_MOVE (BUTTON_SELECT|BUTTON_REL)
|
||||
#define REVERSI_BUTTON_MENU (BUTTON_SELECT|BUTTON_REPEAT)
|
||||
#define REVERSI_BUTTON_MAKE_MOVE BUTTON_SELECT
|
||||
#define REVERSI_BUTTON_MAKE_MOVE_SHORTPRESS
|
||||
#define REVERSI_BUTTON_MENU BUTTON_SELECT
|
||||
#define REVERSI_BUTTON_MENU_LONGPRESS
|
||||
|
||||
#elif CONFIG_KEYPAD == MROBE500_PAD
|
||||
#define REVERSI_BUTTON_QUIT BUTTON_POWER
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue