summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gui/resources.cpp85
1 files changed, 24 insertions, 61 deletions
diff --git a/gui/resources.cpp b/gui/resources.cpp
index 74f020b62..0d32ceee0 100644
--- a/gui/resources.cpp
+++ b/gui/resources.cpp
@@ -256,82 +256,45 @@ void ResourceManager::LoadResources(xml_node<>* resList, ZipArchive* pZip)
if (!attr)
break;
+ Resource* res = NULL;
std::string type = attr->value();
-
if (type == "font")
{
- FontResource* res = new FontResource(child, pZip);
- if (res == NULL || res->GetResource() == NULL)
- {
- std::string res_name;
- if (child->first_attribute("name"))
- res_name = child->first_attribute("name")->value();
- if (res_name.empty() && child->first_attribute("filename"))
- res_name = child->first_attribute("filename")->value();
-
- if (!res_name.empty()) {
- LOGERR("Resource (%s)-(%s) failed to load\n", type.c_str(), res_name.c_str());
- } else
- LOGERR("Resource type (%s) failed to load\n", type.c_str());
-
- delete res;
- }
- else
- {
- mResources.push_back((Resource*) res);
- }
+ res = new FontResource(child, pZip);
}
else if (type == "image")
{
- ImageResource* res = new ImageResource(child, pZip);
- if (res == NULL || res->GetResource() == NULL)
- {
- std::string res_name;
- if (child->first_attribute("name"))
- res_name = child->first_attribute("name")->value();
- if (res_name.empty() && child->first_attribute("filename"))
- res_name = child->first_attribute("filename")->value();
-
- if (!res_name.empty()) {
- LOGERR("Resource (%s)-(%s) failed to load\n", type.c_str(), res_name.c_str());
- } else
- LOGERR("Resource type (%s) failed to load\n", type.c_str());
-
- delete res;
- }
- else
- {
- mResources.push_back((Resource*) res);
- }
+ res = new ImageResource(child, pZip);
}
else if (type == "animation")
{
- AnimationResource* res = new AnimationResource(child, pZip);
- if (res == NULL || res->GetResource() == NULL)
- {
- std::string res_name;
- if (child->first_attribute("name"))
- res_name = child->first_attribute("name")->value();
- if (res_name.empty() && child->first_attribute("filename"))
- res_name = child->first_attribute("filename")->value();
-
- if (!res_name.empty()) {
- LOGERR("Resource (%s)-(%s) failed to load\n", type.c_str(), res_name.c_str());
- } else
- LOGERR("Resource type (%s) failed to load\n", type.c_str());
-
- delete res;
- }
- else
- {
- mResources.push_back((Resource*) res);
- }
+ res = new AnimationResource(child, pZip);
}
else
{
LOGERR("Resource type (%s) not supported.\n", type.c_str());
}
+ if (res == NULL || res->GetResource() == NULL)
+ {
+ std::string res_name;
+ if (child->first_attribute("name"))
+ res_name = child->first_attribute("name")->value();
+ if (res_name.empty() && child->first_attribute("filename"))
+ res_name = child->first_attribute("filename")->value();
+
+ if (!res_name.empty()) {
+ LOGERR("Resource (%s)-(%s) failed to load\n", type.c_str(), res_name.c_str());
+ } else
+ LOGERR("Resource type (%s) failed to load\n", type.c_str());
+
+ delete res;
+ }
+ else
+ {
+ mResources.push_back(res);
+ }
+
child = child->next_sibling("resource");
}
}