Revision: 1703
          http://rigsofrods.svn.sourceforge.net/rigsofrods/?rev=1703&view=rev
Author:   rorthomas
Date:     2011-02-27 17:10:56 +0000 (Sun, 27 Feb 2011)

Log Message:
-----------
fixing some content manager bugs
moved fileExist() to utils

Modified Paths:
--------------
    trunk/source/configurator/CMakeLists.txt
    trunk/source/main/framework/ContentManager.cpp
    trunk/source/main/utils/Settings.cpp
    trunk/source/main/utils/utils.cpp
    trunk/source/main/utils/utils.h

Modified: trunk/source/configurator/CMakeLists.txt
===================================================================
--- trunk/source/configurator/CMakeLists.txt    2011-02-27 15:51:12 UTC (rev 
1702)
+++ trunk/source/configurator/CMakeLists.txt    2011-02-27 17:10:56 UTC (rev 
1703)
@@ -79,9 +79,9 @@
 FILE(GLOB headers "*.h")
 
 IF(WIN32)
-       add_executable(rorconfig WIN32 ${sources} ${headers} ${OS_SOURCE} 
../main/utils/Settings.cpp ../main/utils/errorutils.cpp)
+       add_executable(rorconfig WIN32 ${sources} ${headers} ${OS_SOURCE} 
../main/utils/Settings.cpp ../main/utils/errorutils.cpp ../main/utils/utils.cpp)
 ELSE(WIN32)
-       add_executable(rorconfig ${sources} ${headers} ${OS_SOURCE} 
../main/utils/Settings.cpp ../main/utils/errorutils.cpp)
+       add_executable(rorconfig ${sources} ${headers} ${OS_SOURCE} 
../main/utils/Settings.cpp ../main/utils/errorutils.cpp ../main/utils/utils.cpp)
 ENDIF(WIN32)
 
 TARGET_LINK_LIBRARIES(rorconfig ${Ogre_LIBRARIES} ${Ois_LIBRARIES} ${OS_LIBS} 
${optional_libs} ${wxWidgets_LIBRARIES})

Modified: trunk/source/main/framework/ContentManager.cpp
===================================================================
--- trunk/source/main/framework/ContentManager.cpp      2011-02-27 15:51:12 UTC 
(rev 1702)
+++ trunk/source/main/framework/ContentManager.cpp      2011-02-27 17:10:56 UTC 
(rev 1703)
@@ -195,7 +195,10 @@
        LogManager::getSingleton().logMessage("initialiseAllResourceGroups() - 
Content");
        try
        {
-               
ResourceGroupManager::getSingleton().initialiseAllResourceGroups();
+               
ResourceGroupManager::getSingleton().initialiseResourceGroup("Streams");
+               
ResourceGroupManager::getSingleton().initialiseResourceGroup("Packs");
+               
ResourceGroupManager::getSingleton().initialiseResourceGroup("VehicleFolders");
+               
ResourceGroupManager::getSingleton().initialiseResourceGroup("TerrainFolders");
        } catch(Ogre::Exception& e)
        {
                LogManager::getSingleton().logMessage("catched error while 
initializing Content Resource groups: " + e.getFullDescription());

Modified: trunk/source/main/utils/Settings.cpp
===================================================================
--- trunk/source/main/utils/Settings.cpp        2011-02-27 15:51:12 UTC (rev 
1702)
+++ trunk/source/main/utils/Settings.cpp        2011-02-27 17:10:56 UTC (rev 
1703)
@@ -28,6 +28,7 @@
 //#include "language.h"
 #define _L
 
+#include "utils.h"
 #include "errorutils.h"
 #include "sha1.h"
 
@@ -291,12 +292,19 @@
        char streams_path[1024]="";
        char user_path[1024]="";
        char config_root[1024]="";
-       char dirsep='/';
+       char *dsStr = "\\";
+#if OGRE_PLATFORM != OGRE_PLATFORM_WIN32
+       char *dsStr="/";
+#endif
 
-
        if(!get_system_paths(program_path, user_path))
                return false;
 
+       char local_config[1024]="";
+       sprintf(local_config, "%s%sconfig%sconfig%sRoR.cfg",program_path, 
dsStr, dsStr, dsStr);
+       if(fileExists(string(local_config)))
+               sprintf(user_path, "%s%sconfig%s",program_path, dsStr, dsStr);
+
        //NEXT, derive the resources and stream paths from the base paths 
(depends on configuration)
        //from now we are mostly platform neutral
        //default mode (released)
@@ -325,13 +333,10 @@
        strcat(ogrelog_fname, "RoR.log");
 
        // now update our settings with the results:
-       String dsStr = "\\";
-#if OGRE_PLATFORM != OGRE_PLATFORM_WIN32
-       dsStr="/";
-#endif
-       settings["dirsep"] = dsStr;
+
+       settings["dirsep"] = String(dsStr);
        settings["Config Root"] = String(config_root);
-       settings["Cache Path"] = String(user_path) + "cache" + dsStr;
+       settings["Cache Path"] = String(user_path) + "cache" + String(dsStr);
        settings["Log Path"] = String(ogrelog_path);
        settings["Resources Path"] = String(resources_path);
        settings["Streams Path"] = String(streams_path);
@@ -352,22 +357,16 @@
        StringUtil::toLowerCase(settings["Program Path"]);
 #endif
        // now enable the user to override that:
-       try
+       if(fileExists(string("config.cfg")))
        {
-               String configfile = settings["configfile"];
-               if(!configfile.size()) configfile = "config.cfg";
-               loadSettings(configfile, true);
+               loadSettings("config.cfg", true);
 
                // fix up time things...
-               settings["Config Root"] = settings["User 
Path"]+dsStr+"config"+dirsep;
-               settings["Cache Path"]  = settings["User 
Path"]+dsStr+"cache"+dirsep;
-               settings["Log Path"]    = settings["User 
Path"]+dsStr+"logs"+dirsep;
-               settings["ogre.cfg"]    = settings["User 
Path"]+dsStr+"config"+dirsep+"ogre.cfg";
-               settings["ogre.log"]    = settings["User 
Path"]+dsStr+"logs"+dirsep+"ogre.log";
-
-       } catch(...)
-       {
-               // file not found or other error
+               settings["Config Root"] = settings["User 
Path"]+string(dsStr)+"config"+string(dsStr);
+               settings["Cache Path"]  = settings["User 
Path"]+string(dsStr)+"cache"+string(dsStr);
+               settings["Log Path"]    = settings["User 
Path"]+string(dsStr)+"logs"+string(dsStr);
+               settings["ogre.cfg"]    = settings["User 
Path"]+string(dsStr)+"config"+string(dsStr)+"ogre.cfg";
+               settings["ogre.log"]    = settings["User 
Path"]+string(dsStr)+"logs"+string(dsStr)+"ogre.log";
        }
 
        printf(" * config path:      %s\n", settings["Config Root"].c_str());

Modified: trunk/source/main/utils/utils.cpp
===================================================================
--- trunk/source/main/utils/utils.cpp   2011-02-27 15:51:12 UTC (rev 1702)
+++ trunk/source/main/utils/utils.cpp   2011-02-27 17:10:56 UTC (rev 1703)
@@ -24,6 +24,8 @@
 #include "RoRPrerequisites.h"
 #include "rornet.h"
 
+#include <fstream>
+
 using namespace Ogre;
 
 String hexdump(void *pAddressIn, long  lSize)
@@ -153,6 +155,7 @@
        return (int)time(NULL); //this will overflow in 2038
 }
 
+
 Ogre::String getVersionString()
 {
        char tmp[1024] = "";
@@ -165,3 +168,10 @@
                , ROR_VERSION_STRING, SVN_REVISION, SVN_ID, RORNET_VERSION, 
__DATE__, __TIME__);
        return Ogre::String(tmp);
 }
+
+bool fileExists(std::string filename)
+{
+       std::fstream file;
+       file.open(filename.c_str());
+       return file.is_open();
+}

Modified: trunk/source/main/utils/utils.h
===================================================================
--- trunk/source/main/utils/utils.h     2011-02-27 15:51:12 UTC (rev 1702)
+++ trunk/source/main/utils/utils.h     2011-02-27 17:10:56 UTC (rev 1703)
@@ -43,4 +43,6 @@
 
 Ogre::String getVersionString();
 
+bool fileExists(std::string filename);
+
 #endif //UTILS_H_
\ No newline at end of file


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
Free Software Download: Index, Search & Analyze Logs and other IT data in 
Real-Time with Splunk. Collect, index and harness all the fast moving IT data 
generated by your applications, servers and devices whether physical, virtual
or in the cloud. Deliver compliance at lower cost and gain new business 
insights. http://p.sf.net/sfu/splunk-dev2dev 
_______________________________________________
Rigsofrods-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rigsofrods-devel

Reply via email to