diff options
-rw-r--r-- | src/map.cpp | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/src/map.cpp b/src/map.cpp index 36baab6..29f22ec 100644 --- a/src/map.cpp +++ b/src/map.cpp | |||
@@ -43,7 +43,11 @@ Map::Map(const std::string name) | |||
43 | if (!xmlStrcmp(node->name, (const xmlChar*) "name")) | 43 | if (!xmlStrcmp(node->name, (const xmlChar*) "name")) |
44 | { | 44 | { |
45 | xmlChar* key = xmlNodeListGetString(doc, node->xmlChildrenNode, 1); | 45 | xmlChar* key = xmlNodeListGetString(doc, node->xmlChildrenNode, 1); |
46 | title = (char*) key; | 46 | if (key != 0) |
47 | { | ||
48 | title = (char*) key; | ||
49 | } | ||
50 | |||
47 | xmlFree(key); | 51 | xmlFree(key); |
48 | } else if (!xmlStrcmp(node->name, (const xmlChar*) "environment")) | 52 | } else if (!xmlStrcmp(node->name, (const xmlChar*) "environment")) |
49 | { | 53 | { |
@@ -67,7 +71,11 @@ Map::Map(const std::string name) | |||
67 | if (!xmlStrcmp(entityDataNode->name, (const xmlChar*) "entity-type")) | 71 | if (!xmlStrcmp(entityDataNode->name, (const xmlChar*) "entity-type")) |
68 | { | 72 | { |
69 | xmlChar* key = xmlNodeListGetString(doc, entityDataNode->xmlChildrenNode, 1); | 73 | xmlChar* key = xmlNodeListGetString(doc, entityDataNode->xmlChildrenNode, 1); |
70 | data.name = std::string((char*) key); | 74 | if (key != 0) |
75 | { | ||
76 | data.name = (char*) key; | ||
77 | } | ||
78 | |||
71 | xmlFree(key); | 79 | xmlFree(key); |
72 | } else if (!xmlStrcmp(entityDataNode->name, (const xmlChar*) "entity-position")) | 80 | } else if (!xmlStrcmp(entityDataNode->name, (const xmlChar*) "entity-position")) |
73 | { | 81 | { |
@@ -83,23 +91,21 @@ Map::Map(const std::string name) | |||
83 | } else if (!xmlStrcmp(node->name, (const xmlChar*) "leftmap")) | 91 | } else if (!xmlStrcmp(node->name, (const xmlChar*) "leftmap")) |
84 | { | 92 | { |
85 | xmlChar* key = xmlNodeListGetString(doc, node->xmlChildrenNode, 1); | 93 | xmlChar* key = xmlNodeListGetString(doc, node->xmlChildrenNode, 1); |
86 | std::string mapname = (char*) key; | 94 | if (key != 0) |
87 | xmlFree(key); | ||
88 | |||
89 | if (mapname.length() > 0) | ||
90 | { | 95 | { |
91 | leftMap = &Map::getNamedMap(mapname); | 96 | leftMap = &Map::getNamedMap((char*) key); |
92 | } | 97 | } |
98 | |||
99 | xmlFree(key); | ||
93 | } else if (!xmlStrcmp(node->name, (const xmlChar*) "rightmap")) | 100 | } else if (!xmlStrcmp(node->name, (const xmlChar*) "rightmap")) |
94 | { | 101 | { |
95 | xmlChar* key = xmlNodeListGetString(doc, node->xmlChildrenNode, 1); | 102 | xmlChar* key = xmlNodeListGetString(doc, node->xmlChildrenNode, 1); |
96 | std::string mapname = (char*) key; | 103 | if (key != 0) |
97 | xmlFree(key); | ||
98 | |||
99 | if (mapname.length() > 0) | ||
100 | { | 104 | { |
101 | rightMap = &Map::getNamedMap(mapname); | 105 | rightMap = &Map::getNamedMap((char*) key); |
102 | } | 106 | } |
107 | |||
108 | xmlFree(key); | ||
103 | } | 109 | } |
104 | } | 110 | } |
105 | 111 | ||