Write replays next to the executable
Place the "replays" folder in the executable's real directory (QCoreApplication::applicationDirPath()) instead of traversing up from the config dir with cdUp(). Relative traversal resolves incorrectly under a symlinked build layout (landing in bin rather than the build tree); using the exe's actual location avoids that. configDir is still passed for the config hash. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DUsFgd2Ga6pmLz8giS8WUn
This commit is contained in:
@@ -10,6 +10,7 @@
|
||||
#include <string>
|
||||
|
||||
#include <QColor>
|
||||
#include <QCoreApplication>
|
||||
#include <QCursor>
|
||||
#include <QDir>
|
||||
#include <QFont>
|
||||
@@ -162,13 +163,15 @@ GameWorldView::GameWorldView(Simulation* sim, const GameConfig* config,
|
||||
}
|
||||
else
|
||||
{
|
||||
// Record every run to disk. Replays live under <data>/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<ReplayRecorder>(
|
||||
configDir, replayDir.filePath("replays").toStdString()));
|
||||
configDir, replayDir.toStdString()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user