X-Git-Url: http://git.draconx.ca/gitweb/rrace.git/blobdiff_plain/4c08507a26fbe96d3978191a8dea26c1dc4e3d55..f6be82664a5b8e8bc34c048b56417b591dcd5a5e:/src/curses.c diff --git a/src/curses.c b/src/curses.c index 5cf8882..f66589e 100644 --- a/src/curses.c +++ b/src/curses.c @@ -115,17 +115,11 @@ static void draw_tile(WINDOW **win, unsigned colour, unsigned selected, static int redraw_tile(WINDOW **win, unsigned x, unsigned y, unsigned start_column, - uint_fast32_t bit0, uint_fast32_t bit1, uint_fast32_t bit2, - unsigned selected) + uint_least32_t *gp, unsigned selected) { - uint_fast32_t pos = board_position(x, y); - unsigned char tile = 0; + unsigned tile = board_tile(gp, 5*y+x); - if (bit0 & pos) tile |= 1; - if (bit1 & pos) tile |= 2; - if (bit2 & pos) tile |= 4; assert(tile < TILE_MAX); - draw_tile(win, tile, selected, x, y, start_column); return tile; } @@ -173,8 +167,7 @@ static void curs_redraw_game(struct app_state *state, uint_fast32_t mask) for (i = 0; i < 25; i++) { if (mask & 1) { redraw_tile(state->gamewin, i%5, i/5, - 4, gp[0], gp[1], gp[2], - i == state->cursor); + 4, gp, i == state->cursor); } mask >>= 1; } @@ -182,7 +175,11 @@ static void curs_redraw_game(struct app_state *state, uint_fast32_t mask) static void curs_redraw_goal(struct app_state *state, uint_fast32_t mask) { - uint_least16_t *gp = state->board.goal; + uint_least32_t gp[3] = { + state->board.goal[0], + state->board.goal[1], + state->board.goal[2] + }; int i, x, y; if (!state->goalwin[PLAYWIN_AREA]) @@ -194,8 +191,7 @@ static void curs_redraw_goal(struct app_state *state, uint_fast32_t mask) for (i = 0; i < 9; i++) { if (mask & 1) { - redraw_tile(state->goalwin, i%3, i/3, - x+2, gp[0], gp[1], gp[2], 0); + redraw_tile(state->goalwin, i%3, i/3, x+2, gp, 0); } mask >>= 1; }