aboutsummaryrefslogtreecommitdiff
path: root/src/map.c
diff options
context:
space:
mode:
authorJuan J. Martinez <jjm@usebox.net>2023-06-22 22:10:28 +0100
committerJuan J. Martinez <jjm@usebox.net>2023-06-22 22:10:28 +0100
commit4a8127146eafd4fef5b478c1bf9f5a152c8c4cd5 (patch)
tree05b820a74bcaffa340eede419b3e1fe24059c477 /src/map.c
parent7723c5f8a9f0ea5345ebefecd31fe22f3601b32e (diff)
downloadgold-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.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/map.c b/src/map.c
index 9908384..4c5390f 100644
--- a/src/map.c
+++ b/src/map.c
@@ -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()