static void hand_draw(game_t *game, int player, cairo_t *cr, GdkRegion *region, GtkWidget *widget)
{
int i;
- int window_width = widget->allocation.width;
-// int window_width = GAME_WINDOW_DEFAULT_WIDTH;
- int window_height = widget->allocation.height;
-// int window_height = GAME_WINDOW_DEFAULT_HEIGHT;
- for (i = 0; i < game->players[player].hand.num_tiles; i++)
+ int width = widget->allocation.width;
+// int width = GAME_WINDOW_DEFAULT_WIDTH;
+ int height = widget->allocation.height;
+// int height = GAME_WINDOW_DEFAULT_HEIGHT;
+ int num_tiles = game->players[player].hand.num_tiles;
+ for (i = 0; i < num_tiles; i++)
{
tile_set_x_y(&game->players[player].hand.tiles[i],
- ((window_width / game->players[player].hand.num_tiles)) * i,
- (window_height - TILE_HEIGHT - 6) );
+ ((width/num_tiles)) * i, (height - TILE_HEIGHT - 6) );
}
for (i = 0; i < game->players[player].hand.num_tiles; i++)
{
*/
static gboolean on_key_press_event (GtkWidget *widget, GdkEventKey *event, game_t *game)
{
+ player_t *player = &game->players[game->current_player];
cairo_t *cr;
-
cr = gdk_cairo_create (widget->window);
-
printf ("You pressed key %d\n", event->keyval);
- if (event->keyval == 65293) //HIT ENTER
+ if (event->keyval == 100) //HIT "d"
+ {
+ //Draw(take) top tile from deck and put in hand
+ if (game->deck.num_tiles > 0)
+ {
+ tile_t top_tile = game->deck.tiles[game->deck.num_tiles-1];
+ game->deck.num_tiles--;
+ player->hand.tiles[player->hand.num_tiles] = top_tile;
+ player->hand.tiles[player->hand.num_tiles].owned=1;
+ player->hand.num_tiles++;
+ gtk_widget_queue_draw(widget);
+ }
+ }
+ else if (event->keyval == 65293) //HIT ENTER
{
save_state(game);
- printf ("\tEnd of player %d's turn\n", game->current_player + 1);
- if (game->current_player == game->num_players - 1)
+ printf ("\tEnd of player %d's turn\n", game->current_player+1);
+ if (game->current_player == game->num_players-1)
game->current_player = 0;
else
game->current_player += 1;
gtk_widget_queue_draw(widget);
}
-
- if (event->keyval == 65307) //HIT ESCAPE
+ else if (event->keyval == 65307) //HIT ESCAPE
{
restore_state(game);
printf ("\tChanges Reverted\n");
gtk_widget_queue_draw(widget);
}
-
- if (event->keyval == 65474) //HIT "F5"
+ else if (event->keyval == 65474) //HIT "F5"
{
gtk_widget_queue_draw(widget);
}
-
-
- if (event->keyval == 65505 || event->keyval == 65506)
+ else if (event->keyval == 65505 || event->keyval == 65506)
game->drag_group_mode = 1;
-
return TRUE;
}
event->y >= tile_y && event->y <= (tile_y + TILE_HEIGHT) )
{
game->select_mode = 0;
-
game->current_tile = curr_tile;
-
if (!curr_tile->selected)
curr_tile->selected = 1;
else
curr_tile->selected = 0;
gtk_widget_queue_draw_area (widget, curr_tile->x - 1, curr_tile->y - 1, TILE_WIDTH + 1, TILE_HEIGHT + 2);
-
game->diff_x = event->x - tile_x;
game->diff_y = event->y - tile_y;
}