X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ftileset.c;h=28adf31790f1caab624992890d8f48d4ebe2ba4c;hb=594c18e3671a27624a867071b5bafd08148652b3;hp=7be9c157699c8f88e8718f814c4a4b28be836256;hpb=a3ea52f53e359eebb284a25c4b5bc71c095cb070;p=vrlugburz diff --git a/src/tileset.c b/src/tileset.c index 7be9c15..28adf31 100644 --- a/src/tileset.c +++ b/src/tileset.c @@ -21,6 +21,8 @@ int load_tileset(struct tileset *tset, const char *fname) int type; float xform[16], *vec; + memset(tset, 0, sizeof *tset); + if(!(ts = ts_load(fname))) { fprintf(stderr, "failed to load tileset: %s\n", fname); return -1; @@ -49,6 +51,8 @@ int load_tileset(struct tileset *tset, const char *fname) tset->fname = strdup(fname); tset->name = strdup(ts_get_attr_str(ts, "name", fname)); + tset->tile_size = ts_get_attr_num(ts, "tilesize", DEF_TILE_SIZE); + iter = ts->child_list; while(iter) { node = iter; @@ -75,7 +79,7 @@ int load_tileset(struct tileset *tset, const char *fname) cgm_midentity(xform); if((vec = ts_get_attr_vec(node, "pos", 0))) { - cgm_mtranslation(xform, vec[0], vec[1], vec[2]); + cgm_mtranslation(xform, -vec[0], -vec[1], -vec[2]); } init_meshgroup(&tile->mgrp); @@ -167,7 +171,7 @@ struct tile *get_tile(struct tileset *tset, int ttype) int tile_type(const char *tstr) { static const char *typenames[] = { - "open", "straight", "corner", "tee", "cross", "str2open", "stropen", 0 + "open", "straight", "corner", "opencorner", "tee", "cross", "str2open", "stropen", 0 }; int i;