From 259fa114ca4cad748532018b26fbb462036d63ce Mon Sep 17 00:00:00 2001 From: En Yi Date: Tue, 13 Aug 2024 18:17:52 +0800 Subject: [PATCH] Fix water filling rate --- scenes/scene_systems.c | 1 + scenes/water_flow.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/scenes/scene_systems.c b/scenes/scene_systems.c index a3a2719..67f5ee2 100644 --- a/scenes/scene_systems.c +++ b/scenes/scene_systems.c @@ -79,6 +79,7 @@ bool load_level_tilemap(LevelScene_t* scene, unsigned int level_num) } scene->data.tilemap.tiles[i].water_level = lvl_map.tiles[i].water; + scene->data.tilemap.tiles[i].wet = scene->data.tilemap.tiles[i].water_level > 0; } // Two pass for (size_t i = 0; i < scene->data.tilemap.n_tiles;i++) diff --git a/scenes/water_flow.c b/scenes/water_flow.c index 697a8b6..b29cd2c 100644 --- a/scenes/water_flow.c +++ b/scenes/water_flow.c @@ -293,7 +293,6 @@ void update_water_runner_system(Scene_t* scene) p_crunner->fractional += scene->delta_time; if (p_crunner->fractional < FILL_RATE) break; - p_crunner->fractional -= FILL_RATE; // Unsigned usage here is okay unsigned int start_tile = (p_crunner->current_tile / p_crunner->bfs_tilemap.width) * p_crunner->bfs_tilemap.width; @@ -308,6 +307,7 @@ void update_water_runner_system(Scene_t* scene) if (curr_tile->water_level < curr_tile->max_water_level) { curr_tile->water_level++; + p_crunner->fractional -= FILL_RATE; } if (curr_tile->water_level < curr_tile->max_water_level) {