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;
}
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;
}
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])
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;
}