summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2025-05-23 20:03:19 +0200
committerRichard Braun <rbraun@sceen.net>2025-05-23 20:03:19 +0200
commitd7af58be142894e47a62c38dcfc2c72fa0aa6ae2 (patch)
tree205a883e4a0bdb12d081f5a23c1ee66f8fde1081
parentf20294a1d7108c711559ee36c215129d2ec9f110 (diff)
Handle speed
-rw-r--r--src/et/et.c17
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) {