diff options
author | Juan J. Martinez <jjm@usebox.net> | 2023-06-22 22:10:28 +0100 |
---|---|---|
committer | Juan J. Martinez <jjm@usebox.net> | 2023-06-22 22:10:28 +0100 |
commit | 4a8127146eafd4fef5b478c1bf9f5a152c8c4cd5 (patch) | |
tree | 05b820a74bcaffa340eede419b3e1fe24059c477 /src/map.c | |
parent | 7723c5f8a9f0ea5345ebefecd31fe22f3601b32e (diff) | |
download | gold-mine-run-4a8127146eafd4fef5b478c1bf9f5a152c8c4cd5.tar.gz gold-mine-run-4a8127146eafd4fef5b478c1bf9f5a152c8c4cd5.zip |
Import entities from the map and spawn them
Diffstat (limited to 'src/map.c')
-rw-r--r-- | src/map.c | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -4,6 +4,8 @@ #include "vga.h" #include "data.h" +#include "player.h" + #include "map.h" /* current map; set via map_init */ @@ -24,6 +26,19 @@ void map_init(const uint8_t map[]) /* gold is not 0xff */ if (gold[i] != 0xff) total_gold++; + + /* spawn entities, 0xff is the list terminator */ + for ( + const uint8_t *ent = map + MAP_W * MAP_H * 2; + *ent != 0xff; + ent += 4 + ) + switch (*ent) + { + case Player: + player_init(ent[1] * MAP_TILE_W, ent[2] * MAP_TILE_H, ent[3] & 1); + break; + } } void map_render() |