From 0f21739551b2daf578ad9c5ed3367c8a8ed7b7c9 Mon Sep 17 00:00:00 2001 From: Xavier Del Campo Romero Date: Sat, 27 Jan 2024 12:42:20 +0100 Subject: Define terrain rendering and loading --- src/game/inc/game.h | 1 + src/game/src/game.c | 7 +++++-- src/game/src/res.c | 40 +++++++++++++++++++++++++++++++++++++++- 3 files changed, 45 insertions(+), 3 deletions(-) (limited to 'src/game') diff --git a/src/game/inc/game.h b/src/game/inc/game.h index 66e5e79..1dfdd58 100644 --- a/src/game/inc/game.h +++ b/src/game/inc/game.h @@ -30,6 +30,7 @@ struct game_cfg size_t n; union peripheral *p; + const char *map; }; int game_resinit(void); diff --git a/src/game/src/game.c b/src/game/src/game.c index 084415c..cbfb648 100644 --- a/src/game/src/game.c +++ b/src/game/src/game.c @@ -14,8 +14,11 @@ int game(const struct game_cfg *const cfg) struct human_player human; struct terrain_map map; - terrain_init(&map); - building_set_alive_cb(terrain_block_update, &map); + if (terrain_init(cfg->map, &map)) + { + fprintf(stderr, "%s: terrain_init failed\n", __func__); + return -1; + } const struct human_player_cfg hcfg = { diff --git a/src/game/src/res.c b/src/game/src/res.c index bf05bd9..6489d30 100644 --- a/src/game/src/res.c +++ b/src/game/src/res.c @@ -12,7 +12,45 @@ #include #include -static const struct container c[1]; +static const struct container c[] = +{ + { + .path = "sidewalk", + .type = CONTAINER_TYPE_SPRITE, + .data.sprite = &terrain_sprites[SIDEWALK] + }, + { + .path = "roof1", + .type = CONTAINER_TYPE_SPRITE, + .data.sprite = &terrain_sprites[ROOF1] + }, + { + .path = "roof2", + .type = CONTAINER_TYPE_SPRITE, + .data.sprite = &terrain_sprites[ROOF2] + }, + { + .path = "cursor", + .type = CONTAINER_TYPE_SPRITE, + .data.sprite = &cursor_sprite + }, + { + .path = "btn_left", + .type = CONTAINER_TYPE_SPRITE, + .data.sprite = &gui_button_sprites[GUI_BUTTON_LEFT] + }, + { + .path = "btn_mid", + .type = CONTAINER_TYPE_SPRITE, + .data.sprite = &gui_button_sprites[GUI_BUTTON_MID] + }, + { + .path = "btn_right", + .type = CONTAINER_TYPE_SPRITE, + .data.sprite = &gui_button_sprites[GUI_BUTTON_RIGHT] + }, +}; + static bool init; void game_free(void) -- cgit v1.2.3