From d0f8e52d9aeffb51c2171db493712cfc6b11d0a9 Mon Sep 17 00:00:00 2001 From: Jason Bou-Samra <154414066+bou-samra@users.noreply.github.com> Date: Fri, 30 Aug 2024 19:20:13 +1000 Subject: [PATCH] Update events.c --- src/events.c | 64 ++++++++++++++++++++++++++++++++-------------------- 1 file changed, 39 insertions(+), 25 deletions(-) diff --git a/src/events.c b/src/events.c index 3a31865..4d9a31a 100644 --- a/src/events.c +++ b/src/events.c @@ -14,70 +14,83 @@ bool gradient_d = false; // gradient direction flag int handle_events () { -//////////////////////////////// GAME LOOP ////////////////////////// +////////////////////////////// EVENT LOOP ////////////////////////// + while (restart == false) { SDL_PollEvent (&event); switch (event.type) { case SDL_KEYDOWN: + + // gradient colour cycle if(event.key.keysym.sym == SDLK_c && (event.key.keysym.mod & KMOD_CTRL) != 0 ) { colour = colour + 10; if (colour >= 69) {colour = 0;} backdrop(colour); break; - } // gradient colour cycle + } - if( event.key.keysym.sym == SDLK_x - && (event.key.keysym.mod & KMOD_CTRL) != 0 ) { + // invert gradient + if( event.key.keysym.sym == SDLK_x + && (event.key.keysym.mod & KMOD_CTRL) != 0 ) { gradient_d = !gradient_d; break; - } // invert gradient + } - if (event.key.keysym.sym == SDLK_LEFT) { - - if (col == 0) {break;} - grid[0][row + 1][col] = 0; - grid[0][row + 0][col] = 0; - grid[0][row + 2][col] = 0; - grid[0][row - 1][col] = 0; + // left arrow + if (event.key.keysym.sym == SDLK_LEFT) { + if (col == 0 | grid[0][row + 2][col - 1] != 0) {break;} + for (int i = -1; i < 3; i++) { + grid[0][row + i][col] = 0; // zero out old column + } col--; disp_column (row, col); break; - } // left arrow + } + // right arrow if (event.key.keysym.sym == SDLK_RIGHT) { - if (col == 7) {break;} - grid[0][row + 1][col] = 0; - grid[0][row + 0][col] = 0; - grid[0][row + 2][col] = 0; - grid[0][row - 1][col] = 0; + if (col == 7 | grid[0][row + 2][col + 1] != 0) {break;} + for (int i = -1; i < 3; i++) { + grid[0][row + i][col] = 0; // zero out old column + } col++; disp_column (row, col); break; - } // right arrow + } + // next piece (brick/block) preview if (event.key.keysym.sym == SDLK_n) { next_p = !next_p; break; - } // next piece (brick/block) preview + } + // restart if( event.key.keysym.sym == SDLK_r && (event.key.keysym.mod & KMOD_CTRL) != 0 ) { restart = true; break; - } // restart + } + // rotate tiles if(event.key.keysym.sym == SDLK_r && (event.key.keysym.mod & KMOD_SHIFT) != 0 ) { rotate_col(); disp_column (row, col); break; - } // rotate tiles + } + // drop/fall block/piece/brick if (event.key.keysym.sym == SDLK_SPACE) { + for (int i = -1; i < 3; i++) { + grid[0][row + i][col] = 0; // zero out old column + } + row = 18 - (18-colcnt[col]); + disp_column (row, col); break; - } // drop/fall block/piece/brick + } + // change tile design/pattern if( event.key.keysym.sym == SDLK_s && (event.key.keysym.mod & KMOD_CTRL) != 0 ) { tile_shp++; @@ -85,12 +98,13 @@ int handle_events () { tile_shp = 0; } break; - } // change tile design/pattern + } + // pause if (event.key.keysym.sym == SDLK_p) { pause_f = !pause_f; break; - } // pause + } } Ren_game (); }