diff options
author | Richard Braun <rbraun@sceen.net> | 2025-05-23 20:03:19 +0200 |
---|---|---|
committer | Richard Braun <rbraun@sceen.net> | 2025-05-23 20:03:19 +0200 |
commit | d7af58be142894e47a62c38dcfc2c72fa0aa6ae2 (patch) | |
tree | 205a883e4a0bdb12d081f5a23c1ee66f8fde1081 | |
parent | f20294a1d7108c711559ee36c215129d2ec9f110 (diff) |
Handle speed
-rw-r--r-- | src/et/et.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/et/et.c b/src/et/et.c index 591f4e6..8c25598 100644 --- a/src/et/et.c +++ b/src/et/et.c @@ -1076,11 +1076,24 @@ et_game_scan_rows(struct et_game *game) if (game->nr_level_lines >= 10) { if (game->level < 30) { + int speed; + game->level++; + + speed = game->level; + + if (speed > 15) { + speed = 15; + } + + game->gravity_counter_reload = (ET_FPS - (speed - 1)) / speed; + assert(game->gravity_counter_reload >= 1); } game->nr_level_lines -= 10; } + + et_game_update_status(game); } static void @@ -1212,6 +1225,7 @@ et_game_move_current_piece(struct et_game *game, bool nodelay) et_game_start_lockdown(game, nodelay); } else if (nodelay) { game->score += ET_SCORE_SOFT_DROP; + et_game_update_status(game); } } @@ -1232,6 +1246,8 @@ et_game_drop_current_piece(struct et_game *game) game->score += ET_SCORE_HARD_DROP; } + et_game_update_status(game); + et_game_start_lockdown(game, true); } @@ -1402,7 +1418,6 @@ et_game_process(struct et_game *game, int8_t c) game->sync_counter = game->sync_counter_reload; } - et_game_update_status(game); eetg_world_render(&game->world, sync); switch (game->state) { |