X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=vrlugburz;a=blobdiff_plain;f=src%2Flevel.c;fp=src%2Flevel.c;h=6e657855868a90f91dec42f6464d4f691996fa00;hp=6867e64e357f5d8a711e42205dfe00d6cd1e704b;hb=a3ea52f53e359eebb284a25c4b5bc71c095cb070;hpb=6a120e64b1c3092d8929292882641d376ad0993b diff --git a/src/level.c b/src/level.c index 6867e64..6e65785 100644 --- a/src/level.c +++ b/src/level.c @@ -40,6 +40,7 @@ int load_level(struct level *lvl, const char *fname) 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); @@ -63,9 +64,7 @@ int load_level(struct level *lvl, const char *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); @@ -76,7 +75,9 @@ int load_level(struct level *lvl, const char *fname) } 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; @@ -115,8 +116,9 @@ int load_level(struct level *lvl, const char *fname) 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++; } }