From 5bc581bcb824342d2277058c2ef1b130d8255486 Mon Sep 17 00:00:00 2001 From: mlangkabel Date: Wed, 1 Jul 2026 22:43:04 +0200 Subject: [PATCH] write replays next to the executable --- src/ui/GameWorldView.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/ui/GameWorldView.cpp b/src/ui/GameWorldView.cpp index 8020246..0849a03 100644 --- a/src/ui/GameWorldView.cpp +++ b/src/ui/GameWorldView.cpp @@ -10,6 +10,7 @@ #include #include +#include #include #include #include @@ -162,13 +163,15 @@ GameWorldView::GameWorldView(Simulation* sim, const GameConfig* config, } else { - // Record every run to disk. Replays live under /replays, alongside - // the config dir that was loaded. Attaching the recorder opens the first - // file and writes the header for the initial run. - QDir replayDir(QString::fromStdString(configDir)); - replayDir.cdUp(); + // Record every run to disk, into a "replays" folder next to the executable. + // Uses the exe's real directory rather than traversing up from the config + // dir: with a symlinked build layout, relative traversal would resolve into + // the wrong tree. Attaching the recorder opens the first file and writes the + // header for the initial run. + const QString replayDir = + QDir(QCoreApplication::applicationDirPath()).filePath("replays"); m_commandManager.setRecorder(std::make_unique( - configDir, replayDir.filePath("replays").toStdString())); + configDir, replayDir.toStdString())); } }