From 18080fdf599adbf13a643fc450cd3fe42c871cb0 Mon Sep 17 00:00:00 2001 From: "Juan J. Martinez" Date: Thu, 15 Jun 2023 21:41:09 +0100 Subject: Add map collision detection functions --- src/map.c | 12 +++++++++++- src/map.h | 6 ++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/map.c b/src/map.c index 55fc470..87a0b3b 100644 --- a/src/map.c +++ b/src/map.c @@ -5,6 +5,7 @@ #include "map.h" +/* current map; set via map_init */ static const uint8_t *cmap; void map_init(const uint8_t map[]) @@ -14,7 +15,6 @@ void map_init(const uint8_t map[]) void map_render() { - const uint8_t *tiles = binary_tiles_start; Rect src = { 0, 0, 160, 48 }; Rect dst = { 0, 0, 8, 8 }; @@ -31,3 +31,13 @@ void map_render() blitrc(binary_tiles_start, &src, &dst); } } + +uint8_t map_is_blocked(uint16_t x, uint16_t y) +{ + return cmap[(x / MAP_TILE_W) + (y / MAP_TILE_H) * MAP_W] >= MAP_FIRST_BLOCKED; +} + +uint8_t map_is_deadly(uint16_t x, uint16_t y) +{ + return cmap[(x / MAP_TILE_W) + (y / MAP_TILE_H) * MAP_W] >= MAP_FIRST_DEADLY; +} diff --git a/src/map.h b/src/map.h index 7c08fe5..f36d294 100644 --- a/src/map.h +++ b/src/map.h @@ -11,7 +11,13 @@ #define MAP_TILESET_COLS 20 +#define MAP_FIRST_BLOCKED 40 +#define MAP_FIRST_DEADLY 100 + void map_init(const uint8_t map[]); void map_render(); +uint8_t map_is_blocked(uint16_t x, uint16_t y); +uint8_t map_is_deadly(uint16_t x, uint16_t y); + #endif /* _MAP_H */ -- cgit v1.2.3