diff options
author | Filippos Karapetis | 2010-05-19 07:25:06 +0000 |
---|---|---|
committer | Filippos Karapetis | 2010-05-19 07:25:06 +0000 |
commit | 852cb16c49aaca1891d25e420ddf1459efa55ae8 (patch) | |
tree | 6cd9788c74028aac189cf95addc52159a384992c /engines/sci/engine | |
parent | db3fc7a89e5a450e82f0b4a5a3b724ad251c8d54 (diff) | |
download | scummvm-rg350-852cb16c49aaca1891d25e420ddf1459efa55ae8.tar.gz scummvm-rg350-852cb16c49aaca1891d25e420ddf1459efa55ae8.tar.bz2 scummvm-rg350-852cb16c49aaca1891d25e420ddf1459efa55ae8.zip |
Moved the breakpoint information inside the DebugState struct
svn-id: r49092
Diffstat (limited to 'engines/sci/engine')
-rw-r--r-- | engines/sci/engine/game.cpp | 3 | ||||
-rw-r--r-- | engines/sci/engine/savegame.cpp | 4 | ||||
-rw-r--r-- | engines/sci/engine/state.cpp | 1 | ||||
-rw-r--r-- | engines/sci/engine/state.h | 4 | ||||
-rw-r--r-- | engines/sci/engine/vm.cpp | 8 | ||||
-rw-r--r-- | engines/sci/engine/vm.h | 22 |
6 files changed, 4 insertions, 38 deletions
diff --git a/engines/sci/engine/game.cpp b/engines/sci/engine/game.cpp index d46ca65fbe..721ba31f24 100644 --- a/engines/sci/engine/game.cpp +++ b/engines/sci/engine/game.cpp @@ -218,9 +218,6 @@ int script_init_engine(EngineState *s) { s->restarting_flags = SCI_GAME_IS_NOT_RESTARTING; - s->_breakpoints.clear(); // No breakpoints defined - s->_activeBreakpointTypes = 0; - if (g_sci->_features->detectLofsType() == SCI_VERSION_1_MIDDLE) s->_segMan->setExportAreWide(true); else diff --git a/engines/sci/engine/savegame.cpp b/engines/sci/engine/savegame.cpp index bf251eafcb..ce905ac008 100644 --- a/engines/sci/engine/savegame.cpp +++ b/engines/sci/engine/savegame.cpp @@ -996,10 +996,6 @@ void gamestate_restore(EngineState *s, Common::SeekableReadStream *fh) { if (retval->_voc) retval->_voc->parser_base = make_reg(s->sys_strings_segment, SYS_STRING_PARSER_BASE); - // Copy breakpoint information from current game instance - retval->_breakpoints = s->_breakpoints; - retval->_activeBreakpointTypes = s->_activeBreakpointTypes; - retval->successor = NULL; retval->_gameId = s->_gameId; diff --git a/engines/sci/engine/state.cpp b/engines/sci/engine/state.cpp index a8093e0224..bd78639c77 100644 --- a/engines/sci/engine/state.cpp +++ b/engines/sci/engine/state.cpp @@ -94,7 +94,6 @@ EngineState::EngineState(Vocabulary *voc, SegManager *segMan) script_000 = 0; - _activeBreakpointTypes = 0; sys_strings_segment = 0; sys_strings = 0; diff --git a/engines/sci/engine/state.h b/engines/sci/engine/state.h index 4f36ae00c4..c4b995806f 100644 --- a/engines/sci/engine/state.h +++ b/engines/sci/engine/state.h @@ -157,10 +157,6 @@ public: uint16 currentRoomNumber() const; void setRoomNumber(uint16 roomNumber); - /* Debugger data: */ - Common::List<Breakpoint> _breakpoints; /**< List of breakpoints */ - int _activeBreakpointTypes; /**< Bit mask specifying which types of breakpoints are active */ - /* System strings */ SegmentId sys_strings_segment; SystemStrings *sys_strings; diff --git a/engines/sci/engine/vm.cpp b/engines/sci/engine/vm.cpp index 856c76f56f..913c4a0c66 100644 --- a/engines/sci/engine/vm.cpp +++ b/engines/sci/engine/vm.cpp @@ -275,13 +275,13 @@ ExecStack *execute_method(EngineState *s, uint16 script, uint16 pubfunct, StackP } // Check if a breakpoint is set on this method - if (s->_activeBreakpointTypes & BREAK_EXPORT) { + if (g_debugState._activeBreakpointTypes & BREAK_EXPORT) { uint32 bpaddress; bpaddress = (script << 16 | pubfunct); Common::List<Breakpoint>::const_iterator bp; - for (bp = s->_breakpoints.begin(); bp != s->_breakpoints.end(); ++bp) { + for (bp = g_debugState._breakpoints.begin(); bp != g_debugState._breakpoints.end(); ++bp) { if (bp->type == BREAK_EXPORT && bp->address == bpaddress) { Console *con = g_sci->getSciDebugger(); con->DebugPrintf("Break on script %d, export %d\n", script, pubfunct); @@ -354,13 +354,13 @@ ExecStack *send_selector(EngineState *s, reg_t send_obj, reg_t work_obj, StackPt } // Check if a breakpoint is set on this method - if (s->_activeBreakpointTypes & BREAK_SELECTOR) { + if (g_debugState._activeBreakpointTypes & BREAK_SELECTOR) { char method_name[256]; sprintf(method_name, "%s::%s", s->_segMan->getObjectName(send_obj), g_sci->getKernel()->getSelectorName(selector).c_str()); Common::List<Breakpoint>::const_iterator bp; - for (bp = s->_breakpoints.begin(); bp != s->_breakpoints.end(); ++bp) { + for (bp = g_debugState._breakpoints.begin(); bp != g_debugState._breakpoints.end(); ++bp) { int cmplen = bp->name.size(); if (bp->name.lastChar() != ':') cmplen = 256; diff --git a/engines/sci/engine/vm.h b/engines/sci/engine/vm.h index 112646ddb6..8e40fed818 100644 --- a/engines/sci/engine/vm.h +++ b/engines/sci/engine/vm.h @@ -277,28 +277,6 @@ struct ScriptState { */ extern ScriptState scriptState; - -// These types are used both as identifiers and as elements of bitfields -enum BreakpointType { - /** - * Break when selector is executed. data contains (char *) selector name - * (in the format Object::Method) - */ - BREAK_SELECTOR = 1, - - /** - * Break when an exported function is called. data contains - * script_no << 16 | export_no. - */ - BREAK_EXPORT = 2 -}; - -struct Breakpoint { - BreakpointType type; - uint32 address; ///< Breakpoints on exports - Common::String name; ///< Breakpoints on selector names -}; - /** * Set this to 1 to abort script execution immediately. Aborting will * leave the debug exec stack intact. |