1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-02-04 21:40:03 +00:00

Merge branch 'script_run' into 'master'

Pass path to startup script as std::filesystem::path

See merge request OpenMW/openmw!3002
This commit is contained in:
jvoisin 2023-05-06 14:18:06 +00:00
commit 61691da512
7 changed files with 18 additions and 15 deletions

View File

@ -1011,7 +1011,7 @@ void OMW::Engine::setScriptConsoleMode(bool enabled)
mScriptConsoleMode = enabled; mScriptConsoleMode = enabled;
} }
void OMW::Engine::setStartupScript(const std::string& path) void OMW::Engine::setStartupScript(const std::filesystem::path& path)
{ {
mStartupScript = path; mStartupScript = path;
} }

View File

@ -165,7 +165,7 @@ namespace OMW
int mWarningsMode; int mWarningsMode;
std::string mFocusName; std::string mFocusName;
bool mScriptConsoleMode; bool mScriptConsoleMode;
std::string mStartupScript; std::filesystem::path mStartupScript;
int mActivationDistanceOverride; int mActivationDistanceOverride;
std::filesystem::path mSaveGameFile; std::filesystem::path mSaveGameFile;
// Grab mouse? // Grab mouse?
@ -253,7 +253,7 @@ namespace OMW
void setScriptConsoleMode(bool enabled); void setScriptConsoleMode(bool enabled);
/// Set path for a script that is run on startup in the console. /// Set path for a script that is run on startup in the console.
void setStartupScript(const std::string& path); void setStartupScript(const std::filesystem::path& path);
/// Override the game setting specified activation distance. /// Override the game setting specified activation distance.
void setActivationDistanceOverride(int distance); void setActivationDistanceOverride(int distance);

View File

@ -2,6 +2,7 @@
#define GAME_MWBASE_WINDOWMANAGER_H #define GAME_MWBASE_WINDOWMANAGER_H
#include <cstdint> #include <cstdint>
#include <filesystem>
#include <map> #include <map>
#include <memory> #include <memory>
#include <set> #include <set>
@ -275,7 +276,7 @@ namespace MWBase
virtual void processChangedSettings(const std::set<std::pair<std::string, std::string>>& changed) = 0; virtual void processChangedSettings(const std::set<std::pair<std::string, std::string>>& changed) = 0;
virtual void executeInConsole(const std::string& path) = 0; virtual void executeInConsole(const std::filesystem::path& path) = 0;
virtual void enableRest() = 0; virtual void enableRest() = 0;
virtual bool getRestEnabled() = 0; virtual bool getRestEnabled() = 0;

View File

@ -13,6 +13,7 @@
#include <components/compiler/lineparser.hpp> #include <components/compiler/lineparser.hpp>
#include <components/compiler/locals.hpp> #include <components/compiler/locals.hpp>
#include <components/compiler/scanner.hpp> #include <components/compiler/scanner.hpp>
#include <components/files/conversion.hpp>
#include <components/interpreter/interpreter.hpp> #include <components/interpreter/interpreter.hpp>
#include <components/misc/utf8stream.hpp> #include <components/misc/utf8stream.hpp>
#include <components/settings/settings.hpp> #include <components/settings/settings.hpp>
@ -239,19 +240,20 @@ namespace MWGui
} }
} }
void Console::executeFile(const std::string& path) void Console::executeFile(const std::filesystem::path& path)
{ {
std::ifstream stream((std::filesystem::path(path))); std::ifstream stream(path);
if (!stream.is_open()) if (!stream.is_open())
printError("failed to open file: " + path);
else
{ {
std::string line; printError("Failed to open script file \"" + Files::pathToUnicodeString(path)
+ "\": " + std::generic_category().message(errno));
while (std::getline(stream, line)) return;
execute(line);
} }
std::string line;
while (std::getline(stream, line))
execute(line);
} }
void Console::clear() void Console::clear()

View File

@ -60,7 +60,7 @@ namespace MWGui
void execute(const std::string& command); void execute(const std::string& command);
void executeFile(const std::string& path); void executeFile(const std::filesystem::path& path);
void updateSelectedObjectPtr(const MWWorld::Ptr& currentPtr, const MWWorld::Ptr& newPtr); void updateSelectedObjectPtr(const MWWorld::Ptr& currentPtr, const MWWorld::Ptr& newPtr);

View File

@ -1459,7 +1459,7 @@ namespace MWGui
return mScalingFactor; return mScalingFactor;
} }
void WindowManager::executeInConsole(const std::string& path) void WindowManager::executeInConsole(const std::filesystem::path& path)
{ {
mConsole->executeFile(path); mConsole->executeFile(path);
} }

View File

@ -296,7 +296,7 @@ namespace MWGui
void watchActor(const MWWorld::Ptr& ptr) override; void watchActor(const MWWorld::Ptr& ptr) override;
MWWorld::Ptr getWatchedActor() const override; MWWorld::Ptr getWatchedActor() const override;
void executeInConsole(const std::string& path) override; void executeInConsole(const std::filesystem::path& path) override;
void enableRest() override { mRestAllowed = true; } void enableRest() override { mRestAllowed = true; }
bool getRestEnabled() override; bool getRestEnabled() override;