Index: code/branches/resource3/src/core/ConfigFileManager.cc
===================================================================
--- code/branches/resource3/src/core/ConfigFileManager.cc	(revision 5678)
+++ code/branches/resource3/src/core/ConfigFileManager.cc	(revision 5679)
@@ -230,5 +230,5 @@
         {
             // Try to get default one from the media folder
-            boost::filesystem::path defaultFilepath(Core::getMediaPath() / "defaultConfig" / this->filename_);
+            boost::filesystem::path defaultFilepath(Core::getExternalMediaPath() / "defaultConfig" / this->filename_);
             if (boost::filesystem::exists(defaultFilepath))
             {
Index: code/branches/resource3/src/core/Core.cc
===================================================================
--- code/branches/resource3/src/core/Core.cc	(revision 5678)
+++ code/branches/resource3/src/core/Core.cc	(revision 5679)
@@ -85,5 +85,5 @@
     Core* Core::singletonPtr_s  = 0;
 
-    SetCommandLineArgument(mediaPath, "").information("Path to the media/data files");
+    SetCommandLineArgument(externalMediaPath, "").information("Path to the external media files");
     SetCommandLineOnlyArgument(writingPathSuffix, "").information("Additional subfolder for config and log files");
     SetCommandLineArgument(settingsFile, "orxonox.ini").information("THE configuration file");
@@ -110,7 +110,11 @@
             this->setConfigValues();
 
-            // Possible media path override by the command line
-            if (!CommandLine::getArgument("mediaPath")->hasDefaultValue())
-                tsetMediaPath(CommandLine::getValue("mediaPath"));
+            // External media directory only exists for dev runs
+            if (Core::isDevelopmentRun())
+            {
+                // Possible media path override by the command line
+                if (!CommandLine::getArgument("externalMediaPath")->hasDefaultValue())
+                    tsetExternalMediaPath(CommandLine::getValue("externalMediaPath"));
+            }
         }
 
@@ -145,12 +149,4 @@
                 .description("If true, all random actions are different each time you start the game")
                 .callback(this, &CoreConfiguration::initializeRandomNumberGenerator);
-
-            // Only show this config value for development builds
-            if (Core::isDevelopmentRun())
-            {
-                SetConfigValue(mediaPathString_, mediaPath_.string())
-                    .description("Relative path to the game data.")
-                    .callback(this, &CoreConfiguration::mediaPathChanged);
-            }
         }
 
@@ -183,13 +179,4 @@
 
         /**
-        @brief
-            Callback function if the media path has changed.
-        */
-        void mediaPathChanged()
-        {
-            mediaPath_ = boost::filesystem::path(this->mediaPathString_);
-        }
-
-        /**
             @brief Sets the language in the config-file back to the default.
         */
@@ -205,16 +192,7 @@
             The new media path
         */
-        void tsetMediaPath(const std::string& path)
-        {
-            if (Core::isDevelopmentRun())
-            {
-                ModifyConfigValue(mediaPathString_, tset, path);
-            }
-            else
-            {
-                // Manual 'config' value without the file entry
-                mediaPathString_ = path;
-                this->mediaPathChanged();
-            }
+        void tsetExternalMediaPath(const std::string& path)
+        {
+            mediaPath_ = boost::filesystem::path(path);
         }
 
@@ -236,5 +214,4 @@
         std::string language_;                          //!< The language
         bool bInitializeRandomNumberGenerator_;         //!< If true, srand(time(0)) is called
-        std::string mediaPathString_;                   //!< Path to the data/media file folder as string
 
         //! Path to the parent directory of the ones above if program was installed with relativ pahts
@@ -242,4 +219,5 @@
         boost::filesystem::path executablePath_;        //!< Path to the executable
         boost::filesystem::path mediaPath_;             //!< Path to the media file folder
+        boost::filesystem::path externalMediaPath_;     //!< Path to the media file folder
         boost::filesystem::path configPath_;            //!< Path to the config file folder
         boost::filesystem::path logPath_;               //!< Path to the log file folder
@@ -311,5 +289,5 @@
 
         // initialise Tcl
-        this->tclBind_.reset(new TclBind(Core::getMediaPathString()));
+        this->tclBind_.reset(new TclBind(Core::getExternalMediaPathString()));
         this->tclThreadManager_.reset(new TclThreadManager(tclBind_->getTclInterpreter()));
 
@@ -427,7 +405,7 @@
     }
 
-    /*static*/ void Core::tsetMediaPath(const std::string& path)
-    {
-        getInstance().configuration_->tsetMediaPath(path);
+    /*static*/ void Core::tsetExternalMediaPath(const std::string& path)
+    {
+        getInstance().configuration_->tsetExternalMediaPath(path);
     }
 
@@ -439,4 +417,13 @@
     {
         return getInstance().configuration_->mediaPath_.string() + '/';
+    }
+
+    /*static*/ const boost::filesystem::path& Core::getExternalMediaPath()
+    {
+        return getInstance().configuration_->externalMediaPath_;
+    }
+    /*static*/ std::string Core::getExternalMediaPathString()
+    {
+        return getInstance().configuration_->externalMediaPath_.string() + '/';
     }
 
@@ -578,7 +565,8 @@
             COUT(1) << "Running from the build tree." << std::endl;
             Core::bDevRun_ = true;
-            configuration_->mediaPath_  = ORXONOX_MEDIA_DEV_PATH;
-            configuration_->configPath_ = ORXONOX_CONFIG_DEV_PATH;
-            configuration_->logPath_    = ORXONOX_LOG_DEV_PATH;
+            configuration_->mediaPath_  = specialConfig::mediaDevDirectory;
+            configuration_->externalMediaPath_ = specialConfig::externalMediaDevDirectory;
+            configuration_->configPath_ = specialConfig::configDevDirectory;
+            configuration_->logPath_    = specialConfig::logDevDirectory;
         }
         else
@@ -586,5 +574,5 @@
 #ifdef INSTALL_COPYABLE // --> relative paths
             // Also set the root path
-            boost::filesystem::path relativeExecutablePath(ORXONOX_RUNTIME_INSTALL_PATH);
+            boost::filesystem::path relativeExecutablePath(specialConfig::defaultRuntimePath);
             configuration_->rootPath_ = configuration_->executablePath_;
             while (!boost::filesystem::equivalent(configuration_->rootPath_ / relativeExecutablePath, configuration_->executablePath_)
@@ -595,11 +583,11 @@
 
             // Using paths relative to the install prefix, complete them
-            configuration_->mediaPath_  = configuration_->rootPath_ / ORXONOX_MEDIA_INSTALL_PATH;
-            configuration_->configPath_ = configuration_->rootPath_ / ORXONOX_CONFIG_INSTALL_PATH;
-            configuration_->logPath_    = configuration_->rootPath_ / ORXONOX_LOG_INSTALL_PATH;
+            configuration_->mediaPath_  = configuration_->rootPath_ / specialConfig::defaultMediaPath;
+            configuration_->configPath_ = configuration_->rootPath_ / specialConfig::defaultConfigPath;
+            configuration_->logPath_    = configuration_->rootPath_ / specialConfig::defaultLogPath;
 #else
             // There is no root path, so don't set it at all
 
-            configuration_->mediaPath_  = ORXONOX_MEDIA_INSTALL_PATH;
+            configuration_->mediaPath_  = specialConfig::mediaInstallDirectory;
 
             // Get user directory
@@ -614,6 +602,6 @@
             userDataPath /= ".orxonox";
 
-            configuration_->configPath_ = userDataPath / ORXONOX_CONFIG_INSTALL_PATH;
-            configuration_->logPath_    = userDataPath / ORXONOX_LOG_INSTALL_PATH;
+            configuration_->configPath_ = userDataPath / specialConfig::defaultConfigPath;
+            configuration_->logPath_    = userDataPath / specialConfig::defaultLogPath;
 #endif
         }
Index: code/branches/resource3/src/core/Core.h
===================================================================
--- code/branches/resource3/src/core/Core.h	(revision 5678)
+++ code/branches/resource3/src/core/Core.h	(revision 5679)
@@ -89,15 +89,19 @@
             static void  resetLanguage();
 
-            static void tsetMediaPath(const std::string& path);
-            //! Returns the path to the config files as boost::filesystem::path
+            static void tsetExternalMediaPath(const std::string& path);
+            //! Returns the path to the data files as boost::filesystem::path
             static const boost::filesystem::path& getMediaPath();
+            //! Returns the path to the external data files as boost::filesystem::path
+            static const boost::filesystem::path& getExternalMediaPath();
             //! Returns the path to the config files as boost::filesystem::path
             static const boost::filesystem::path& getConfigPath();
             //! Returns the path to the log files as boost::filesystem::path
             static const boost::filesystem::path& getLogPath();
+            //! Returns the path to the data files as std::string
             //! Returns the path to the root folder as boost::filesystem::path
             static const boost::filesystem::path& getRootPath();
-            //! Returns the path to the data files as std::string
             static std::string getMediaPathString();
+            //! Returns the path to the external data files as std::string
+            static std::string getExternalMediaPathString();
             //! Returns the path to the config files as std::string
             static std::string getConfigPathString();
Index: code/branches/resource3/src/core/GUIManager.cc
===================================================================
--- code/branches/resource3/src/core/GUIManager.cc	(revision 5678)
+++ code/branches/resource3/src/core/GUIManager.cc	(revision 5679)
@@ -171,5 +171,5 @@
     {
         // set datapath for GUI data
-        lua_pushfstring(this->scriptModule_->getLuaState(), Core::getMediaPathString().c_str());
+        lua_pushfstring(this->scriptModule_->getLuaState(), Core::getExternalMediaPathString().c_str());
         lua_setglobal(this->scriptModule_->getLuaState(), "datapath");
         // call main Lua script
Index: code/branches/resource3/src/core/GraphicsManager.cc
===================================================================
--- code/branches/resource3/src/core/GraphicsManager.cc	(revision 5678)
+++ code/branches/resource3/src/core/GraphicsManager.cc	(revision 5679)
@@ -117,7 +117,7 @@
         SetConfigValue(ogreConfigFile_,  "ogre.cfg")
             .description("Location of the Ogre config file");
-        SetConfigValue(ogrePluginsFolder_, ORXONOX_OGRE_PLUGINS_FOLDER)
+        SetConfigValue(ogrePluginsDirectory_, specialConfig::ogrePluginsDirectory)
             .description("Folder where the Ogre plugins are located.");
-        SetConfigValue(ogrePlugins_, ORXONOX_OGRE_PLUGINS)
+        SetConfigValue(ogrePlugins_, specialConfig::ogrePlugins)
             .description("Comma separated list of all plugins to load.");
         SetConfigValue(ogreLogFile_,     "ogre.log")
@@ -204,8 +204,8 @@
     {
         // just to make sure the next statement doesn't segfault
-        if (ogrePluginsFolder_ == "")
-            ogrePluginsFolder_ = ".";
-
-        boost::filesystem::path folder(ogrePluginsFolder_);
+        if (ogrePluginsDirectory_ == "")
+            ogrePluginsDirectory_ = ".";
+
+        boost::filesystem::path folder(ogrePluginsDirectory_);
         // Do some SubString magic to get the comma separated list of plugins
         SubString plugins(ogrePlugins_, ",", " ", false, '\\', false, '"', false, '(', ')', false, '\0');
@@ -231,5 +231,5 @@
         try
         {
-            cf.load((Core::getMediaPath() / resourceFile_).string());
+            cf.load((Core::getExternalMediaPath() / resourceFile_).string());
         }
         catch (...)
@@ -257,5 +257,5 @@
 
                     Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
-                        (Core::getMediaPath() / archName).string(), typeName, secName);
+                        (Core::getExternalMediaPath() / archName).string(), typeName, secName);
                 }
             }
Index: code/branches/resource3/src/core/GraphicsManager.h
===================================================================
--- code/branches/resource3/src/core/GraphicsManager.h	(revision 5678)
+++ code/branches/resource3/src/core/GraphicsManager.h	(revision 5679)
@@ -101,5 +101,5 @@
         std::string         resourceFile_;             //!< resources file name
         std::string         ogreConfigFile_;           //!< ogre config file name
-        std::string         ogrePluginsFolder_;        //!< Folder where the Ogre plugins are located
+        std::string         ogrePluginsDirectory_;     //!< Directory where the Ogre plugins are located
         std::string         ogrePlugins_;              //!< Comma separated list of all plugins to load
         std::string         ogreLogFile_;              //!< log file name for Ogre log messages
Index: code/branches/resource3/src/core/LuaBind.cc
===================================================================
--- code/branches/resource3/src/core/LuaBind.cc	(revision 5678)
+++ code/branches/resource3/src/core/LuaBind.cc	(revision 5679)
@@ -47,5 +47,5 @@
   LuaBind::LuaBind()
   {
-    this->includePath_ = Core::getMediaPathString();
+    this->includePath_ = Core::getExternalMediaPathString();
 
     luaState_ = lua_open();
Index: code/branches/resource3/src/core/TclBind.cc
===================================================================
--- code/branches/resource3/src/core/TclBind.cc	(revision 5678)
+++ code/branches/resource3/src/core/TclBind.cc	(revision 5679)
@@ -127,5 +127,5 @@
 #ifdef DEPENDENCY_PACKAGE_ENABLE
         if (Core::isDevelopmentRun())
-            return (std::string(ORXONOX_DEP_LIB_PATH) + "/tcl");
+            return (std::string(specialConfig::dependencyLibraryDirectory) + "/tcl");
         else
             return (Core::getRootPathString() + "lib/tcl");
