From 689044f03b5ce06c2b8c15b28c456aafd31d8f7e Mon Sep 17 00:00:00 2001 From: KikooDX Date: Thu, 16 Dec 2021 23:27:04 +0100 Subject: [PATCH] get tiles --- inc/conf.h | 1 + inc/level.h | 4 ++++ src/level.c | 14 ++++++++++++++ 3 files changed, 19 insertions(+) diff --git a/inc/conf.h b/inc/conf.h index 230cd9b..8a67012 100644 --- a/inc/conf.h +++ b/inc/conf.h @@ -1,3 +1,4 @@ #pragma once #define TILE_SIZE 16 +#define TILE_OOB 0 diff --git a/inc/level.h b/inc/level.h index 014acb7..31e5246 100644 --- a/inc/level.h +++ b/inc/level.h @@ -21,4 +21,8 @@ void level_deinit(void); void level_load(const struct LevelBin *); void level_reload(void); void level_regen_visual_data(void); + void level_draw(void); + +int level_get(int x, int y); +int level_get_px(int x, int y); diff --git a/src/level.c b/src/level.c index c003d89..81a8430 100644 --- a/src/level.c +++ b/src/level.c @@ -77,6 +77,20 @@ level_draw(void) } } +int +level_get(int x, int y) +{ + if (x < 0 || y < 0 || x >= level.width || y >= level.height) + return TILE_OOB; + return level.data[x + y * level.width]; +} + +int +level_get_px(int x, int y) +{ + return level_get(x / TILE_SIZE, y / TILE_SIZE); +} + static void level_free(void) {