10 int load_tileset(struct tileset *tset, const char *fname)
12 struct ts_node *ts, *node, *iter;
17 if(!(ts = ts_load(fname))) {
18 fprintf(stderr, "failed to load tileset: %s\n", fname);
21 if(strcmp(ts->name, "tileset") != 0) {
22 fprintf(stderr, "invalid or corrupted tileset file: %s\n", fname);
27 if(!(str = ts_get_attr_str(ts, "file", 0))) {
28 fprintf(stderr, "tileset %s is missing the file attribute\n", fname);
32 path = alloca(strlen(fname) + strlen(str) + 2);
34 combine_path(path, str, path);
36 if(load_scenefile(&tset->scn, path) == -1) {
37 fprintf(stderr, "tileset %s: failed to load scene file: %s\n", fname, path);
42 tset->name = strdup(ts_get_attr_str(ts, "name", fname));
44 iter = ts->child_list;
48 if(strcmp(node->name, "tile") == 0) {
49 if(!(str = ts_get_attr_str(node, "prefix", 0))) {
52 if(!(mesh = find_mesh_prefix(&tset->scn, str))) {
53 fprintf(stderr, "load_tileset: failed to find mesh with prefix: %s\n", str);