aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine
diff options
context:
space:
mode:
authorFilippos Karapetis2010-05-19 07:25:06 +0000
committerFilippos Karapetis2010-05-19 07:25:06 +0000
commit852cb16c49aaca1891d25e420ddf1459efa55ae8 (patch)
tree6cd9788c74028aac189cf95addc52159a384992c /engines/sci/engine
parentdb3fc7a89e5a450e82f0b4a5a3b724ad251c8d54 (diff)
downloadscummvm-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.cpp3
-rw-r--r--engines/sci/engine/savegame.cpp4
-rw-r--r--engines/sci/engine/state.cpp1
-rw-r--r--engines/sci/engine/state.h4
-rw-r--r--engines/sci/engine/vm.cpp8
-rw-r--r--engines/sci/engine/vm.h22
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.