dm 7 лет назад
Родитель
Сommit
5eb8a25b81

+ 4 - 2
oxygine/src/oxygine/res/CreateResourceContext.cpp

@@ -29,6 +29,7 @@ namespace oxygine
     XmlWalker::XmlWalker(
         const std::string* xmlFolder,
         const std::string& path,
+        const std::string& rootFolder,
         float scaleFactor,
         bool load,
         bool alpha,
@@ -42,6 +43,7 @@ namespace oxygine
         _load(load),
         _alphaHitTest(alpha),
         _xmlFolder(xmlFolder),
+        _rootFolder(rootFolder),
         _path(path)
     {
         //_alphaTracking = true;
@@ -84,7 +86,7 @@ namespace oxygine
             return *_xmlFolder + rl;
         }
 
-        return _path + str;
+        return _rootFolder + _path + str;
     }
 
     XmlWalker XmlWalker::next()
@@ -123,7 +125,7 @@ namespace oxygine
             break;
         }
 
-        return XmlWalker(_xmlFolder, _path, _scaleFactor, _load, _alphaHitTest, _last, _lastMeta);
+        return XmlWalker(_xmlFolder, _path, _rootFolder, _scaleFactor, _load, _alphaHitTest, _last, _lastMeta);
     }
 
     void XmlWalker::_checkSetAttributes(pugi::xml_node node)

+ 6 - 2
oxygine/src/oxygine/res/CreateResourceContext.h

@@ -12,6 +12,7 @@ namespace oxygine
     public:
         XmlWalker(const std::string* xmlFolder,
                   const std::string& path,
+                  const std::string& rootFolder,
                   float scaleFactor,
                   bool load, bool alpha,
                   pugi::xml_node xml, pugi::xml_node meta);
@@ -41,6 +42,8 @@ namespace oxygine
 
         const std::string* _xmlFolder;
         std::string _path;
+        std::string _rootFolder;
+        
 
         pugi::xml_node _root;
         pugi::xml_node _last;
@@ -60,14 +63,15 @@ namespace oxygine
     class CreateResourceContext
     {
     public:
-        CreateResourceContext() : resources(0), xml_name(0), prebuilt_folder(0), options(0),
-            walker(0, "", 1.0f, true, false, pugi::xml_node(), pugi::xml_node())
+        CreateResourceContext() : resources(0), xml_name(0), prebuilt_folder(0), options(0), root_prebuilt_folder(0),
+            walker(0, "", "", 1.0f, true, false, pugi::xml_node(), pugi::xml_node())
         {
         }
 
         Resources* resources;
         const std::string* xml_name;
         const std::string* prebuilt_folder;
+        const std::string* root_prebuilt_folder;
         const ResourcesLoadOptions* options;
         XmlWalker walker;
     };

+ 1 - 1
oxygine/src/oxygine/res/Resources.cpp

@@ -241,7 +241,7 @@ namespace oxygine
         FS_LOG("loading xml resources");
 
         std::string xmlFolder = destHead;
-        XmlWalker walker(&xmlFolder, "", 1.0f, opt._loadCompletely, true, resources, resources_meta);
+        XmlWalker walker(&xmlFolder, "", opt._prebuiltImagesFolder, 1.0f, opt._loadCompletely, true, resources, resources_meta);
 
         while (true)
         {

+ 5 - 1
oxygine/src/oxygine/res/Resources.h

@@ -23,7 +23,10 @@ namespace oxygine
         ResourcesLoadOptions& useLoadCounter(bool v = true) { _useLoadCounter = v; return *this; }
 
         //use not standard folder with prebuilt resources (atlasses, fonts, etc)
-        ResourcesLoadOptions& prebuiltFolder(const std::string& folder) {_prebuilFolder = folder; return *this; }
+        ResourcesLoadOptions& prebuiltFolder(const std::string& folder) { _prebuilFolder = folder; return *this; }
+
+        //use not standard folder with resources
+        ResourcesLoadOptions& prebuiltImagesFolder(const std::string& folder) { _prebuiltImagesFolder = folder; return *this; }
 
         //use load counter internally
         ResourcesLoadOptions& shortenIDS(bool v = true) { _shortenIDS = v; return *this; }
@@ -33,6 +36,7 @@ namespace oxygine
         bool _useLoadCounter;
         bool _shortenIDS;
         std::string _prebuilFolder;
+        std::string _prebuiltImagesFolder;
     };
 
     class Resources: public Resource