From d54fee893563f80b184946c8c9ec8c806cce7f74 Mon Sep 17 00:00:00 2001 From: En Yi Date: Sat, 23 Sep 2023 14:16:57 +0800 Subject: [PATCH] Fix main game collision issue Changelog: - Add the refactored system to main game - Reset coin counter to zero on (re-)start --- scenes/editor_scene.c | 2 ++ scenes/game_scene.c | 1 + scenes/scene_systems.c | 1 + 3 files changed, 4 insertions(+) diff --git a/scenes/editor_scene.c b/scenes/editor_scene.c index 4f73a33..3e02319 100644 --- a/scenes/editor_scene.c +++ b/scenes/editor_scene.c @@ -676,6 +676,8 @@ static void toggle_block_system(Scene_t* scene) static void restart_editor_level(Scene_t* scene) { LevelSceneData_t* data = &(CONTAINER_OF(scene, LevelScene_t, scene)->data); + memset(&data->coins, 0, sizeof(data->coins)); + TileGrid_t tilemap = data->tilemap; for (size_t i = 0; i < tilemap.n_tiles;i++) { diff --git a/scenes/game_scene.c b/scenes/game_scene.c index 9cc7716..3ccfd05 100644 --- a/scenes/game_scene.c +++ b/scenes/game_scene.c @@ -398,6 +398,7 @@ void init_game_scene(LevelScene_t* scene) sc_array_add(&scene->scene.systems, &hitbox_update_system); sc_array_add(&scene->scene.systems, &player_crushing_system); sc_array_add(&scene->scene.systems, &spike_collision_system); + sc_array_add(&scene->scene.systems, &edge_velocity_check_system); sc_array_add(&scene->scene.systems, &state_transition_update_system); sc_array_add(&scene->scene.systems, &player_ground_air_transition_system); sc_array_add(&scene->scene.systems, &lifetimer_update_system); diff --git a/scenes/scene_systems.c b/scenes/scene_systems.c index 5ff9768..3b6f83e 100644 --- a/scenes/scene_systems.c +++ b/scenes/scene_systems.c @@ -38,6 +38,7 @@ void init_level_scene_data(LevelSceneData_t* data, uint32_t max_tiles, Tile_t* t sc_map_init_64v(&data->tilemap.tiles[i].entities_set, 16, 0); data->tilemap.tiles[i].size = (Vector2){TILE_SIZE, TILE_SIZE}; } + memset(&data->coins, 0, sizeof(data->coins)); } void term_level_scene_data(LevelSceneData_t* data)