X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=kub.c;fp=kub.c;h=69be1d22e989480c196e2a3b1f708d0efdb89892;hb=388d3ca2a4b0f2d2ff5c0f06f5fd32241475c4dd;hp=2b659b036095dd63e61fae0746a5618d3e5269ca;hpb=e6463d87baeb74db2065f00e657eaac571b98592;p=kub diff --git a/kub.c b/kub.c index 2b659b0..69be1d2 100644 --- a/kub.c +++ b/kub.c @@ -93,6 +93,8 @@ typedef struct game { int current_tile; int diff_x, diff_y; + int click_x, click_y; + int release_x, release_y; } game_t; static void tile_init (tile_t *tile, color_t color, int number) @@ -445,7 +447,10 @@ static void game_init(game_t *game) if (error) FATAL_ERROR (error->message); - game->current_tile = game->deck.num_tiles - 1; + /*This line appears to be useless, has been replaced by line below*/ + //game->current_tile = game->deck.num_tiles - 1; + game->current_tile = -1; + game->diff_x = game->diff_y = 0; } @@ -487,12 +492,39 @@ static gboolean on_button_press_event (GtkWidget *widget, GdkEventButton *event, game->diff_y = event->y - tile_y; } } - + if (game->current_tile == -1) + { + game->click_x = event->x; + game->click_y = event->y; + } return TRUE; } static gboolean on_button_release_event (GtkWidget *widget, GdkEventButton *event, game_t *game) { + if (game->current_tile == -1) + { + tile_group_t group; + group.num_tiles = 0; + + int i, tile_x, tile_y; + for (i = 0; i < game->deck.num_tiles; i++) + { + tile_x = game->deck.tiles[i].x; + tile_y = game->deck.tiles[i].y; + if ( (event->x >= tile_x && game->click_x <= tile_x && + event->y >= tile_y && game->click_y <= tile_y) || + (event->x >= tile_x && game->click_x <= tile_x && + event->y <= (tile_y + TILE_HEIGHT) && game->click_y >= tile_y) ) + { + group.tiles[group.num_tiles] = game->deck.tiles[i]; + group.num_tiles++; + } + } + for (i = 0; i < group.num_tiles; i++) + tile_print(group.tiles[i]); + } + game->current_tile = -1; printf ("You released button %d\n", event->button);