summaryrefslogtreecommitdiff
path: root/src/asset.c
diff options
context:
space:
mode:
author3gg <3gg@shellblade.net>2025-07-19 09:29:12 -0700
committer3gg <3gg@shellblade.net>2025-07-19 09:29:12 -0700
commitd1370b955f9a86c82f92d7368237ed96318de330 (patch)
treefe59a07927e560da5dfe88c89c547ec3c3a47307 /src/asset.c
parent10cd24c9e5da615064c782effafc7477bf074054 (diff)
Allocate data from a stack allocator
Diffstat (limited to 'src/asset.c')
-rw-r--r--src/asset.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/asset.c b/src/asset.c
new file mode 100644
index 0000000..98ca083
--- /dev/null
+++ b/src/asset.c
@@ -0,0 +1,34 @@
1#include <isogfx/asset.h>
2
3bool ts_validate_tileset(const Ts_TileSet* tileset) {
4 assert(tileset);
5
6 for (uint16_t i = 0; i < tileset->num_tiles; ++i) {
7 const Ts_Tile* tile = ts_tileset_get_tile(tileset, i);
8 // Tile should be non-empty.
9 if (tile->width == 0) {
10 return false;
11 }
12 if (tile->height == 0) {
13 return false;
14 }
15 }
16 return true;
17}
18
19bool tm_validate_map(const Tm_Map* map, const Ts_TileSet* tileset) {
20 assert(map);
21 assert(tileset);
22
23 for (uint16_t t = 0; t < tileset->num_tiles; ++t) {
24 const Ts_Tile* tile = ts_tileset_get_tile(tileset, t);
25 // Tile dimensions should be a multiple of the base tile size.
26 if ((tile->width % map->base_tile_width) != 0) {
27 return false;
28 }
29 if ((tile->height % map->base_tile_height) != 0) {
30 return false;
31 }
32 }
33 return true;
34}