[Scummvm-git-logs] scummvm master -> 5eaa48ec965f4c1701f4fb310c43fa3042845190

sev- sev at scummvm.org
Tue Aug 29 19:21:25 CEST 2017


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
5eaa48ec96 WAGE: Dump scripts by request


Commit: 5eaa48ec965f4c1701f4fb310c43fa3042845190
    https://github.com/scummvm/scummvm/commit/5eaa48ec965f4c1701f4fb310c43fa3042845190
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2017-08-29T19:21:20+02:00

Commit Message:
WAGE: Dump scripts by request

Changed paths:
    engines/wage/script.cpp
    engines/wage/script.h
    engines/wage/world.cpp


diff --git a/engines/wage/script.cpp b/engines/wage/script.cpp
index bff75d0..d2fbc6c 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() {
diff --git a/engines/wage/script.h b/engines/wage/script.h
index e796195..0237ebe 100644
--- a/engines/wage/script.h
+++ b/engines/wage/script.h
@@ -52,7 +52,7 @@ namespace Wage {
 
 class Script {
 public:
-	Script(Common::SeekableReadStream *data);
+	Script(Common::SeekableReadStream *data, int num);
 	~Script();
 
 private:
diff --git a/engines/wage/world.cpp b/engines/wage/world.cpp
index a1d3f6e..a7fce3d 100644
--- a/engines/wage/world.cpp
+++ b/engines/wage/world.cpp
@@ -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) {





More information about the Scummvm-git-logs mailing list