struct cell *cell;
float *vecptr;
const char *str;
+ char *tset_path;
if(!(ts = ts_load(fname))) {
fprintf(stderr, "failed to load level: %s\n", fname);
lvl->fname = strdup(fname);
if((lvl->dirname = malloc(strlen(fname) + 1))) {
-#ifndef LEVEL_EDITOR
path_dir(lvl->fname, lvl->dirname);
-#endif
}
lvl->cell_size = ts_get_attr_num(ts, "cellsize", DEF_CELL_SIZE);
}
if((str = ts_get_attr_str(ts, "tileset", 0))) {
- lvl->tset = get_tileset(str);
+ tset_path = alloca(strlen(str) + strlen(lvl->dirname) + 2);
+ combine_path(lvl->dirname, str, tset_path);
+ lvl->tset = get_tileset(tset_path);
}
iter = ts->child_list;
tiletype = detect_cell_tile(lvl, j, i, &cell->tilerot);
}
- cell->tile = get_tile(lvl->tset, tiletype);
-
+ if(lvl->tset) {
+ cell->tile = get_tile(lvl->tset, tiletype);
+ }
cell++;
}
}