diff options
| author | Xavier Del Campo Romero <xavi.dcr@tutanota.com> | 2024-01-27 12:42:20 +0100 |
|---|---|---|
| committer | Xavier Del Campo Romero <xavi.dcr@tutanota.com> | 2024-01-27 17:38:12 +0100 |
| commit | 0f21739551b2daf578ad9c5ed3367c8a8ed7b7c9 (patch) | |
| tree | a0e6bc7e10f9f815fe680fa54f5d912fb460608b /src/game | |
| parent | daf6f84ccdf817f7088aa527b4b37c2cca91c052 (diff) | |
| download | jancity-0f21739551b2daf578ad9c5ed3367c8a8ed7b7c9.tar.gz | |
Define terrain rendering and loading
Diffstat (limited to 'src/game')
| -rw-r--r-- | src/game/inc/game.h | 1 | ||||
| -rw-r--r-- | src/game/src/game.c | 7 | ||||
| -rw-r--r-- | src/game/src/res.c | 40 |
3 files changed, 45 insertions, 3 deletions
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 <unit.h> #include <stdbool.h> -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) |
