WAGE: Dump scripts by request

This commit is contained in:
Eugene Sandulenko 2017-08-29 19:21:20 +02:00
parent b5c552b3bb
commit 5eaa48ec96
3 changed files with 29 additions and 4 deletions

View File

@ -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() {

View File

@ -52,7 +52,7 @@ namespace Wage {
class Script {
public:
Script(Common::SeekableReadStream *data);
Script(Common::SeekableReadStream *data, int num);
~Script();
private:

View File

@ -132,7 +132,7 @@ bool World::loadWorld(Common::MacResManager *resMan) {
// Load global script
res = resMan->getResource(MKTAG('G','C','O','D'), resArray[0]);
_globalScript = new Script(res);
_globalScript = new Script(res, -1);
// TODO: read creator
@ -209,7 +209,7 @@ bool World::loadWorld(Common::MacResManager *resMan) {
res = resMan->getResource(MKTAG('A','C','O','D'), *iter);
if (res != NULL)
scene->_script = new Script(res);
scene->_script = new Script(res, *iter);
res = resMan->getResource(MKTAG('A','T','X','T'), *iter);
if (res != NULL) {