diff --git a/SDL3_Core b/SDL3_Core index 5eb065b..8d021e5 160000 --- a/SDL3_Core +++ b/SDL3_Core @@ -1 +1 @@ -Subproject commit 5eb065b1cfeeeeb5be4a386943a8d898af0f6328 +Subproject commit 8d021e517a6ccbdce9021deffe1f7179f27057ca diff --git a/assets/Makefile b/assets/Makefile index cd28cfd..05b8601 100644 --- a/assets/Makefile +++ b/assets/Makefile @@ -6,6 +6,7 @@ ASSETS := \ props_sheets/barred_door_sheet.png \ props_sheets/wooden_door_sheet.png \ tileset/tileset.png \ + maps/dungeon_entry.map \ maps/dungeon_room_1.map ASSETS := $(addprefix $(ASSETS_DIR)/,$(ASSETS)) diff --git a/src/components/headers/sprite_component.h b/src/components/headers/sprite_component.h index 85701c0..8591080 100644 --- a/src/components/headers/sprite_component.h +++ b/src/components/headers/sprite_component.h @@ -11,7 +11,7 @@ typedef struct sprite_component_data_t { texture_t *texture; rect_t src_rect; - frect_t dst_rect; + rect_t dst_rect; bool flip; } sprite_component_data_t; diff --git a/src/components/sprite_component.c b/src/components/sprite_component.c index cb9733b..5b6e168 100644 --- a/src/components/sprite_component.c +++ b/src/components/sprite_component.c @@ -34,7 +34,7 @@ inline int sprite_component_update(component_t *component) sprite_component_data_t *component_data = component->data; transform_component_data_t *transform_component_data = component_data->transform_component->data; - component_data->dst_rect = transform_component_data->bounds; + frect_to_rect(&transform_component_data->bounds, &component_data->dst_rect); component->entity->draw_priority = transform_component_data->bounds.y + transform_component_data->bounds.h; return EXIT_SUCCESS; @@ -44,10 +44,7 @@ inline int sprite_component_draw(const component_t *component) { const sprite_component_data_t *component_data = component->data; - frect_t src_frect; - rect_to_frect(&component_data->src_rect, &src_frect); - - if(display_draw_texture(component_data->texture, &src_frect, &component_data->dst_rect, component_data->flip)) return_failure_int; + if(display_draw_texture(component_data->texture, &component_data->src_rect, &component_data->dst_rect, component_data->flip)) return_failure_int; return EXIT_SUCCESS; } diff --git a/src/game.c b/src/game.c index d1c1498..cfc94ce 100644 --- a/src/game.c +++ b/src/game.c @@ -17,22 +17,21 @@ int game_init(void) if(display_init()) return_failure_int; camera_init(); - if(tilemap_display_init()) return_failure_int; event_bus_init(); entity_manager_init(); if(asset_manager_init()) return_failure_int; - asset_t *map_asset = asset_manager_load_asset("dungeon_room_1", ASSET_MAP); + asset_t *map_asset = asset_manager_load_asset("dungeon_entry", ASSET_MAP); if(!map_asset) return_failure_int; game.map = map_asset->data; - if(map_load_entities(game.map)) return_failure_int; - asset_t *tileset_asset = asset_manager_load_asset("tileset", ASSET_TEXTURE); if(!tileset_asset) return_failure_int; - game.tilemap_display.tileset = tileset_asset->data; + game.map->tileset = tileset_asset->data; + + if(map_load_entities(game.map)) return_failure_int; /* ======== Player ======== */ { @@ -46,8 +45,8 @@ int game_init(void) transform_component_data_t *transform_component_data = transform_component->data; transform_component_data->bounds = (frect_t) { - .x = 10.0f, - .y = 10.0f, + .x = 100.0f, + .y = 100.0f, .w = 32.0f, .h = 32.0f }; @@ -154,14 +153,7 @@ int game_render(void) game.is_running = false; return_failure_int; } - - if(tilemap_display_update()) - { - game.is_running = false; - return_failure_int; - } - - if(tilemap_display_background()) + if(map_display_background()) { game.is_running = false; return_failure_int; @@ -173,7 +165,7 @@ int game_render(void) return_failure_int; } - if(tilemap_display_foreground()) + if(map_display_foreground()) { game.is_running = false; return_failure_int; @@ -193,7 +185,6 @@ int game_exit(void) if(asset_manager_exit()) return_failure_int; if(entity_manager_exit()) return_failure_int; if(event_bus_exit()) return_failure_int; - tilemap_display_exit(); display_exit(); return EXIT_SUCCESS;