diff options
author | Eugene Sandulenko | 2017-08-29 19:21:20 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2017-08-29 19:21:20 +0200 |
commit | 5eaa48ec965f4c1701f4fb310c43fa3042845190 (patch) | |
tree | 98b749135e701f826078a8190896882402c82815 /engines/wage/script.cpp | |
parent | b5c552b3bb7f6cd18c493dc23b678135c86a12e7 (diff) | |
download | scummvm-rg350-5eaa48ec965f4c1701f4fb310c43fa3042845190.tar.gz scummvm-rg350-5eaa48ec965f4c1701f4fb310c43fa3042845190.tar.bz2 scummvm-rg350-5eaa48ec965f4c1701f4fb310c43fa3042845190.zip |
WAGE: Dump scripts by request
Diffstat (limited to 'engines/wage/script.cpp')
-rw-r--r-- | engines/wage/script.cpp | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/engines/wage/script.cpp b/engines/wage/script.cpp index bff75d06bd..d2fbc6c9b7 100644 --- a/engines/wage/script.cpp +++ b/engines/wage/script.cpp @@ -50,6 +50,8 @@ #include "wage/script.h" #include "wage/world.h" +#include "common/config-manager.h" +#include "common/file.h" #include "common/stream.h" namespace Wage { @@ -74,7 +76,7 @@ Common::String Script::Operand::toString() { } } -Script::Script(Common::SeekableReadStream *data) : _data(data) { +Script::Script(Common::SeekableReadStream *data, int num) : _data(data) { _engine = NULL; _world = NULL; @@ -85,6 +87,29 @@ Script::Script(Common::SeekableReadStream *data) : _data(data) { _handled = false; convertToText(); + + if (ConfMan.getBool("dump_scripts")) { + Common::DumpFile out; + Common::String name; + + if (num == -1) + name = Common::String::format("./dumps/%s-global.txt", ConfMan.get("gameid").c_str()); + else + name = Common::String::format("./dumps/%s-%d.txt", ConfMan.get("gameid").c_str(), num); + + if (!out.open(name)) { + warning("Can not open dump file %s", name.c_str()); + return; + } + + for (uint i = 0; i < _scriptText.size(); i++) { + out.write(_scriptText[i]->line.c_str(), strlen(_scriptText[i]->line.c_str())); + out.writeByte('\n'); + } + + out.flush(); + out.close(); + } } Script::~Script() { |