aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Phillips <david@sighup.nz>2017-01-28 14:30:52 +1300
committerDavid Phillips <david@sighup.nz>2017-01-28 14:30:52 +1300
commitdec7d61e23e0b3cbdf406f83eb9e46042ad9bc2f (patch)
tree392c3dcb05d873bc813d4616f2d49fa781f972bf
parentf3d9186c76dead3cbed5b7cd98c25a97666d101c (diff)
downloadtetris-dec7d61e23e0b3cbdf406f83eb9e46042ad9bc2f.tar.xz
Wait, don't poll, for SDL events
This is a hangover of some testing code. We don't need multi-thousand FPS for tetris, so waiting on events is cretainly better ☺
-rw-r--r--tetris.c78
1 files changed, 39 insertions, 39 deletions
diff --git a/tetris.c b/tetris.c
index 9942e6a..c94420f 100644
--- a/tetris.c
+++ b/tetris.c
@@ -200,6 +200,7 @@ void main_loop()
last_x = last_y = x = y = 0;
SDL_AddTimer(500, &gravity_callback, NULL);
char lockout;
+
while (running)
{
lockout = 0;
@@ -214,47 +215,46 @@ void main_loop()
draw_board(&board);
draw_piece(x, y, held.colour, held.bitmap);
plot_update();
- while(SDL_PollEvent(&e))
+ SDL_WaitEvent(&e);
+ switch (e.type)
{
- switch (e.type)
- {
- case SDL_USEREVENT:
- if (lockout) {
- drop_piece(x, y, &held, &board);
- last_x = last_y = x = y = 0;
- new_piece(&held);
- lockout = 0;
- } else {
- last_y = y++; /* gravity */
- last_x = x;
- }
- break;
- case SDL_QUIT:
- fprintf(stderr, "quit\n");
- running = false;
- break;
-
- case SDL_KEYDOWN:
- switch (e.key.keysym.sym)
- {
- case SDLK_a: last_x = x--; break;
- case SDLK_d: last_x = x++; break;
- case SDLK_w:
- i = 0;
- do
- {
- rotate(&held, 1);
- } while(hit_side(x, y, &held, &board) && i++ < 4);
- break;
- case SDLK_q:
- running = false;
- break;
- }
- break;
- default:
- break;
- }
+ case SDL_USEREVENT:
+ if (lockout) {
+ drop_piece(x, y, &held, &board);
+ last_x = last_y = x = y = 0;
+ new_piece(&held);
+ lockout = 0;
+ } else {
+ last_y = y++; /* gravity */
+ last_x = x;
+ }
+ break;
+ case SDL_QUIT:
+ fprintf(stderr, "quit\n");
+ running = false;
+ break;
+
+ case SDL_KEYDOWN:
+ switch (e.key.keysym.sym)
+ {
+ case SDLK_a: last_x = x--; break;
+ case SDLK_d: last_x = x++; break;
+ case SDLK_w:
+ i = 0;
+ do
+ {
+ rotate(&held, 1);
+ } while(hit_side(x, y, &held, &board) && i++ < 4);
+ break;
+ case SDLK_q:
+ running = false;
+ break;
+ }
+ break;
+ default:
+ break;
}
+ //}
}
}