diff options
author | 3gg <3gg@shellblade.net> | 2025-07-19 09:29:12 -0700 |
---|---|---|
committer | 3gg <3gg@shellblade.net> | 2025-07-19 09:29:12 -0700 |
commit | d1370b955f9a86c82f92d7368237ed96318de330 (patch) | |
tree | fe59a07927e560da5dfe88c89c547ec3c3a47307 /src/asset.c | |
parent | 10cd24c9e5da615064c782effafc7477bf074054 (diff) |
Allocate data from a stack allocator
Diffstat (limited to 'src/asset.c')
-rw-r--r-- | src/asset.c | 34 |
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 | |||
3 | bool 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 | |||
19 | bool 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 | } | ||