aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSulfurNitride <SulfurNitride@users.noreply.github.com>2026-05-23 14:32:50 -0500
committerSulfurNitride <SulfurNitride@users.noreply.github.com>2026-05-23 14:32:50 -0500
commit5891a5feabdd768a3e649ff6087fac9c42b129cc (patch)
tree1958219d71fba7944b0fe4455c82ad389d7ce549
parent523aa754ee3d6700f9b828f4f55a4fce9018f06f (diff)
startup: clarify invalid instance recovery
-rw-r--r--src/src/instancemanager.cpp5
-rw-r--r--src/src/moapplication.cpp27
2 files changed, 3 insertions, 29 deletions
diff --git a/src/src/instancemanager.cpp b/src/src/instancemanager.cpp
index 35a15df..066c0bd 100644
--- a/src/src/instancemanager.cpp
+++ b/src/src/instancemanager.cpp
@@ -936,8 +936,9 @@ SetupInstanceResults setupInstance(Instance& instance, PluginContainer& pc)
reportError(
QObject::tr(
"Cannot open instance '%1', the game directory '%2' doesn't exist or "
- "the game plugin '%3' doesn't recognize it. Select the game managed "
- "by this instance.")
+ "the game plugin '%3' doesn't recognize it. If the game was moved, "
+ "browse to the current install folder. If it is no longer installed, "
+ "select another instance.")
.arg(instance.displayName())
.arg(instance.gameDirectory())
.arg(instance.gameName()));
diff --git a/src/src/moapplication.cpp b/src/src/moapplication.cpp
index 7216e7c..f130881 100644
--- a/src/src/moapplication.cpp
+++ b/src/src/moapplication.cpp
@@ -56,7 +56,6 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
#include <report.h>
#include <scopeguard.h>
#include <utility.h>
-#include <cstdio>
using namespace MOBase;
using namespace MOShared;
@@ -268,8 +267,6 @@ void MOApplication::firstTimeSetup(MOMultiProcess& multiProcess)
int MOApplication::setup(MOMultiProcess& multiProcess, bool forceSelect)
{
TimeThis tt("MOApplication setup()");
- std::fprintf(stderr, "[setup-diag] setup() entered\n");
- std::fflush(stderr);
// makes plugin data path available to plugins, see
// IOrganizer::getPluginDataPath()
@@ -278,14 +275,8 @@ int MOApplication::setup(MOMultiProcess& multiProcess, bool forceSelect)
// figuring out the current instance
m_instance = getCurrentInstance(forceSelect);
if (!m_instance) {
- std::fprintf(stderr, "[setup-diag] getCurrentInstance() returned null\n");
- std::fflush(stderr);
return 1;
}
- std::fprintf(stderr, "[setup-diag] instance dir='%s' ini='%s'\n",
- qUtf8Printable(m_instance->directory()),
- qUtf8Printable(m_instance->iniPath()));
- std::fflush(stderr);
// first time the data path is available, set the global property and log
// directory, then log a bunch of debug stuff
@@ -293,15 +284,10 @@ int MOApplication::setup(MOMultiProcess& multiProcess, bool forceSelect)
setProperty("dataPath", dataPath);
if (!setLogDirectory(dataPath)) {
- std::fprintf(stderr, "[setup-diag] setLogDirectory() failed for '%s'\n",
- qUtf8Printable(dataPath));
- std::fflush(stderr);
reportError(tr("Failed to create log folder."));
InstanceManager::singleton().clearCurrentInstance();
return 1;
}
- std::fprintf(stderr, "[setup-diag] setLogDirectory() ok\n");
- std::fflush(stderr);
log::debug("command line: '{}'", QCoreApplication::arguments().join(' '));
@@ -327,9 +313,6 @@ int MOApplication::setup(MOMultiProcess& multiProcess, bool forceSelect)
// loading settings
m_settings.reset(new Settings(m_instance->iniPath(), true));
- std::fprintf(stderr, "[setup-diag] settings loaded from '%s'\n",
- qUtf8Printable(m_instance->iniPath()));
- std::fflush(stderr);
log::getDefault().setLevel(m_settings->diagnostics().logLevel());
log::debug("using ini at '{}'", m_settings->filename());
@@ -366,28 +349,18 @@ int MOApplication::setup(MOMultiProcess& multiProcess, bool forceSelect)
log::debug("initializing core");
m_core.reset(new OrganizerCore(*m_settings));
- std::fprintf(stderr, "[setup-diag] organizer core constructed\n");
- std::fflush(stderr);
if (!m_core->bootstrap()) {
- std::fprintf(stderr, "[setup-diag] organizer core bootstrap failed\n");
- std::fflush(stderr);
reportError(tr("Failed to set up data paths."));
InstanceManager::singleton().clearCurrentInstance();
return 1;
}
- std::fprintf(stderr, "[setup-diag] organizer core bootstrap ok\n");
- std::fflush(stderr);
// plugins
tt.start("MOApplication::doOneRun() plugins");
log::debug("initializing plugins");
m_plugins = std::make_unique<PluginContainer>(m_core.get());
- std::fprintf(stderr, "[setup-diag] plugin container constructed, loading plugins...\n");
- std::fflush(stderr);
m_plugins->loadPlugins();
- std::fprintf(stderr, "[setup-diag] plugin loading finished\n");
- std::fflush(stderr);
log::debug("all plugins loaded");
// instance