From f158a79d0e8a2158f843ecfc5d7eaaa620828679 Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Sun, 17 Feb 2013 20:44:32 -0500 Subject: Support collision and unknown map layers. --- (limited to 'src/resources/map.c') diff --git a/src/resources/map.c b/src/resources/map.c index 67b00cb..2cc2f2a 100644 --- a/src/resources/map.c +++ b/src/resources/map.c @@ -155,6 +155,8 @@ map_get_layer(struct map *m, const char *name) return &m->layers[LAYER_CHAR_TOP]; } else if (strcmp(name, "obj-high") == 0) { return &m->layers[LAYER_OBJ_HIGH]; + } else if (strcmp(name, "collision") == 0) { + return &m->layers[LAYER_COLLISION]; } else if (strcmp(name, "weather") == 0) { return &m->layers[LAYER_WEATHER]; } else { @@ -355,8 +357,14 @@ tmx_map_el_start(void *pv, const char *name, const char **attr) xml_get_string_attr(p, attr, "name", &ly_name, 1); ly = map_get_layer(m, ly_name); free(ly_name); - ly->map = m; - xml_node_push(p, ly, tmx_layer_el_start, tmx_layer_end, NULL); + if (ly != NULL) { + ly->map = m; + xml_node_push(p, ly, tmx_layer_el_start, tmx_layer_end, + NULL); + } else { + xml_node_push(p, NULL, tmx_unused_start, tmx_layer_end, + NULL); + } } else if (xml_check_tag(name, "objectgroup")) { xml_node_push(p, m, tmx_objectgroup_el_start, tmx_objectgroup_end, NULL); -- cgit v0.9.1