aboutsummaryrefslogtreecommitdiff
path: root/engines/wintermute/base/scriptables/debuggable
diff options
context:
space:
mode:
authorTobia Tesan2016-02-28 20:56:53 +0100
committerTobia Tesan2016-02-29 14:51:58 +0100
commit06021d1aab3213b36015c39361c9f5d14536383a (patch)
treef83562c0b0d2ebd808e948f5b740b9e425845843 /engines/wintermute/base/scriptables/debuggable
parent19267e0c5e9d36857b8eef2e14ddd7883b3f5faa (diff)
downloadscummvm-rg350-06021d1aab3213b36015c39361c9f5d14536383a.tar.gz
scummvm-rg350-06021d1aab3213b36015c39361c9f5d14536383a.tar.bz2
scummvm-rg350-06021d1aab3213b36015c39361c9f5d14536383a.zip
WINTERMUTE: Add post instruction hook to DebuggableScript
Diffstat (limited to 'engines/wintermute/base/scriptables/debuggable')
-rw-r--r--engines/wintermute/base/scriptables/debuggable/debuggable_script.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/engines/wintermute/base/scriptables/debuggable/debuggable_script.cpp b/engines/wintermute/base/scriptables/debuggable/debuggable_script.cpp
index 71f78a8d28..670a6d4045 100644
--- a/engines/wintermute/base/scriptables/debuggable/debuggable_script.cpp
+++ b/engines/wintermute/base/scriptables/debuggable/debuggable_script.cpp
@@ -21,8 +21,11 @@
*/
#include "debuggable_script.h"
-#include "debuggable_script_engine.h"
+#include "engines/wintermute/base/scriptables/debuggable/debuggable_script_engine.h"
#include "engines/wintermute/base/scriptables/script_stack.h"
+#include "engines/wintermute/base/scriptables/script_value.h"
+#include "engines/wintermute/debugger/breakpoint.h"
+#include "engines/wintermute/debugger/script_monitor.h"
namespace Wintermute {
@@ -32,7 +35,17 @@ DebuggableScript::~DebuggableScript() {}
void DebuggableScript::preInstHook(uint32 inst) {}
-void DebuggableScript::postInstHook(uint32 inst) {}
+void DebuggableScript::postInstHook(uint32 inst) {
+ if (inst == II_DBG_LINE) {
+ for (uint j = 0; j < _engine->_breakpoints.size(); j++) {
+ _engine->_breakpoints[j]->evaluate(this);
+ }
+
+ if (_callStack->_sP <= _stepDepth) {
+ _engine->_monitor->notifyStep(this);
+ }
+ }
+}
void DebuggableScript::setStepDepth(int depth) {
_stepDepth = depth;