mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-09 04:16:34 +00:00
WAGE: Dump scripts by request
This commit is contained in:
parent
b5c552b3bb
commit
5eaa48ec96
@ -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() {
|
||||
|
@ -52,7 +52,7 @@ namespace Wage {
|
||||
|
||||
class Script {
|
||||
public:
|
||||
Script(Common::SeekableReadStream *data);
|
||||
Script(Common::SeekableReadStream *data, int num);
|
||||
~Script();
|
||||
|
||||
private:
|
||||
|
@ -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) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user