From 389421cac46ca83fc24994a1768ae775765f7922 Mon Sep 17 00:00:00 2001 From: Ulysse Cura Date: Fri, 14 Aug 2026 16:50:37 +0200 Subject: [PATCH] Removed sprite component set texture for more flexibility. --- SDL3_Core | 2 +- src/components/headers/sprite_component.h | 2 -- src/components/player_system.c | 15 ++++++++--- src/components/sprite_component.c | 10 ------- src/game.c | 32 +++++++++++++++-------- 5 files changed, 34 insertions(+), 27 deletions(-) diff --git a/SDL3_Core b/SDL3_Core index 1fa9d1c..bfd1e15 160000 --- a/SDL3_Core +++ b/SDL3_Core @@ -1 +1 @@ -Subproject commit 1fa9d1cb8703da10bc7e6011df9f29d87e4eac95 +Subproject commit bfd1e15f2d95374777e800fbd653606639666d76 diff --git a/src/components/headers/sprite_component.h b/src/components/headers/sprite_component.h index ca5bcce..cbc73e1 100644 --- a/src/components/headers/sprite_component.h +++ b/src/components/headers/sprite_component.h @@ -23,6 +23,4 @@ int sprite_component_draw(const component_t *component); int sprite_component_destroy(component_t *component); -int sprite_component_set_texture(sprite_component_data_t *component_data, const char *texture_name); - #endif // SPRITE_COMPONENT_H \ No newline at end of file diff --git a/src/components/player_system.c b/src/components/player_system.c index d3f0543..dfefb69 100644 --- a/src/components/player_system.c +++ b/src/components/player_system.c @@ -123,7 +123,10 @@ static inline int player_system_set_animation_and_speed(player_system_data_t *sy { physics_system_data->speed = PLAYER_DEFAULT_RUN_SPEED; - if(sprite_component_set_texture(sprite_component_data, "player_run_sheet")) return_failure_int; + asset_t *asset = asset_manager_get_asset(&game.asset_manager, "player_run_sheet"); + if(!asset) return_failure_int; + + sprite_component_data->texture = asset->data; animation_system_data->nb_frames = 8; animation_system_data->current_frame_nb = 0; @@ -134,7 +137,10 @@ static inline int player_system_set_animation_and_speed(player_system_data_t *sy { physics_system_data->speed = PLAYER_DEFAULT_WALK_SPEED; - if(sprite_component_set_texture(sprite_component_data, "player_walk_sheet")) return_failure_int; + asset_t *asset = asset_manager_get_asset(&game.asset_manager, "player_walk_sheet"); + if(!asset) return_failure_int; + + sprite_component_data->texture = asset->data; animation_system_data->nb_frames = 4; animation_system_data->current_frame_nb = 0; @@ -144,7 +150,10 @@ static inline int player_system_set_animation_and_speed(player_system_data_t *sy } else if(!(system_data->state & PLAYER_MOVING) && (system_data->last_state & PLAYER_MOVING)) { - if(sprite_component_set_texture(sprite_component_data, "player_idle_sheet")) return_failure_int; + asset_t *asset = asset_manager_get_asset(&game.asset_manager, "player_idle_sheet"); + if(!asset) return_failure_int; + + sprite_component_data->texture = asset->data; animation_system_data->nb_frames = 4; animation_system_data->current_frame_nb = 0; diff --git a/src/components/sprite_component.c b/src/components/sprite_component.c index 0d3fb97..55f702d 100644 --- a/src/components/sprite_component.c +++ b/src/components/sprite_component.c @@ -55,13 +55,3 @@ inline int sprite_component_destroy(component_t *component) return EXIT_SUCCESS; } - -inline int sprite_component_set_texture(sprite_component_data_t *component_data, const char *texture_name) -{ - asset_t *texture_asset = asset_manager_get(&game.asset_manager, texture_name); - if(!texture_asset) return_failure_int; - - component_data->texture = texture_asset->data; - - return EXIT_SUCCESS; -} diff --git a/src/game.c b/src/game.c index 0b56305..e562135 100644 --- a/src/game.c +++ b/src/game.c @@ -18,13 +18,7 @@ int game_init(void) event_bus_init(&game.event_bus); entity_manager_init(&game.entity_manager); - if(!asset_manager_load_asset(&game.asset_manager, "player_idle_sheet", ASSET_TEXTURE)) return_failure_int; - if(!asset_manager_load_asset(&game.asset_manager, "player_walk_sheet", ASSET_TEXTURE)) return_failure_int; - if(!asset_manager_load_asset(&game.asset_manager, "player_run_sheet", ASSET_TEXTURE)) return_failure_int; - if(!asset_manager_load_asset(&game.asset_manager, "lever_sheet", ASSET_TEXTURE)) return_failure_int; - if(!asset_manager_load_asset(&game.asset_manager, "barred_door_sheet", ASSET_TEXTURE)) return_failure_int; - if(!asset_manager_load_asset(&game.asset_manager, "wooden_door_sheet", ASSET_TEXTURE)) return_failure_int; - if(!asset_manager_load_asset(&game.asset_manager, "tileset", ASSET_TEXTURE)) return_failure_int; + if(!asset_manager_load_asset(&game.asset_manager, "tileset", ASSET_TEXTURE)) return_failure_int; /* ======== Player ======== */ { @@ -51,7 +45,14 @@ int game_init(void) sprite_component_data_t *sprite_component_data = sprite_component->data; - sprite_component_set_texture(sprite_component_data, "player_idle_sheet"); + if(!asset_manager_load_asset(&game.asset_manager, "player_idle_sheet", ASSET_TEXTURE)) return_failure_int; + if(!asset_manager_load_asset(&game.asset_manager, "player_walk_sheet", ASSET_TEXTURE)) return_failure_int; + if(!asset_manager_load_asset(&game.asset_manager, "player_run_sheet", ASSET_TEXTURE)) return_failure_int; + + asset_t *asset = asset_manager_get_asset(&game.asset_manager, "player_idle_sheet"); + if(!asset) return_failure_int; + + sprite_component_data->texture = asset->data; } { @@ -117,7 +118,10 @@ int game_init(void) sprite_component_data_t *sprite_component_data = sprite_component->data; - if(sprite_component_set_texture(sprite_component_data, "lever_sheet")) return_failure_int; + asset_t *asset = asset_manager_load_asset(&game.asset_manager, "lever_sheet", ASSET_TEXTURE); + if(!asset) return_failure_int; + + sprite_component_data->texture = asset->data; } { @@ -215,7 +219,10 @@ int game_init(void) sprite_component_data_t * sprite_component_data = sprite_component->data; - if(sprite_component_set_texture(sprite_component_data, "barred_door_sheet")) return_failure_int; + asset_t *asset = asset_manager_load_asset(&game.asset_manager, "barred_door_sheet", ASSET_TEXTURE); + if(!asset) return_failure_int; + + sprite_component_data->texture = asset->data; } { @@ -290,7 +297,10 @@ int game_init(void) sprite_component_data_t *sprite_component_data = sprite_component->data; - if(sprite_component_set_texture(sprite_component_data, "wooden_door_sheet")) return_failure_int; + asset_t *asset = asset_manager_load_asset(&game.asset_manager, "wooden_door_sheet", ASSET_TEXTURE); + if(!asset) return_failure_int; + + sprite_component_data->texture = asset->data; } {