Changeset 5641 for code/branches/resource2/src/core
- Timestamp:
- Aug 13, 2009, 9:12:24 PM (15 years ago)
- Location:
- code/branches/resource2/src/core
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/resource2/src/core/Core.cc
r5614 r5641 85 85 Core* Core::singletonPtr_s = 0; 86 86 87 SetCommandLineArgument( mediaPath, "").information("Path to the media/data files");87 SetCommandLineArgument(externalMediaPath, "").information("Path to the external media files"); 88 88 SetCommandLineOnlyArgument(writingPathSuffix, "").information("Additional subfolder for config and log files"); 89 89 SetCommandLineArgument(settingsFile, "orxonox.ini").information("THE configuration file"); … … 110 110 this->setConfigValues(); 111 111 112 // Possible media path override by the command line 113 if (!CommandLine::getArgument("mediaPath")->hasDefaultValue()) 114 tsetMediaPath(CommandLine::getValue("mediaPath")); 112 // External media directory only exists for dev runs 113 if (Core::isDevelopmentRun()) 114 { 115 // Possible media path override by the command line 116 if (!CommandLine::getArgument("externalMediaPath")->hasDefaultValue()) 117 tsetExternalMediaPath(CommandLine::getValue("externalMediaPath")); 118 } 115 119 } 116 120 … … 145 149 .description("If true, all random actions are different each time you start the game") 146 150 .callback(this, &CoreConfiguration::initializeRandomNumberGenerator); 147 148 // Only show this config value for development builds149 if (Core::isDevelopmentRun())150 {151 SetConfigValue(mediaPathString_, mediaPath_.string())152 .description("Relative path to the game data.")153 .callback(this, &CoreConfiguration::mediaPathChanged);154 }155 151 } 156 152 … … 183 179 184 180 /** 185 @brief186 Callback function if the media path has changed.187 */188 void mediaPathChanged()189 {190 mediaPath_ = boost::filesystem::path(this->mediaPathString_);191 }192 193 /**194 181 @brief Sets the language in the config-file back to the default. 195 182 */ … … 205 192 The new media path 206 193 */ 207 void tsetMediaPath(const std::string& path) 208 { 209 if (Core::isDevelopmentRun()) 210 { 211 ModifyConfigValue(mediaPathString_, tset, path); 212 } 213 else 214 { 215 // Manual 'config' value without the file entry 216 mediaPathString_ = path; 217 this->mediaPathChanged(); 218 } 194 void tsetExternalMediaPath(const std::string& path) 195 { 196 mediaPath_ = boost::filesystem::path(path); 219 197 } 220 198 … … 236 214 std::string language_; //!< The language 237 215 bool bInitializeRandomNumberGenerator_; //!< If true, srand(time(0)) is called 238 std::string mediaPathString_; //!< Path to the data/media file folder as string239 216 240 217 //! Path to the parent directory of the ones above if program was installed with relativ pahts … … 242 219 boost::filesystem::path executablePath_; //!< Path to the executable 243 220 boost::filesystem::path mediaPath_; //!< Path to the media file folder 221 boost::filesystem::path externalMediaPath_; //!< Path to the media file folder 244 222 boost::filesystem::path configPath_; //!< Path to the config file folder 245 223 boost::filesystem::path logPath_; //!< Path to the log file folder … … 423 401 } 424 402 425 /*static*/ void Core::tset MediaPath(const std::string& path)426 { 427 getInstance().configuration_->tset MediaPath(path);403 /*static*/ void Core::tsetExternalMediaPath(const std::string& path) 404 { 405 getInstance().configuration_->tsetExternalMediaPath(path); 428 406 } 429 407 … … 435 413 { 436 414 return getInstance().configuration_->mediaPath_.string() + '/'; 415 } 416 417 /*static*/ const boost::filesystem::path& Core::getExternalMediaPath() 418 { 419 return getInstance().configuration_->externalMediaPath_; 420 } 421 /*static*/ std::string Core::getExternalMediaPathString() 422 { 423 return getInstance().configuration_->externalMediaPath_.string() + '/'; 437 424 } 438 425 … … 574 561 COUT(1) << "Running from the build tree." << std::endl; 575 562 Core::bDevRun_ = true; 576 configuration_->mediaPath_ = ORXONOX_MEDIA_DEV_PATH; 577 configuration_->configPath_ = ORXONOX_CONFIG_DEV_PATH; 578 configuration_->logPath_ = ORXONOX_LOG_DEV_PATH; 563 configuration_->mediaPath_ = specialConfig::mediaDevDirectory; 564 configuration_->externalMediaPath_ = specialConfig::externalMediaDevDirectory; 565 configuration_->configPath_ = specialConfig::configDevDirectory; 566 configuration_->logPath_ = specialConfig::logDevDirectory; 579 567 } 580 568 else … … 582 570 #ifdef INSTALL_COPYABLE // --> relative paths 583 571 // Also set the root path 584 boost::filesystem::path relativeExecutablePath( ORXONOX_RUNTIME_INSTALL_PATH);572 boost::filesystem::path relativeExecutablePath(specialConfig::defaultRuntimePath); 585 573 configuration_->rootPath_ = configuration_->executablePath_; 586 574 while (!boost::filesystem::equivalent(configuration_->rootPath_ / relativeExecutablePath, configuration_->executablePath_) … … 591 579 592 580 // Using paths relative to the install prefix, complete them 593 configuration_->mediaPath_ = configuration_->rootPath_ / ORXONOX_MEDIA_INSTALL_PATH;594 configuration_->configPath_ = configuration_->rootPath_ / ORXONOX_CONFIG_INSTALL_PATH;595 configuration_->logPath_ = configuration_->rootPath_ / ORXONOX_LOG_INSTALL_PATH;581 configuration_->mediaPath_ = configuration_->rootPath_ / specialConfig::defaultMediaPath; 582 configuration_->configPath_ = configuration_->rootPath_ / specialConfig::defaultConfigPath; 583 configuration_->logPath_ = configuration_->rootPath_ / specialConfig::defaultLogPath; 596 584 #else 597 585 // There is no root path, so don't set it at all 598 586 599 configuration_->mediaPath_ = ORXONOX_MEDIA_INSTALL_PATH;587 configuration_->mediaPath_ = specialConfig::mediaInstallDirectory; 600 588 601 589 // Get user directory … … 610 598 userDataPath /= ".orxonox"; 611 599 612 configuration_->configPath_ = userDataPath / ORXONOX_CONFIG_INSTALL_PATH;613 configuration_->logPath_ = userDataPath / ORXONOX_LOG_INSTALL_PATH;600 configuration_->configPath_ = userDataPath / specialConfig::defaultConfigPath; 601 configuration_->logPath_ = userDataPath / specialConfig::defaultLogPath; 614 602 #endif 615 603 } -
code/branches/resource2/src/core/Core.h
r3370 r5641 91 91 static void resetLanguage(); 92 92 93 static void tset MediaPath(const std::string& path);94 //! Returns the path to the configfiles as boost::filesystem::path93 static void tsetExternalMediaPath(const std::string& path); 94 //! Returns the path to the data files as boost::filesystem::path 95 95 static const boost::filesystem::path& getMediaPath(); 96 //! Returns the path to the external data files as boost::filesystem::path 97 static const boost::filesystem::path& getExternalMediaPath(); 96 98 //! Returns the path to the config files as boost::filesystem::path 97 99 static const boost::filesystem::path& getConfigPath(); 98 100 //! Returns the path to the log files as boost::filesystem::path 99 101 static const boost::filesystem::path& getLogPath(); 102 //! Returns the path to the data files as std::string 100 103 //! Returns the path to the root folder as boost::filesystem::path 101 104 static const boost::filesystem::path& getRootPath(); 102 //! Returns the path to the data files as std::string103 105 static std::string getMediaPathString(); 106 //! Returns the path to the external data files as std::string 107 static std::string getExternalMediaPathString(); 104 108 //! Returns the path to the config files as std::string 105 109 static std::string getConfigPathString(); -
code/branches/resource2/src/core/GraphicsManager.cc
r5614 r5641 115 115 SetConfigValue(ogreConfigFile_, "ogre.cfg") 116 116 .description("Location of the Ogre config file"); 117 SetConfigValue(ogrePlugins Folder_, ORXONOX_OGRE_PLUGINS_FOLDER)117 SetConfigValue(ogrePluginsDirectory_, specialConfig::ogrePluginsDirectory) 118 118 .description("Folder where the Ogre plugins are located."); 119 SetConfigValue(ogrePlugins_, ORXONOX_OGRE_PLUGINS)119 SetConfigValue(ogrePlugins_, specialConfig::ogrePlugins) 120 120 .description("Comma separated list of all plugins to load."); 121 121 SetConfigValue(ogreLogFile_, "ogre.log") … … 198 198 { 199 199 // just to make sure the next statement doesn't segfault 200 if (ogrePlugins Folder_ == "")201 ogrePlugins Folder_ = ".";202 203 boost::filesystem::path folder(ogrePlugins Folder_);200 if (ogrePluginsDirectory_ == "") 201 ogrePluginsDirectory_ = "."; 202 203 boost::filesystem::path folder(ogrePluginsDirectory_); 204 204 // Do some SubString magic to get the comma separated list of plugins 205 205 SubString plugins(ogrePlugins_, ",", " ", false, '\\', false, '"', false, '(', ')', false, '\0'); -
code/branches/resource2/src/core/GraphicsManager.h
r5614 r5641 98 98 // config values 99 99 std::string ogreConfigFile_; //!< ogre config file name 100 std::string ogrePlugins Folder_; //!< Folderwhere the Ogre plugins are located100 std::string ogrePluginsDirectory_; //!< Directory where the Ogre plugins are located 101 101 std::string ogrePlugins_; //!< Comma separated list of all plugins to load 102 102 std::string ogreLogFile_; //!< log file name for Ogre log messages -
code/branches/resource2/src/core/TclBind.cc
r3370 r5641 127 127 #ifdef DEPENDENCY_PACKAGE_ENABLE 128 128 if (Core::isDevelopmentRun()) 129 return (std::string( ORXONOX_DEP_LIB_PATH) + "/tcl");129 return (std::string(specialConfig::dependencyLibraryDirectory) + "/tcl"); 130 130 else 131 131 return (Core::getRootPathString() + "lib/tcl");
Note: See TracChangeset
for help on using the changeset viewer.