summaryrefslogtreecommitdiff
path: root/src/asset.c
blob: 98ca08322d20369d3315fe5900c8e1ecb87d8756 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <isogfx/asset.h>

bool ts_validate_tileset(const Ts_TileSet* tileset) {
  assert(tileset);

  for (uint16_t i = 0; i < tileset->num_tiles; ++i) {
    const Ts_Tile* tile = ts_tileset_get_tile(tileset, i);
    // Tile should be non-empty.
    if (tile->width == 0) {
      return false;
    }
    if (tile->height == 0) {
      return false;
    }
  }
  return true;
}

bool tm_validate_map(const Tm_Map* map, const Ts_TileSet* tileset) {
  assert(map);
  assert(tileset);

  for (uint16_t t = 0; t < tileset->num_tiles; ++t) {
    const Ts_Tile* tile = ts_tileset_get_tile(tileset, t);
    // Tile dimensions should be a multiple of the base tile size.
    if ((tile->width % map->base_tile_width) != 0) {
      return false;
    }
    if ((tile->height % map->base_tile_height) != 0) {
      return false;
    }
  }
  return true;
}