]> git.xonotic.org Git - xonotic/netradiant.git/blobdiff - radiant/main.cpp
radiant/tools: use RADIANT_NAME instead of hardcoding NetRadiant or Radiant
[xonotic/netradiant.git] / radiant / main.cpp
index bad501209f8fe39ae0f2af1e1f657299c3099c4f..386f7106c2dacbd8e5e5b7e88b1481052b3aa7c7 100644 (file)
@@ -302,16 +302,16 @@ bool handleMessage(){
        globalErrorStream() << m_buffer.c_str();
        if ( !m_lock.locked() ) {
                ScopedLock lock( m_lock );
-#if GDEF_DEBUG
-               m_buffer << "Break into the debugger?\n";
-               bool handled = ui::root.window().alert( m_buffer.c_str(), "Radiant - Runtime Error", ui::alert_type::YESNO, ui::alert_icon::Error ) == ui::alert_response::NO;
-               m_buffer.clear();
-               return handled;
-#else
-               m_buffer << "Please report this error to the developers\n";
-               ui::root.window().alert( m_buffer.c_str(), "Radiant - Runtime Error", ui::alert_type::OK, ui::alert_icon::Error );
-               m_buffer.clear();
-#endif
+        if (GDEF_DEBUG) {
+            m_buffer << "Break into the debugger?\n";
+            bool handled = ui::alert(ui::root, m_buffer.c_str(), RADIANT_NAME " - Runtime Error", ui::alert_type::YESNO, ui::alert_icon::Error) == ui::alert_response::NO;
+            m_buffer.clear();
+            return handled;
+        } else {
+            m_buffer << "Please report this error to the developers\n";
+            ui::alert(ui::root, m_buffer.c_str(), RADIANT_NAME " - Runtime Error", ui::alert_type::OK, ui::alert_icon::Error);
+            m_buffer.clear();
+        }
        }
        return true;
 }
@@ -330,6 +330,8 @@ void paths_init(){
        Q_mkdir( g_strSettingsPath.c_str() );
 
        g_strAppPath = environment_get_app_path();
+       g_strLibPath = environment_get_lib_path();
+       g_strDataPath = environment_get_data_path();
 
        // radiant is installed in the parent dir of "tools/"
        // NOTE: this is not very easy for debugging
@@ -337,12 +339,12 @@ void paths_init(){
        // (for now I had to create symlinks)
        {
                StringOutputStream path( 256 );
-               path << g_strAppPath.c_str() << "bitmaps/";
+               path << g_strDataPath.c_str() << "bitmaps/";
                BitmapsPath_set( path.c_str() );
        }
 
        // we will set this right after the game selection is done
-       g_strGameToolsPath = g_strAppPath;
+       g_strGameToolsPath = g_strDataPath;
 }
 
 bool check_version_file( const char* filename, const char* version ){
@@ -362,42 +364,6 @@ bool check_version_file( const char* filename, const char* version ){
        return false;
 }
 
-bool check_version(){
-       // a safe check to avoid people running broken installations
-       // (otherwise, they run it, crash it, and blame us for not forcing them hard enough to pay attention while installing)
-       // make something idiot proof and someone will make better idiots, this may be overkill
-       // let's leave it disabled in debug mode in any case
-       // http://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=431
-#if !GDEF_DEBUG
-#define CHECK_VERSION
-#endif
-#ifdef CHECK_VERSION
-       // locate and open RADIANT_MAJOR and RADIANT_MINOR
-       bool bVerIsGood = true;
-       {
-               StringOutputStream ver_file_name( 256 );
-               ver_file_name << AppPath_get() << "RADIANT_MAJOR";
-               bVerIsGood = check_version_file( ver_file_name.c_str(), RADIANT_MAJOR_VERSION );
-       }
-       {
-               StringOutputStream ver_file_name( 256 );
-               ver_file_name << AppPath_get() << "RADIANT_MINOR";
-               bVerIsGood = check_version_file( ver_file_name.c_str(), RADIANT_MINOR_VERSION );
-       }
-
-       if ( !bVerIsGood ) {
-               StringOutputStream msg( 256 );
-               msg << "This editor binary (" RADIANT_VERSION ") doesn't match what the latest setup has configured in this directory\n"
-                               "Make sure you run the right/latest editor binary you installed\n"
-                       << AppPath_get();
-               ui::root.window().alert( msg.c_str(), "Radiant", ui::alert_type::OK, ui::alert_icon::Default);
-       }
-       return bVerIsGood;
-#else
-       return true;
-#endif
-}
-
 void create_global_pid(){
        /*!
           the global prefs loading / game selection dialog might fail for any reason we don't know about
@@ -418,25 +384,26 @@ void create_global_pid(){
                if ( remove( g_pidFile.c_str() ) == -1 ) {
                        StringOutputStream msg( 256 );
                        msg << "WARNING: Could not delete " << g_pidFile.c_str();
-                       ui::root.window().alert( msg.c_str(), "Radiant", ui::alert_type::OK, ui::alert_icon::Error );
+                       ui::alert( ui::root, msg.c_str(), RADIANT_NAME, ui::alert_type::OK, ui::alert_icon::Error );
                }
 
                // in debug, never prompt to clean registry, turn console logging auto after a failed start
-#if !GDEF_DEBUG
-               StringOutputStream msg( 256 );
-               msg << "Radiant failed to start properly the last time it was run.\n"
-                          "The failure may be related to current global preferences.\n"
-                          "Do you want to reset global preferences to defaults?";
-
-               if ( ui::root.window().alert( msg.c_str(), "Radiant - Startup Failure", ui::alert_type::YESNO, ui::alert_icon::Question ) == ui::alert_response::YES ) {
-                       g_GamesDialog.Reset();
-               }
+               if (!GDEF_DEBUG) {
+                       StringOutputStream msg(256);
+                       msg << RADIANT_NAME " failed to start properly the last time it was run.\n"
+                                       "The failure may be related to current global preferences.\n"
+                                       "Do you want to reset global preferences to defaults?";
+
+                       if (ui::alert(ui::root, msg.c_str(), RADIANT_NAME " - Startup Failure", ui::alert_type::YESNO, ui::alert_icon::Question) == ui::alert_response::YES) {
+                               g_GamesDialog.Reset();
+                       }
 
-               msg.clear();
-               msg << "Logging console output to " << SettingsPath_get() << "radiant.log\nRefer to the log if Radiant fails to start again.";
+                       msg.clear();
+                       msg << "Logging console output to " << SettingsPath_get()
+                               << "radiant.log\nRefer to the log if " RADIANT_NAME " fails to start again.";
 
-               ui::root.window().alert( msg.c_str(), "Radiant - Console Log", ui::alert_type::OK );
-#endif
+                       ui::alert(ui::root, msg.c_str(), RADIANT_NAME " - Console Log", ui::alert_type::OK);
+               }
 
                // set without saving, the class is not in a coherent state yet
                // just do the value change and call to start logging, CGamesDialog will pickup when relevant
@@ -459,7 +426,7 @@ void remove_global_pid(){
        if ( remove( g_pidFile.c_str() ) == -1 ) {
                StringOutputStream msg( 256 );
                msg << "WARNING: Could not delete " << g_pidFile.c_str();
-               ui::root.window().alert( msg.c_str(), "Radiant", ui::alert_type::OK, ui::alert_icon::Error );
+               ui::alert( ui::root, msg.c_str(), RADIANT_NAME, ui::alert_type::OK, ui::alert_icon::Error );
        }
 }
 
@@ -477,25 +444,26 @@ void create_local_pid(){
                if ( remove( g_pidGameFile.c_str() ) == -1 ) {
                        StringOutputStream msg;
                        msg << "WARNING: Could not delete " << g_pidGameFile.c_str();
-                       ui::root.window().alert( msg.c_str(), "Radiant", ui::alert_type::OK, ui::alert_icon::Error );
+                       ui::alert( ui::root, msg.c_str(), RADIANT_NAME, ui::alert_type::OK, ui::alert_icon::Error );
                }
 
                // in debug, never prompt to clean registry, turn console logging auto after a failed start
-#if !GDEF_DEBUG
-               StringOutputStream msg;
-               msg << "Radiant failed to start properly the last time it was run.\n"
-                          "The failure may be caused by current preferences.\n"
-                          "Do you want to reset all preferences to defaults?";
-
-               if ( ui::root.window().alert( msg.c_str(), "Radiant - Startup Failure", ui::alert_type::YESNO, ui::alert_icon::Question ) == ui::alert_response::YES ) {
-                       Preferences_Reset();
-               }
+               if (!GDEF_DEBUG) {
+                       StringOutputStream msg;
+                       msg << RADIANT_NAME " failed to start properly the last time it was run.\n"
+                                       "The failure may be caused by current preferences.\n"
+                                       "Do you want to reset all preferences to defaults?";
 
-               msg.clear();
-               msg << "Logging console output to " << SettingsPath_get() << "radiant.log\nRefer to the log if Radiant fails to start again.";
+                       if (ui::alert(ui::root, msg.c_str(), RADIANT_NAME " - Startup Failure", ui::alert_type::YESNO, ui::alert_icon::Question) == ui::alert_response::YES) {
+                               Preferences_Reset();
+                       }
 
-               ui::root.window().alert( msg.c_str(), "Radiant - Console Log", ui::alert_type::OK );
-#endif
+                       msg.clear();
+                       msg << "Logging console output to " << SettingsPath_get()
+                               << "radiant.log\nRefer to the log if " RADIANT_NAME " fails to start again.";
+
+                       ui::alert(ui::root, msg.c_str(), RADIANT_NAME " - Console Log", ui::alert_type::OK);
+               }
 
                // force console logging on! (will go in prefs too)
                g_GamesDialog.m_bForceLogConsole = true;
@@ -598,10 +566,6 @@ int main( int argc, char* argv[] ){
 
        paths_init();
 
-       if ( !check_version() ) {
-               return EXIT_FAILURE;
-       }
-
        show_splash();
 
        create_global_pid();