[Scummvm-cvs-logs] scummvm master -> fc6b1c39d9eb21759d7ce59b223c573a9a4017aa
sev-
sev at scummvm.org
Wed Mar 16 13:28:09 CET 2016
This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
a25032eef9 WAGE: Put debugger in tilde key `~'
c4471757b4 WAGE: Enhanced 'scenes' debug command
3608d7343c WAGE: Implement script command in debugger
fc6b1c39d9 WAGE: More games to detection, all have problems
Commit: a25032eef95467c95a684fc05a2885c95d18781a
https://github.com/scummvm/scummvm/commit/a25032eef95467c95a684fc05a2885c95d18781a
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-03-16T13:27:59+01:00
Commit Message:
WAGE: Put debugger in tilde key `~'
Changed paths:
engines/wage/wage.cpp
diff --git a/engines/wage/wage.cpp b/engines/wage/wage.cpp
index 3e3ddaa..e0299c8 100644
--- a/engines/wage/wage.cpp
+++ b/engines/wage/wage.cpp
@@ -132,6 +132,8 @@ Common::Error WageEngine::run() {
_shouldQuit = false;
while (!_shouldQuit) {
+ _debugger->onFrame();
+
processEvents();
_gui->draw();
@@ -182,6 +184,11 @@ void WageEngine::processEvents() {
break;
default:
+ if (event.kbd.ascii == '~') {
+ _debugger->attach();
+ break;
+ }
+
if (event.kbd.flags & (Common::KBD_ALT | Common::KBD_CTRL | Common::KBD_META)) {
if (event.kbd.ascii >= 0x20 && event.kbd.ascii <= 0x7f) {
_gui->processMenuShortCut(event.kbd.flags, event.kbd.ascii);
Commit: c4471757b49f95fcecf12eff29e41b36fb47acd6
https://github.com/scummvm/scummvm/commit/c4471757b49f95fcecf12eff29e41b36fb47acd6
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-03-16T13:27:59+01:00
Commit Message:
WAGE: Enhanced 'scenes' debug command
Changed paths:
engines/wage/debugger.cpp
engines/wage/debugger.h
diff --git a/engines/wage/debugger.cpp b/engines/wage/debugger.cpp
index f4444f8..2b6ec61 100644
--- a/engines/wage/debugger.cpp
+++ b/engines/wage/debugger.cpp
@@ -28,7 +28,7 @@
namespace Wage {
-Debugger::Debugger(WageEngine *vm) : GUI::Debugger(), _vm(vm) {
+Debugger::Debugger(WageEngine *engine) : GUI::Debugger(), _engine(engine) {
registerCmd("continue", WRAP_METHOD(Debugger, cmdExit));
registerCmd("scenes", WRAP_METHOD(Debugger, Cmd_ListScenes));
}
@@ -37,10 +37,17 @@ Debugger::~Debugger() {
}
bool Debugger::Cmd_ListScenes(int argc, const char **argv) {
- for (uint i = 0; i < _vm->_world->_orderedScenes.size(); i++) {
- debugPrintf("%d: %s\n", i, _vm->_world->_orderedScenes[i]->_name.c_str());
+ int currentScene;
+
+ for (uint i = 0; i < _engine->_world->_orderedScenes.size(); i++) {
+ if (_engine->_world->_player->_currentScene == _engine->_world->_orderedScenes[i])
+ currentScene = i;
+
+ debugPrintf("%d: %s\n", i, _engine->_world->_orderedScenes[i]->_name.c_str());
}
+ debugPrintf("\nCurrent scene is #%d: %s\n", currentScene, _engine->_world->_orderedScenes[currentScene]->_name.c_str());
+
return true;
}
diff --git a/engines/wage/debugger.h b/engines/wage/debugger.h
index e1d3b1c..339a555 100644
--- a/engines/wage/debugger.h
+++ b/engines/wage/debugger.h
@@ -32,12 +32,12 @@ class WageEngine;
class Debugger : public GUI::Debugger {
protected:
- WageEngine *_vm;
+ WageEngine *_engine;
bool Cmd_ListScenes(int argc, const char **argv);
public:
- Debugger(WageEngine *vm);
+ Debugger(WageEngine *engine);
virtual ~Debugger();
};
Commit: 3608d7343c510b1a994824d91c35c87adc8a03ac
https://github.com/scummvm/scummvm/commit/3608d7343c510b1a994824d91c35c87adc8a03ac
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-03-16T13:27:59+01:00
Commit Message:
WAGE: Implement script command in debugger
Changed paths:
engines/wage/debugger.cpp
engines/wage/debugger.h
engines/wage/script.h
diff --git a/engines/wage/debugger.cpp b/engines/wage/debugger.cpp
index 2b6ec61..7d01b0b 100644
--- a/engines/wage/debugger.cpp
+++ b/engines/wage/debugger.cpp
@@ -24,6 +24,7 @@
#include "wage/wage.h"
#include "wage/debugger.h"
#include "wage/entities.h"
+#include "wage/script.h"
#include "wage/world.h"
namespace Wage {
@@ -31,15 +32,33 @@ namespace Wage {
Debugger::Debugger(WageEngine *engine) : GUI::Debugger(), _engine(engine) {
registerCmd("continue", WRAP_METHOD(Debugger, cmdExit));
registerCmd("scenes", WRAP_METHOD(Debugger, Cmd_ListScenes));
+ registerCmd("script", WRAP_METHOD(Debugger, Cmd_Script));
}
Debugger::~Debugger() {
}
+static int strToInt(const char *s) {
+ if (!*s)
+ // No string at all
+ return 0;
+ else if (toupper(s[strlen(s) - 1]) != 'H')
+ // Standard decimal string
+ return atoi(s);
+
+ // Hexadecimal string
+ uint tmp = 0;
+ int read = sscanf(s, "%xh", &tmp);
+
+ if (read < 1)
+ error("strToInt failed on string \"%s\"", s);
+ return (int)tmp;
+}
+
bool Debugger::Cmd_ListScenes(int argc, const char **argv) {
int currentScene;
- for (uint i = 0; i < _engine->_world->_orderedScenes.size(); i++) {
+ for (uint i = 1; i < _engine->_world->_orderedScenes.size(); i++) { // #0 is STORAGE@
if (_engine->_world->_player->_currentScene == _engine->_world->_orderedScenes[i])
currentScene = i;
@@ -51,4 +70,28 @@ bool Debugger::Cmd_ListScenes(int argc, const char **argv) {
return true;
}
+bool Debugger::Cmd_Script(int argc, const char **argv) {
+ Script *script = _engine->_world->_player->_currentScene->_script;
+
+ if (argc >= 2) {
+ int scriptNum = strToInt(argv[1]);
+
+ if (scriptNum)
+ script = _engine->_world->_orderedScenes[scriptNum]->_script;
+ else
+ script = _engine->_world->_globalScript;
+ }
+
+ if (script == NULL) {
+ debugPrintf("There is no script for current scene\n");
+ return true;
+ }
+
+ for (uint i = 0; i < script->_scriptText.size(); i++) {
+ debugPrintf("%d [%04x]: %s\n", i, script->_scriptText[i]->offset, script->_scriptText[i]->line.c_str());
+ }
+
+ return true;
+}
+
} // End of namespace Wage
diff --git a/engines/wage/debugger.h b/engines/wage/debugger.h
index 339a555..9068776 100644
--- a/engines/wage/debugger.h
+++ b/engines/wage/debugger.h
@@ -35,6 +35,7 @@ protected:
WageEngine *_engine;
bool Cmd_ListScenes(int argc, const char **argv);
+ bool Cmd_Script(int argc, const char **argv);
public:
Debugger(WageEngine *engine);
diff --git a/engines/wage/script.h b/engines/wage/script.h
index 325733a..de94762 100644
--- a/engines/wage/script.h
+++ b/engines/wage/script.h
@@ -150,8 +150,10 @@ private:
void assign(byte operandType, int uservar, uint16 value);
- Common::Array<ScriptText *> _scriptText;
void convertToText();
+
+public:
+ Common::Array<ScriptText *> _scriptText;
};
} // End of namespace Wage
Commit: fc6b1c39d9eb21759d7ce59b223c573a9a4017aa
https://github.com/scummvm/scummvm/commit/fc6b1c39d9eb21759d7ce59b223c573a9a4017aa
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-03-16T13:28:02+01:00
Commit Message:
WAGE: More games to detection, all have problems
Changed paths:
engines/wage/detection_tables.h
engines/wage/script.cpp
diff --git a/engines/wage/detection_tables.h b/engines/wage/detection_tables.h
index 6533b3b..f14ddb8 100644
--- a/engines/wage/detection_tables.h
+++ b/engines/wage/detection_tables.h
@@ -61,8 +61,12 @@ static const ADGameDescription gameDescriptions[] = {
FANGAMEN("Little Pythagoras", "Little Pythagoras 1.1.1", "94a9c4f8b3dabd1846d76215a49bd221", 628821),
FANGAME("Lost Crystal", "8174c81ea1858d0079ae040dae2cefd3", 771072),
FANGAME("Magic Rings", "913812a1ac7a6b0e48dadd1afa1c7763", 109044),
+ // No way to click on the house
+ FANGAME("Messy House", "913812a1ac7a6b0e48dadd1afa1c7763", 177120),
FANGAME("Midnight Snack", "913812a1ac7a6b0e48dadd1afa1c7763", 67952),
FANGAME("Minitorian", "913812a1ac7a6b0e48dadd1afa1c7763", 586464),
+ // No way to pass through the first screen
+ FANGAME("Nightcrawler Ned", "94a9c4f8b3dabd1846d76215a49bd221", 366542),
FANGAME("Pavilion", "4d991d7d1534d48d90598d86ea6d5d97", 231687),
FANGAME("Puzzle Piece Search", "595117cbed33e8de1ab3714b33880205", 247693), // From Joshua's Worlds 1.0
// Empty(?) first scene
@@ -80,6 +84,8 @@ static const ADGameDescription gameDescriptions[] = {
FANGAMEN("Spear of Destiny", "SpearOfDestiny", "913812a1ac7a6b0e48dadd1afa1c7763", 333665), // Original file name "SpearOfDestiny†"
FANGAME("Star Trek", "44aaef4806578700429de5aaf95c266e", 53320),
FANGAME("Strange Disappearance", "d81f2d03a1e863f04fb1e3a5495b720e", 772282),
+ // Code 0x03 in text
+ FANGAME("Swamp Witch", "913812a1ac7a6b0e48dadd1afa1c7763", 739781), // Original file name "Swamp Witch†"
FANGAME("Sweetspace Now!", "e12ec4d76d48bdc86567c5e63750547e", 123813), // Comes with Jumble
FANGAME("Time Bomb", "4b0e1a1fbaaa4930accd0f9f0e1519c7", 64564),
FANGAMEN("The Hotel Caper", "The Hotel Caper V1.0", "595117cbed33e8de1ab3714b33880205", 231969),
diff --git a/engines/wage/script.cpp b/engines/wage/script.cpp
index bd99fa1..294c08e 100644
--- a/engines/wage/script.cpp
+++ b/engines/wage/script.cpp
@@ -1124,7 +1124,7 @@ void Script::convertToText() {
if (c < 0x80) {
if (c < 0x20)
- error("Unknown code 0x%02x at %d", c, _data->pos());
+ error("convertToText: Unknown code 0x%02x at %d", c, _data->pos());
do {
scr->line += c;
More information about the Scummvm-git-logs
mailing list