]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - radiant/environment.cpp
Merge branch 'NateEag-master-patch-12920' into 'master'
[xonotic/netradiant.git] / radiant / environment.cpp
index f9c6c55debff2bab8530078bb901f2fc43e94a71..1e02a14153336f81fdb408ae11cc2b4d51b25b85 100644 (file)
@@ -110,7 +110,8 @@ bool gamedetect_check_game( char const *gamefile, const char *checkfile1, const
 void gamedetect(){
        // if we're inside a Nexuiz install
        // default to nexuiz.game (unless the user used an option to inhibit this)
-       bool nogamedetect = false;
+       //bool nogamedetect = false;
+       bool nogamedetect = true;
        int i;
        for ( i = 1; i < g_argc - 1; ++i )
        {
@@ -208,6 +209,20 @@ bool portable_app_setup(){
        return false;
 }
 
+
+const char* openCmdMap;
+
+void cmdMap(){
+       openCmdMap = NULL;
+       for ( int i = 1; i < g_argc; ++i )
+       {
+               //if ( !stricmp( g_argv[i] + strlen(g_argv[i]) - 4, ".map" ) ){
+               if( string_equal_suffix_nocase( g_argv[i], ".map" ) ){
+                       openCmdMap = g_argv[i];
+               }
+       }
+}
+
 #if GDEF_OS_POSIX
 
 #include <stdlib.h>
@@ -280,33 +295,34 @@ void environment_init( int argc, char const* argv[] ){
        }
 
        {
+#if defined(RADIANT_FHS_INSTALL)
                StringOutputStream buffer;
-#ifdef RADIANT_ADDONS_DIR
+       #if defined(RADIANT_ADDONS_DIR)
                buffer << RADIANT_ADDONS_DIR << "/";
+       #else
+               buffer << app_path.c_str() << "../lib/";
+               buffer << RADIANT_LIB_ARCH << "/";
+               buffer << RADIANT_BASENAME << "/";
+       #endif
+               lib_path = buffer.c_str();
 #else
-               buffer << app_path.c_str() << "../lib/" << RADIANT_BASENAME << "/";
+               lib_path = app_path.c_str();
 #endif
-               if ( file_is_directory( buffer.c_str() ) ) {
-                       lib_path = buffer.c_str();
-               }
-               else {
-                       lib_path = app_path.c_str();
-               }
        }
 
        {
+#if defined(RADIANT_FHS_INSTALL)
                StringOutputStream buffer;
-#ifdef RADIANT_DATA_DIR
+       #if defined(RADIANT_DATA_DIR)
                buffer << RADIANT_DATA_DIR << "/";
+       #else
+               buffer << app_path.c_str() << "../share/";
+               buffer << RADIANT_BASENAME << "/";
+       #endif
+               data_path = buffer.c_str();
 #else
-               buffer << app_path.c_str() << "../share/" << RADIANT_BASENAME << "/";
+               data_path = app_path.c_str();
 #endif
-               if ( file_is_directory( buffer.c_str() ) ) {
-                       data_path = buffer.c_str();
-               }
-               else {
-                       data_path = app_path.c_str();
-               }
        }
 
        if ( !portable_app_setup() ) {
@@ -335,6 +351,7 @@ void environment_init( int argc, char const* argv[] ){
        }
 
        gamedetect();
+       cmdMap();
 }
 
 #elif GDEF_OS_WINDOWS
@@ -373,13 +390,18 @@ void environment_init( int argc, char const* argv[] ){
 
        if ( !portable_app_setup() ) {
                char *appdata = getenv( "APPDATA" );
+
                StringOutputStream home( 256 );
                home << PathCleaned( appdata );
-               home << "/NetRadiantSettings/";
+               home << "/";
+               home << RADIANT_NAME;
+               home << "/";
+
                Q_mkdir( home.c_str() );
                home_path = home.c_str();
        }
        gamedetect();
+       cmdMap();
 }
 
 #else