From 64cf0870c6d2bae1ea73cc7a2630e285bde082ae Mon Sep 17 00:00:00 2001 From: Marc Zinnschlag Date: Sat, 6 Sep 2014 12:24:09 +0200 Subject: [PATCH] set content files when running OpenMW from OpenCS --- apps/opencs/model/doc/document.cpp | 8 +++++++- apps/opencs/model/doc/runner.cpp | 9 ++++++++- apps/opencs/model/doc/runner.hpp | 5 +++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/apps/opencs/model/doc/document.cpp b/apps/opencs/model/doc/document.cpp index 8e414fb9c..ce216cfd6 100644 --- a/apps/opencs/model/doc/document.cpp +++ b/apps/opencs/model/doc/document.cpp @@ -2375,7 +2375,13 @@ bool CSMDoc::Document::isBlacklisted (const CSMWorld::UniversalId& id) void CSMDoc::Document::startRunning (const std::string& profile, const std::string& startupInstruction) { - mRunner.configure (getData().getDebugProfiles().getRecord (profile).get(), + std::vector contentFiles; + + for (std::vector::const_iterator iter (mContentFiles.begin()); + iter!=mContentFiles.end(); ++iter) + contentFiles.push_back (iter->filename().string()); + + mRunner.configure (getData().getDebugProfiles().getRecord (profile).get(), contentFiles, startupInstruction); int state = getState(); diff --git a/apps/opencs/model/doc/runner.cpp b/apps/opencs/model/doc/runner.cpp index 295733a5a..d97d5bb35 100644 --- a/apps/opencs/model/doc/runner.cpp +++ b/apps/opencs/model/doc/runner.cpp @@ -75,6 +75,12 @@ void CSMDoc::Runner::start (bool delayed) arguments << ("--script-run="+mStartup->fileName()); + for (std::vector::const_iterator iter (mContentFiles.begin()); + iter!=mContentFiles.end(); ++iter) + { + arguments << QString::fromUtf8 (("--content="+*iter).c_str()); + } + mProcess.start (path, arguments); } @@ -102,9 +108,10 @@ bool CSMDoc::Runner::isRunning() const } void CSMDoc::Runner::configure (const ESM::DebugProfile& profile, - const std::string& startupInstruction) + const std::vector& contentFiles, const std::string& startupInstruction) { mProfile = profile; + mContentFiles = contentFiles; mStartupInstruction = startupInstruction; } diff --git a/apps/opencs/model/doc/runner.hpp b/apps/opencs/model/doc/runner.hpp index 9d0273f3e..1505a96dc 100644 --- a/apps/opencs/model/doc/runner.hpp +++ b/apps/opencs/model/doc/runner.hpp @@ -1,6 +1,9 @@ #ifndef CSM_DOC_RUNNER_H #define CSM_DOC_RUNNER_H +#include +#include + #include #include #include @@ -18,6 +21,7 @@ namespace CSMDoc QProcess mProcess; bool mRunning; ESM::DebugProfile mProfile; + std::vector mContentFiles; std::string mStartupInstruction; QTemporaryFile *mStartup; QTextDocument mLog; @@ -39,6 +43,7 @@ namespace CSMDoc bool isRunning() const; void configure (const ESM::DebugProfile& profile, + const std::vector& contentFiles, const std::string& startupInstruction); QTextDocument *getLog();