[Scummvm-git-logs] scummvm master -> ba147f5ad5eb562d102fdcf09f7f45fb4cedd086

bluegr bluegr at gmail.com
Sun Feb 16 11:08:04 UTC 2020


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

Summary:
7b721eaac1 ENGINES: Adding debugger to base Engine class
35c30cdad8 ACCESS: Refactor to use Engine debugger
19bf2b7b7b ADL: Refactor to use Engine debugger
f603a695af AGI: Refactor to use Engine debugger
644a71440b AGOS: Refactor to use Engine debugger
43f49b7307 AVALANCHE: Refactor to use Engine debugger
e708906916 BLADERUNNER: Refactor to use Engine debugger
5b25e3ec7e CGE: Refactor to use Engine debugger
bef176fb3a CGE2: Refactor to use Engine debugger
0e8e735c8f CHEWEY: Refactor to use Engine debugger
21dd3be444 CINE: Refactor to use Engine debugger
3ed59e42fa COMPOSER: Refactor to use Engine debugger
35f615eb5b CRUISE: Refactor to use Engine debugger
e86c21351a CRYO: Refactor to use Engine debugger
cefb7cfdfe DM: Refactor to use Engine debugger
a9ea15fef4 DRACI: Refactor to use Engine debugger
71a517d1db DRASCULA: Refactor to use Engine debugger
f21ffdca33 DREAMWEB: Refactor to use Engine debugger
8c32bb6c6f FULLPIPE: Refactor to use Engine debugger
a54b19976f GLK: Refactor to use Engine debugger
fb9d51be0e GNAP: Refactor to use Engine debugger
c99c187983 GOB: Refactor to use Engine debugger
d91ec90db9 GRIFFON: Refactor to use Engine debugger
be402cfac9 GROOVIE: Refactor to use Engine debugger
22d7c1c15e HOPKINS: Refactor to use Engine debugger
f1b47670bf HUGO: Refactor to use Engine debugger
ce9bf175a5 KYRA: Refactor to use Engine debugger
72d0d84be2 LAB: Refactor to use Engine debugger
d3e88f72e5 LASTEXPRESS: Refactor to use Engine debugger
afa27aa7c5 LILLIPUT: Refactor to use Engine debugger
83d7030d84 LURE: Refactor to use Engine debugger
0b46eaf913 MACVENTURE: Refactor to use Engine debugger
87406e66b7 MADE: Refactor to use Engine debugger
3487af4b9c MADS: Refactor to use Engine debugger
3a66feb5d9 MORTEVIELLE: Refactor to use Engine debugger
7a2dc70d20 NEVERHOOD: Refactor to use Engine debugger
e8dc9b3747 PARALLACTION: Refactor to use Engine debugger
118e024bdd PEGASUS: Refactor to use Engine debugger
4b09375739 PINK: Refactor to use Engine debugger
ed7852f853 PLUMBERS: Refactor to use Engine debugger
edcf6b9112 PRINCE: Refactor to use Engine debugger
7243eaf907 QUEEN: Refactor to use Engine debugger
00848cff4c SAGA: Refactor to use Engine debugger
45cda9db22 SCUMM: Refactor to use Engine debugger
9e15215b2d SHERLOCK: Refactor to use Engine debugger
b396e56bd0 SKY: Refactor to use Engine debugger
b6630049cd SLUDGE: Refactor to use Engine debugger
bd381ae8d0 STARTREK: Refactor to use Engine debugger
3da28a4c25 SUPERNOVA: Refactor to use Engine debugger
46a1f92ef6 SWORD1: Refactor to use Engine debugger
0d0ea44c31 SWORD2: Refactor to use Engine debugger
7d57569dd7 TEENAGENT: Refactor to use Engine debugger
17dc909e2c TINSEL: Refactor to use Engine debugger
7f90c4e961 TITANIC: Refactor to use Engine debugger
b97f66ba17 TOLTECS: Refactor to use Engine debugger
5a18e495e0 TONY: Refactor to use Engine debugger
ed71bef83b TOON: Refactor to use Engine debugger
6b096f3a9f TOUCHE: Refactor to use Engine debugger
0107aace67 TSAGE: Refactor to use Engine debugger
85b469ff5d TUCKER: Refactor to use Engine debugger
c811d4c658 ULTIMA: Refactor to use Engine debugger
11dd04aa6b VOYEUR: Refactor to use Engine debugger
813226095a WAGE: Refactor to use Engine debugger
848cb075f3 WINTERMUTE: Refactor to use Engine debugger
528d62930a XEEN: Refactor to use Engine debugger
c44a028ae7 ZVISION: Refactor to use Engine debugger
03ca59c17d MOHAWK: Refactor to use Engine debugger
0d0191fb44 SWORD25: Refactor to use Engine debugger
73f17c2ae0 MUTATIONOFJB: Refactor to use Engine debugger
98f9c4f254 ENGINES: Create a default debugger when needed if none is yet set
b76b6d0e41 NEWS: Add line for error display in debugger
818d9bab27 ENGINES: Change debugger trigger to Ctrl+Alt+D using keymapper
ba147f5ad5 SCI: Refactor to use Engine debugger


Commit: 7b721eaac12ab199e7577950d1898ce413b31b05
    https://github.com/scummvm/scummvm/commit/7b721eaac12ab199e7577950d1898ce413b31b05
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
ENGINES: Adding debugger to base Engine class

Changed paths:
    backends/events/default/default-events.cpp
    backends/graphics/opengl/opengl-graphics.cpp
    backends/graphics/surfacesdl/surfacesdl-graphics.cpp
    engines/engine.cpp
    engines/engine.h


diff --git a/backends/events/default/default-events.cpp b/backends/events/default/default-events.cpp
index 413d428..a7c03f5 100644
--- a/backends/events/default/default-events.cpp
+++ b/backends/events/default/default-events.cpp
@@ -34,6 +34,7 @@
 #include "backends/vkeybd/virtual-keyboard.h"
 
 #include "engines/engine.h"
+#include "gui/debugger.h"
 #include "gui/message.h"
 
 DefaultEventManager::DefaultEventManager(Common::EventSource *boss) :
@@ -109,6 +110,14 @@ bool DefaultEventManager::pollEvent(Common::Event &event) {
 			// making invalid assumptions about ascii values.
 			event.kbd.ascii = Common::KEYCODE_BACKSPACE;
 			_currentKeyDown.ascii = Common::KEYCODE_BACKSPACE;
+
+		} else if (event.kbd.keycode == Common::KEYCODE_d && (_modifierState & Common::KBD_CTRL)) {
+			GUI::Debugger *debugger = g_engine->getDebugger();
+			if (debugger) {
+				debugger->attach();
+				debugger->onFrame();
+				forwardEvent = false;
+			}
 		}
 		break;
 
diff --git a/backends/graphics/opengl/opengl-graphics.cpp b/backends/graphics/opengl/opengl-graphics.cpp
index 1bf0b36..b9ee145 100644
--- a/backends/graphics/opengl/opengl-graphics.cpp
+++ b/backends/graphics/opengl/opengl-graphics.cpp
@@ -33,6 +33,8 @@
 #include "common/translation.h"
 #include "common/algorithm.h"
 #include "common/file.h"
+#include "gui/debugger.h"
+#include "engines/engine.h"
 #ifdef USE_OSD
 #include "common/tokenizer.h"
 #include "common/rect.h"
@@ -472,6 +474,11 @@ void OpenGLGraphicsManager::updateScreen() {
 	}
 #endif
 
+	// If there's an active debugger, update it
+	GUI::Debugger *debugger = g_engine ? g_engine->getDebugger() : nullptr;
+	if (debugger)
+		debugger->onFrame();
+
 	// We only update the screen when there actually have been any changes.
 	if (   !_forceRedraw
 		&& !_cursorNeedsRedraw
diff --git a/backends/graphics/surfacesdl/surfacesdl-graphics.cpp b/backends/graphics/surfacesdl/surfacesdl-graphics.cpp
index c6c584b..cc9acdd 100644
--- a/backends/graphics/surfacesdl/surfacesdl-graphics.cpp
+++ b/backends/graphics/surfacesdl/surfacesdl-graphics.cpp
@@ -39,6 +39,7 @@
 #include "graphics/scaler.h"
 #include "graphics/scaler/aspect.h"
 #include "graphics/surface.h"
+#include "gui/debugger.h"
 #include "gui/EventRecorder.h"
 #ifdef USE_PNG
 #include "common/file.h"
@@ -1201,6 +1202,11 @@ void SurfaceSdlGraphicsManager::internUpdateScreen() {
 	ScalerProc *scalerProc;
 	int scale1;
 
+	// If there's an active debugger, update it
+	GUI::Debugger *debugger = g_engine ? g_engine->getDebugger() : nullptr;
+	if (debugger)
+		debugger->onFrame();
+
 #if !SDL_VERSION_ATLEAST(2, 0, 0)
 	// If the shake position changed, fill the dirty area with blackness
 	// When building with SDL2, the shake offset is added to the active rect instead,
diff --git a/engines/engine.cpp b/engines/engine.cpp
index 7140bbf..d6e267f 100644
--- a/engines/engine.cpp
+++ b/engines/engine.cpp
@@ -147,7 +147,8 @@ Engine::Engine(OSystem *syst)
 		_pauseStartTime(0),
 		_saveSlotToLoad(-1),
 		_engineStartTime(_system->getMillis()),
-		_mainMenuDialog(NULL) {
+		_mainMenuDialog(NULL),
+		_debugger(NULL) {
 
 	g_engine = this;
 	Common::setErrorOutputFormatter(defaultOutputFormatter);
@@ -181,6 +182,7 @@ Engine::Engine(OSystem *syst)
 Engine::~Engine() {
 	_mixer->stopAll();
 
+	delete _debugger;
 	delete _mainMenuDialog;
 	g_engine = NULL;
 
diff --git a/engines/engine.h b/engines/engine.h
index b819721..4172d12 100644
--- a/engines/engine.h
+++ b/engines/engine.h
@@ -98,6 +98,10 @@ private:
 	 */
 	int _saveSlotToLoad;
 
+	/**
+	 * Optional debugger for the engine
+	 */
+	GUI::Debugger *_debugger;
 public:
 
 
@@ -173,7 +177,16 @@ public:
 	 * Return the engine's debugger instance, if any. Used by error() to
 	 * invoke the debugger when a severe error is reported.
 	 */
-	virtual GUI::Debugger *getDebugger() { return 0; }
+	virtual GUI::Debugger *getDebugger() { return _debugger; }
+
+	/**
+	 * Sets the engine's debugger. Once set, the Engine class is responsible for managing
+	 * the debugger, and freeing it on exit
+	 */
+	void setDebugger(GUI::Debugger *debugger) {
+		assert(!_debugger);
+		_debugger = debugger;
+	}
 
 	/**
 	 * Determine whether the engine supports the specified feature.


Commit: 35c30cdad855622edf0e70dc3488a470b7999e4a
    https://github.com/scummvm/scummvm/commit/35c30cdad855622edf0e70dc3488a470b7999e4a
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
ACCESS: Refactor to use Engine debugger

Changed paths:
    engines/access/access.cpp
    engines/access/access.h
    engines/access/amazon/amazon_logic.h
    engines/access/events.cpp
    engines/access/room.cpp
    engines/access/screen.cpp
    engines/access/scripts.cpp


diff --git a/engines/access/access.cpp b/engines/access/access.cpp
index 6d000cc..ee15273 100644
--- a/engines/access/access.cpp
+++ b/engines/access/access.cpp
@@ -28,6 +28,7 @@
 #include "graphics/scaler.h"
 #include "graphics/thumbnail.h"
 #include "access/access.h"
+#include "access/debugger.h"
 
 namespace Access {
 
@@ -44,7 +45,6 @@ AccessEngine::AccessEngine(OSystem *syst, const AccessGameDescription *gameDesc)
 	_animation = nullptr;
 	_bubbleBox = nullptr;
 	_char = nullptr;
-	_debugger = nullptr;
 	_events = nullptr;
 	_files = nullptr;
 	_invBox = nullptr;
@@ -135,7 +135,6 @@ AccessEngine::~AccessEngine() {
 	delete _invBox;
 	delete _aboutBox;
 	delete _char;
-	delete _debugger;
 	delete _events;
 	delete _files;
 	delete _inventory;
@@ -187,7 +186,6 @@ void AccessEngine::initialize() {
 		_aboutBox = nullptr;
 	}
 	_char = new CharManager(this);
-	_debugger = Debugger::init(this);
 	_events = new EventsManager(this);
 	_files = new FileManager(this);
 	_inventory = new InventoryManager(this);
@@ -197,6 +195,7 @@ void AccessEngine::initialize() {
 	_midi = new MusicManager(this);
 	_video = new VideoPlayer(this);
 
+	setDebugger(Debugger::init(this));
 	_buffer1.create(g_system->getWidth() + TILE_WIDTH, g_system->getHeight());
 	_buffer2.create(g_system->getWidth(), g_system->getHeight());
 	_vidBuf.create(160, 101);
diff --git a/engines/access/access.h b/engines/access/access.h
index 442f771..c5d2108 100644
--- a/engines/access/access.h
+++ b/engines/access/access.h
@@ -36,7 +36,6 @@
 #include "access/bubble_box.h"
 #include "access/char.h"
 #include "access/data.h"
-#include "access/debugger.h"
 #include "access/events.h"
 #include "access/files.h"
 #include "access/font.h"
@@ -143,7 +142,6 @@ public:
 	BubbleBox *_invBox;
 	BubbleBox *_aboutBox;
 	CharManager *_char;
-	Debugger *_debugger;
 	EventsManager *_events;
 	FileManager *_files;
 	InventoryManager *_inventory;
diff --git a/engines/access/amazon/amazon_logic.h b/engines/access/amazon/amazon_logic.h
index 0d96248..5509425 100644
--- a/engines/access/amazon/amazon_logic.h
+++ b/engines/access/amazon/amazon_logic.h
@@ -26,9 +26,9 @@
 #include "common/scummsys.h"
 #include "access/scripts.h"
 #include "access/asurface.h"
+#include "access/amazon/amazon_resources.h"
 
 namespace Access {
-
 namespace Amazon {
 
 class AmazonEngine;
diff --git a/engines/access/events.cpp b/engines/access/events.cpp
index 3d3b97e..f610d6e 100644
--- a/engines/access/events.cpp
+++ b/engines/access/events.cpp
@@ -153,13 +153,7 @@ void EventsManager::pollEvents(bool skipTimers) {
 
 		case Common::EVENT_KEYDOWN:
 			// Check for debugger
-			if (event.kbd.keycode == Common::KEYCODE_d && (event.kbd.flags & Common::KBD_CTRL)) {
-				// Attach to the debugger
-				_vm->_debugger->attach();
-				_vm->_debugger->onFrame();
-			} else {
-				keyControl(event.kbd.keycode, true);
-			}
+			keyControl(event.kbd.keycode, true);
 			return;
 		case Common::EVENT_KEYUP:
 			keyControl(event.kbd.keycode, false);
@@ -278,9 +272,6 @@ bool EventsManager::checkForNextTimerUpdate() {
 }
 
 void EventsManager::nextFrame() {
-	// Give time to the debugger
-	_vm->_debugger->onFrame();
-
 	_vm->_screen->update();
 }
 
diff --git a/engines/access/room.cpp b/engines/access/room.cpp
index a41de63..558acb0 100644
--- a/engines/access/room.cpp
+++ b/engines/access/room.cpp
@@ -25,6 +25,8 @@
 #include "access/access.h"
 #include "access/resources.h"
 #include "access/room.h"
+#include "access/amazon/amazon_resources.h"
+#include "access/martian/martian_resources.h"
 
 namespace Access {
 
diff --git a/engines/access/screen.cpp b/engines/access/screen.cpp
index 7da9dfc..7fc011d 100644
--- a/engines/access/screen.cpp
+++ b/engines/access/screen.cpp
@@ -29,6 +29,7 @@
 #include "access/access.h"
 #include "access/screen.h"
 #include "access/resources.h"
+#include "access/martian/martian_resources.h"
 
 namespace Access {
 
diff --git a/engines/access/scripts.cpp b/engines/access/scripts.cpp
index e9103a2..a1b5384 100644
--- a/engines/access/scripts.cpp
+++ b/engines/access/scripts.cpp
@@ -24,6 +24,7 @@
 #include "access/access.h"
 #include "access/resources.h"
 #include "access/scripts.h"
+#include "access/martian/martian_resources.h"
 
 namespace Access {
 


Commit: 19bf2b7b7bcc9a3cbe7b6d6926bc92445624e1a9
    https://github.com/scummvm/scummvm/commit/19bf2b7b7bcc9a3cbe7b6d6926bc92445624e1a9
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
ADL: Refactor to use Engine debugger

Changed paths:
    engines/adl/adl.cpp
    engines/adl/adl.h


diff --git a/engines/adl/adl.cpp b/engines/adl/adl.cpp
index a1ae30a..3495c1b 100644
--- a/engines/adl/adl.cpp
+++ b/engines/adl/adl.cpp
@@ -74,7 +74,6 @@ private:
 AdlEngine::~AdlEngine() {
 	delete _display;
 	delete _graphics;
-	delete _console;
 	delete _dumpFile;
 	delete _inputScript;
 	delete _random;
@@ -95,7 +94,6 @@ AdlEngine::AdlEngine(OSystem *syst, const AdlGameDescription *gd) :
 		_inputScript(nullptr),
 		_scriptDelay(1000),
 		_scriptPaused(false),
-		_console(nullptr),
 		_messageIds(),
 		_saveVerb(0),
 		_saveNoun(0),
@@ -109,8 +107,6 @@ AdlEngine::AdlEngine(OSystem *syst, const AdlGameDescription *gd) :
 }
 
 bool AdlEngine::pollEvent(Common::Event &event) const {
-	_console->onFrame();
-
 	if (g_system->getEventManager()->pollEvent(event)) {
 		if (event.type != Common::EVENT_KEYDOWN)
 			return false;
@@ -120,11 +116,6 @@ bool AdlEngine::pollEvent(Common::Event &event) const {
 				quitGame();
 				return false;
 			}
-
-			if (event.kbd.keycode == Common::KEYCODE_d) {
-				_console->attach();
-				return false;
-			}
 		}
 
 		return true;
@@ -736,7 +727,7 @@ Common::Error AdlEngine::run() {
 	if (!_display)
 		return Common::kUnsupportedColorMode;
 
-	_console = new Console(this);
+	setDebugger(new Console(this));
 	_display->init();
 
 	setupOpcodeTables();
diff --git a/engines/adl/adl.h b/engines/adl/adl.h
index feb5a14..88ada3b 100644
--- a/engines/adl/adl.h
+++ b/engines/adl/adl.h
@@ -453,8 +453,6 @@ private:
 	byte convertKey(uint16 ascii) const;
 	Common::String getWord(const Common::String &line, uint &index) const;
 
-	Console *_console;
-	GUI::Debugger *getDebugger() override { return _console; }
 	byte _saveVerb, _saveNoun, _restoreVerb, _restoreNoun;
 };
 


Commit: f603a695af313fec78f7434fb38ad9a5691dc05b
    https://github.com/scummvm/scummvm/commit/f603a695af313fec78f7434fb38ad9a5691dc05b
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
AGI: Refactor to use Engine debugger

Changed paths:
    engines/agi/agi.cpp
    engines/agi/agi.h
    engines/agi/keyboard.cpp
    engines/agi/preagi.cpp
    engines/agi/preagi_mickey.cpp
    engines/agi/preagi_mickey.h
    engines/agi/preagi_winnie.cpp
    engines/agi/preagi_winnie.h


diff --git a/engines/agi/agi.cpp b/engines/agi/agi.cpp
index 4e799b8..8382b10 100644
--- a/engines/agi/agi.cpp
+++ b/engines/agi/agi.cpp
@@ -66,7 +66,6 @@ void AgiEngine::wait(uint32 msec, bool busy) {
 
 	do {
 		processScummVMEvents();
-		_console->onFrame();
 		_system->updateScreen();
 		_system->delayMillis(10);
 	} while (_system->getMillis() < endTime);
@@ -409,7 +408,6 @@ AgiEngine::AgiEngine(OSystem *syst, const AGIGameDescription *gameDesc) : AgiBas
 
 	memset(_keyQueue, 0, sizeof(_keyQueue));
 
-	_console = nullptr;
 	_font = nullptr;
 	_gfx = nullptr;
 	_sound = nullptr;
@@ -465,7 +463,7 @@ void AgiEngine::initialize() {
 
 	initRenderMode();
 
-	_console = new Console(this);
+	setDebugger(new Console(this));
 	_words = new Words(this);
 	_font = new GfxFont(this);
 	_gfx = new GfxMgr(this, _font);
@@ -531,7 +529,6 @@ AgiEngine::~AgiEngine() {
 	delete _gfx;
 	delete _font;
 	delete _words;
-	delete _console;
 }
 
 Common::Error AgiBase::init() {
diff --git a/engines/agi/agi.h b/engines/agi/agi.h
index cd30a7b..caaf08d 100644
--- a/engines/agi/agi.h
+++ b/engines/agi/agi.h
@@ -905,9 +905,6 @@ public:
 
 	void wait(uint32 msec, bool busy = false);
 
-	Console *_console;
-	GUI::Debugger *getDebugger() override { return _console; }
-
 	int agiInit();
 	int agiDeinit();
 	int agiDetectGame();
diff --git a/engines/agi/keyboard.cpp b/engines/agi/keyboard.cpp
index 1c6bbea..a24f1d7 100644
--- a/engines/agi/keyboard.cpp
+++ b/engines/agi/keyboard.cpp
@@ -131,11 +131,6 @@ void AgiEngine::processScummVMEvents() {
 			}
 			break;
 		case Common::EVENT_KEYDOWN:
-			if (event.kbd.hasFlags(Common::KBD_CTRL | Common::KBD_SHIFT) && event.kbd.keycode == Common::KEYCODE_d) {
-				_console->attach();
-				break;
-			}
-
 			key = event.kbd.ascii;
 			if (event.kbd.keycode >= Common::KEYCODE_KP0 && event.kbd.keycode <= Common::KEYCODE_KP9) {
 				if (!(event.kbd.flags & Common::KBD_NUM)) {
diff --git a/engines/agi/preagi.cpp b/engines/agi/preagi.cpp
index aff00a7..ec69c2e 100644
--- a/engines/agi/preagi.cpp
+++ b/engines/agi/preagi.cpp
@@ -189,7 +189,6 @@ void PreAgiEngine::printStrXOR(char *szMsg) {
 
 int PreAgiEngine::getSelection(SelectionTypes type) {
 	Common::Event event;
-	GUI::Debugger *console = getDebugger();
 
 	while (!shouldQuit()) {
 		while (_eventMan->pollEvent(event)) {
@@ -204,14 +203,6 @@ int PreAgiEngine::getSelection(SelectionTypes type) {
 					return 1;
 				break;
 			case Common::EVENT_KEYDOWN:
-				if (event.kbd.keycode == Common::KEYCODE_d && (event.kbd.flags & Common::KBD_CTRL) && console) {
-					console->attach();
-					console->onFrame();
-					//FIXME: If not cleared, clicking again will start the console
-					event.kbd.keycode = Common::KEYCODE_INVALID;
-					event.kbd.flags = 0;
-					continue;
-				}
 				switch (event.kbd.keycode) {
 				case Common::KEYCODE_y:
 					if (type == kSelYesNo)
diff --git a/engines/agi/preagi_mickey.cpp b/engines/agi/preagi_mickey.cpp
index 52dde91..c0eca87 100644
--- a/engines/agi/preagi_mickey.cpp
+++ b/engines/agi/preagi_mickey.cpp
@@ -465,12 +465,6 @@ bool MickeyEngine::getMenuSelRow(MSA_MENU &menu, int *sel0, int *sel1, int iRow)
 				}
 				break;
 			case Common::EVENT_KEYDOWN:
-				if (event.kbd.keycode == Common::KEYCODE_d && (event.kbd.flags & Common::KBD_CTRL) && _console) {
-					_console->attach();
-					_console->onFrame();
-					continue;
-				}
-
 				switch (event.kbd.keycode) {
 				case Common::KEYCODE_2:
 					// Hidden message
@@ -2237,10 +2231,10 @@ void MickeyEngine::waitAnyKey(bool anim) {
 // Console-related functions
 
 void MickeyEngine::debugCurRoom() {
-	_console->debugPrintf("Current Room = %d\n", _gameStateMickey.iRoom);
+	getDebugger()->debugPrintf("Current Room = %d\n", _gameStateMickey.iRoom);
 
 	if (_gameStateMickey.iRmObj[_gameStateMickey.iRoom] != IDI_MSA_OBJECT_NONE) {
-		_console->debugPrintf("Object %d is in the room\n", _gameStateMickey.iRmObj[_gameStateMickey.iRoom]);
+		getDebugger()->debugPrintf("Object %d is in the room\n", _gameStateMickey.iRmObj[_gameStateMickey.iRoom]);
 	}
 }
 
@@ -2250,11 +2244,11 @@ void MickeyEngine::debugGotoRoom(int room) {
 }
 
 MickeyEngine::MickeyEngine(OSystem *syst, const AGIGameDescription *gameDesc) : PreAgiEngine(syst, gameDesc) {
-	_console = new MickeyConsole(this);
+	setDebugger(new MickeyConsole(this));
 }
 
 MickeyEngine::~MickeyEngine() {
-	delete _console;
+	//_console deleted by Engine
 }
 
 void MickeyEngine::init() {
diff --git a/engines/agi/preagi_mickey.h b/engines/agi/preagi_mickey.h
index 89e1306..9f67bbe 100644
--- a/engines/agi/preagi_mickey.h
+++ b/engines/agi/preagi_mickey.h
@@ -689,11 +689,7 @@ public:
 	void drawPic(int);
 	void drawObj(ENUM_MSA_OBJECT, int, int);
 
-	GUI::Debugger *getDebugger() override { return _console; }
-
 protected:
-	MickeyConsole *_console;
-
 	MSA_GAME _gameStateMickey;
 	bool _clickToMove;
 
diff --git a/engines/agi/preagi_winnie.cpp b/engines/agi/preagi_winnie.cpp
index 41ff714..cdf2ba3 100644
--- a/engines/agi/preagi_winnie.cpp
+++ b/engines/agi/preagi_winnie.cpp
@@ -906,12 +906,6 @@ void WinnieEngine::getMenuSel(char *szMenu, int *iSel, int fCanSel[]) {
 				incMenuSel(iSel, fCanSel);
 				break;
 			case Common::EVENT_KEYDOWN:
-				if (event.kbd.keycode == Common::KEYCODE_d && (event.kbd.flags & Common::KBD_CTRL) && _console) {
-					_console->attach();
-					_console->onFrame();
-					continue;
-				}
-
 				switch (event.kbd.keycode) {
 				case Common::KEYCODE_ESCAPE:
 					*iSel = IDI_WTP_SEL_HOME;
@@ -1322,15 +1316,14 @@ void WinnieEngine::printStrWinnie(char *szMsg) {
 // Console-related functions
 
 void WinnieEngine::debugCurRoom() {
-	_console->debugPrintf("Current Room = %d\n", _room);
+	getDebugger()->debugPrintf("Current Room = %d\n", _room);
 }
 
 WinnieEngine::WinnieEngine(OSystem *syst, const AGIGameDescription *gameDesc) : PreAgiEngine(syst, gameDesc) {
-	_console = new WinnieConsole(this);
+	setDebugger(new WinnieConsole(this));
 }
 
 WinnieEngine::~WinnieEngine() {
-	delete _console;
 }
 
 void WinnieEngine::init() {
diff --git a/engines/agi/preagi_winnie.h b/engines/agi/preagi_winnie.h
index 41ad7a6..227a5b4 100644
--- a/engines/agi/preagi_winnie.h
+++ b/engines/agi/preagi_winnie.h
@@ -291,11 +291,7 @@ public:
 
 	void debugCurRoom();
 
-	GUI::Debugger *getDebugger() override { return _console; }
-
 private:
-	WinnieConsole *_console;
-
 	WTP_SAVE_GAME _gameStateWinnie;
 	int _room;
 	int _mist;


Commit: 644a71440bef89cc0064035cc935d1e53c977d90
    https://github.com/scummvm/scummvm/commit/644a71440bef89cc0064035cc935d1e53c977d90
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
AGOS: Refactor to use Engine debugger

Changed paths:
    engines/agos/agos.cpp
    engines/agos/agos.h
    engines/agos/event.cpp


diff --git a/engines/agos/agos.cpp b/engines/agos/agos.cpp
index 108d5a9..9a36069 100644
--- a/engines/agos/agos.cpp
+++ b/engines/agos/agos.cpp
@@ -158,8 +158,6 @@ AGOSEngine::AGOSEngine(OSystem *system, const AGOSGameDescription *gd)
 	_vcGetOutOfCode = 0;
 	_gameOffsetsPtr = 0;
 
-	_debugger = 0;
-
 	_gameFile = 0;
 	_opcode = 0;
 
@@ -633,7 +631,7 @@ Common::Error AGOSEngine::init() {
 
 	setupGame();
 
-	_debugger = new Debugger(this);
+	setDebugger(new Debugger(this));
 	_sound = new Sound(this, gss, _mixer);
 
 	if (ConfMan.hasKey("music_mute") && ConfMan.getBool("music_mute") == 1) {
@@ -974,15 +972,10 @@ AGOSEngine::~AGOSEngine() {
 	delete _dummyWindow;
 	delete[] _windowList;
 
-	delete _debugger;
 	delete _sound;
 	delete _gameFile;
 }
 
-GUI::Debugger *AGOSEngine::getDebugger() {
-	return _debugger;
-}
-
 void AGOSEngine::pauseEngineIntern(bool pauseIt) {
 	if (pauseIt) {
 		_keyPressed.reset();
diff --git a/engines/agos/agos.h b/engines/agos/agos.h
index be5bc27..cf42e78 100644
--- a/engines/agos/agos.h
+++ b/engines/agos/agos.h
@@ -223,10 +223,10 @@ protected:
 			return err;
 		return go();
 	}
-	GUI::Debugger *getDebugger() override;
-	bool hasFeature(EngineFeature f) const override;
-	void syncSoundSettings() override;
-	void pauseEngineIntern(bool pause) override;
+
+	virtual bool hasFeature(EngineFeature f) const override;
+	virtual void syncSoundSettings() override;
+	virtual void pauseEngineIntern(bool pause) override;
 
 	virtual void setupOpcodes();
 	uint16 _numOpcodes, _opcode;
@@ -590,8 +590,6 @@ protected:
 	bool _ambientPaused;
 	bool _musicPaused;
 
-	Debugger *_debugger;
-
 	uint8 _saveGameNameLen;
 	uint16 _saveLoadRowCurPos;
 	uint16 _numSaveGameRows;
diff --git a/engines/agos/event.cpp b/engines/agos/event.cpp
index 62d59ca..60f0d8a 100644
--- a/engines/agos/event.cpp
+++ b/engines/agos/event.cpp
@@ -430,8 +430,6 @@ void AGOSEngine::delay(uint amount) {
 
 	_system->getAudioCDManager()->update();
 
-	_debugger->onFrame();
-
 	vgaPeriod = (_fastMode) ? 10 : _vgaPeriod;
 	if (getGameType() == GType_PP && getGameId() != GID_DIMP) {
 		if (vgaPeriod == 15 && _variableArray[999] == 0)
@@ -484,8 +482,6 @@ void AGOSEngine::delay(uint amount) {
 						_aboutDialog->runModal();
 					} else if (event.kbd.keycode == Common::KEYCODE_f) {
 						_fastMode = !_fastMode;
-					} else if (event.kbd.keycode == Common::KEYCODE_d) {
-						_debugger->attach();
 					}
 				}
 


Commit: 43f49b7307df94644d3e72779b9790913219983e
    https://github.com/scummvm/scummvm/commit/43f49b7307df94644d3e72779b9790913219983e
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
AVALANCHE: Refactor to use Engine debugger

Changed paths:
    engines/avalanche/avalanche.cpp
    engines/avalanche/avalanche.h


diff --git a/engines/avalanche/avalanche.cpp b/engines/avalanche/avalanche.cpp
index 303fb0c..c2274ec 100644
--- a/engines/avalanche/avalanche.cpp
+++ b/engines/avalanche/avalanche.cpp
@@ -36,7 +36,7 @@ namespace Avalanche {
 
 AvalancheEngine::AvalancheEngine(OSystem *syst, const AvalancheGameDescription *gd) : Engine(syst), _gameDescription(gd), _fxHidden(false), _interrogation(0) {
 	_system = syst;
-	_console = new AvalancheConsole(this);
+	setDebugger(new AvalancheConsole(this));
 
 	_rnd = new Common::RandomSource("avalanche");
 	_showDebugLines = false;
@@ -61,7 +61,6 @@ AvalancheEngine::AvalancheEngine(OSystem *syst, const AvalancheGameDescription *
 }
 
 AvalancheEngine::~AvalancheEngine() {
-	delete _console;
 	delete _rnd;
 
 	delete _graphics;
@@ -174,10 +173,6 @@ Common::ErrorCode AvalancheEngine::initialize() {
 	return Common::kNoError;
 }
 
-GUI::Debugger *AvalancheEngine::getDebugger() {
-	return _console;
-}
-
 bool AvalancheEngine::hasFeature(EngineFeature f) const {
 	return (f == kSupportsSavingDuringRuntime) || (f == kSupportsLoadingDuringRuntime);
 }
@@ -503,12 +498,7 @@ void AvalancheEngine::updateEvents() {
 			_holdLeftMouse = false; // Same as above.
 			break;
 		case Common::EVENT_KEYDOWN:
-			if ((event.kbd.keycode == Common::KEYCODE_d) && (event.kbd.flags & Common::KBD_CTRL)) {
-				// Attach to the debugger
-				_console->attach();
-				_console->onFrame();
-			} else
-				handleKeyDown(event);
+			handleKeyDown(event);
 			break;
 		default:
 			break;
diff --git a/engines/avalanche/avalanche.h b/engines/avalanche/avalanche.h
index ffc7397..dea1809 100644
--- a/engines/avalanche/avalanche.h
+++ b/engines/avalanche/avalanche.h
@@ -98,7 +98,6 @@ public:
 	~AvalancheEngine() override;
 
 	Common::ErrorCode initialize();
-	GUI::Debugger *getDebugger() override;
 
 	Common::RandomSource *_rnd;
 
@@ -128,9 +127,6 @@ protected:
 	// Engine APIs
 	Common::Error run() override;
 
-private:
-	AvalancheConsole *_console;
-
 public:
 	// For Thinkabout:
 	static const bool kThing = true;


Commit: e70890691621fb75a120fba605709016874a9edb
    https://github.com/scummvm/scummvm/commit/e70890691621fb75a120fba605709016874a9edb
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
BLADERUNNER: Refactor to use Engine debugger

Changed paths:
    engines/bladerunner/bladerunner.cpp
    engines/bladerunner/bladerunner.h


diff --git a/engines/bladerunner/bladerunner.cpp b/engines/bladerunner/bladerunner.cpp
index 85b9339..529a74b 100644
--- a/engines/bladerunner/bladerunner.cpp
+++ b/engines/bladerunner/bladerunner.cpp
@@ -502,6 +502,7 @@ bool BladeRunnerEngine::startup(bool hasSavegames) {
 	_sceneScript = new SceneScript(this);
 
 	_debugger = new Debugger(this);
+	setDebugger(_debugger);
 
 	// This is the original startup in the game
 
@@ -933,7 +934,7 @@ void BladeRunnerEngine::shutdown() {
 
 	// These are static objects in original game
 
-	delete _debugger;
+	//delete _debugger;	Debugger deletion is handled by Engine
 	_debugger = nullptr;
 
 	delete _sceneScript;
@@ -1269,12 +1270,6 @@ void BladeRunnerEngine::handleKeyUp(Common::Event &event) {
 }
 
 void BladeRunnerEngine::handleKeyDown(Common::Event &event) {
-	if ((event.kbd.keycode == Common::KEYCODE_d) && (event.kbd.flags & Common::KBD_CTRL)) {
-		getDebugger()->attach();
-		getDebugger()->onFrame();
-		return;
-	}
-
 	if (_vqaIsPlaying && (event.kbd.keycode == Common::KEYCODE_ESCAPE || event.kbd.keycode == Common::KEYCODE_RETURN)) {
 		_vqaStopIsRequested = true;
 		_vqaIsPlaying = false;
@@ -2319,10 +2314,6 @@ Graphics::Surface BladeRunnerEngine::generateThumbnail() const {
 	return thumbnail;
 }
 
-GUI::Debugger *BladeRunnerEngine::getDebugger() {
-	return _debugger;
-}
-
 Common::String BladeRunnerEngine::getTargetName() const {
 	return _targetName;
 }
diff --git a/engines/bladerunner/bladerunner.h b/engines/bladerunner/bladerunner.h
index 1281301..e5cb6dd 100644
--- a/engines/bladerunner/bladerunner.h
+++ b/engines/bladerunner/bladerunner.h
@@ -322,7 +322,6 @@ public:
 	void blitToScreen(const Graphics::Surface &src) const;
 	Graphics::Surface generateThumbnail() const;
 
-	GUI::Debugger *getDebugger() override;
 	Common::String getTargetName() const;
 };
 


Commit: 5b25e3ec7eed16c0da6ab3d6a5747593f3752664
    https://github.com/scummvm/scummvm/commit/5b25e3ec7eed16c0da6ab3d6a5747593f3752664
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
CGE: Refactor to use Engine debugger

Changed paths:
    engines/cge/cge.cpp
    engines/cge/cge.h
    engines/cge/events.cpp


diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp
index 3212683..4e73240 100644
--- a/engines/cge/cge.cpp
+++ b/engines/cge/cge.cpp
@@ -75,7 +75,6 @@ CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription)
 	_midiPlayer = nullptr;
 	_miniShp = nullptr;
 	_miniShpList = nullptr;
-	_console = nullptr;
 	_sprTv = nullptr;
 	_sprK1 = nullptr;
 	_sprK2 = nullptr;
@@ -140,7 +139,7 @@ void CGEEngine::init() {
 	_resman = new ResourceManager();
 
 	// Create debugger console
-	_console = new CGEConsole(this);
+	setDebugger(new CGEConsole(this));
 
 	// Initialize engine objects
 	_font = new Font(this, "CGE");
@@ -173,8 +172,6 @@ void CGEEngine::deinit() {
 	// Remove all of our debug levels here
 	DebugMan.clearAllDebugChannels();
 
-	delete _console;
-
 	// Delete engine objects
 	delete _vga;
 	delete _sys;
diff --git a/engines/cge/cge.h b/engines/cge/cge.h
index e81fc04..337079d 100644
--- a/engines/cge/cge.h
+++ b/engines/cge/cge.h
@@ -205,10 +205,7 @@ public:
 	BitmapPtr *_miniShpList;
 	int        _startGameSlot;
 
-	Common::Error run() override;
-	GUI::Debugger *getDebugger() override {
-		return _console;
-	}
+	virtual Common::Error run() override;
 
 	void cge_main();
 	void switchScene(int newScene);
@@ -326,7 +323,6 @@ protected:
 	int _recentStep;
 
 private:
-	CGEConsole *_console;
 	void init();
 	void deinit();
 };
diff --git a/engines/cge/events.cpp b/engines/cge/events.cpp
index 5291ced..1634b26 100644
--- a/engines/cge/events.cpp
+++ b/engines/cge/events.cpp
@@ -72,14 +72,6 @@ bool Keyboard::getKey(Common::Event &event) {
 	case Common::KEYCODE_F7:
 		_vm->loadGameDialog();
 		return false;
-	case Common::KEYCODE_d:
-		if (event.kbd.flags & Common::KBD_CTRL) {
-		// Start the debugger
-			_vm->getDebugger()->attach();
-			_vm->getDebugger()->onFrame();
-			return false;
-		}
-		break;
 	case Common::KEYCODE_x:
 		if (event.kbd.flags & Common::KBD_ALT) {
 			_vm->quit();


Commit: bef176fb3a26a050b314431b7011fa25bada118d
    https://github.com/scummvm/scummvm/commit/bef176fb3a26a050b314431b7011fa25bada118d
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
CGE2: Refactor to use Engine debugger

Changed paths:
    engines/cge2/cge2.cpp
    engines/cge2/cge2.h
    engines/cge2/events.cpp


diff --git a/engines/cge2/cge2.cpp b/engines/cge2/cge2.cpp
index 04b9db1..8040525 100644
--- a/engines/cge2/cge2.cpp
+++ b/engines/cge2/cge2.cpp
@@ -76,7 +76,6 @@ CGE2Engine::CGE2Engine(OSystem *syst, const ADGameDescription *gameDescription)
 		_vol[i] = nullptr;
 	_eventManager = nullptr;
 	_map = nullptr;
-	_console = nullptr;
 	_quitFlag = false;
 	_bitmapPalette = nullptr;
 	_gamePhase = kPhaseIntro;
@@ -113,7 +112,7 @@ CGE2Engine::CGE2Engine(OSystem *syst, const ADGameDescription *gameDescription)
 
 void CGE2Engine::init() {
 	// Create debugger console
-	_console = new CGE2Console(this);
+	setDebugger(new CGE2Console(this));
 	_resman = new ResourceManager();
 	_vga = new Vga(this);
 	_fx = new Fx(this, 16);
@@ -149,8 +148,6 @@ void CGE2Engine::deinit() {
 	// Remove all of our debug levels here
 	DebugMan.clearAllDebugChannels();
 
-	delete _console;
-
 	delete _spare;
 	delete _resman;
 	delete _vga;
diff --git a/engines/cge2/cge2.h b/engines/cge2/cge2.h
index ee40d22..66de6aa 100644
--- a/engines/cge2/cge2.h
+++ b/engines/cge2/cge2.h
@@ -143,7 +143,6 @@ private:
 	uint32 _lastFrame, _lastTick;
 	void tick();
 
-	CGE2Console *_console;
 	void init();
 	void deinit();
 
@@ -165,10 +164,6 @@ public:
 
 	WARN_UNUSED_RESULT static bool readSavegameHeader(Common::InSaveFile *in, SavegameHeader &header, bool skipThumbnail = true);
 
-	GUI::Debugger *getDebugger() override {
-		return _console;
-	}
-
 	bool showTitle(const char *name);
 	void cge2_main();
 	char *mergeExt(char *buf, const char *name, const char *ext);
diff --git a/engines/cge2/events.cpp b/engines/cge2/events.cpp
index 5ab7f59..a9c1212 100644
--- a/engines/cge2/events.cpp
+++ b/engines/cge2/events.cpp
@@ -65,14 +65,6 @@ bool Keyboard::getKey(Common::Event &event) {
 	case Common::KEYCODE_F7:
 		_vm->loadGameDialog();
 		return false;
-	case Common::KEYCODE_d:
-		if (event.kbd.flags & Common::KBD_CTRL) {
-			// Start the debugger
-			_vm->getDebugger()->attach();
-			_vm->getDebugger()->onFrame();
-			return false;
-		}
-		break;
 	case Common::KEYCODE_x:
 		if (event.kbd.flags & Common::KBD_ALT) {
 			_vm->quit();


Commit: 0e8e735c8f5d2952d402c4347aade93c15b50eb1
    https://github.com/scummvm/scummvm/commit/0e8e735c8f5d2952d402c4347aade93c15b50eb1
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
CHEWEY: Refactor to use Engine debugger

Changed paths:
    engines/chewy/chewy.cpp
    engines/chewy/chewy.h
    engines/chewy/events.cpp
    engines/chewy/events.h


diff --git a/engines/chewy/chewy.cpp b/engines/chewy/chewy.cpp
index 81f8c7d..87d4698 100644
--- a/engines/chewy/chewy.cpp
+++ b/engines/chewy/chewy.cpp
@@ -64,17 +64,16 @@ ChewyEngine::~ChewyEngine() {
 	delete _cursor;
 	delete _scene;
 	delete _graphics;
-	delete _console;
 }
 
 void ChewyEngine::initialize() {
-	_console = new Console(this);
+	setDebugger(new Console(this));
 	_cursor = new Cursor();
 	_graphics = new Graphics(this);
 	_scene = new Scene(this);
 	_sound = new Sound(_mixer);
 	_text = new Text();
-	_events = new Events(this, _console);
+	_events = new Events(this);
 
 	_curCursor = 0;
 	_elapsedFrames = 0;
@@ -104,8 +103,6 @@ Common::Error ChewyEngine::run() {
 	while (!shouldQuit()) {
 		_events->processEvents();
 
-		_console->onFrame();
-
 		// Cursor animation
 		if (_elapsedFrames % 30 == 0)
 			_cursor->animateCursor();
diff --git a/engines/chewy/chewy.h b/engines/chewy/chewy.h
index 79c090b..5b1a915 100644
--- a/engines/chewy/chewy.h
+++ b/engines/chewy/chewy.h
@@ -74,7 +74,6 @@ protected:
 	void initialize();
 	void shutdown();
 
-	Console *_console;
 	Events *_events;
 
 	uint _curCursor;
diff --git a/engines/chewy/events.cpp b/engines/chewy/events.cpp
index 532b1ac..d5e9dc4 100644
--- a/engines/chewy/events.cpp
+++ b/engines/chewy/events.cpp
@@ -32,8 +32,7 @@
 
 namespace Chewy {
 
-Events::Events(ChewyEngine *vm, Console *console) :
-	_vm(vm), _console(console) {
+Events::Events(ChewyEngine *vm) : _vm(vm) {
 
 	_eventManager = g_system->getEventManager();
 }
@@ -48,10 +47,6 @@ void Events::processEvents() {
 			case Common::KEYCODE_SPACE:
 				_vm->_cursor->nextCursor();
 				break;
-			case Common::KEYCODE_d:
-				if (_event.kbd.flags & Common::KBD_CTRL)
-					_console->attach();
-				break;
 			default:
 				break;
 			}
diff --git a/engines/chewy/events.h b/engines/chewy/events.h
index efeafe0..d35a2dd 100644
--- a/engines/chewy/events.h
+++ b/engines/chewy/events.h
@@ -33,7 +33,7 @@ class Console;
 
 class Events {
 public:
-	Events(ChewyEngine *vm, Console *console);
+	Events(ChewyEngine *vm);
 	virtual ~Events() {}
 
 	void processEvents();
@@ -42,7 +42,6 @@ private:
 	Common::Event _event;
 	Common::EventManager *_eventManager;
 	ChewyEngine *_vm;
-	Console *_console;
 };
 
 } // End of namespace Chewy


Commit: 21dd3be44418dd7f9d2be1d5c11b1abefe8e0a00
    https://github.com/scummvm/scummvm/commit/21dd3be44418dd7f9d2be1d5c11b1abefe8e0a00
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
CINE: Refactor to use Engine debugger

Changed paths:
    engines/cine/cine.cpp
    engines/cine/cine.h
    engines/cine/main_loop.cpp


diff --git a/engines/cine/cine.cpp b/engines/cine/cine.cpp
index 5ecf78d..a84a657 100644
--- a/engines/cine/cine.cpp
+++ b/engines/cine/cine.cpp
@@ -57,7 +57,7 @@ CineEngine::CineEngine(OSystem *syst, const CINEGameDescription *gameDesc)
 	// Setup mixer
 	syncSoundSettings();
 
-	_console = new CineConsole(this);
+	setDebugger(new CineConsole(this));
 
 	g_cine = this;
 
@@ -76,7 +76,6 @@ CineEngine::~CineEngine() {
 	}
 
 	DebugMan.clearAllDebugChannels();
-	delete _console;
 }
 
 void CineEngine::syncSoundSettings() {
diff --git a/engines/cine/cine.h b/engines/cine/cine.h
index cbdb7eb..c83a444 100644
--- a/engines/cine/cine.h
+++ b/engines/cine/cine.h
@@ -140,8 +140,6 @@ public:
 	StringPtrHashMap _volumeEntriesMap;
 	TextHandler _textHandler;
 
-	GUI::Debugger *getDebugger() override { return _console; }
-
 	bool _restartRequested;
 
 private:
@@ -157,7 +155,6 @@ private:
 	void mainLoop(int bootScriptIdx);
 	void readVolCnf();
 
-	CineConsole *_console;
 	bool _preLoad;
 	int _timerDelayMultiplier;
 
diff --git a/engines/cine/main_loop.cpp b/engines/cine/main_loop.cpp
index 19cc848..6cf7c5c 100644
--- a/engines/cine/main_loop.cpp
+++ b/engines/cine/main_loop.cpp
@@ -166,12 +166,6 @@ static void processEvent(Common::Event &event) {
 		case Common::KEYCODE_KP3:
 			moveUsingKeyboard(+1, -1); // Down & Right
 			break;
-		case Common::KEYCODE_d:
-			if (event.kbd.hasFlags(Common::KBD_CTRL)) {
-				g_cine->getDebugger()->attach();
-				g_cine->getDebugger()->onFrame();
-			}
-			// fall through
 		default:
 			lastKeyStroke = event.kbd.keycode;
 			break;


Commit: 3ed59e42fa142676cfca0a0ad89c1a39194a0579
    https://github.com/scummvm/scummvm/commit/3ed59e42fa142676cfca0a0ad89c1a39194a0579
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
COMPOSER: Refactor to use Engine debugger

Changed paths:
    engines/composer/composer.cpp
    engines/composer/composer.h


diff --git a/engines/composer/composer.cpp b/engines/composer/composer.cpp
index 9931298..17ad32c 100644
--- a/engines/composer/composer.cpp
+++ b/engines/composer/composer.cpp
@@ -52,7 +52,6 @@ ComposerEngine::ComposerEngine(OSystem *syst, const ComposerGameDescription *gam
 	_mouseEnabled = false;
 	_mouseSpriteId = 0;
 	_lastButton = NULL;
-	_console = NULL;
 }
 
 ComposerEngine::~ComposerEngine() {
@@ -69,7 +68,6 @@ ComposerEngine::~ComposerEngine() {
 		i->_surface.free();
 
 	delete _rnd;
-	delete _console;
 }
 
 Common::Error ComposerEngine::run() {
@@ -106,7 +104,7 @@ Common::Error ComposerEngine::run() {
 	CursorMan.replaceCursor(cursor);
 	delete cursor;
 
-	_console = new Console(this);
+	setDebugger(new Console(this));
 
 	loadLibrary(0);
 
@@ -201,14 +199,6 @@ Common::Error ComposerEngine::run() {
 
 			case Common::EVENT_KEYDOWN:
 				switch (event.kbd.keycode) {
-				case Common::KEYCODE_d:
-					if (event.kbd.hasFlags(Common::KBD_CTRL)) {
-						// Start the debugger
-						getDebugger()->attach();
-						getDebugger()->onFrame();
-					}
-					break;
-
 				case Common::KEYCODE_q:
 					if (event.kbd.hasFlags(Common::KBD_CTRL))
 						quitGame();
diff --git a/engines/composer/composer.h b/engines/composer/composer.h
index b570a64..f74467b 100644
--- a/engines/composer/composer.h
+++ b/engines/composer/composer.h
@@ -186,9 +186,6 @@ public:
 
 	const ComposerGameDescription *_gameDescription;
 
-	Console *_console;
-	GUI::Debugger *getDebugger() override { return _console; }
-
 private:
 	Common::RandomSource *_rnd;
 


Commit: 35f615eb5b939b449a662811c72ccf1d03a83815
    https://github.com/scummvm/scummvm/commit/35f615eb5b939b449a662811c72ccf1d03a83815
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
CRUISE: Refactor to use Engine debugger

Changed paths:
    engines/cruise/cruise.cpp
    engines/cruise/cruise.h
    engines/cruise/cruise_main.cpp


diff --git a/engines/cruise/cruise.cpp b/engines/cruise/cruise.cpp
index df525c0..1c0888a 100644
--- a/engines/cruise/cruise.cpp
+++ b/engines/cruise/cruise.cpp
@@ -47,7 +47,7 @@ CruiseEngine::CruiseEngine(OSystem * syst, const CRUISEGameDescription *gameDesc
 	DebugMan.addDebugChannel(kCruiseDebugSound, "sound", "Sound debug level");
 
 	_vm = this;
-	_debugger = new Debugger();
+	setDebugger(new Debugger());
 	_sound = new PCSound(_mixer, this);
 
 	PCFadeFlag = false;
@@ -66,7 +66,6 @@ CruiseEngine::CruiseEngine(OSystem * syst, const CRUISEGameDescription *gameDesc
 extern void listMemory();
 
 CruiseEngine::~CruiseEngine() {
-	delete _debugger;
 	delete _sound;
 
 	freeSystem();
diff --git a/engines/cruise/cruise.h b/engines/cruise/cruise.h
index e5d2818..4e04586 100644
--- a/engines/cruise/cruise.h
+++ b/engines/cruise/cruise.h
@@ -56,7 +56,6 @@ struct CRUISEGameDescription;
 class CruiseEngine: public Engine {
 private:
 	bool _preLoad;
-	Debugger *_debugger;
 	PCSound *_sound;
 	Common::StringArray _langStrings;
 	CursorType _savedCursor;
@@ -88,7 +87,6 @@ public:
 	Common::Language getLanguage() const;
 	Common::Platform getPlatform() const;
 	PCSound &sound() { return *_sound; }
-	GUI::Debugger *getDebugger() override { return _debugger; }
 	virtual void pauseEngine(bool pause);
 	const char *langString(LangStringId langId) { return _langStrings[(int)langId].c_str(); }
 
diff --git a/engines/cruise/cruise_main.cpp b/engines/cruise/cruise_main.cpp
index 0ad1416..aed7579 100644
--- a/engines/cruise/cruise_main.cpp
+++ b/engines/cruise/cruise_main.cpp
@@ -1730,15 +1730,9 @@ bool manageEvents() {
 				break;
 			}
 
-			if (event.kbd.hasFlags(Common::KBD_CTRL)) {
-				if (event.kbd.keycode == Common::KEYCODE_d) {
-					// Start the debugger
-					_vm->getDebugger()->attach();
-					keyboardCode = Common::KEYCODE_INVALID;
-				} else if (event.kbd.keycode == Common::KEYCODE_f) {
-					bFastMode = !bFastMode;
-					keyboardCode = Common::KEYCODE_INVALID;
-				}
+			if (event.kbd.hasFlags(Common::KBD_CTRL) && event.kbd.keycode == Common::KEYCODE_f) {
+				bFastMode = !bFastMode;
+				keyboardCode = Common::KEYCODE_INVALID;
 			}
 
 		default:
@@ -1838,7 +1832,6 @@ void CruiseEngine::mainLoop() {
 			if (_playerDontAskQuit)
 				break;
 
-			_vm->getDebugger()->onFrame();
 		} while (currentTick < _lastTick + _gameSpeed && !bFastMode);
 		if (_playerDontAskQuit)
 			break;


Commit: e86c21351ab8cfa4b4109685a499e6f46dec7598
    https://github.com/scummvm/scummvm/commit/e86c21351ab8cfa4b4109685a499e6f46dec7598
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
CRYO: Refactor to use Engine debugger

Changed paths:
    engines/cryo/cryo.cpp
    engines/cryo/cryo.h
    engines/cryo/cryolib.cpp


diff --git a/engines/cryo/cryo.cpp b/engines/cryo/cryo.cpp
index 52fb2ae..92e3d52 100644
--- a/engines/cryo/cryo.cpp
+++ b/engines/cryo/cryo.cpp
@@ -42,7 +42,6 @@ CryoEngine *g_ed = nullptr;
 
 CryoEngine::CryoEngine(OSystem *syst, const ADGameDescription *gameDesc) : Engine(syst), _gameDescription(gameDesc) {
 	_rnd = new Common::RandomSource("cryo");
-	_debugger = nullptr;
 
 	_game = nullptr;
 	_video = nullptr;
@@ -59,7 +58,6 @@ CryoEngine::~CryoEngine() {
 	delete _game;
 	delete _video;
 	delete _screenView;
-	delete _debugger;
 
 	DebugMan.clearAllDebugChannels();
 }
@@ -68,7 +66,7 @@ Common::Error CryoEngine::run() {
 	_game = new EdenGame(this);
 	_video = new HnmPlayer(this);
 	_screenView = new View(320, 200);
-	_debugger = new Debugger(this);
+	setDebugger(new Debugger(this));
 
 	///// CLTimer
 	_timerTicks = 0;   // incremented in realtime
diff --git a/engines/cryo/cryo.h b/engines/cryo/cryo.h
index ebbc69e..e248368 100644
--- a/engines/cryo/cryo.h
+++ b/engines/cryo/cryo.h
@@ -71,7 +71,6 @@ public:
 	Graphics::Surface _screen;
 	EdenGame *_game;
 	HnmPlayer *_video;
-	Debugger *_debugger;
 
 	View *_screenView;
 	volatile int32 _timerTicks;
diff --git a/engines/cryo/cryolib.cpp b/engines/cryo/cryolib.cpp
index 9d291c2..5b81b9a 100644
--- a/engines/cryo/cryolib.cpp
+++ b/engines/cryo/cryolib.cpp
@@ -267,12 +267,6 @@ void CryoEngine::pollEvents() {
 			return;
 
 		case Common::EVENT_KEYDOWN:
-			// Check for debugger
-			if ((event.kbd.keycode == Common::KEYCODE_d) && (event.kbd.flags & Common::KBD_CTRL)) {
-				// Attach to the debugger
-				_debugger->attach();
-				_debugger->onFrame();
-			}
 			return;
 		case Common::EVENT_KEYUP:
 			//          _keyState[(byte)toupper(event.kbd.ascii)] = false;


Commit: cefb7cfdfef43f241565e57f21c1036fe3e54c29
    https://github.com/scummvm/scummvm/commit/cefb7cfdfef43f241565e57f21c1036fe3e54c29
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
DM: Refactor to use Engine debugger

Changed paths:
    engines/dm/dm.cpp
    engines/dm/dm.h
    engines/dm/eventman.cpp
    engines/dm/gfx.cpp


diff --git a/engines/dm/dm.cpp b/engines/dm/dm.cpp
index 29ba665..73ef939 100644
--- a/engines/dm/dm.cpp
+++ b/engines/dm/dm.cpp
@@ -185,7 +185,7 @@ DMEngine::~DMEngine() {
 
 	// dispose of resources
 	delete _rnd;
-	delete _console;
+	//delete _console; Debugger is deleted by Engine
 	delete _displayMan;
 	delete _dungeonMan;
 	delete _eventMan;
@@ -359,6 +359,7 @@ Common::Error DMEngine::run() {
 	// scummvm/engine specific
 	initGraphics(320, 200);
 	_console = new Console(this);
+	setDebugger(_console);
 	_displayMan = new DisplayMan(this);
 	_dungeonMan = new DungeonMan(this);
 	_eventMan = new EventManager(this);
diff --git a/engines/dm/dm.h b/engines/dm/dm.h
index 81fff04..839dc8f 100644
--- a/engines/dm/dm.h
+++ b/engines/dm/dm.h
@@ -230,8 +230,6 @@ public:
 
 	bool isDemo() const;
 
-	GUI::Debugger *getDebugger() override { return _console; }
-
 	void delay(uint16 verticalBlank); // @ F0022_MAIN_Delay
 	uint16 getScaledProduct(uint16 val, uint16 scale, uint16 vale2); // @ F0030_MAIN_GetScaledProduct
 	uint16 getRandomNumber(uint32 max) { return _rnd->getRandomNumber(max - 1); }
diff --git a/engines/dm/eventman.cpp b/engines/dm/eventman.cpp
index 96309c4..f87c171 100644
--- a/engines/dm/eventman.cpp
+++ b/engines/dm/eventman.cpp
@@ -614,11 +614,6 @@ Common::EventType EventManager::processInput(Common::Event *grabKey, Common::Eve
 			if (event.kbdRepeat)
 				break;
 
-			if (event.kbd.keycode == Common::KEYCODE_d && event.kbd.hasFlags(Common::KBD_CTRL)) {
-				_vm->_console->attach();
-				return Common::EVENT_INVALID;
-			}
-
 			if (grabKey) {
 				*grabKey = event;
 				return event.type;
diff --git a/engines/dm/gfx.cpp b/engines/dm/gfx.cpp
index e54e4e5..cdf92a8 100644
--- a/engines/dm/gfx.cpp
+++ b/engines/dm/gfx.cpp
@@ -1143,7 +1143,7 @@ void DisplayMan::updateScreen() {
 	for (uint32 i = 320 * 30; i < 320 * 170; ++i)
 		_bitmapScreen[i] += 16;
 	g_system->copyRectToScreen(_bitmapScreen, _screenWidth, 0, 0, _screenWidth, _screenHeight);
-	_vm->_console->onFrame();
+
 	g_system->updateScreen();
 	for (uint32 i = 320 * 30; i < 320 * 170; ++i)
 		_bitmapScreen[i] -= 16;


Commit: a9ea15fef4627c5f8b21736a4c5f38a529d7652b
    https://github.com/scummvm/scummvm/commit/a9ea15fef4627c5f8b21736a4c5f38a529d7652b
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
DRACI: Refactor to use Engine debugger

Changed paths:
    engines/draci/draci.cpp
    engines/draci/draci.h


diff --git a/engines/draci/draci.cpp b/engines/draci/draci.cpp
index 0de1121..ed36216 100644
--- a/engines/draci/draci.cpp
+++ b/engines/draci/draci.cpp
@@ -79,7 +79,7 @@ DraciEngine::DraciEngine(OSystem *syst, const ADGameDescription *gameDesc)
 	DebugMan.addDebugChannel(kDraciSoundDebugLevel, "sound", "Sound debug info");
 	DebugMan.addDebugChannel(kDraciWalkingDebugLevel, "walking", "Walking debug info");
 
-	_console = new DraciConsole(this);
+	setDebugger(new DraciConsole(this));
 
 	_screen = 0;
 	_mouse = 0;
@@ -348,12 +348,6 @@ void DraciEngine::handleEvents() {
 					_game->inventorySwitch(event.kbd.keycode);
 				}
 				break;
-			case Common::KEYCODE_d:
-				if (event.kbd.hasFlags(Common::KBD_CTRL)) {
-					this->getDebugger()->attach();
-					this->getDebugger()->onFrame();
-				}
-				break;
 			default:
 				break;
 			}
@@ -407,8 +401,6 @@ DraciEngine::~DraciEngine() {
 
 	// Remove all of our debug levels here
 	DebugMan.clearAllDebugChannels();
-
-	delete _console;
 }
 
 Common::Error DraciEngine::run() {
diff --git a/engines/draci/draci.h b/engines/draci/draci.h
index 84a6a3b..20d33ee 100644
--- a/engines/draci/draci.h
+++ b/engines/draci/draci.h
@@ -73,8 +73,6 @@ public:
 	Common::Error saveGameState(int slot, const Common::String &desc) override;
 	bool canSaveGameStateCurrently() override;
 
-	GUI::Debugger *getDebugger() override { return _console; }
-
 	Screen *_screen;
 	Mouse *_mouse;
 	Game *_game;
@@ -107,8 +105,6 @@ public:
 	Common::RandomSource _rnd;
 
 	int32 _pauseStartTime;
-private:
-	DraciConsole *_console;
 };
 
 enum {


Commit: 71a517d1dbd70894e064611cdf51a532c256a5f8
    https://github.com/scummvm/scummvm/commit/71a517d1dbd70894e064611cdf51a532c256a5f8
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
DRASCULA: Refactor to use Engine debugger

Changed paths:
    engines/drascula/drascula.cpp
    engines/drascula/drascula.h


diff --git a/engines/drascula/drascula.cpp b/engines/drascula/drascula.cpp
index bf9e9fb..b2a5f87 100644
--- a/engines/drascula/drascula.cpp
+++ b/engines/drascula/drascula.cpp
@@ -166,8 +166,6 @@ DrasculaEngine::DrasculaEngine(OSystem *syst, const DrasculaGameDescription *gam
 
 	_rnd = new Common::RandomSource("drascula");
 
-	_console = 0;
-
 	const Common::FSNode gameDataDir(ConfMan.get("path"));
 	SearchMan.addSubDirectoryMatching(gameDataDir, "audio");
 
@@ -186,8 +184,6 @@ DrasculaEngine::~DrasculaEngine() {
 
 	freeRoomsTable();
 
-	delete _console;
-
 	free(_charMap);
 	free(_itemLocations);
 	free(_polX);
@@ -254,7 +250,7 @@ Common::Error DrasculaEngine::run() {
 		_lang = kEnglish;
 	}
 
-	_console = new Console(this);
+	setDebugger(new Console(this));
 
 	if (!loadDrasculaDat())
 		return Common::kUnknownError;
@@ -695,9 +691,6 @@ bool DrasculaEngine::runCurrentChapter() {
 		} else if (key == Common::KEYCODE_ESCAPE) {
 			if (!confirmExit())
 				return false;
-		} else if (key == Common::KEYCODE_TILDE || key == Common::KEYCODE_BACKQUOTE) {
-			_console->attach();
-			_console->onFrame();
 		} else if (currentChapter == 6 && key == Common::KEYCODE_0 && _roomNumber == 61) {
 			loadPic("alcbar.alg", bgSurface, 255);
 		}
@@ -821,11 +814,6 @@ void DrasculaEngine::updateEvents() {
 	while (eventMan->pollEvent(event)) {
 		switch (event.type) {
 		case Common::EVENT_KEYDOWN:
-			if (event.kbd.keycode == Common::KEYCODE_d && event.kbd.hasFlags(Common::KBD_CTRL)) {
-				// Start the debugger
-				getDebugger()->attach();
-				getDebugger()->onFrame();
-			}
 			addKeyToBuffer(event.kbd);
 			break;
 		case Common::EVENT_KEYUP:
diff --git a/engines/drascula/drascula.h b/engines/drascula/drascula.h
index b0a4bed..ecd73c2 100644
--- a/engines/drascula/drascula.h
+++ b/engines/drascula/drascula.h
@@ -733,9 +733,6 @@ public:
 	void update_62_pre();
 	void update_102();
 
-	Console *_console;
-	GUI::Debugger *getDebugger() override { return _console; }
-
 private:
 	int _lang;
 


Commit: f21ffdca330c362b46837c5fb32e68942f2a2fd2
    https://github.com/scummvm/scummvm/commit/f21ffdca330c362b46837c5fb32e68942f2a2fd2
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
DREAMWEB: Refactor to use Engine debugger

Changed paths:
    engines/dreamweb/dreamweb.cpp
    engines/dreamweb/dreamweb.h


diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index 76db211..de2e464 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -49,7 +49,6 @@ DreamWebEngine::DreamWebEngine(OSystem *syst, const DreamWebGameDescription *gam
 	DebugMan.addDebugChannel(kDebugAnimation, "Animation", "Animation Debug Flag");
 	DebugMan.addDebugChannel(kDebugSaveLoad, "SaveLoad", "Track Save/Load Function");
 
-	_console = 0;
 	_sound = 0;
 	_speed = 1;
 	_turbo = false;
@@ -270,7 +269,6 @@ DreamWebEngine::DreamWebEngine(OSystem *syst, const DreamWebGameDescription *gam
 
 DreamWebEngine::~DreamWebEngine() {
 	DebugMan.clearAllDebugChannels();
-	delete _console;
 	delete _sound;
 }
 
@@ -321,11 +319,6 @@ void DreamWebEngine::processEvents(bool processSoundEvents) {
 			if (event.kbd.flags & Common::KBD_CTRL) {
 				switch (event.kbd.keycode) {
 
-				case Common::KEYCODE_d:
-					_console->attach();
-					_console->onFrame();
-					break;
-
 				case Common::KEYCODE_f:
 					setSpeed(_speed != 20? 20: 1);
 					break;
@@ -399,7 +392,7 @@ void DreamWebEngine::processEvents(bool processSoundEvents) {
 
 Common::Error DreamWebEngine::run() {
 	syncSoundSettings();
-	_console = new DreamWebConsole(this);
+	setDebugger(new DreamWebConsole(this));
 	_sound = new DreamWebSound(this);
 
 	_hasSpeech = Common::File::exists(_speechDirName + "/r01c0000.raw") && !ConfMan.getBool("speech_mute");
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index 7e36a1d..7c09f4d 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -100,7 +100,6 @@ class DreamWebSound;
 
 class DreamWebEngine : public Engine {
 private:
-	DreamWebConsole			*_console;
 	DreamWebSound *_sound;
 
 protected:
@@ -108,8 +107,6 @@ protected:
 	Common::Error run() override;
 	bool hasFeature(EngineFeature f) const override;
 
-	GUI::Debugger *getDebugger() override { return _console; }
-
 public:
 	DreamWebEngine(OSystem *syst, const DreamWebGameDescription *gameDesc);
 	~DreamWebEngine() override;


Commit: 8c32bb6c6f43b2424fd133b626df054234fcb17b
    https://github.com/scummvm/scummvm/commit/8c32bb6c6f43b2424fd133b626df054234fcb17b
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
FULLPIPE: Refactor to use Engine debugger

Changed paths:
    engines/fullpipe/console.cpp
    engines/fullpipe/console.h
    engines/fullpipe/fullpipe.cpp
    engines/fullpipe/fullpipe.h


diff --git a/engines/fullpipe/console.cpp b/engines/fullpipe/console.cpp
index dd3d1bf..95a9345 100644
--- a/engines/fullpipe/console.cpp
+++ b/engines/fullpipe/console.cpp
@@ -20,6 +20,7 @@
  *
  */
 
+#include "fullpipe/console.h"
 #include "fullpipe/constants.h"
 #include "fullpipe/fullpipe.h"
 #include "fullpipe/gameloader.h"
diff --git a/engines/fullpipe/console.h b/engines/fullpipe/console.h
index 24f213a..0204527 100644
--- a/engines/fullpipe/console.h
+++ b/engines/fullpipe/console.h
@@ -23,6 +23,8 @@
 #ifndef FULLPIPE_CONSOLE_H
 #define FULLPIPE_CONSOLE_H
 
+#include "gui/debugger.h"
+
 namespace Fullpipe {
 
 class FullpipeEngine;
diff --git a/engines/fullpipe/fullpipe.cpp b/engines/fullpipe/fullpipe.cpp
index 409f886..de4c633 100644
--- a/engines/fullpipe/fullpipe.cpp
+++ b/engines/fullpipe/fullpipe.cpp
@@ -51,7 +51,6 @@ Vars *g_vars = nullptr;
 FullpipeEngine::FullpipeEngine(OSystem *syst, const ADGameDescription *gameDesc) :
 	Engine(syst),
 	_gameDescription(gameDesc),
-	_console(this),
 	_rnd("fullpipe"),
 	_gameProject(nullptr),
 	_modalObject(nullptr),
@@ -78,6 +77,8 @@ FullpipeEngine::FullpipeEngine(OSystem *syst, const ADGameDescription *gameDesc)
 	_sfxVolume = ConfMan.getInt("sfx_volume") * 39 - 10000;
 	_musicVolume = ConfMan.getInt("music_volume");
 
+	setDebugger(new Console(this));
+
 	_gameProjectVersion = 0;
 	_pictureScale = 8;
 	_scrollSpeed = 0;
@@ -378,11 +379,6 @@ void FullpipeEngine::updateEvents() {
 				return;
 				break;
 			default:
-				if (event.kbd.keycode == Common::KEYCODE_d && event.kbd.hasFlags(Common::KBD_CTRL)) {
-					// Start the debugger
-					getDebugger()->attach();
-					getDebugger()->onFrame();
-				}
 				ex = new ExCommand(0, 17, 36, 0, 0, 0, 1, 0, 0, 0);
 				ex->_param = event.kbd.keycode;
 				ex->_excFlags |= 3;
diff --git a/engines/fullpipe/fullpipe.h b/engines/fullpipe/fullpipe.h
index 41fab8a..609a7a0 100644
--- a/engines/fullpipe/fullpipe.h
+++ b/engines/fullpipe/fullpipe.h
@@ -34,8 +34,6 @@
 #include "graphics/surface.h"
 
 #include "engines/engine.h"
-
-#include "gui/debugger.h"
 #include "fullpipe/console.h"
 
 struct ADGameDescription;
@@ -110,9 +108,6 @@ public:
 	FullpipeEngine(OSystem *syst, const ADGameDescription *gameDesc);
 	~FullpipeEngine() override;
 
-	Console _console;
-	GUI::Debugger *getDebugger() override { return &_console; }
-
 	void initialize();
 	void restartGame();
 	bool shouldQuit();


Commit: a54b19976f8666d2f911664902df8e79da15aeeb
    https://github.com/scummvm/scummvm/commit/a54b19976f8666d2f911664902df8e79da15aeeb
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
GLK: Refactor to use Engine debugger

Changed paths:
    engines/glk/events.cpp
    engines/glk/glk.cpp
    engines/glk/glk.h


diff --git a/engines/glk/events.cpp b/engines/glk/events.cpp
index a1a71fc..4255030 100644
--- a/engines/glk/events.cpp
+++ b/engines/glk/events.cpp
@@ -186,13 +186,7 @@ void Events::pollEvents() {
 
 		switch (event.type) {
 		case Common::EVENT_KEYDOWN: {
-			// Check for debugger
-			Debugger *dbg = g_vm->_debugger;
-			if (dbg && event.kbd.keycode == Common::KEYCODE_d && (event.kbd.flags & Common::KBD_CTRL)) {
-				// Attach to the debugger
-				dbg->attach();
-				dbg->onFrame();
-			} else if (!isModifierKey(event.kbd.keycode)) {
+			if (!isModifierKey(event.kbd.keycode)) {
 				// Handle all other keypresses
 				setCursor(CURSOR_NONE);
 				handleKeyDown(event.kbd);
diff --git a/engines/glk/glk.cpp b/engines/glk/glk.cpp
index 5af9983..a168051 100644
--- a/engines/glk/glk.cpp
+++ b/engines/glk/glk.cpp
@@ -32,6 +32,7 @@
 #include "glk/glk.h"
 #include "glk/blorb.h"
 #include "glk/conf.h"
+#include "glk/debugger.h"
 #include "glk/events.h"
 #include "glk/picture.h"
 #include "glk/quetzal.h"
@@ -47,8 +48,8 @@ GlkEngine *g_vm;
 
 GlkEngine::GlkEngine(OSystem *syst, const GlkGameDescription &gameDesc) :
 		_gameDescription(gameDesc), Engine(syst), _random("Glk"), _quitFlag(false), _blorb(nullptr),
-		_clipboard(nullptr), _conf(nullptr), _debugger(nullptr), _events(nullptr), _pictures(nullptr),
-		_screen(nullptr), _selection(nullptr), _sounds(nullptr), _streams(nullptr), _windows(nullptr),
+		_clipboard(nullptr), _conf(nullptr),_events(nullptr), _pictures(nullptr), _screen(nullptr),
+		_selection(nullptr), _sounds(nullptr), _streams(nullptr), _windows(nullptr),
 		_copySelect(false), _terminated(false), _pcSpeaker(nullptr), _loadSaveSlot(-1),
 		gli_register_obj(nullptr), gli_unregister_obj(nullptr), gli_register_arr(nullptr),
 		gli_unregister_arr(nullptr) {
@@ -65,7 +66,6 @@ GlkEngine::~GlkEngine() {
 	delete _blorb;
 	delete _clipboard;
 	delete _conf;
-	delete _debugger;
 	delete _events;
 	delete _pcSpeaker;
 	delete _pictures;
@@ -78,9 +78,9 @@ GlkEngine::~GlkEngine() {
 
 void GlkEngine::initialize() {
 	initGraphicsMode();
+	setDebugger(new Debugger());
 
 	_conf = new Conf(getInterpreterType());
-	_debugger = createDebugger();
 	_screen = createScreen();
 	_screen->initialize();
 	_clipboard = new Clipboard();
diff --git a/engines/glk/glk.h b/engines/glk/glk.h
index ca09089..7cc6bc2 100644
--- a/engines/glk/glk.h
+++ b/engines/glk/glk.h
@@ -28,7 +28,6 @@
 #include "common/system.h"
 #include "common/serializer.h"
 #include "engines/engine.h"
-#include "glk/debugger.h"
 #include "glk/glk_types.h"
 #include "glk/streams.h"
 #include "glk/pc_speaker.h"
@@ -101,13 +100,6 @@ protected:
 	virtual Screen *createScreen();
 
 	/**
-	 * Creates a debugger instance
-	 */
-	virtual Debugger *createDebugger() {
-		return new Debugger();
-	}
-
-	/**
 	 * Main game loop for the individual interpreters
 	 */
 	virtual void runGame() = 0;
@@ -115,7 +107,6 @@ public:
 	Blorb *_blorb;
 	Clipboard *_clipboard;
 	Conf *_conf;
-	Debugger *_debugger;
 	Events *_events;
 	Pictures *_pictures;
 	Screen *_screen;


Commit: fb9d51be0edaf0eeec93906eb3810f45edc8d685
    https://github.com/scummvm/scummvm/commit/fb9d51be0edaf0eeec93906eb3810f45edc8d685
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
GNAP: Refactor to use Engine debugger

Changed paths:
    engines/gnap/gnap.cpp


diff --git a/engines/gnap/gnap.cpp b/engines/gnap/gnap.cpp
index ac4cc91..e75be5d 100644
--- a/engines/gnap/gnap.cpp
+++ b/engines/gnap/gnap.cpp
@@ -252,6 +252,7 @@ Common::Error GnapEngine::run() {
 	_gameSys = new GameSys(this);
 	_soundMan = new SoundMan(this);
 	_debugger = new Debugger();
+	setDebugger(_debugger);
 	_gnap = new PlayerGnap(this);
 	_plat = new PlayerPlat(this);
 
@@ -268,7 +269,7 @@ Common::Error GnapEngine::run() {
 	delete _soundCache;
 	delete _spriteCache;
 	delete _dat;
-	delete _debugger;
+	//delete _debugger; Debugger is deleted by Engine
 	delete _font;
 	delete _exe;
 
@@ -281,13 +282,6 @@ void GnapEngine::updateEvents() {
 	while (_eventMan->pollEvent(event)) {
 		switch (event.type) {
 		case Common::EVENT_KEYDOWN:
-			// Check for debugger
-			if (event.kbd.keycode == Common::KEYCODE_d && (event.kbd.flags & Common::KBD_CTRL)) {
-				// Attach to the debugger
-				_debugger->attach();
-				_debugger->onFrame();
-			}
-
 			_keyPressState[event.kbd.keycode] = true;
 			_keyDownState[event.kbd.keycode] = true;
 			break;


Commit: c99c1879835dac7bffab3700570e01b19c09d916
    https://github.com/scummvm/scummvm/commit/c99c1879835dac7bffab3700570e01b19c09d916
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
GOB: Refactor to use Engine debugger

Changed paths:
    engines/gob/gob.cpp
    engines/gob/gob.h
    engines/gob/minigames/geisha/penetration.cpp
    engines/gob/util.cpp


diff --git a/engines/gob/gob.cpp b/engines/gob/gob.cpp
index a936f29..23b6669 100644
--- a/engines/gob/gob.cpp
+++ b/engines/gob/gob.cpp
@@ -150,12 +150,12 @@ GobEngine::GobEngine(OSystem *syst) : Engine(syst), _rnd("gob") {
 	_copyProtection = ConfMan.getBool("copy_protection");
 
 	_console = new GobConsole(this);
+	setDebugger(_console);
 }
 
 GobEngine::~GobEngine() {
 	deinitGameParts();
-
-	delete _console;
+	//_console is deleted by Engine
 }
 
 const char *GobEngine::getLangDesc(int16 language) const {
diff --git a/engines/gob/gob.h b/engines/gob/gob.h
index 18fa002..b5287b8 100644
--- a/engines/gob/gob.h
+++ b/engines/gob/gob.h
@@ -257,8 +257,6 @@ public:
 
 	void setTrueColor(bool trueColor);
 
-	GUI::Debugger *getDebugger() override { return _console; }
-
 	const Graphics::PixelFormat &getPixelFormat() const;
 
 	GobEngine(OSystem *syst);
diff --git a/engines/gob/minigames/geisha/penetration.cpp b/engines/gob/minigames/geisha/penetration.cpp
index a69d998..549dfc6 100644
--- a/engines/gob/minigames/geisha/penetration.cpp
+++ b/engines/gob/minigames/geisha/penetration.cpp
@@ -983,10 +983,6 @@ void Penetration::checkInput() {
 				_keys[kKeyRight] = true;
 			else if (event.kbd.keycode == Common::KEYCODE_SPACE)
 				_keys[kKeySpace] = true;
-			else if (event.kbd.keycode == Common::KEYCODE_d) {
-				_vm->getDebugger()->attach();
-				_vm->getDebugger()->onFrame();
-			}
 			break;
 
 		case Common::EVENT_KEYUP:
diff --git a/engines/gob/util.cpp b/engines/gob/util.cpp
index 8ca8e03..19840d8 100644
--- a/engines/gob/util.cpp
+++ b/engines/gob/util.cpp
@@ -126,10 +126,6 @@ void Util::processInput(bool scroll) {
 					_fastMode ^= 2;
 				else if (event.kbd.keycode == Common::KEYCODE_p)
 					_vm->pauseGame();
-				else if (event.kbd.keycode == Common::KEYCODE_d) {
-					_vm->getDebugger()->attach();
-					_vm->getDebugger()->onFrame();
-				}
 				break;
 			}
 			addKeyToBuffer(event.kbd);


Commit: d91ec90db95493b93e692b2bed698a5dc4ad55c3
    https://github.com/scummvm/scummvm/commit/d91ec90db95493b93e692b2bed698a5dc4ad55c3
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
GRIFFON: Refactor to use Engine debugger

Changed paths:
    engines/griffon/engine.cpp
    engines/griffon/griffon.cpp
    engines/griffon/input.cpp


diff --git a/engines/griffon/engine.cpp b/engines/griffon/engine.cpp
index ae781b5..9da522d 100644
--- a/engines/griffon/engine.cpp
+++ b/engines/griffon/engine.cpp
@@ -106,9 +106,6 @@ void GriffonEngine::mainLoop() {
 		drawView();
 
 		updateMusic();
-
-		 _console->onFrame();
-
 		updateEngine();
 	} while (!_shouldQuit && _gameMode == kGameModePlay);
 }
diff --git a/engines/griffon/griffon.cpp b/engines/griffon/griffon.cpp
index e869d7b..ace6ba9 100644
--- a/engines/griffon/griffon.cpp
+++ b/engines/griffon/griffon.cpp
@@ -98,6 +98,7 @@ GriffonEngine::GriffonEngine(OSystem *syst) : Engine(syst) {
 
 GriffonEngine::~GriffonEngine() {
 	delete _rnd;
+	//delete _console; Debugger is deleted by Engine
 }
 
 void GriffonEngine::syncSoundSettings() {
@@ -134,6 +135,7 @@ Common::Error GriffonEngine::run() {
 	_mixer = g_system->getMixer();
 
 	_console = new Console();
+	setDebugger(_console);
 
 	initialize();
 
diff --git a/engines/griffon/input.cpp b/engines/griffon/input.cpp
index 5caa5af..5db7421 100644
--- a/engines/griffon/input.cpp
+++ b/engines/griffon/input.cpp
@@ -78,9 +78,6 @@ void GriffonEngine::checkInputs() {
 		if (_event.kbd.keycode == Common::KEYCODE_ESCAPE) {
 			if (_itemTicks < _ticks)
 				title(1);
-		} else if (_event.kbd.keycode == Common::KEYCODE_d && _event.kbd.hasFlags(Common::KBD_CTRL)) {
-			_console->attach();
-			_event.type = Common::EVENT_INVALID;
 		} else if (_event.kbd.hasFlags(Common::KBD_CTRL)) {
 			if (!_itemSelOn && (_itemTicks < _ticks))
 				attack();


Commit: be402cfac979476518a551b15a53bfc63f558a5e
    https://github.com/scummvm/scummvm/commit/be402cfac979476518a551b15a53bfc63f558a5e
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
GROOVIE: Refactor to use Engine debugger

Changed paths:
    engines/groovie/groovie.cpp
    engines/groovie/groovie.h


diff --git a/engines/groovie/groovie.cpp b/engines/groovie/groovie.cpp
index 3b21dd5..213ceb4 100644
--- a/engines/groovie/groovie.cpp
+++ b/engines/groovie/groovie.cpp
@@ -48,7 +48,7 @@
 namespace Groovie {
 
 GroovieEngine::GroovieEngine(OSystem *syst, const GroovieGameDescription *gd) :
-	Engine(syst), _gameDescription(gd), _debugger(NULL), _script(NULL),
+	Engine(syst), _gameDescription(gd), _script(NULL),
 	_resMan(NULL), _grvCursorMan(NULL), _videoPlayer(NULL), _musicPlayer(NULL),
 	_graphicsMan(NULL), _macResFork(NULL), _waitingForInput(false), _font(NULL),
 	_spookyMode(false) {
@@ -79,7 +79,6 @@ GroovieEngine::GroovieEngine(OSystem *syst, const GroovieGameDescription *gd) :
 
 GroovieEngine::~GroovieEngine() {
 	// Delete the remaining objects
-	delete _debugger;
 	delete _resMan;
 	delete _grvCursorMan;
 	delete _videoPlayer;
@@ -124,8 +123,9 @@ Common::Error GroovieEngine::run() {
 	}
 
 	// Create debugger. It requires GFX to be initialized
-	_debugger = new Debugger(this);
-	_script->setDebugger(_debugger);
+	Debugger *debugger = new Debugger(this);
+	setDebugger(debugger);
+	_script->setDebugger(debugger);
 
 	// Create the graphics manager
 	_graphicsMan = new GraphicsMan(this);
@@ -262,18 +262,11 @@ Common::Error GroovieEngine::run() {
 	}
 
 	while (!shouldQuit()) {
-		// Give the debugger a chance to act
-		_debugger->onFrame();
-
 		// Handle input
 		Common::Event ev;
 		while (_eventMan->pollEvent(ev)) {
 			switch (ev.type) {
 			case Common::EVENT_KEYDOWN:
-				// CTRL-D: Attach the debugger
-				if ((ev.kbd.flags & Common::KBD_CTRL) && ev.kbd.keycode == Common::KEYCODE_d)
-					_debugger->attach();
-
 				// Send the event to the scripts
 				_script->setKbdChar(ev.kbd.ascii);
 
diff --git a/engines/groovie/groovie.h b/engines/groovie/groovie.h
index b322b89..73f07ca 100644
--- a/engines/groovie/groovie.h
+++ b/engines/groovie/groovie.h
@@ -108,8 +108,6 @@ protected:
 	Common::Error saveGameState(int slot, const Common::String &desc) override;
 	void syncSoundSettings() override;
 
-	Debugger *getDebugger() override { return _debugger; }
-
 public:
 	void waitForInput();
 
@@ -129,7 +127,6 @@ public:
 
 private:
 	const GroovieGameDescription *_gameDescription;
-	Debugger *_debugger;
 	bool _waitingForInput;
 	T7GFont _sphinxFont;
 };


Commit: 22d7c1c15e1a82042ee3436d8d29a64669c70dcd
    https://github.com/scummvm/scummvm/commit/22d7c1c15e1a82042ee3436d8d29a64669c70dcd
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
HOPKINS: Refactor to use Engine debugger

Changed paths:
    engines/hopkins/events.cpp
    engines/hopkins/hopkins.cpp
    engines/hopkins/hopkins.h


diff --git a/engines/hopkins/events.cpp b/engines/hopkins/events.cpp
index 58b8be1..f840f67 100644
--- a/engines/hopkins/events.cpp
+++ b/engines/hopkins/events.cpp
@@ -230,9 +230,6 @@ void EventsManager::checkForNextFrameCounter() {
 		++_gameCounter;
 		_priorFrameTime = milli;
 		_vm->_graphicsMan->updateScreen();
-
-		// Signal the ScummVM debugger
-		_vm->_debug->onFrame();
 	}
 }
 
@@ -295,14 +292,6 @@ void EventsManager::handleKey(const Common::Event &event) {
 		_gameKey = KEY_LOAD;
 	else if (event.kbd.keycode == Common::KEYCODE_F1 || event.kbd.keycode == Common::KEYCODE_o)
 		_gameKey = KEY_OPTIONS;
-
-	// Check for debugger
-	if ((event.kbd.keycode == Common::KEYCODE_d) && (event.kbd.flags & Common::KBD_CTRL)) {
-		// Attach to the debugger
-		_vm->_debug->attach();
-		_vm->_debug->onFrame();
-	}
-
 }
 
 /**
diff --git a/engines/hopkins/hopkins.cpp b/engines/hopkins/hopkins.cpp
index 7b16cd3..c9d44ee 100644
--- a/engines/hopkins/hopkins.cpp
+++ b/engines/hopkins/hopkins.cpp
@@ -42,7 +42,7 @@ HopkinsEngine::HopkinsEngine(OSystem *syst, const HopkinsGameDescription *gameDe
 	_animMan = new AnimationManager(this);
 	_computer = new ComputerManager(this);
 	_dialog = new DialogsManager(this);
-	_debug = new Debugger(this);
+	setDebugger(new Debugger(this));
 	_events = new EventsManager(this);
 	_fileIO = new FileManager(this);
 	_fontMan = new FontManager(this);
@@ -72,7 +72,6 @@ HopkinsEngine::~HopkinsEngine() {
 	delete _fontMan;
 	delete _fileIO;
 	delete _events;
-	delete _debug;
 	delete _dialog;
 	delete _computer;
 	delete _animMan;
diff --git a/engines/hopkins/hopkins.h b/engines/hopkins/hopkins.h
index 5a1060a..9e2510a 100644
--- a/engines/hopkins/hopkins.h
+++ b/engines/hopkins/hopkins.h
@@ -131,13 +131,10 @@ protected:
 	Common::Error run() override;
 	bool hasFeature(EngineFeature f) const override;
 
-	GUI::Debugger *getDebugger()  override{ return _debug; }
-
 public:
 	AnimationManager *_animMan;
 	ComputerManager *_computer;
 	DialogsManager *_dialog;
-	Debugger *_debug;
 	EventsManager *_events;
 	FileManager *_fileIO;
 	FontManager *_fontMan;


Commit: f1b47670bf68b35598040668f9a9e3024aed9ecc
    https://github.com/scummvm/scummvm/commit/f1b47670bf68b35598040668f9a9e3024aed9ecc
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
HUGO: Refactor to use Engine debugger

Changed paths:
    engines/hugo/hugo.cpp
    engines/hugo/hugo.h
    engines/hugo/parser.cpp


diff --git a/engines/hugo/hugo.cpp b/engines/hugo/hugo.cpp
index 9c609c3..cdecac8 100644
--- a/engines/hugo/hugo.cpp
+++ b/engines/hugo/hugo.cpp
@@ -68,7 +68,7 @@ HugoEngine::HugoEngine(OSystem *syst, const HugoGameDescription *gd) : Engine(sy
 	DebugMan.addDebugChannel(kDebugObject, "Object", "Object debug level");
 	DebugMan.addDebugChannel(kDebugMusic, "Music", "Music debug level");
 
-	_console = new HugoConsole(this);
+	setDebugger(new HugoConsole(this));
 	_rnd = 0;
 
 	_screen = nullptr;
@@ -149,14 +149,9 @@ HugoEngine::~HugoEngine() {
 	delete _text;
 
 	DebugMan.clearAllDebugChannels();
-	delete _console;
 	delete _rnd;
 }
 
-GUI::Debugger *HugoEngine::getDebugger() {
-	return _console;
-}
-
 Status &HugoEngine::getGameStatus() {
 	return _status;
 }
diff --git a/engines/hugo/hugo.h b/engines/hugo/hugo.h
index 886f9ff..45422c9 100644
--- a/engines/hugo/hugo.h
+++ b/engines/hugo/hugo.h
@@ -239,8 +239,6 @@ public:
 	Maze      _maze;                                // Maze control structure
 	hugoBoot  _boot;                                // Boot info structure
 
-	GUI::Debugger *getDebugger() override;
-
 	Common::RandomSource *_rnd;
 
 	const char *_episode;
@@ -320,8 +318,6 @@ private:
 
 	static HugoEngine *s_Engine;
 
-	HugoConsole *_console;
-
 	GameType _gameType;
 	Common::Platform _platform;
 	bool _packedFl;
diff --git a/engines/hugo/parser.cpp b/engines/hugo/parser.cpp
index 7ee0198..c853023 100644
--- a/engines/hugo/parser.cpp
+++ b/engines/hugo/parser.cpp
@@ -286,10 +286,6 @@ void Parser::keyHandler(Common::Event event) {
 
 	if (event.kbd.hasFlags(Common::KBD_CTRL)) {
 		switch (nChar) {
-		case Common::KEYCODE_d:
-			_vm->getDebugger()->attach();
-			_vm->getDebugger()->onFrame();
-			break;
 		case Common::KEYCODE_l:
 			_vm->_file->restoreGame(-1);
 			break;


Commit: ce9bf175a5afa6fca9785ca55373d56bb66462f4
    https://github.com/scummvm/scummvm/commit/ce9bf175a5afa6fca9785ca55373d56bb66462f4
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
KYRA: Refactor to use Engine debugger

Changed paths:
    engines/kyra/engine/eobcommon.cpp
    engines/kyra/engine/kyra_hof.cpp
    engines/kyra/engine/kyra_lok.cpp
    engines/kyra/engine/kyra_mr.cpp
    engines/kyra/engine/kyra_v1.cpp
    engines/kyra/engine/lol.cpp
    engines/kyra/kyra_v1.h


diff --git a/engines/kyra/engine/eobcommon.cpp b/engines/kyra/engine/eobcommon.cpp
index d51f132..002c7c2 100644
--- a/engines/kyra/engine/eobcommon.cpp
+++ b/engines/kyra/engine/eobcommon.cpp
@@ -48,7 +48,6 @@ EoBCoreEngine::EoBCoreEngine(OSystem *system, const GameFlags &flags) : KyraRpgE
 
 	_screen = 0;
 	_gui = 0;
-	_debugger = 0;
 
 	_playFinale = false;
 	_runFlag = true;
@@ -337,8 +336,6 @@ EoBCoreEngine::~EoBCoreEngine() {
 	_inf = 0;
 	delete _timer;
 	_timer = 0;
-	delete _debugger;
-	_debugger = 0;
 	delete _txt;
 	_txt = 0;
 }
@@ -458,8 +455,7 @@ Common::Error EoBCoreEngine::init() {
 	assert(_txt);
 	_inf = new EoBInfProcessor(this, _screen);
 	assert(_inf);
-	_debugger = new Debugger_EoB(this);
-	assert(_debugger);
+	setDebugger(new Debugger_EoB(this));
 	
 	if (_flags.platform == Common::kPlatformAmiga) {
 		if (_res->exists("EOBF6.FONT"))
@@ -571,7 +567,7 @@ Common::Error EoBCoreEngine::init() {
 }
 
 Common::Error EoBCoreEngine::go() {
-	_debugger->initialize();
+	static_cast<Debugger_EoB *>(getDebugger())->initialize();
 	_txt->removePageBreakFlag();
 	_screen->setFont(_flags.platform == Common::kPlatformPC98 ? Screen::FID_SJIS_FNT : Screen::FID_8_FNT);
 	loadItemsAndDecorationsShapes();
diff --git a/engines/kyra/engine/kyra_hof.cpp b/engines/kyra/engine/kyra_hof.cpp
index 11d82f2..043d35b 100644
--- a/engines/kyra/engine/kyra_hof.cpp
+++ b/engines/kyra/engine/kyra_hof.cpp
@@ -177,8 +177,7 @@ Common::Error KyraEngine_HoF::init() {
 	assert(_screen);
 	_screen->setResolution();
 
-	_debugger = new Debugger_HoF(this);
-	assert(_debugger);
+	setDebugger(new Debugger_HoF(this));
 
 	KyraEngine_v1::init();
 	initStaticResource();
@@ -397,7 +396,7 @@ void KyraEngine_HoF::startup() {
 
 void KyraEngine_HoF::runLoop() {
 	// Initialize debugger since how it should be fully usable
-	_debugger->initialize();
+	static_cast<Debugger_HoF *>(getDebugger())->initialize();
 
 	_screen->updateScreen();
 
diff --git a/engines/kyra/engine/kyra_lok.cpp b/engines/kyra/engine/kyra_lok.cpp
index 30a83b2..a6b0a20 100644
--- a/engines/kyra/engine/kyra_lok.cpp
+++ b/engines/kyra/engine/kyra_lok.cpp
@@ -168,8 +168,7 @@ Common::Error KyraEngine_LoK::init() {
 	assert(_screen);
 	_screen->setResolution();
 
-	_debugger = new Debugger_LoK(this);
-	assert(_debugger);
+	setDebugger(new Debugger_LoK(this));
 
 	KyraEngine_v1::init();
 
@@ -432,7 +431,7 @@ void KyraEngine_LoK::startup() {
 
 void KyraEngine_LoK::mainLoop() {
 	// Initialize debugger since how it should be fully usable
-	_debugger->initialize();
+	static_cast<Debugger_LoK *>(getDebugger())->initialize();
 
 	_eventList.clear();
 
diff --git a/engines/kyra/engine/kyra_mr.cpp b/engines/kyra/engine/kyra_mr.cpp
index 03c309c..a1c0108 100644
--- a/engines/kyra/engine/kyra_mr.cpp
+++ b/engines/kyra/engine/kyra_mr.cpp
@@ -205,8 +205,7 @@ Common::Error KyraEngine_MR::init() {
 	assert(_screen);
 	_screen->setResolution();
 
-	_debugger = new Debugger_v2(this);
-	assert(_debugger);
+	setDebugger(new Debugger_v2(this));
 
 	KyraEngine_v1::init();
 	initStaticResource();
@@ -885,7 +884,7 @@ bool KyraEngine_MR::checkCharCollision(int x, int y) {
 
 void KyraEngine_MR::runLoop() {
 	// Initialize debugger since how it should be fully usable
-	_debugger->initialize();
+	static_cast<Debugger_v2 *>(getDebugger())->initialize();
 
 	_eventList.clear();
 
diff --git a/engines/kyra/engine/kyra_v1.cpp b/engines/kyra/engine/kyra_v1.cpp
index 97cb69e..ccb6280 100644
--- a/engines/kyra/engine/kyra_v1.cpp
+++ b/engines/kyra/engine/kyra_v1.cpp
@@ -40,7 +40,6 @@ KyraEngine_v1::KyraEngine_v1(OSystem *system, const GameFlags &flags)
 	_staticres = 0;
 	_timer = 0;
 	_emc = 0;
-	_debugger = 0;
 
 	_configRenderMode = Common::kRenderDefault;
 	_configNullSound = false;
@@ -83,10 +82,6 @@ KyraEngine_v1::KyraEngine_v1(OSystem *system, const GameFlags &flags)
 	DebugMan.addDebugChannel(kDebugLevelTimer, "Timer", "Timer debug level");
 }
 
-::GUI::Debugger *KyraEngine_v1::getDebugger() {
-	return _debugger;
-}
-
 void KyraEngine_v1::pauseEngineIntern(bool pause) {
 	Engine::pauseEngineIntern(pause);
 	if (_sound)
@@ -217,7 +212,6 @@ KyraEngine_v1::~KyraEngine_v1() {
 	delete _text;
 	delete _timer;
 	delete _emc;
-	delete _debugger;
 }
 
 Common::Point KyraEngine_v1::getMousePos() {
@@ -284,11 +278,7 @@ int KyraEngine_v1::checkInput(Button *buttonList, bool mainLoop, int eventFlag)
 					saveGameStateIntern(saveLoadSlot, savegameName, 0);
 				}
 			} else if (event.kbd.hasFlags(Common::KBD_CTRL)) {
-				if (event.kbd.keycode == Common::KEYCODE_d) {
-					if (_debugger)
-						_debugger->attach();
-					breakLoop = true;
-				} else if (event.kbd.keycode == Common::KEYCODE_q) {
+				if (event.kbd.keycode == Common::KEYCODE_q) {
 					quitGame();
 				}
 			} else {
@@ -346,9 +336,6 @@ int KyraEngine_v1::checkInput(Button *buttonList, bool mainLoop, int eventFlag)
 			break;
 		}
 
-		if (_debugger)
-			_debugger->onFrame();
-
 		if (breakLoop)
 			break;
 
diff --git a/engines/kyra/engine/lol.cpp b/engines/kyra/engine/lol.cpp
index cb48a27..e0f7f15 100644
--- a/engines/kyra/engine/lol.cpp
+++ b/engines/kyra/engine/lol.cpp
@@ -367,8 +367,7 @@ Common::Error LoLEngine::init() {
 	assert(_screen);
 	_screen->setResolution();
 
-	_debugger = new Debugger_LoL(this);
-	assert(_debugger);
+	setDebugger(new Debugger_LoL(this));
 
 	KyraEngine_v1::init();
 	initStaticResource();
@@ -857,7 +856,7 @@ void LoLEngine::startupNew() {
 
 void LoLEngine::runLoop() {
 	// Initialize debugger since how it should be fully usable
-	_debugger->initialize();
+	static_cast<Debugger_LoL *>(getDebugger())->initialize();
 
 	enableSysTimer(2);
 
diff --git a/engines/kyra/kyra_v1.h b/engines/kyra/kyra_v1.h
index 534e567..ff3a3c6 100644
--- a/engines/kyra/kyra_v1.h
+++ b/engines/kyra/kyra_v1.h
@@ -256,7 +256,6 @@ protected:
 		return go();
 	}
 
-	::GUI::Debugger *getDebugger() override;
 	bool hasFeature(EngineFeature f) const override;
 	void pauseEngineIntern(bool pause) override;
 
@@ -267,7 +266,6 @@ protected:
 	StaticResource *_staticres;
 	TimerManager *_timer;
 	EMCInterpreter *_emc;
-	Debugger *_debugger;
 
 	// input
 	void setupKeyMap();


Commit: 72d0d84be2868c0c6a96e924eb8a89850101eee5
    https://github.com/scummvm/scummvm/commit/72d0d84be2868c0c6a96e924eb8a89850101eee5
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
LAB: Refactor to use Engine debugger

Changed paths:
    engines/lab/dispman.cpp
    engines/lab/eventman.cpp
    engines/lab/lab.cpp
    engines/lab/lab.h


diff --git a/engines/lab/dispman.cpp b/engines/lab/dispman.cpp
index d642f2f..1ff6ab1 100644
--- a/engines/lab/dispman.cpp
+++ b/engines/lab/dispman.cpp
@@ -414,7 +414,6 @@ void DisplayMan::screenUpdate() {
 	_vm->_event->processInput();
 
 	_vm->_system->copyRectToScreen(_displayBuffer, _screenWidth, 0, 0, _screenWidth, _screenHeight);
-	_vm->_console->onFrame();
 	_vm->_system->updateScreen();
 }
 
diff --git a/engines/lab/eventman.cpp b/engines/lab/eventman.cpp
index 62e1f75..8242d58 100644
--- a/engines/lab/eventman.cpp
+++ b/engines/lab/eventman.cpp
@@ -117,13 +117,6 @@ void EventManager::processInput() {
 			case Common::KEYCODE_RIGHTBRACKET:
 				_vm->changeVolume(1);
 				break;
-			case Common::KEYCODE_d:
-				if (event.kbd.hasFlags(Common::KBD_CTRL)) {
-					// Open debugger console
-					_vm->_console->attach();
-					continue;
-				}
-				// Intentional fall through
 			default:
 				_keyPressed = event.kbd;
 				break;
diff --git a/engines/lab/lab.cpp b/engines/lab/lab.cpp
index ee67d3a..5584464 100644
--- a/engines/lab/lab.cpp
+++ b/engines/lab/lab.cpp
@@ -90,7 +90,6 @@ LabEngine::LabEngine(OSystem *syst, const ADGameDescription *gameDesc)
 	_roomsFound = nullptr;
 	_specialLocks = nullptr;
 	_utils = nullptr;
-	_console = nullptr;
 	_journalBackImage = nullptr;
 
 	_lastTooLong = false;
@@ -154,7 +153,6 @@ LabEngine::~LabEngine() {
 	delete _graphics;
 	delete _specialLocks;
 	delete _utils;
-	delete _console;
 	delete _journalBackImage;
 }
 
@@ -172,7 +170,7 @@ Common::Error LabEngine::run() {
 	_anim = new Anim(this);
 	_specialLocks = new SpecialLocks(this);
 	_utils = new Utils(this);
-	_console = new Console(this);
+	setDebugger(new Console(this));
 	_journalBackImage = new Image(this);
 
 	go();
diff --git a/engines/lab/lab.h b/engines/lab/lab.h
index e33272b..a72a99e 100644
--- a/engines/lab/lab.h
+++ b/engines/lab/lab.h
@@ -199,8 +199,6 @@ public:
 	TextFont *_msgFont;
 	SpecialLocks *_specialLocks;
 	Utils *_utils;
-	Console *_console;
-	GUI::Debugger *getDebugger() override { return _console; }
 
 public:
 	LabEngine(OSystem *syst, const ADGameDescription *gameDesc);


Commit: d3e88f72e5a449a4494c8cb03ad003efcdf9b682
    https://github.com/scummvm/scummvm/commit/d3e88f72e5a449a4494c8cb03ad003efcdf9b682
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
LASTEXPRESS: Refactor to use Engine debugger

Changed paths:
    engines/lastexpress/lastexpress.cpp
    engines/lastexpress/lastexpress.h


diff --git a/engines/lastexpress/lastexpress.cpp b/engines/lastexpress/lastexpress.cpp
index 92cb0f5..144a474 100644
--- a/engines/lastexpress/lastexpress.cpp
+++ b/engines/lastexpress/lastexpress.cpp
@@ -91,7 +91,7 @@ LastExpressEngine::~LastExpressEngine() {
 	SAFE_DELETE(_resMan);
 	SAFE_DELETE(_sceneMan);
 	SAFE_DELETE(_soundMan);
-	SAFE_DELETE(_debugger);
+	//_debugger is deleted by Engine
 
 	// Cleanup event handlers
 	SAFE_DELETE(_eventMouse);
@@ -115,6 +115,7 @@ Common::Error LastExpressEngine::run() {
 
 	// Create debugger. It requires GFX to be initialized
 	_debugger = new Debugger(this);
+	setDebugger(_debugger);
 
 	// Start the resource and graphics managers
 	_resMan = new ResourceManager(isDemo());
@@ -195,19 +196,12 @@ bool LastExpressEngine::handleEvents() {
 		_debugger->attach();
 	}
 
-	// Show the debugger if required
-	_debugger->onFrame();
-
 	// Handle input
 	Common::Event ev;
 	while (_eventMan->pollEvent(ev)) {
 		switch (ev.type) {
 
 		case Common::EVENT_KEYDOWN:
-			// CTRL-D: Attach the debugger
-			if ((ev.kbd.flags & Common::KBD_CTRL) && ev.kbd.keycode == Common::KEYCODE_d)
-				_debugger->attach();
-
 			//// DEBUG: Quit game on escape
 			//if (ev.kbd.keycode == Common::KEYCODE_ESCAPE)
 			//	quitGame();
diff --git a/engines/lastexpress/lastexpress.h b/engines/lastexpress/lastexpress.h
index ed94fc6..52b97f3 100644
--- a/engines/lastexpress/lastexpress.h
+++ b/engines/lastexpress/lastexpress.h
@@ -72,7 +72,6 @@ protected:
 	// Engine APIs
 	Common::Error run() override;
 	bool hasFeature(EngineFeature f) const override;
-	Debugger *getDebugger() override { return _debugger; }
 
 public:
 	LastExpressEngine(OSystem *syst, const ADGameDescription *gd);


Commit: afa27aa7c5c3fa42329a6f37b78638f53e1a2b24
    https://github.com/scummvm/scummvm/commit/afa27aa7c5c3fa42329a6f37b78638f53e1a2b24
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
LILLIPUT: Refactor to use Engine debugger

Changed paths:
    engines/lilliput/lilliput.cpp
    engines/lilliput/lilliput.h


diff --git a/engines/lilliput/lilliput.cpp b/engines/lilliput/lilliput.cpp
index eaf3e5f..cec5a84 100644
--- a/engines/lilliput/lilliput.cpp
+++ b/engines/lilliput/lilliput.cpp
@@ -116,7 +116,7 @@ LilliputEngine::LilliputEngine(OSystem *syst, const LilliputGameDescription *gd)
 	DebugMan.addDebugChannel(kDebugEngineTBC, "EngineTBC", "Engine debug level");
 	DebugMan.addDebugChannel(kDebugScriptTBC, "ScriptTBC", "Script debug level");
 
-	_console = new LilliputConsole(this);
+	setDebugger(new LilliputConsole(this));
 	_rnd = 0;
 	_mousePos = Common::Point(0, 0);
 	_oldMousePos = Common::Point(0, 0);
@@ -263,16 +263,11 @@ LilliputEngine::LilliputEngine(OSystem *syst, const LilliputGameDescription *gd)
 
 LilliputEngine::~LilliputEngine() {
 	DebugMan.clearAllDebugChannels();
-	delete _console;
 	delete _soundHandler;
 	delete _scriptHandler;
 	delete _rnd;
 }
 
-GUI::Debugger *LilliputEngine::getDebugger() {
-	return _console;
-}
-
 void LilliputEngine::update() {
 	// update every 20 ms.
 	int currentTime = _system->getMillis();
diff --git a/engines/lilliput/lilliput.h b/engines/lilliput/lilliput.h
index 804e5f8..3921b5f 100644
--- a/engines/lilliput/lilliput.h
+++ b/engines/lilliput/lilliput.h
@@ -94,8 +94,6 @@ public:
 
 	OSystem *_system;
 
-	GUI::Debugger *getDebugger() override;
-
 	Common::RandomSource *_rnd;
 	LilliputScript *_scriptHandler;
 	LilliputSound *_soundHandler;
@@ -372,7 +370,6 @@ protected:
 private:
 	static LilliputEngine *s_Engine;
 
-	LilliputConsole *_console;
 	GameType _gameType;
 	Common::Platform _platform;
 


Commit: 83d7030d84b454ea63af78c0575c77cce4868a4a
    https://github.com/scummvm/scummvm/commit/83d7030d84b454ea63af78c0575c77cce4868a4a
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
LURE: Refactor to use Engine debugger

Changed paths:
    engines/lure/fights.cpp
    engines/lure/game.cpp
    engines/lure/game.h
    engines/lure/lure.cpp
    engines/lure/lure.h


diff --git a/engines/lure/fights.cpp b/engines/lure/fights.cpp
index ed3e2d7..219a5d1 100644
--- a/engines/lure/fights.cpp
+++ b/engines/lure/fights.cpp
@@ -129,7 +129,6 @@ void FightsManager::fightLoop() {
 		}
 
 		Screen::getReference().update();
-		game.debugger().onFrame();
 
 		g_system->delayMillis(10);
 	}
@@ -200,14 +199,6 @@ void FightsManager::checkEvents() {
 				engine.quitGame();
 				return;
 
-			case Common::KEYCODE_d:
-				if (events.event().kbd.hasFlags(Common::KBD_CTRL)) {
-					// Activate the debugger
-					game.debugger().attach();
-					return;
-				}
-				break;
-
 			default:
 				// Scan through the mapping list for a move for the keypress
 				const KeyMapping *keyPtr = &keyList[0];
diff --git a/engines/lure/game.cpp b/engines/lure/game.cpp
index b1c2283..5d9f489 100644
--- a/engines/lure/game.cpp
+++ b/engines/lure/game.cpp
@@ -47,7 +47,7 @@ Game &Game::getReference() {
 
 Game::Game() {
 	int_game = this;
-	_debugger = new Debugger();
+	g_engine->setDebugger(new Debugger());
 	_fastTextFlag = false;
 	_preloadFlag = false;
 	_debugFlag = gDebugLevel >= ERROR_BASIC;
@@ -56,7 +56,6 @@ Game::Game() {
 }
 
 Game::~Game() {
-	delete _debugger;
 }
 
 void Game::tick() {
@@ -190,13 +189,6 @@ void Game::execute() {
 				if (events.type() == Common::EVENT_KEYDOWN) {
 					uint16 roomNum = room.roomNumber();
 
-					if ((events.event().kbd.hasFlags(Common::KBD_CTRL)) &&
-						(events.event().kbd.keycode == Common::KEYCODE_d)) {
-						// Activate the debugger
-						_debugger->attach();
-						break;
-					}
-
 					// Handle special keys
 					bool handled = true;
 					switch (events.event().kbd.keycode) {
@@ -276,8 +268,6 @@ void Game::execute() {
 
 			system.updateScreen();
 			system.delayMillis(10);
-
-			_debugger->onFrame();
 		}
 
 		room.leaveRoom();
diff --git a/engines/lure/game.h b/engines/lure/game.h
index ddf9fac..88faeac 100644
--- a/engines/lure/game.h
+++ b/engines/lure/game.h
@@ -43,7 +43,6 @@ enum GameState {GS_ERROR = 1, GS_TICK = 2, GS_TOCK = 4, GS_PROT = 8, GS_RESTART
 
 class Game {
 private:
-	Debugger *_debugger;
 	bool _fastTextFlag, _soundFlag;
 	uint8 _state;
 	uint16 _tellCommands[MAX_TELL_COMMANDS * 3 + 1];
@@ -82,7 +81,6 @@ public:
 	bool &debugFlag() { return _debugFlag; }
 	bool fastTextFlag() { return _fastTextFlag; }
 	bool soundFlag() { return _soundFlag; }
-	Debugger &debugger() { return *_debugger; }
 
 	// Menu item support methods
 	void doDebugMenu();
diff --git a/engines/lure/lure.cpp b/engines/lure/lure.cpp
index 6512caa..d6eccb1 100644
--- a/engines/lure/lure.cpp
+++ b/engines/lure/lure.cpp
@@ -248,10 +248,6 @@ bool LureEngine::loadGame(uint8 slotNumber) {
 	return true;
 }
 
-GUI::Debugger *LureEngine::getDebugger() {
-	return !Game::isCreated() ? NULL : &Game::getReference().debugger();
-}
-
 void LureEngine::syncSoundSettings() {
 	Engine::syncSoundSettings();
 
diff --git a/engines/lure/lure.h b/engines/lure/lure.h
index 35c8422..821b28b 100644
--- a/engines/lure/lure.h
+++ b/engines/lure/lure.h
@@ -116,7 +116,6 @@ public:
 	LureLanguage getLureLanguage() const;
 	Common::Language getLanguage() const;
 	Common::Platform getPlatform() const;
-	GUI::Debugger *getDebugger() override;
 	bool isEGA() const { return (getFeatures() & GF_EGA) != 0; }
 
 	Common::Error loadGameState(int slot) override {


Commit: 0b46eaf913ed5783c0d97ca0c094bac3616d5c5d
    https://github.com/scummvm/scummvm/commit/0b46eaf913ed5783c0d97ca0c094bac3616d5c5d
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
MACVENTURE: Refactor to use Engine debugger

Changed paths:
    engines/macventure/macventure.cpp
    engines/macventure/macventure.h


diff --git a/engines/macventure/macventure.cpp b/engines/macventure/macventure.cpp
index 4de266a..40ce781 100644
--- a/engines/macventure/macventure.cpp
+++ b/engines/macventure/macventure.cpp
@@ -66,7 +66,6 @@ MacVentureEngine::MacVentureEngine(OSystem *syst, const ADGameDescription *gameD
 
 	initDebugChannels();
 
-	_debugger = NULL;
 	_resourceManager = NULL;
 	_globalSettings = NULL;
 	_gui = NULL;
@@ -94,9 +93,6 @@ MacVentureEngine::~MacVentureEngine() {
 	if (_rnd)
 		delete _rnd;
 
-	if (_debugger)
-		delete _debugger;
-
 	if (_resourceManager)
 		delete _resourceManager;
 
@@ -150,7 +146,7 @@ Common::Error MacVentureEngine::run() {
 
 	setInitialFlags();
 
-	_debugger = new Console(this);
+	setDebugger(new Console(this));
 
 	// Additional setup.
 	debug("MacVentureEngine::init");
diff --git a/engines/macventure/macventure.h b/engines/macventure/macventure.h
index f0fdaf6..1e45e7b 100644
--- a/engines/macventure/macventure.h
+++ b/engines/macventure/macventure.h
@@ -327,7 +327,6 @@ private: // Attributes
 
 	Common::MacResManager *_resourceManager;
 
-	Console *_debugger;
 	Gui *_gui;
 	World *_world;
 	ScriptEngine *_scriptEngine;


Commit: 87406e66b742d76251c1fb9e7cfcf4adc767c693
    https://github.com/scummvm/scummvm/commit/87406e66b742d76251c1fb9e7cfcf4adc767c693
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
MADE: Refactor to use Engine debugger

Changed paths:
    engines/made/made.cpp
    engines/made/made.h


diff --git a/engines/made/made.cpp b/engines/made/made.cpp
index 13178b0..c9f20ba 100644
--- a/engines/made/made.cpp
+++ b/engines/made/made.cpp
@@ -53,7 +53,7 @@ MadeEngine::MadeEngine(OSystem *syst, const MadeGameDescription *gameDesc) : Eng
 
 	_rnd = new Common::RandomSource("made");
 
-	_console = new MadeConsole(this);
+	setDebugger(new MadeConsole(this));
 
 	_system->getAudioCDManager()->open();
 
@@ -98,7 +98,6 @@ MadeEngine::~MadeEngine() {
 	_system->getAudioCDManager()->stop();
 
 	delete _rnd;
-	delete _console;
 	delete _pmvPlayer;
 	delete _res;
 	delete _screen;
@@ -123,10 +122,6 @@ int16 MadeEngine::getTicks() {
 	return g_system->getMillis() * 30 / 1000;
 }
 
-GUI::Debugger *MadeEngine::getDebugger() {
-	return _console;
-}
-
 int16 MadeEngine::getTimer(int16 timerNum) {
 	if (timerNum > 0 && timerNum <= ARRAYSIZE(_timers) && _timers[timerNum - 1] != -1)
 		return (getTicks() - _timers[timerNum - 1]);
@@ -246,12 +241,6 @@ void MadeEngine::handleEvents() {
 				_eventKey = event.kbd.ascii;
 				break;
 			}
-
-			// Check for Debugger Activation
-			if (event.kbd.hasFlags(Common::KBD_CTRL) && event.kbd.keycode == Common::KEYCODE_d) {
-				this->getDebugger()->attach();
-				this->getDebugger()->onFrame();
-			}
 			break;
 
 		default:
diff --git a/engines/made/made.h b/engines/made/made.h
index 2aea976..aaf1813 100644
--- a/engines/made/made.h
+++ b/engines/made/made.h
@@ -81,8 +81,6 @@ public:
 	bool hasFeature(EngineFeature f) const override;
 	void syncSoundSettings() override;
 
-	GUI::Debugger *getDebugger() override;
-
 	Common::RandomSource *_rnd;
 	const MadeGameDescription *_gameDescription;
 	uint32 getGameID() const;
@@ -90,8 +88,6 @@ public:
 	uint16 getVersion() const;
 	Common::Platform getPlatform() const;
 
-private:
-	MadeConsole *_console;
 public:
 	PmvPlayer *_pmvPlayer;
 	ResourceReader *_res;


Commit: 3487af4b9c8b8ae5a68cb230ab872900dff0634c
    https://github.com/scummvm/scummvm/commit/3487af4b9c8b8ae5a68cb230ab872900dff0634c
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
MADS: Refactor to use Engine debugger

Changed paths:
    engines/mads/events.cpp
    engines/mads/mads.cpp


diff --git a/engines/mads/events.cpp b/engines/mads/events.cpp
index de83260..82e2258 100644
--- a/engines/mads/events.cpp
+++ b/engines/mads/events.cpp
@@ -152,13 +152,7 @@ void EventsManager::pollEvents() {
 
 		case Common::EVENT_KEYDOWN:
 			// Check for debugger
-			if (event.kbd.keycode == Common::KEYCODE_d && (event.kbd.flags & Common::KBD_CTRL)) {
-				// Attach to the debugger
-				_vm->_debugger->attach();
-				_vm->_debugger->onFrame();
-			} else {
-				_pendingKeys.push(event.kbd);
-			}
+			_pendingKeys.push(event.kbd);
 			return;
 		case Common::EVENT_KEYUP:
 			return;
@@ -213,15 +207,9 @@ bool EventsManager::checkForNextFrameCounter() {
 		// Do any palette cycling
 		_vm->_game->_scene.animatePalette();
 
-		// Give time to the debugger
-		_vm->_debugger->onFrame();
-
 		// Display the frame
 		_vm->_screen->update();
 
-		// Signal the ScummVM debugger
-		_vm->_debugger->onFrame();
-
 		return true;
 	}
 
diff --git a/engines/mads/mads.cpp b/engines/mads/mads.cpp
index c86593e..4475c03 100644
--- a/engines/mads/mads.cpp
+++ b/engines/mads/mads.cpp
@@ -53,7 +53,6 @@ MADSEngine::MADSEngine(OSystem *syst, const MADSGameDescription *gameDesc) :
 	_dithering = false;
 	_disableFastwalk = false;
 
-	_debugger = nullptr;
 	_dialogs = nullptr;
 	_events = nullptr;
 	_font = nullptr;
@@ -67,7 +66,6 @@ MADSEngine::MADSEngine(OSystem *syst, const MADSGameDescription *gameDesc) :
 }
 
 MADSEngine::~MADSEngine() {
-	delete _debugger;
 	delete _dialogs;
 	delete _events;
 	delete _font;
@@ -78,6 +76,7 @@ MADSEngine::~MADSEngine() {
 	delete _resources;
 	delete _sound;
 	delete _audio;
+	//_debugger Debugger is deleted by Engine
 
 	_mixer->stopAll();
 }
@@ -90,6 +89,7 @@ void MADSEngine::initialize() {
 	Resources::init(this);
 	Conversation::init(this);
 	_debugger = new Debugger(this);
+	setDebugger(_debugger);
 	_dialogs = Dialogs::init(this);
 	_events = new EventsManager(this);
 	_palette = new Palette(this);


Commit: 3a66feb5d9dac1d5f1954effe03ebbb45f135a40
    https://github.com/scummvm/scummvm/commit/3a66feb5d9dac1d5f1954effe03ebbb45f135a40
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
MORTEVIELLE: Refactor to use Engine debugger

Changed paths:
    engines/mortevielle/mortevielle.cpp
    engines/mortevielle/mortevielle.h
    engines/mortevielle/utils.cpp


diff --git a/engines/mortevielle/mortevielle.cpp b/engines/mortevielle/mortevielle.cpp
index 21e96e6..16609ca 100644
--- a/engines/mortevielle/mortevielle.cpp
+++ b/engines/mortevielle/mortevielle.cpp
@@ -54,7 +54,7 @@ MortevielleEngine::MortevielleEngine(OSystem *system, const MortevielleGameDescr
 	DebugMan.addDebugChannel(kMortevielleGraphics, "graphics", "Graphics debugging");
 
 	g_vm = this;
-	_debugger = new Debugger(this);
+	setDebugger(new Debugger(this));
 	_dialogManager = new DialogManager(this);
 	_screenSurface = new ScreenSurface(this);
 	_mouse = new MouseHandler(this);
@@ -161,7 +161,6 @@ MortevielleEngine::~MortevielleEngine() {
 	delete _mouse;
 	delete _screenSurface;
 	delete _dialogManager;
-	delete _debugger;
 
 	free(_curPict);
 	free(_curAnim);
diff --git a/engines/mortevielle/mortevielle.h b/engines/mortevielle/mortevielle.h
index 5d21994..03df3a0 100644
--- a/engines/mortevielle/mortevielle.h
+++ b/engines/mortevielle/mortevielle.h
@@ -428,7 +428,6 @@ public:
 	GfxSurface _backgroundSurface;
 	Common::RandomSource _randomSource;
 
-	Debugger *_debugger;
 	ScreenSurface *_screenSurface;
 	SoundManager *_soundManager;
 	SavegameManager *_savegameManager;
@@ -446,7 +445,6 @@ public:
 	Common::Error saveGameState(int slot, const Common::String &desc) override;
 	Common::Error run() override;
 	void pauseEngineIntern(bool pause) override;
-	GUI::Debugger *getDebugger() override { return _debugger; }
 	uint32 getGameFlags() const;
 	Common::Language getLanguage() const;
 	Common::Language getOriginalLanguage() const;
diff --git a/engines/mortevielle/utils.cpp b/engines/mortevielle/utils.cpp
index 0efa58f..04ecb08 100644
--- a/engines/mortevielle/utils.cpp
+++ b/engines/mortevielle/utils.cpp
@@ -51,8 +51,6 @@ bool MortevielleEngine::keyPressed() {
 		_lastGameFrame = g_system->getMillis();
 
 		_screenSurface->updateScreen();
-
-		_debugger->onFrame();
 	}
 
 	// Delay briefly to keep CPU usage down
@@ -118,12 +116,7 @@ void MortevielleEngine::addKeypress(Common::Event &evt) {
 	// Character to add
 	char ch = evt.kbd.ascii;
 
-	// Check for debugger
-	if ((evt.kbd.keycode == Common::KEYCODE_d) && (evt.kbd.flags & Common::KBD_CTRL)) {
-		// Attach to the debugger
-		_debugger->attach();
-		_debugger->onFrame();
-	} else if ((evt.kbd.keycode >= Common::KEYCODE_a) && (evt.kbd.keycode <= Common::KEYCODE_z)) {
+	if ((evt.kbd.keycode >= Common::KEYCODE_a) && (evt.kbd.keycode <= Common::KEYCODE_z)) {
 		// Handle alphabetic keys
 		if (evt.kbd.hasFlags(Common::KBD_CTRL))
 			ch = evt.kbd.keycode - Common::KEYCODE_a + 1;
@@ -239,8 +232,6 @@ void MortevielleEngine::delay(int amount) {
 		if (g_system->getMillis() > (_lastGameFrame + GAME_FRAME_DELAY)) {
 			_lastGameFrame = g_system->getMillis();
 			_screenSurface->updateScreen();
-
-			_debugger->onFrame();
 		}
 
 		g_system->delayMillis(10);


Commit: 7a2dc70d20ceec6026294e5908a952f375e9dc78
    https://github.com/scummvm/scummvm/commit/7a2dc70d20ceec6026294e5908a952f375e9dc78
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
NEVERHOOD: Refactor to use Engine debugger

Changed paths:
    engines/neverhood/neverhood.cpp
    engines/neverhood/neverhood.h


diff --git a/engines/neverhood/neverhood.cpp b/engines/neverhood/neverhood.cpp
index 0f7a1d1..d33fb56 100644
--- a/engines/neverhood/neverhood.cpp
+++ b/engines/neverhood/neverhood.cpp
@@ -47,7 +47,8 @@
 
 namespace Neverhood {
 
-NeverhoodEngine::NeverhoodEngine(OSystem *syst, const NeverhoodGameDescription *gameDesc) : Engine(syst), _gameDescription(gameDesc), _console(nullptr) {
+NeverhoodEngine::NeverhoodEngine(OSystem *syst, const NeverhoodGameDescription *gameDesc) :
+		Engine(syst), _gameDescription(gameDesc) {
 	// Setup mixer
 	if (!_mixer->isReady()) {
 		warning("Sound initialization failed.");
@@ -84,7 +85,7 @@ Common::Error NeverhoodEngine::run() {
 	_gameVars = new GameVars();
 	_screen = new Screen(this);
 	_res = new ResourceMan();
-	_console = new Console(this);
+	setDebugger(new Console(this));
 
 	if (isDemo()) {
 		_res->addArchive("a.blb");
@@ -135,7 +136,6 @@ Common::Error NeverhoodEngine::run() {
 	delete _soundMan;
 	delete _audioResourceMan;
 
-	delete _console;
 	delete _res;
 	delete _screen;
 
@@ -153,11 +153,6 @@ void NeverhoodEngine::mainLoop() {
 		while (eventMan->pollEvent(event)) {
 			switch (event.type) {
 			case Common::EVENT_KEYDOWN:
-				if (event.kbd.hasFlags(Common::KBD_CTRL) && event.kbd.keycode == Common::KEYCODE_d) {
-					// Open debugger console
-					_console->attach();
-					continue;
-				}
 				_gameModule->handleKeyDown(event.kbd.keycode);
 				_gameModule->handleAsciiKey(event.kbd.ascii);
 				break;
@@ -190,7 +185,6 @@ void NeverhoodEngine::mainLoop() {
 			_gameModule->checkRequests();
 			_gameModule->handleUpdate();
 			_gameModule->draw();
-			_console->onFrame();
 			_screen->update();
 			if (_updateSound)
 				_soundMan->update();
diff --git a/engines/neverhood/neverhood.h b/engines/neverhood/neverhood.h
index 9df17e7..ccf1488 100644
--- a/engines/neverhood/neverhood.h
+++ b/engines/neverhood/neverhood.h
@@ -89,8 +89,6 @@ public:
 	ResourceMan *_res;
 	GameModule *_gameModule;
 	StaticData *_staticData;
-	Console *_console;
-	GUI::Debugger *getDebugger() override { return _console; }
 
 	SoundMan *_soundMan;
 	AudioResourceMan *_audioResourceMan;


Commit: e8dc9b374700748a16c53c9477c28a080e44204e
    https://github.com/scummvm/scummvm/commit/e8dc9b374700748a16c53c9477c28a080e44204e
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
PARALLACTION: Refactor to use Engine debugger

Changed paths:
    engines/parallaction/input.cpp
    engines/parallaction/parallaction.cpp
    engines/parallaction/parallaction.h


diff --git a/engines/parallaction/input.cpp b/engines/parallaction/input.cpp
index 8636c4c..eb54864 100644
--- a/engines/parallaction/input.cpp
+++ b/engines/parallaction/input.cpp
@@ -115,9 +115,6 @@ void Input::readInput() {
 			_hasKeyPressEvent = true;
 			_keyPressed = e.kbd;
 
-			if (e.kbd.hasFlags(Common::KBD_CTRL) && e.kbd.keycode == Common::KEYCODE_d)
-				_vm->_debugger->attach();
-
 			updateMousePos = false;
 			break;
 
@@ -151,11 +148,6 @@ void Input::readInput() {
 	if (updateMousePos) {
 		setCursorPos(e.mouse);
 	}
-
-	_vm->_debugger->onFrame();
-
-	return;
-
 }
 
 bool Input::getLastKeyDown(uint16 &ascii) {
diff --git a/engines/parallaction/parallaction.cpp b/engines/parallaction/parallaction.cpp
index ca0ff21..4c4b272 100644
--- a/engines/parallaction/parallaction.cpp
+++ b/engines/parallaction/parallaction.cpp
@@ -67,7 +67,6 @@ Parallaction::Parallaction(OSystem *syst, const PARALLACTIONGameDescription *gam
 	_gfx = 0;
 	_disk = 0;
 	_input = 0;
-	_debugger = 0;
 	_saveLoad = 0;
 	_menuHelper = 0;
 	_soundMan = 0;
@@ -91,7 +90,6 @@ Parallaction::Parallaction(OSystem *syst, const PARALLACTIONGameDescription *gam
 }
 
 Parallaction::~Parallaction() {
-	delete _debugger;
 	delete _globalFlagsNames;
 	delete _callableNames;
 	delete _cmdExec;
@@ -141,7 +139,7 @@ Common::Error Parallaction::init() {
 
 	_gfx = new Gfx(this);
 
-	_debugger = new Debugger(this);
+	setDebugger(new Debugger(this));
 
 	_menuHelper = 0;
 
@@ -154,10 +152,6 @@ void Parallaction::pauseEngineIntern(bool pause) {
 	}
 }
 
-GUI::Debugger *Parallaction::getDebugger() {
-	return _debugger;
-}
-
 void Parallaction::updateView() {
 
 	if ((g_engineFlags & kEnginePauseJobs) && (_input->_inputMode != Input::kInputModeInventory)) {
diff --git a/engines/parallaction/parallaction.h b/engines/parallaction/parallaction.h
index 2159c28..49eadd8 100644
--- a/engines/parallaction/parallaction.h
+++ b/engines/parallaction/parallaction.h
@@ -273,7 +273,6 @@ public:
 
 	bool hasFeature(EngineFeature f) const override;
 	void pauseEngineIntern(bool pause) override;
-	GUI::Debugger *getDebugger() override;
 
 	// info
 	int32			_screenWidth;
@@ -285,7 +284,6 @@ public:
 	Gfx				*_gfx;
 	Disk			*_disk;
 	Input			*_input;
-	Debugger		*_debugger;
 	SaveLoad		*_saveLoad;
 	MenuInputHelper *_menuHelper;
 	Common::RandomSource _rnd;


Commit: 118e024bdd7bfb1231dc04f87bd962d23217384d
    https://github.com/scummvm/scummvm/commit/118e024bdd7bfb1231dc04f87bd962d23217384d
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
PEGASUS: Refactor to use Engine debugger

Changed paths:
    engines/pegasus/input.cpp
    engines/pegasus/input.h
    engines/pegasus/pegasus.cpp
    engines/pegasus/pegasus.h


diff --git a/engines/pegasus/input.cpp b/engines/pegasus/input.cpp
index 97db74e..a6053df 100644
--- a/engines/pegasus/input.cpp
+++ b/engines/pegasus/input.cpp
@@ -105,10 +105,6 @@ void InputDeviceManager::getInput(Input &input, const InputBits filter) {
 	// Update the last bits
 	_lastRawBits = currentBits;
 
-	// Set the console to be requested or not
-	input.setConsoleRequested(_consoleRequested);
-	_consoleRequested = false;
-
 	// WORKAROUND: The original had this in currentBits, but then
 	// pressing alt would count as an event (and mess up someone
 	// trying to do alt+enter or something). Since it's only used
diff --git a/engines/pegasus/input.h b/engines/pegasus/input.h
index 698104b..a42ebc3 100644
--- a/engines/pegasus/input.h
+++ b/engines/pegasus/input.h
@@ -390,25 +390,21 @@ public:
 	bool anyInputBitSet(const InputBits bits) const { return (_inputState & bits) != 0; }
 
 	bool isAltDown() const { return _altDown; }
-	bool isConsoleRequested() const { return _consoleRequested; }
 
 	void clearInput() {
 		_inputState = kAllUpBits;
 		_inputLocation.x = 0;
 		_inputLocation.y = 0;
-		_consoleRequested = false;
 		_altDown = false;
 	}
 
 protected:
 	void setInputBits(const InputBits state) { _inputState = state; }
 	void setInputLocation(const Common::Point &where) { _inputLocation = where; }
-	void setConsoleRequested(bool consoleRequested) { _consoleRequested = consoleRequested; }
 	void setAltDown(bool altDown) { _altDown = altDown; }
 
 	InputBits _inputState;
 	Common::Point _inputLocation;
-	bool _consoleRequested;
 	bool _altDown;
 };
 
diff --git a/engines/pegasus/pegasus.cpp b/engines/pegasus/pegasus.cpp
index ac95dd2..1e17792 100644
--- a/engines/pegasus/pegasus.cpp
+++ b/engines/pegasus/pegasus.cpp
@@ -103,7 +103,6 @@ PegasusEngine::~PegasusEngine() {
 	throwAwayEverything();
 
 	delete _resFork;
-	delete _console;
 	delete _cursor;
 	delete _continuePoint;
 	delete _gameMenu;
@@ -123,7 +122,7 @@ PegasusEngine::~PegasusEngine() {
 }
 
 Common::Error PegasusEngine::run() {
-	_console = new PegasusConsole(this);
+	setDebugger(new PegasusConsole(this));
 	_gfx = new GraphicsManager(this);
 	_resFork = new Common::MacResManager();
 	_cursor = new Cursor();
@@ -390,11 +389,6 @@ void PegasusEngine::showSaveFailedDialog(const Common::Error &status) {
 	dialog.runModal();
 }
 
-
-GUI::Debugger *PegasusEngine::getDebugger() {
-	return _console;
-}
-
 void PegasusEngine::addIdler(Idler *idler) {
 	idler->_nextIdler = _idlerHead;
 	if (_idlerHead)
@@ -1018,12 +1012,6 @@ void PegasusEngine::handleInput(const Input &input, const Hotspot *cursorSpot) {
 	if (!checkGameMenu())
 		shellGameInput(input, cursorSpot);
 
-	// Handle the console here
-	if (input.isConsoleRequested()) {
-		_console->attach();
-		_console->onFrame();
-	}
-
 	// Handle save requests here
 	if (_saveRequested && _saveAllowed) {
 		_saveRequested = false;
diff --git a/engines/pegasus/pegasus.h b/engines/pegasus/pegasus.h
index d80749a..ae47ce8 100644
--- a/engines/pegasus/pegasus.h
+++ b/engines/pegasus/pegasus.h
@@ -78,7 +78,6 @@ public:
 	// Engine stuff
 	const PegasusGameDescription *_gameDescription;
 	bool hasFeature(EngineFeature f) const override;
-	GUI::Debugger *getDebugger() override;
 	bool canLoadGameStateCurrently() override;
 	bool canSaveGameStateCurrently() override;
 	Common::Error loadGameState(int slot) override;
@@ -221,9 +220,6 @@ protected:
 	bool wantsCursor() override;
 
 private:
-	// Console
-	PegasusConsole *_console;
-
 	// Intro
 	void runIntro();
 	void stopIntroTimer();


Commit: 4b0937573968589d2bf0b2d8af44b00a4cd4a2ed
    https://github.com/scummvm/scummvm/commit/4b0937573968589d2bf0b2d8af44b00a4cd4a2ed
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
PINK: Refactor to use Engine debugger

Changed paths:
    engines/pink/pink.cpp
    engines/pink/pink.h


diff --git a/engines/pink/pink.cpp b/engines/pink/pink.cpp
index 35686e3..e9e58b0 100644
--- a/engines/pink/pink.cpp
+++ b/engines/pink/pink.cpp
@@ -41,7 +41,7 @@
 namespace Pink {
 
 PinkEngine::PinkEngine(OSystem *system, const ADGameDescription *desc)
-	: Engine(system), _console(nullptr), _rnd("pink"), _exeResources(nullptr),
+	: Engine(system), _rnd("pink"), _exeResources(nullptr),
 	_desc(desc), _bro(nullptr), _menu(nullptr), _actor(nullptr),
 	_module(nullptr), _director(nullptr), _pdaMgr(this) {
 
@@ -56,7 +56,6 @@ PinkEngine::PinkEngine(OSystem *system, const ADGameDescription *desc)
 }
 
 PinkEngine::~PinkEngine() {
-	delete _console;
 	delete _exeResources;
 	delete _bro;
 	_pdaMgr.close();
@@ -80,7 +79,7 @@ Common::Error PinkEngine::init() {
 		return Common::kNoGameDataFoundError;
 	}
 
-	_console = new Console(this);
+	setDebugger(new Console(this));
 	_director = new Director();
 
 	initMenu();
@@ -145,12 +144,7 @@ Common::Error Pink::PinkEngine::run() {
 					_actor->onRightButtonClick(event.mouse);
 				break;
 			case Common::EVENT_KEYDOWN:
-				if (event.kbd.keycode == Common::KEYCODE_d && event.kbd.hasFlags(Common::KBD_CTRL)) {
-					_console->attach();
-					_console->onFrame();
-				} else {
-					_actor->onKeyboardButtonClick(event.kbd.keycode);
-				}
+				_actor->onKeyboardButtonClick(event.kbd.keycode);
 				break;
 			default:
 				break;
diff --git a/engines/pink/pink.h b/engines/pink/pink.h
index 9512404..85c5890 100644
--- a/engines/pink/pink.h
+++ b/engines/pink/pink.h
@@ -146,7 +146,6 @@ private:
 	void openLocalWebPage(const Common::String &pageName) const;
 
 private:
-	Console *_console;
 	Common::RandomSource _rnd;
 	Common::Array<Graphics::WinCursorGroup *> _cursors;
 


Commit: ed7852f85337b662fbc82eae26ccffe81a85fdf5
    https://github.com/scummvm/scummvm/commit/ed7852f85337b662fbc82eae26ccffe81a85fdf5
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
PLUMBERS: Refactor to use Engine debugger

Changed paths:
    engines/plumbers/plumbers.cpp


diff --git a/engines/plumbers/plumbers.cpp b/engines/plumbers/plumbers.cpp
index a6d4944..5ccf7ee 100644
--- a/engines/plumbers/plumbers.cpp
+++ b/engines/plumbers/plumbers.cpp
@@ -46,9 +46,8 @@
 
 namespace Plumbers {
 
-PlumbersGame::PlumbersGame(OSystem *syst, const ADGameDescription *gameDesc) : Engine(syst), _gameDescription(gameDesc) {
-	_image = nullptr;
-	_console = nullptr;
+PlumbersGame::PlumbersGame(OSystem *syst, const ADGameDescription *gameDesc) :
+		Engine(syst), _gameDescription(gameDesc), _console(0), _image(0) {
 	_timerInstalled = false;
 	_showScoreFl = false;
 	_setDurationFl = false;
@@ -66,7 +65,7 @@ PlumbersGame::PlumbersGame(OSystem *syst, const ADGameDescription *gameDesc) : E
 
 PlumbersGame::~PlumbersGame() {
 	delete _image;
-	delete _console;
+	//_console is deleted by Engine
 }
 
 static const byte MOUSECURSOR_SCI[] = {
@@ -96,8 +95,9 @@ static const byte cursorPalette[] = {
 
 Common::Error PlumbersGame::run() {
 	initGraphics(640, 480);
-	_console = new Console();
 	_image = new Image::BitmapDecoder();
+	_console = new Console();
+	setDebugger(_console);
 
 	CursorMan.replaceCursor(MOUSECURSOR_SCI, 11, 16, 0, 0, 0);
 	CursorMan.replaceCursorPalette(cursorPalette, 0, 3);
@@ -143,11 +143,6 @@ Common::Error PlumbersGame::run() {
 					onTimer(this);
 				}
 				break;
-			case Common::EVENT_KEYDOWN:
-				if (event.kbd.keycode == Common::KEYCODE_d && event.kbd.hasFlags(Common::KBD_CTRL))
-					_console->attach();
-
-				break;
 			default:
 				break;
 			}
@@ -231,8 +226,6 @@ void PlumbersGame::drawScreen() {
 		g_system->getPaletteManager()->setPalette(_image->getPalette(), 0, 256);
 		g_system->updateScreen();
 	}
-
-	_console->onFrame();
 }
 
 void PlumbersGame::playSound() {


Commit: edcf6b911271fd0b111989376578824a055e19f6
    https://github.com/scummvm/scummvm/commit/edcf6b911271fd0b111989376578824a055e19f6
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
PRINCE: Refactor to use Engine debugger

Changed paths:
    engines/prince/draw.cpp
    engines/prince/inventory.cpp
    engines/prince/prince.cpp
    engines/prince/prince.h


diff --git a/engines/prince/draw.cpp b/engines/prince/draw.cpp
index 275b66a..fc766eb 100644
--- a/engines/prince/draw.cpp
+++ b/engines/prince/draw.cpp
@@ -640,8 +640,6 @@ void PrinceEngine::drawScreen() {
 
 		showPower();
 
-		getDebugger()->onFrame();
-
 	} else {
 		displayInventory();
 	}
diff --git a/engines/prince/inventory.cpp b/engines/prince/inventory.cpp
index e66815b..22b5534 100644
--- a/engines/prince/inventory.cpp
+++ b/engines/prince/inventory.cpp
@@ -669,7 +669,6 @@ void PrinceEngine::displayInventory() {
 		if (shouldQuit())
 			return;
 
-		getDebugger()->onFrame();
 		_graph->update(_graph->_screenForInventory);
 		pausePrinceEngine();
 	}
diff --git a/engines/prince/prince.cpp b/engines/prince/prince.cpp
index 8f6acd7..24d61eb 100644
--- a/engines/prince/prince.cpp
+++ b/engines/prince/prince.cpp
@@ -102,7 +102,6 @@ PrinceEngine::~PrinceEngine() {
 	DebugMan.clearAllDebugChannels();
 
 	delete _rnd;
-	delete _debugger;
 	delete _cursor1;
 	delete _cursor3;
 	delete _midiPlayer;
@@ -118,6 +117,7 @@ PrinceEngine::~PrinceEngine() {
 	free(_dialogDat);
 	delete _graph;
 	delete _room;
+	//_debugger is deleted by Engine
 
 	if (_cursor2 != nullptr) {
 		_cursor2->free();
@@ -198,10 +198,6 @@ PrinceEngine::~PrinceEngine() {
 	free(_mobTranslationData);
 }
 
-GUI::Debugger *PrinceEngine::getDebugger() {
-	return _debugger;
-}
-
 void PrinceEngine::init() {
 
 	const Common::FSNode gameDataDir(ConfMan.get("path"));
@@ -272,6 +268,7 @@ void PrinceEngine::init() {
 	_interpreter = new Interpreter(this, _script, _flags);
 
 	_debugger = new Debugger(this, _flags);
+	setDebugger(_debugger);
 
 	_variaTxt = new VariaTxt();
 	if (getFeatures() & GF_TRANSLATED) {
@@ -552,11 +549,6 @@ void PrinceEngine::keyHandler(Common::Event event) {
 		if (canSaveGameStateCurrently())
 			scummVMSaveLoadDialog(true);
 		break;
-	case Common::KEYCODE_d:
-		if (event.kbd.hasFlags(Common::KBD_CTRL)) {
-			getDebugger()->attach();
-		}
-		break;
 	case Common::KEYCODE_z:
 		if (_flags->getFlagValue(Flags::POWERENABLED)) {
 			_flags->setFlagValue(Flags::MBFLAG, 1);
@@ -926,7 +918,7 @@ void PrinceEngine::dialogRun() {
 			break;
 		}
 
-		getDebugger()->onFrame();
+
 		_graph->update(_graph->_frontScreen);
 		pausePrinceEngine();
 	}
diff --git a/engines/prince/prince.h b/engines/prince/prince.h
index 51effe2..2bd130c 100644
--- a/engines/prince/prince.h
+++ b/engines/prince/prince.h
@@ -340,8 +340,6 @@ public:
 
 	void setVoice(uint16 slot, uint32 sampleSlot, uint16 flag);
 
-	GUI::Debugger *getDebugger() override;
-
 	void changeCursor(uint16 curId);
 	void printAt(uint32 slot, uint8 color, char *s, uint16 x, uint16 y);
 	int calcTextLines(const char *s);


Commit: 7243eaf907d225253a3ba721f84cba5a7bdb2387
    https://github.com/scummvm/scummvm/commit/7243eaf907d225253a3ba721f84cba5a7bdb2387
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
QUEEN: Refactor to use Engine debugger

Changed paths:
    engines/queen/input.cpp
    engines/queen/input.h
    engines/queen/queen.cpp
    engines/queen/queen.h


diff --git a/engines/queen/input.cpp b/engines/queen/input.cpp
index bea8d96..eb52e3d 100644
--- a/engines/queen/input.cpp
+++ b/engines/queen/input.cpp
@@ -54,7 +54,7 @@ Input::Input(Common::Language language, OSystem *system) :
 	_system(system), _eventMan(system->getEventManager()), _fastMode(false),
 	_keyVerb(VERB_NONE), _cutawayRunning(false), _canQuit(false),
 	_cutawayQuit(false), _dialogueRunning(false), _talkQuit(false),
-	_quickSave(false), _quickLoad(false), _debugger(false), _inKey(Common::KEYCODE_INVALID),
+	_quickSave(false), _quickLoad(false), _inKey(Common::KEYCODE_INVALID),
 	_mouseButton(0), _idleTime(0) {
 
 	switch (language) {
@@ -99,9 +99,7 @@ void Input::delay(uint amount) {
 			switch (event.type) {
 			case Common::EVENT_KEYDOWN:
 				if (event.kbd.hasFlags(Common::KBD_CTRL)) {
-					if (event.kbd.keycode == Common::KEYCODE_d) {
-						_debugger = true;
-					} else if (event.kbd.keycode == Common::KEYCODE_f) {
+					if (event.kbd.keycode == Common::KEYCODE_f) {
 						_fastMode = !_fastMode;
 					}
 				} else {
diff --git a/engines/queen/input.h b/engines/queen/input.h
index 87f6b20..bb0c95e 100644
--- a/engines/queen/input.h
+++ b/engines/queen/input.h
@@ -73,8 +73,6 @@ public:
 	void quickSaveReset()  { _quickSave = false; }
 	bool quickLoad() const { return _quickLoad; }
 	void quickLoadReset()  { _quickLoad = false; }
-	bool debugger() const { return _debugger; }
-	void debuggerReset() { _debugger = false; }
 
 	bool fastMode() const { return _fastMode; }
 	void fastMode(bool fm)	{ _fastMode = fm; }
@@ -123,9 +121,6 @@ private:
 	//! set if quickload requested
 	bool _quickLoad;
 
-	//! set if debugger requested
-	bool _debugger;
-
 	//! set by delay();
 	Common::KeyCode _inKey;
 
diff --git a/engines/queen/queen.cpp b/engines/queen/queen.cpp
index 74ea20c..3f70249 100644
--- a/engines/queen/queen.cpp
+++ b/engines/queen/queen.cpp
@@ -50,7 +50,10 @@
 namespace Queen {
 
 QueenEngine::QueenEngine(OSystem *syst)
-	: Engine(syst), _gameStarted(false), _debugger(0), randomizer("queen") {
+	: Engine(syst), _bam(nullptr), _bankMan(nullptr), _command(nullptr), _debugger(nullptr),
+	_display(nullptr), _graphics(nullptr), _grid(nullptr), _input(nullptr), _logic(nullptr),
+	_sound(nullptr), _resource(nullptr), _walk(nullptr), _gameStarted(false),
+	randomizer("queen") {
 }
 
 QueenEngine::~QueenEngine() {
@@ -58,7 +61,6 @@ QueenEngine::~QueenEngine() {
 	delete _resource;
 	delete _bankMan;
 	delete _command;
-	delete _debugger;
 	delete _display;
 	delete _graphics;
 	delete _grid;
@@ -66,6 +68,7 @@ QueenEngine::~QueenEngine() {
 	delete _logic;
 	delete _sound;
 	delete _walk;
+	//_debugger is deleted by Engine
 }
 
 void QueenEngine::registerDefaultSettings() {
@@ -124,8 +127,6 @@ void QueenEngine::writeOptionSettings() {
 }
 
 void QueenEngine::update(bool checkPlayerInput) {
-	_debugger->onFrame();
-
 	_graphics->update(_logic->currentRoom());
 	_logic->update();
 
@@ -143,10 +144,7 @@ void QueenEngine::update(bool checkPlayerInput) {
 	_display->update(joe->active, joe->x, joe->y);
 
 	_input->checkKeys();
-	if (_input->debugger()) {
-		_input->debuggerReset();
-		_debugger->attach();
-	}
+
 	if (canLoadOrSave()) {
 		if (_input->quickSave()) {
 			_input->quickSaveReset();
@@ -311,10 +309,6 @@ void QueenEngine::findGameStateDescriptions(char descriptions[100][32]) {
 	}
 }
 
-GUI::Debugger *QueenEngine::getDebugger() {
-	return _debugger;
-}
-
 bool Queen::QueenEngine::hasFeature(EngineFeature f) const {
 	return
 		(f == kSupportsRTL) ||
@@ -332,6 +326,7 @@ Common::Error QueenEngine::run() {
 	_bankMan = new BankManager(_resource);
 	_command = new Command(this);
 	_debugger = new Debugger(this);
+	setDebugger(_debugger);
 	_display = new Display(this, _system);
 	_graphics = new Graphics(this);
 	_grid = new Grid(this);
diff --git a/engines/queen/queen.h b/engines/queen/queen.h
index 5f6ad50..a69ef2f 100644
--- a/engines/queen/queen.h
+++ b/engines/queen/queen.h
@@ -120,7 +120,6 @@ protected:
 
 	// Engine APIs
 	Common::Error run() override;
-	GUI::Debugger *getDebugger() override;
 	bool hasFeature(EngineFeature f) const override;
 	void syncSoundSettings() override;
 


Commit: 00848cff4c105016b3e57a129bdb99ca8a98d660
    https://github.com/scummvm/scummvm/commit/00848cff4c105016b3e57a129bdb99ca8a98d660
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
SAGA: Refactor to use Engine debugger

Changed paths:
    engines/saga/input.cpp
    engines/saga/saga.cpp
    engines/saga/saga.h


diff --git a/engines/saga/input.cpp b/engines/saga/input.cpp
index cf30c5f..ac253b6 100644
--- a/engines/saga/input.cpp
+++ b/engines/saga/input.cpp
@@ -41,21 +41,12 @@ int SagaEngine::processInput() {
 	while (_eventMan->pollEvent(event)) {
 		switch (event.type) {
 		case Common::EVENT_KEYDOWN:
-			if (event.kbd.hasFlags(Common::KBD_CTRL)) {
-				if (event.kbd.keycode == Common::KEYCODE_d)
-					_console->attach();
-			}
 			if (_interface->_textInput || _interface->_statusTextInput) {
 				_interface->processAscii(event.kbd);
 				return SUCCESS;
 			}
 
 			switch (event.kbd.keycode) {
-			case Common::KEYCODE_HASH:
-			case Common::KEYCODE_BACKQUOTE:
-			case Common::KEYCODE_TILDE: // tilde ("~")
-				_console->attach();
-				break;
 			case Common::KEYCODE_r:
 				_interface->draw();
 				break;
diff --git a/engines/saga/saga.cpp b/engines/saga/saga.cpp
index e2fc38d..a16f505 100644
--- a/engines/saga/saga.cpp
+++ b/engines/saga/saga.cpp
@@ -197,7 +197,7 @@ SagaEngine::~SagaEngine() {
 	delete _gfx;
 	_gfx = NULL;
 
-	delete _console;
+	//_console is deleted by Engine
 	_console = NULL;
 
 	delete _resource;
@@ -280,6 +280,7 @@ Common::Error SagaEngine::run() {
 
 	// Graphics driver should be initialized before console
 	_console = new Console(this);
+	setDebugger(_console);
 
 	// Graphics should be initialized before music
 	_music = new Music(this, _mixer);
@@ -352,8 +353,6 @@ Common::Error SagaEngine::run() {
 	uint32 currentTicks;
 
 	while (!shouldQuit()) {
-		_console->onFrame();
-
 		if (_render->getFlags() & RF_RENDERPAUSE) {
 			// Freeze time while paused
 			_previousTicks = _system->getMillis();
@@ -630,10 +629,6 @@ int SagaEngine::getTalkspeed() const {
 	return (ConfMan.getInt("talkspeed") * 3 + 255 / 2) / 255;
 }
 
-GUI::Debugger *SagaEngine::getDebugger() {
-	return _console;
-}
-
 void SagaEngine::syncSoundSettings() {
 	Engine::syncSoundSettings();
 
diff --git a/engines/saga/saga.h b/engines/saga/saga.h
index 7fc8de9..ae7497b 100644
--- a/engines/saga/saga.h
+++ b/engines/saga/saga.h
@@ -471,8 +471,6 @@ public:
 	void syncSoundSettings() override;
 	void pauseEngineIntern(bool pause) override;
 
-	GUI::Debugger *getDebugger() override;
-
 	SagaEngine(OSystem *syst, const SAGAGameDescription *gameDesc);
 	~SagaEngine() override;
 


Commit: 45cda9db2211dc0a9a585addaa83c207fa684530
    https://github.com/scummvm/scummvm/commit/45cda9db2211dc0a9a585addaa83c207fa684530
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
SCUMM: Refactor to use Engine debugger

Changed paths:
    engines/scumm/input.cpp
    engines/scumm/scumm.cpp
    engines/scumm/scumm.h


diff --git a/engines/scumm/input.cpp b/engines/scumm/input.cpp
index 6c6d009..374cf97 100644
--- a/engines/scumm/input.cpp
+++ b/engines/scumm/input.cpp
@@ -120,9 +120,6 @@ void ScummEngine::parseEvent(Common::Event event) {
 			_fastMode ^= 1;
 		} else if (event.kbd.hasFlags(Common::KBD_CTRL) && event.kbd.keycode == Common::KEYCODE_g) {
 			_fastMode ^= 2;
-		} else if ((event.kbd.hasFlags(Common::KBD_CTRL) && event.kbd.keycode == Common::KEYCODE_d)
-		        || event.kbd.ascii == '~' || event.kbd.ascii == '#') {
-			_debugger->attach();
 		} else if (event.kbd.hasFlags(Common::KBD_CTRL) && event.kbd.keycode == Common::KEYCODE_s) {
 			_res->resourceStats();
 		} else if (event.kbd.hasFlags(Common::KBD_ALT) && event.kbd.keycode == Common::KEYCODE_x) {
diff --git a/engines/scumm/scumm.cpp b/engines/scumm/scumm.cpp
index e3919ee..c499c8d 100644
--- a/engines/scumm/scumm.cpp
+++ b/engines/scumm/scumm.cpp
@@ -118,7 +118,6 @@ ScummEngine::ScummEngine(OSystem *syst, const DetectorResult &dr)
 	  _game(dr.game),
 	  _filenamePattern(dr.fp),
 	  _language(dr.language),
-	  _debugger(0),
 	  _currentScript(0xFF), // Let debug() work on init stage
 	  _messageDialog(0), _pauseDialog(0), _versionDialog(0),
 	  _rnd("scumm")
@@ -659,8 +658,6 @@ ScummEngine::~ScummEngine() {
 #endif
 #endif
 
-	delete _debugger;
-
 	delete _res;
 	delete _gdi;
 }
@@ -1324,7 +1321,7 @@ Common::Error ScummEngine::init() {
 	readIndexFile();
 
 	// Create the debugger now that _numVariables has been set
-	_debugger = new ScummDebugger(this);
+	setDebugger(new ScummDebugger(this));
 
 	resetScumm();
 	resetScummVars();
@@ -2121,9 +2118,6 @@ Common::Error ScummEngine::go() {
 	int diff = 0;	// Duration of one loop iteration
 
 	while (!shouldQuit()) {
-
-		_debugger->onFrame();
-
 		// Randomize the PRNG by calling it at regular intervals. This ensures
 		// that it will be in a different state each time you run the program.
 		_rnd.getRandomNumber(2);
@@ -2868,10 +2862,6 @@ char ScummEngine::displayMessage(const char *altButton, const char *message, ...
 #pragma mark --- Miscellaneous ---
 #pragma mark -
 
-GUI::Debugger *ScummEngine::getDebugger() {
-	return _debugger;
-}
-
 void ScummEngine::errorString(const char *buf1, char *buf2, int buf2Size) {
 	if (_currentScript != 0xFF) {
 		snprintf(buf2, buf2Size, "(%d:%d:0x%lX): %s", _roomResource,
diff --git a/engines/scumm/scumm.h b/engines/scumm/scumm.h
index a7bffd9..a4c2bbc 100644
--- a/engines/scumm/scumm.h
+++ b/engines/scumm/scumm.h
@@ -393,7 +393,6 @@ public:
 
 	VerbSlot *_verbs;
 	ObjectData *_objs;
-	ScummDebugger *_debugger;
 
 	// Core variables
 	GameSettings _game;
@@ -428,8 +427,8 @@ public:
 			return err;
 		return go();
 	}
+
 	void errorString(const char *buf_input, char *buf_output, int buf_output_size) override;
-	GUI::Debugger *getDebugger() override;
 	bool hasFeature(EngineFeature f) const override;
 	void syncSoundSettings() override;
 


Commit: 9e15215b2d30f4e43cb7abd17f86e05f3f837753
    https://github.com/scummvm/scummvm/commit/9e15215b2d30f4e43cb7abd17f86e05f3f837753
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
SHERLOCK: Refactor to use Engine debugger

Changed paths:
    engines/sherlock/events.cpp
    engines/sherlock/sherlock.cpp


diff --git a/engines/sherlock/events.cpp b/engines/sherlock/events.cpp
index 12ea1db..0598710 100644
--- a/engines/sherlock/events.cpp
+++ b/engines/sherlock/events.cpp
@@ -206,14 +206,7 @@ void Events::pollEvents() {
 			return;
 
 		case Common::EVENT_KEYDOWN:
-			// Check for debugger
-			if (event.kbd.keycode == Common::KEYCODE_d && (event.kbd.flags & Common::KBD_CTRL)) {
-				// Attach to the debugger
-				_vm->_debugger->attach();
-				_vm->_debugger->onFrame();
-			} else {
-				_pendingKeys.push(event.kbd);
-			}
+			_pendingKeys.push(event.kbd);
 			return;
 		case Common::EVENT_KEYUP:
 			return;
@@ -274,9 +267,6 @@ bool Events::checkForNextFrameCounter() {
 		++_frameCounter;
 		_priorFrameTime = milli;
 
-		// Give time to the debugger
-		_vm->_debugger->onFrame();
-
 		// Display the frame
 		_vm->_screen->update();
 
diff --git a/engines/sherlock/sherlock.cpp b/engines/sherlock/sherlock.cpp
index fcc092f..ce000d0 100644
--- a/engines/sherlock/sherlock.cpp
+++ b/engines/sherlock/sherlock.cpp
@@ -61,7 +61,7 @@ SherlockEngine::SherlockEngine(OSystem *syst, const SherlockGameDescription *gam
 
 SherlockEngine::~SherlockEngine() {
 	delete _animation;
-	delete _debugger;
+	//_debugger is deleted by Engine
 	delete _events;
 	delete _fixedText;
 	delete _journal;
@@ -95,6 +95,7 @@ void SherlockEngine::initialize() {
 	_res = new Resources(this);
 	_animation = new Animation(this);
 	_debugger = Debugger::init(this);
+	setDebugger(_debugger);
 	_events = new Events(this);
 	_fixedText = FixedText::init(this);
 	_inventory = Inventory::init(this);


Commit: b396e56bd0b8939675b8fd2b829177641c2044fa
    https://github.com/scummvm/scummvm/commit/b396e56bd0b8939675b8fd2b829177641c2044fa
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
SKY: Refactor to use Engine debugger

Changed paths:
    engines/sky/sky.cpp
    engines/sky/sky.h


diff --git a/engines/sky/sky.cpp b/engines/sky/sky.cpp
index 9c134a2..17785c0 100644
--- a/engines/sky/sky.cpp
+++ b/engines/sky/sky.cpp
@@ -81,7 +81,7 @@ SkyEngine::~SkyEngine() {
 	delete _skyText;
 	delete _skyMouse;
 	delete _skyScreen;
-	delete _debugger;
+	//_debugger is deleted by Engine
 	delete _skyDisk;
 	delete _skyControl;
 	delete _skyCompact;
@@ -107,10 +107,6 @@ void SkyEngine::syncSoundSettings() {
 	_skyMusic->setVolume(mute ? 0: ConfMan.getInt("music_volume") >> 1);
 }
 
-GUI::Debugger *SkyEngine::getDebugger() {
-	return _debugger;
-}
-
 void SkyEngine::initVirgin() {
 	_skyScreen->setPalette(60111);
 	_skyScreen->showScreen(60110);
@@ -126,8 +122,6 @@ void SkyEngine::handleKey() {
 			_fastMode ^= 1;
 		else if (_keyPressed.keycode == Common::KEYCODE_g)
 			_fastMode ^= 2;
-		else if (_keyPressed.keycode == Common::KEYCODE_d)
-			_debugger->attach();
 	} else if (_keyPressed.keycode) {
 		switch (_keyPressed.keycode) {
 		case Common::KEYCODE_BACKQUOTE:
@@ -196,8 +190,6 @@ Common::Error SkyEngine::go() {
 
 	uint32 delayCount = _system->getMillis();
 	while (!shouldQuit()) {
-		_debugger->onFrame();
-
 		if (shouldPerformAutoSave(_lastSaveTime)) {
 			if (_skyControl->loadSaveAllowed()) {
 				_lastSaveTime = _system->getMillis();
@@ -353,6 +345,7 @@ Common::Error SkyEngine::init() {
 	syncSoundSettings();
 
 	_debugger = new Debugger(_skyLogic, _skyMouse, _skyScreen, _skyCompact);
+	setDebugger(_debugger);
 	return Common::kNoError;
 }
 
diff --git a/engines/sky/sky.h b/engines/sky/sky.h
index ab59e78..b802d8c 100644
--- a/engines/sky/sky.h
+++ b/engines/sky/sky.h
@@ -107,7 +107,7 @@ protected:
 			return err;
 		return go();
 	}
-	GUI::Debugger *getDebugger() override;
+
 	bool hasFeature(EngineFeature f) const override;
 
 	byte _fastMode;


Commit: b6630049cd6266579cda527924ae5a4773e3072c
    https://github.com/scummvm/scummvm/commit/b6630049cd6266579cda527924ae5a4773e3072c
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
SLUDGE: Refactor to use Engine debugger

Changed paths:
    engines/sludge/sludge.cpp
    engines/sludge/sludge.h


diff --git a/engines/sludge/sludge.cpp b/engines/sludge/sludge.cpp
index 821539d..942c710 100644
--- a/engines/sludge/sludge.cpp
+++ b/engines/sludge/sludge.cpp
@@ -46,7 +46,7 @@ Graphics::PixelFormat *SludgeEngine::getScreenPixelFormat() const { return _pixe
 Graphics::PixelFormat *SludgeEngine::getOrigPixelFormat() const { return _origFormat; }
 
 SludgeEngine::SludgeEngine(OSystem *syst, const SludgeGameDescription *gameDesc) :
-		Engine(syst), _gameDescription(gameDesc), _console(nullptr) {
+		Engine(syst), _gameDescription(gameDesc) {
 
 	// register your random source
 	_rnd = new Common::RandomSource("sludge");
@@ -98,10 +98,6 @@ SludgeEngine::~SludgeEngine() {
 	// Remove debug levels
 	DebugMan.clearAllDebugChannels();
 
-	// Dispose console
-	delete _console;
-	_console = nullptr;
-
 	// Dispose pixel formats
 	delete _origFormat;
 	_origFormat = nullptr;
@@ -142,7 +138,7 @@ Common::Error SludgeEngine::run() {
 	g_sludge = this;
 
 	// create console
-	_console = new SludgeConsole(this);
+	setDebugger(new SludgeConsole(this));
 
 	// debug log
 	main_loop(getGameFile());
diff --git a/engines/sludge/sludge.h b/engines/sludge/sludge.h
index e26fbc6..257bd3a 100644
--- a/engines/sludge/sludge.h
+++ b/engines/sludge/sludge.h
@@ -110,7 +110,6 @@ public:
 	const SludgeGameDescription *_gameDescription;
 
 private:
-	SludgeConsole *_console;
 	Common::RandomSource *_rnd;
 	Graphics::PixelFormat *_pixelFormat;
 	Graphics::PixelFormat *_origFormat;


Commit: bd381ae8d03d068f2be732ff69bd1a6a361391bb
    https://github.com/scummvm/scummvm/commit/bd381ae8d03d068f2be732ff69bd1a6a361391bb
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
STARTREK: Refactor to use Engine debugger

Changed paths:
    engines/startrek/events.cpp
    engines/startrek/graphics.cpp
    engines/startrek/startrek.cpp
    engines/startrek/startrek.h


diff --git a/engines/startrek/events.cpp b/engines/startrek/events.cpp
index c425b09..650fa06 100644
--- a/engines/startrek/events.cpp
+++ b/engines/startrek/events.cpp
@@ -62,9 +62,6 @@ void StarTrekEngine::pollEvents(bool queueEvents) {
 			break;
 
 		case Common::EVENT_KEYDOWN:
-			if (event.kbd.keycode == Common::KEYCODE_d && (event.kbd.flags & Common::KBD_CTRL))
-				_console->attach();
-
 			if (queueEvents) {
 				trekEvent.type = TREKEVENT_KEYDOWN;
 				addEventToQueue(trekEvent);
diff --git a/engines/startrek/graphics.cpp b/engines/startrek/graphics.cpp
index 1bef521..8a70908 100644
--- a/engines/startrek/graphics.cpp
+++ b/engines/startrek/graphics.cpp
@@ -594,7 +594,6 @@ void Graphics::updateScreen() {
 	if (_lockedMousePos.x != -1)
 		_vm->_system->warpMouse(_lockedMousePos.x, _lockedMousePos.y);
 
-	_vm->_console->onFrame();
 	_vm->_system->updateScreen();
 	_vm->_system->delayMillis(10);
 }
diff --git a/engines/startrek/startrek.cpp b/engines/startrek/startrek.cpp
index 6a312f3..6dfcbca 100644
--- a/engines/startrek/startrek.cpp
+++ b/engines/startrek/startrek.cpp
@@ -114,7 +114,6 @@ StarTrekEngine::~StarTrekEngine() {
 	delete _activeMenu->nextMenu;
 	delete _activeMenu;
 
-	delete _console;
 	delete _gfx;
 	delete _sound;
 	delete _macResFork;
@@ -123,7 +122,7 @@ StarTrekEngine::~StarTrekEngine() {
 Common::Error StarTrekEngine::run() {
 	_gfx = new Graphics(this);
 	_sound = new Sound(this);
-	_console = new Console(this);
+	setDebugger(new Console(this));
 
 	if (getPlatform() == Common::kPlatformMacintosh) {
 		_macResFork = new Common::MacResManager();
diff --git a/engines/startrek/startrek.h b/engines/startrek/startrek.h
index f062050..8b27c07 100644
--- a/engines/startrek/startrek.h
+++ b/engines/startrek/startrek.h
@@ -763,7 +763,6 @@ public:
 
 	Graphics *_gfx;
 	Sound *_sound;
-	Console *_console;
 	IWFile *_iwFile;
 
 private:


Commit: 3da28a4c25dd6e69bc856b6fa78ce261051e76a6
    https://github.com/scummvm/scummvm/commit/3da28a4c25dd6e69bc856b6fa78ce261051e76a6
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
SUPERNOVA: Refactor to use Engine debugger

Changed paths:
    engines/supernova/game-manager.cpp
    engines/supernova/supernova.cpp
    engines/supernova/supernova.h


diff --git a/engines/supernova/game-manager.cpp b/engines/supernova/game-manager.cpp
index 8dee92f..9dfa91b 100644
--- a/engines/supernova/game-manager.cpp
+++ b/engines/supernova/game-manager.cpp
@@ -286,10 +286,6 @@ void GameManager::processInput(Common::KeyState &state) {
 				_vm->quitGame();
 		}
 		break;
-	case Common::KEYCODE_d:
-		if (state.flags & Common::KBD_CTRL)
-			_vm->_console->attach();
-		break;
 	default:
 		break;
 	}
diff --git a/engines/supernova/supernova.cpp b/engines/supernova/supernova.cpp
index e23251c..3f69d54 100644
--- a/engines/supernova/supernova.cpp
+++ b/engines/supernova/supernova.cpp
@@ -77,7 +77,6 @@ ObjectType &operator^=(ObjectType &a, ObjectType b) {
 
 SupernovaEngine::SupernovaEngine(OSystem *syst)
 	: Engine(syst)
-	, _console(nullptr)
 	, _gm(nullptr)
 	, _sound(nullptr)
 	, _resMan(nullptr)
@@ -107,7 +106,6 @@ SupernovaEngine::~SupernovaEngine() {
 	DebugMan.clearAllDebugChannels();
 
 	delete _sleepAutoSave;
-	delete _console;
 	delete _gm;
 	delete _sound;
 	delete _resMan;
@@ -121,7 +119,6 @@ Common::Error SupernovaEngine::run() {
 		uint32 start = _system->getMillis();
 		_gm->updateEvents();
 		_gm->executeRoom();
-		_console->onFrame();
 		_system->updateScreen();
 		int end = _delay - (_system->getMillis() - start);
 		if (end > 0)
@@ -151,7 +148,7 @@ void SupernovaEngine::init() {
 		_gm = new GameManager1(this, _sound);
 	else if (_MSPart == 2)
 		_gm = new GameManager2(this, _sound);
-	_console = new Console(this, _gm);
+	setDebugger(new Console(this, _gm));
 
 	setTotalPlayTime(0);
 
diff --git a/engines/supernova/supernova.h b/engines/supernova/supernova.h
index 4635b34..84f82b8 100644
--- a/engines/supernova/supernova.h
+++ b/engines/supernova/supernova.h
@@ -73,7 +73,6 @@ public:
 	void pauseEngineIntern(bool pause) override;
 
 	GameManager *_gm;
-	Console *_console;
 	Sound *_sound;
 	ResourceManager *_resMan;
 	Screen *_screen;


Commit: 46a1f92ef6d46c371c5ccc7e8cc61f626a14bf4c
    https://github.com/scummvm/scummvm/commit/46a1f92ef6d46c371c5ccc7e8cc61f626a14bf4c
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
SWORD1: Refactor to use Engine debugger

Changed paths:
    engines/sword1/sword1.cpp
    engines/sword1/sword1.h


diff --git a/engines/sword1/sword1.cpp b/engines/sword1/sword1.cpp
index 8b12fef..f76c46b 100644
--- a/engines/sword1/sword1.cpp
+++ b/engines/sword1/sword1.cpp
@@ -65,7 +65,7 @@ SwordEngine::SwordEngine(OSystem *syst)
 	SearchMan.addSubDirectoryMatching(gameDataDir, "english"); // PSX Demo
 	SearchMan.addSubDirectoryMatching(gameDataDir, "italian"); // PSX Demo
 
-	_console = new SwordConsole(this);
+	setDebugger(new SwordConsole(this));
 
 	_mouseState = 0;
 	_resMan = 0;
@@ -89,7 +89,6 @@ SwordEngine::~SwordEngine() {
 	delete _mouse;
 	delete _objectMan;
 	delete _resMan;
-	delete _console;
 }
 
 Common::Error SwordEngine::init() {
@@ -692,12 +691,6 @@ uint8 SwordEngine::mainLoop() {
 					_screen->fullRefresh();
 			}
 
-			// Check for Debugger Activation
-			if (_keyPressed.hasFlags(Common::KBD_CTRL) && _keyPressed.keycode == Common::KEYCODE_d) {
-				this->getDebugger()->attach();
-				this->getDebugger()->onFrame();
-			}
-
 			_mouseState = 0;
 			_keyPressed.reset();
 		} while ((Logic::_scriptVars[SCREEN] == Logic::_scriptVars[NEW_SCREEN]) && (retCode == 0) && (!shouldQuit()));
diff --git a/engines/sword1/sword1.h b/engines/sword1/sword1.h
index db9f923..c90630a 100644
--- a/engines/sword1/sword1.h
+++ b/engines/sword1/sword1.h
@@ -108,8 +108,6 @@ protected:
 	bool hasFeature(EngineFeature f) const override;
 	void syncSoundSettings() override;
 
-	GUI::Debugger *getDebugger() override { return _console; }
-
 	Common::Error loadGameState(int slot) override;
 	bool canLoadGameStateCurrently() override;
 	Common::Error saveGameState(int slot, const Common::String &desc) override;
@@ -125,8 +123,6 @@ private:
 
 	void reinitRes(); //Reinits the resources after a GMM load
 
-	SwordConsole *_console;
-
 	uint8 mainLoop();
 
 	Common::Point _mouseCoord;


Commit: 0d0ea44c31f9b3905036f37083d16a6c0964fdce
    https://github.com/scummvm/scummvm/commit/0d0ea44c31f9b3905036f37083d16a6c0964fdce
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
SWORD2: Refactor to use Engine debugger

Changed paths:
    engines/sword2/sword2.cpp
    engines/sword2/sword2.h


diff --git a/engines/sword2/sword2.cpp b/engines/sword2/sword2.cpp
index 0ae106c..fafdddc 100644
--- a/engines/sword2/sword2.cpp
+++ b/engines/sword2/sword2.cpp
@@ -349,7 +349,7 @@ Sword2Engine::Sword2Engine(OSystem *syst) : Engine(syst), _rnd("sword2") {
 }
 
 Sword2Engine::~Sword2Engine() {
-	delete _debugger;
+	//_debugger is deleted by Engine
 	delete _sound;
 	delete _fontRenderer;
 	delete _screen;
@@ -359,10 +359,6 @@ Sword2Engine::~Sword2Engine() {
 	delete _memory;
 }
 
-GUI::Debugger *Sword2Engine::getDebugger() {
-	return _debugger;
-}
-
 void Sword2Engine::registerDefaultSettings() {
 	ConfMan.registerDefault("gfx_details", 2);
 	ConfMan.registerDefault("reverse_stereo", false);
@@ -458,6 +454,7 @@ Common::Error Sword2Engine::run() {
 	// visible to the user.
 
 	_debugger = new Debugger(this);
+	setDebugger(_debugger);
 
 	_memory = new MemoryManager();
 	_resman = new ResourceManager(this);
@@ -521,8 +518,6 @@ Common::Error Sword2Engine::run() {
 	_screen->initializeRenderCycle();
 
 	while (1) {
-		_debugger->onFrame();
-
 		// Handle GMM Loading
 		if (_gmmLoadSlot != -1) {
 
@@ -546,9 +541,7 @@ Common::Error Sword2Engine::run() {
 		KeyboardEvent *ke = keyboardEvent();
 
 		if (ke) {
-			if ((ke->kbd.hasFlags(Common::KBD_CTRL) && ke->kbd.keycode == Common::KEYCODE_d) || ke->kbd.ascii == '#' || ke->kbd.ascii == '~') {
-				_debugger->attach();
-			} else if (ke->kbd.hasFlags(0) || ke->kbd.hasFlags(Common::KBD_SHIFT)) {
+			if (ke->kbd.hasFlags(0) || ke->kbd.hasFlags(Common::KBD_SHIFT)) {
 				switch (ke->kbd.keycode) {
 				case Common::KEYCODE_p:
 					if (isPaused()) {
diff --git a/engines/sword2/sword2.h b/engines/sword2/sword2.h
index c665320..0d77805 100644
--- a/engines/sword2/sword2.h
+++ b/engines/sword2/sword2.h
@@ -143,7 +143,6 @@ private:
 protected:
 	// Engine APIs
 	Common::Error run() override;
-	GUI::Debugger *getDebugger() override;
 	bool hasFeature(EngineFeature f) const override;
 	void syncSoundSettings() override;
 	void pauseEngineIntern(bool pause) override;


Commit: 7d57569dd7ce4f67888c7ebb850ad75b62eaa7cd
    https://github.com/scummvm/scummvm/commit/7d57569dd7ce4f67888c7ebb850ad75b62eaa7cd
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
TEENAGENT: Refactor to use Engine debugger

Changed paths:
    engines/teenagent/teenagent.cpp
    engines/teenagent/teenagent.h


diff --git a/engines/teenagent/teenagent.cpp b/engines/teenagent/teenagent.cpp
index f70f244..c97902f 100644
--- a/engines/teenagent/teenagent.cpp
+++ b/engines/teenagent/teenagent.cpp
@@ -70,7 +70,6 @@ TeenAgentEngine::TeenAgentEngine(OSystem *system, const ADGameDescription *gd)
 	dialog = new Dialog(this);
 	res = new Resources();
 
-	console = 0;
 	scene = 0;
 	inventory = 0;
 	_sceneBusy = false;
@@ -96,7 +95,6 @@ TeenAgentEngine::~TeenAgentEngine() {
 
 	CursorMan.popCursor();
 
-	delete console;
 	DebugMan.clearAllDebugChannels();
 }
 
@@ -545,7 +543,7 @@ Common::Error TeenAgentEngine::run() {
 	Common::EventManager *_event = _system->getEventManager();
 
 	initGraphics(kScreenWidth, kScreenHeight);
-	console = new Console(this);
+	setDebugger(new Console(this));
 
 	scene = new Scene(this);
 	inventory = new Inventory(this);
@@ -600,10 +598,7 @@ Common::Error TeenAgentEngine::run() {
 			debug(5, "event");
 			switch (event.type) {
 			case Common::EVENT_KEYDOWN:
-				if ((event.kbd.hasFlags(Common::KBD_CTRL) && event.kbd.keycode == Common::KEYCODE_d) ||
-				        event.kbd.ascii == '~' || event.kbd.ascii == '#') {
-					console->attach();
-				} else if (event.kbd.hasFlags(0) && event.kbd.keycode == Common::KEYCODE_F5) {
+				if (event.kbd.hasFlags(0) && event.kbd.keycode == Common::KEYCODE_F5) {
 					openMainMenuDialog();
 				} if (event.kbd.hasFlags(Common::KBD_CTRL) && event.kbd.keycode == Common::KEYCODE_f) {
 					_markDelay = _markDelay == 80 ? 40 : 80;
@@ -704,8 +699,6 @@ Common::Error TeenAgentEngine::run() {
 
 		_system->updateScreen();
 
-		console->onFrame();
-
 		uint32 nextTick = MIN(gameTimer, markTimer);
 		if (nextTick > 0) {
 			_system->delayMillis(nextTick > 40 ? 40 : nextTick);
diff --git a/engines/teenagent/teenagent.h b/engines/teenagent/teenagent.h
index f42e18d..f0324ab 100644
--- a/engines/teenagent/teenagent.h
+++ b/engines/teenagent/teenagent.h
@@ -93,8 +93,6 @@ public:
 	bool canSaveGameStateCurrently() override { return !_sceneBusy; }
 	bool hasFeature(EngineFeature f) const override;
 
-	GUI::Debugger *getDebugger() override { return console; }
-
 	void init();
 
 	enum Action { kActionNone, kActionExamine, kActionUse };
@@ -159,7 +157,6 @@ public:
 	Inventory *inventory;
 	MusicPlayer *music;
 	Dialog *dialog;
-	Console *console;
 
 	void setMusic(byte id);
 


Commit: 17dc909e2c1678515fabb5ead1f3c1a5f3f0d2c9
    https://github.com/scummvm/scummvm/commit/17dc909e2c1678515fabb5ead1f3c1a5f3f0d2c9
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
TINSEL: Refactor to use Engine debugger

Changed paths:
    engines/tinsel/tinsel.cpp
    engines/tinsel/tinsel.h


diff --git a/engines/tinsel/tinsel.cpp b/engines/tinsel/tinsel.cpp
index 76a8325..78107ea 100644
--- a/engines/tinsel/tinsel.cpp
+++ b/engines/tinsel/tinsel.cpp
@@ -820,7 +820,7 @@ const char *const TinselEngine::_textFiles[][3] = {
 
 TinselEngine::TinselEngine(OSystem *syst, const TinselGameDescription *gameDesc) :
 		Engine(syst), _gameDescription(gameDesc), _random("tinsel"),
-		_console(0), _sound(0), _midiMusic(0), _pcmMusic(0), _bmv(0) {
+		_sound(0), _midiMusic(0), _pcmMusic(0), _bmv(0) {
 	// Register debug flags
 	DebugMan.addDebugChannel(kTinselDebugAnimations, "animations", "Animations debugging");
 	DebugMan.addDebugChannel(kTinselDebugActions, "actions", "Actions debugging");
@@ -858,7 +858,6 @@ TinselEngine::~TinselEngine() {
 	delete _sound;
 	delete _midiMusic;
 	delete _pcmMusic;
-	delete _console;
 	_screenSurface.free();
 	FreeSaveScenes();
 	FreeTextBuffer();
@@ -910,7 +909,7 @@ Common::Error TinselEngine::run() {
 		_screenSurface.create(320, 200, Graphics::PixelFormat::createFormatCLUT8());
 	}
 
-	_console = new Console();
+	setDebugger(new Console());
 
 	CoroScheduler.reset();
 
@@ -970,9 +969,6 @@ Common::Error TinselEngine::run() {
 	// Foreground loop
 	uint32 timerVal = 0;
 	while (!shouldQuit()) {
-		assert(_console);
-		_console->onFrame();
-
 		// Check for time to do next game cycle
 		if ((g_system->getMillis() > timerVal + GAME_FRAME_DELAY)) {
 			timerVal = g_system->getMillis();
@@ -1184,22 +1180,6 @@ void TinselEngine::ChopDrivers() {
  * Process a keyboard event
  */
 void TinselEngine::ProcessKeyEvent(const Common::Event &event) {
-
-	// Handle any special keys immediately
-	switch (event.kbd.keycode) {
-	case Common::KEYCODE_d:
-		// Checks for CTRL flag, ignoring all the sticky flags
-		if (event.kbd.hasFlags(Common::KBD_CTRL) && event.type == Common::EVENT_KEYDOWN) {
-			// Activate the debugger
-			assert(_console);
-			_console->attach();
-			return;
-		}
-		break;
-	default:
-		break;
-	}
-
 	// Check for movement keys
 	int idx = 0;
 	switch (event.kbd.keycode) {
diff --git a/engines/tinsel/tinsel.h b/engines/tinsel/tinsel.h
index 01cff3f..1917a8a 100644
--- a/engines/tinsel/tinsel.h
+++ b/engines/tinsel/tinsel.h
@@ -151,8 +151,6 @@ class TinselEngine : public Engine {
 	Graphics::Surface _screenSurface;
 	Common::Point _mousePos;
 	uint8 _dosPlayerDir;
-	Console *_console;
-	GUI::Debugger *getDebugger() override { return _console; }
 
 	static const char *const _sampleIndices[][3];
 	static const char *const _sampleFiles[][3];


Commit: 7f90c4e961138803a63288f0c0b0f0e0dd48e4e5
    https://github.com/scummvm/scummvm/commit/7f90c4e961138803a63288f0c0b0f0e0dd48e4e5
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
TITANIC: Refactor to use Engine debugger

Changed paths:
    engines/titanic/events.cpp
    engines/titanic/main_game_window.cpp
    engines/titanic/titanic.cpp
    engines/titanic/titanic.h


diff --git a/engines/titanic/events.cpp b/engines/titanic/events.cpp
index 4cf7e77..2b3f04e 100644
--- a/engines/titanic/events.cpp
+++ b/engines/titanic/events.cpp
@@ -141,9 +141,6 @@ bool Events::checkForNextFrameCounter() {
 		// Handle any idle updates
 		eventTarget()->onIdle();
 
-		// Give time to the debugger
-		_vm->_debugger->onFrame();
-
 		// Display the frame
 		_vm->_screen->update();
 
diff --git a/engines/titanic/main_game_window.cpp b/engines/titanic/main_game_window.cpp
index ab2c8be7..4f7276e 100644
--- a/engines/titanic/main_game_window.cpp
+++ b/engines/titanic/main_game_window.cpp
@@ -345,12 +345,7 @@ void CMainGameWindow::mouseWheel(const Point &mousePos, bool wheelUp) {
 }
 
 void CMainGameWindow::keyDown(Common::KeyState keyState) {
-	if (keyState.keycode == Common::KEYCODE_d && (keyState.flags & Common::KBD_CTRL)) {
-		// Attach to the debugger
-		_vm->_debugger->attach();
-		_vm->_debugger->onFrame();
-
-	} else if (keyState.keycode == Common::KEYCODE_c && (keyState.flags & Common::KBD_CTRL)) {
+	if (keyState.keycode == Common::KEYCODE_c && (keyState.flags & Common::KBD_CTRL)) {
 		// Cheat action
 		if (_project && g_vm->canLoadGameStateCurrently()) {
 			CViewItem *newView = _project->parseView("Cheat Room.Node 1.Cheat Rooms View");
diff --git a/engines/titanic/titanic.cpp b/engines/titanic/titanic.cpp
index 4bde64c..f11e851 100644
--- a/engines/titanic/titanic.cpp
+++ b/engines/titanic/titanic.cpp
@@ -60,7 +60,6 @@ TitanicEngine::TitanicEngine(OSystem *syst, const TitanicGameDescription *gameDe
 		: _gameDescription(gameDesc), Engine(syst), _randomSource("Titanic") {
 	g_vm = this;
 	g_language = getLanguage();
-	_debugger = nullptr;
 	_events = nullptr;
 	_filesManager = nullptr;
 	_window = nullptr;
@@ -93,7 +92,7 @@ bool TitanicEngine::initialize() {
 		return false;
 	}
 
-	_debugger = new Debugger(this);
+	setDebugger(new Debugger(this));
 
 	CSaveableObject::initClassList();
 	CEnterExitFirstClassState::init();
@@ -127,7 +126,6 @@ bool TitanicEngine::initialize() {
 }
 
 void TitanicEngine::deinitialize() {
-	delete _debugger;
 	delete _events;
 	delete _window;
 	delete _screenManager;
diff --git a/engines/titanic/titanic.h b/engines/titanic/titanic.h
index 584bd9b..1dab3e5 100644
--- a/engines/titanic/titanic.h
+++ b/engines/titanic/titanic.h
@@ -73,7 +73,6 @@ class CFilesManager;
 class CMainGameWindow;
 class CString;
 class CTrueTalkManager;
-class Debugger;
 class Events;
 class OSScreenManager;
 class CScriptHandler;
@@ -109,7 +108,6 @@ protected:
 	Common::Error run() override;
 	bool hasFeature(EngineFeature f) const override;
 public:
-	Debugger *_debugger;
 	Events *_events;
 	CFilesManager *_filesManager;
 	CMovieManager _movieManager;


Commit: b97f66ba17ec00a3a226df219d87daa4aa14a703
    https://github.com/scummvm/scummvm/commit/b97f66ba17ec00a3a226df219d87daa4aa14a703
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
TOLTECS: Refactor to use Engine debugger

Changed paths:
    engines/toltecs/toltecs.cpp
    engines/toltecs/toltecs.h


diff --git a/engines/toltecs/toltecs.cpp b/engines/toltecs/toltecs.cpp
index 2eebe91..7d8a622 100644
--- a/engines/toltecs/toltecs.cpp
+++ b/engines/toltecs/toltecs.cpp
@@ -123,7 +123,7 @@ Common::Error ToltecsEngine::run() {
 	_menuSystem = new MenuSystem(this);
 
 	_sound = new Sound(this);
-	_console = new Console(this);
+	setDebugger(new Console(this));
 
 	_cfgText = ConfMan.getBool("subtitles");
 	_cfgVoices = !ConfMan.getBool("speech_mute");
@@ -176,7 +176,6 @@ Common::Error ToltecsEngine::run() {
 	_music->stopSequence();
 	_sound->stopAll();
 
-	delete _console;
 	delete _arc;
 	delete _res;
 	delete _screen;
@@ -305,7 +304,6 @@ void ToltecsEngine::drawScreen() {
 		_screen->_guiRefresh = false;
 	}
 
-	_console->onFrame();
 	_system->updateScreen();
 	_system->delayMillis(10);
 
@@ -322,9 +320,6 @@ void ToltecsEngine::updateInput() {
 
 			//debug("key: flags = %02X; keycode = %d", _keyState.flags, _keyState.keycode);
 
-			if (event.kbd.hasFlags(Common::KBD_CTRL) && event.kbd.keycode == Common::KEYCODE_d)
-				_console->attach();
-
 			switch (event.kbd.keycode) {
 			case Common::KEYCODE_F5:
 				showMenu(kMenuIdSave);
diff --git a/engines/toltecs/toltecs.h b/engines/toltecs/toltecs.h
index 8a4bc22..aed237a 100644
--- a/engines/toltecs/toltecs.h
+++ b/engines/toltecs/toltecs.h
@@ -112,8 +112,6 @@ public:
 	const Common::String& getTargetName() const { return _targetName; }
 	void syncSoundSettings() override;
 
-	GUI::Debugger *getDebugger() override { return _console; }
-
 	void setupSysStrings();
 	void requestSavegame(int slotNum, Common::String &description);
 	void requestLoadgame(int slotNum);
@@ -149,7 +147,6 @@ public:
 
 	AnimationPlayer *_anim;
 	ArchiveReader *_arc;
-	Console *_console;
 	Input *_input;
 	MenuSystem *_menuSystem;
 	MoviePlayer *_moviePlayer;


Commit: 5a18e495e09f9b8050b8bc11281c73079c16402e
    https://github.com/scummvm/scummvm/commit/5a18e495e09f9b8050b8bc11281c73079c16402e
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
TONY: Refactor to use Engine debugger

Changed paths:
    engines/tony/input.cpp
    engines/tony/tony.cpp
    engines/tony/tony.h


diff --git a/engines/tony/input.cpp b/engines/tony/input.cpp
index 787fb21..9a6f151 100644
--- a/engines/tony/input.cpp
+++ b/engines/tony/input.cpp
@@ -64,15 +64,8 @@ void RMInput::poll() {
 			return;
 
 		case Common::EVENT_KEYDOWN:
-			// Check for debugger
-			if ((_event.kbd.keycode == Common::KEYCODE_d) && (_event.kbd.flags & Common::KBD_CTRL)) {
-				// Attach to the debugger
-				g_vm->_debugger->attach();
-				g_vm->_debugger->onFrame();
-			} else {
-				// Flag the given key as being down
-				_keyDown.push_back(_event.kbd.keycode);
-			}
+			// Flag the given key as being down
+			_keyDown.push_back(_event.kbd.keycode);
 			return;
 
 		case Common::EVENT_KEYUP:
diff --git a/engines/tony/tony.cpp b/engines/tony/tony.cpp
index b3338e7..5bcfd84 100644
--- a/engines/tony/tony.cpp
+++ b/engines/tony/tony.cpp
@@ -44,7 +44,7 @@ TonyEngine::TonyEngine(OSystem *syst, const TonyGameDescription *gameDesc) : Eng
 	_loadSlotNumber = -1;
 
 	// Set the up the debugger
-	_debugger = new Debugger();
+	setDebugger(new Debugger());
 	DebugMan.addDebugChannel(kTonyDebugAnimations, "animations", "Animations debugging");
 	DebugMan.addDebugChannel(kTonyDebugActions, "actions", "Actions debugging");
 	DebugMan.addDebugChannel(kTonyDebugSound, "sound", "Sound debugging");
@@ -95,8 +95,6 @@ TonyEngine::~TonyEngine() {
 	// Reset the coroutine scheduler
 	CoroScheduler.reset();
 	CoroScheduler.setResourceCallback(NULL);
-
-	delete _debugger;
 }
 
 /**
@@ -692,9 +690,6 @@ void TonyEngine::playProcess(CORO_PARAM, const void *param) {
 
 		// Paint the frame onto the screen
 		g_vm->_window.repaint();
-
-		// Signal the ScummVM debugger
-		g_vm->_debugger->onFrame();
 	}
 
 	CORO_END_CODE;
diff --git a/engines/tony/tony.h b/engines/tony/tony.h
index 54c9bdd..e963c48 100644
--- a/engines/tony/tony.h
+++ b/engines/tony/tony.h
@@ -109,8 +109,6 @@ public:
 	FPSound _theSound;
 	Common::List<FPSfx *> _activeSfx;
 	Globals _globals;
-	Debugger *_debugger;
-	GUI::Debugger *getDebugger() override { return _debugger; }
 
 	int16 _cTableDialog[256];
 	int16 _lTableDialog[256];


Commit: ed71bef83b8bce9afbff578dfaa35aa78d459f24
    https://github.com/scummvm/scummvm/commit/ed71bef83b8bce9afbff578dfaa35aa78d459f24
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
TOON: Refactor to use Engine debugger

Changed paths:
    engines/toon/toon.cpp
    engines/toon/toon.h


diff --git a/engines/toon/toon.cpp b/engines/toon/toon.cpp
index 0f03536..90f62a2 100644
--- a/engines/toon/toon.cpp
+++ b/engines/toon/toon.cpp
@@ -249,11 +249,6 @@ void ToonEngine::parseInput() {
 						dialog.runModal();
 					}
 				}
-
-				if (event.kbd.keycode == Common::KEYCODE_d) {
-					_console->attach();
-					_console->onFrame();
-				}
 			}
 			break;
 		default:
@@ -1215,7 +1210,7 @@ ToonEngine::ToonEngine(OSystem *syst, const ADGameDescription *gameDescription)
 	_saveBufferStream = NULL;
 
 	_pathFinding = NULL;
-	_console = new ToonConsole(this);
+	setDebugger(new ToonConsole(this));
 
 	_cursorAnimation = NULL;
 	_cursorAnimationInstance = NULL;
@@ -1378,7 +1373,6 @@ ToonEngine::~ToonEngine() {
 	unloadToonDat();
 
 	DebugMan.clearAllDebugChannels();
-	delete _console;
 }
 
 void ToonEngine::flushPalette(bool deferFlushToNextRender) {
diff --git a/engines/toon/toon.h b/engines/toon/toon.h
index e6e4923..5a64718 100644
--- a/engines/toon/toon.h
+++ b/engines/toon/toon.h
@@ -110,7 +110,6 @@ public:
 	char **_specialInfoLine;
 
 	Common::Error run() override;
-	GUI::Debugger *getDebugger() override { return _console; }
 	bool showMainmenu(bool &loadedGame);
 	bool showOptions();
 	void init();
@@ -437,8 +436,6 @@ protected:
 	bool _showConversationText;
 	bool _useAlternativeFont;
 	bool _needPaletteFlush;
-private:
-	ToonConsole *_console;
 };
 
 } // End of namespace Toon


Commit: 6b096f3a9fb117334c5374cebe56d35378be09d3
    https://github.com/scummvm/scummvm/commit/6b096f3a9fb117334c5374cebe56d35378be09d3
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
TOUCHE: Refactor to use Engine debugger

Changed paths:
    engines/touche/touche.cpp
    engines/touche/touche.h


diff --git a/engines/touche/touche.cpp b/engines/touche/touche.cpp
index 4bc8822..61fbc49 100644
--- a/engines/touche/touche.cpp
+++ b/engines/touche/touche.cpp
@@ -110,7 +110,7 @@ ToucheEngine::ToucheEngine(OSystem *system, Common::Language language)
 	DebugMan.addDebugChannel(kDebugMenu,     "Menu",     "Menu debug level");
 	DebugMan.addDebugChannel(kDebugCharset,  "Charset",   "Charset debug level");
 
-	_console = new ToucheConsole(this);
+	setDebugger(new ToucheConsole(this));
 
 	_newEpisodeNum = 0;
 	_currentEpisodeNum = 0;
@@ -192,7 +192,6 @@ ToucheEngine::ToucheEngine(OSystem *system, Common::Language language)
 
 ToucheEngine::~ToucheEngine() {
 	DebugMan.clearAllDebugChannels();
-	delete _console;
 
 	stopMusic();
 	delete _midiPlayer;
@@ -434,9 +433,6 @@ void ToucheEngine::processEvents(bool handleKeyEvents) {
 			if (event.kbd.hasFlags(Common::KBD_CTRL)) {
 				if (event.kbd.keycode == Common::KEYCODE_f) {
 					_fastMode = !_fastMode;
-				} else if (event.kbd.keycode == Common::KEYCODE_d) {
-					this->getDebugger()->attach();
-					this->getDebugger()->onFrame();
 				}
 			} else {
 				if (event.kbd.keycode == Common::KEYCODE_t) {
diff --git a/engines/touche/touche.h b/engines/touche/touche.h
index 0f3d496..dfc34e6 100644
--- a/engines/touche/touche.h
+++ b/engines/touche/touche.h
@@ -475,7 +475,6 @@ public:
 	Common::Error run() override;
 	bool hasFeature(EngineFeature f) const override;
 	void syncSoundSettings() override;
-	GUI::Debugger *getDebugger() override { return _console; }
 
 protected:
 
@@ -610,8 +609,6 @@ protected:
 	bool canLoadGameStateCurrently() override;
 	bool canSaveGameStateCurrently() override;
 
-	ToucheConsole *_console;
-
 	void setupOpcodes();
 	void op_nop();
 	void op_jnz();


Commit: 0107aace67aa3f29eaa5ba9be05012dd08c10680
    https://github.com/scummvm/scummvm/commit/0107aace67aa3f29eaa5ba9be05012dd08c10680
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
TSAGE: Refactor to use Engine debugger

Changed paths:
    engines/tsage/core.cpp
    engines/tsage/tsage.cpp
    engines/tsage/tsage.h


diff --git a/engines/tsage/core.cpp b/engines/tsage/core.cpp
index f5cd722..50bc6e7 100644
--- a/engines/tsage/core.cpp
+++ b/engines/tsage/core.cpp
@@ -4351,14 +4351,6 @@ void SceneHandler::process(Event &event) {
 			g_globals->_events.setCursorFromFlag();
 		}
 
-		// Check for debugger
-		if ((event.eventType == EVENT_KEYPRESS) && (event.kbd.keycode == Common::KEYCODE_d) &&
-			(event.kbd.flags & Common::KBD_CTRL)) {
-			// Attach to the debugger
-			g_vm->_debugger->attach();
-			g_vm->_debugger->onFrame();
-		}
-
 		if ((event.eventType == EVENT_KEYPRESS) && g_globals->_player._enabled) {
 			// Keyboard shortcuts for different actions
 			switch (event.kbd.keycode) {
@@ -4494,9 +4486,6 @@ void SceneHandler::dispatch() {
 	// Check to see if any scene change is required
 	g_globals->_sceneManager.checkScene();
 
-	// Signal the ScummVM debugger
-	g_vm->_debugger->onFrame();
-
 	// Delay between frames
 	g_globals->_events.delay(_delayTicks);
 }
diff --git a/engines/tsage/tsage.cpp b/engines/tsage/tsage.cpp
index 417652d..6de5e2e 100644
--- a/engines/tsage/tsage.cpp
+++ b/engines/tsage/tsage.cpp
@@ -38,18 +38,18 @@ TSageEngine::TSageEngine(OSystem *system, const tSageGameDescription *gameDesc)
 		_gameDescription(gameDesc) {
 	g_vm = this;
 	DebugMan.addDebugChannel(kRingDebugScripts, "scripts", "Scripts debugging");
-	_debugger = nullptr;
+
 	if (g_vm->getGameID() == GType_Ringworld) {
 		if (g_vm->getFeatures() & GF_DEMO)
-			_debugger = new DemoDebugger();
+			setDebugger(new DemoDebugger());
 		else
-			_debugger = new RingworldDebugger();
+			setDebugger(new RingworldDebugger());
 	} else if (g_vm->getGameID() == GType_BlueForce)
-		_debugger = new BlueForceDebugger();
+		setDebugger(new BlueForceDebugger());
 	else if (g_vm->getGameID() == GType_Ringworld2)
-		_debugger = new Ringworld2Debugger();
+		setDebugger(new Ringworld2Debugger());
 	else if (g_vm->getGameID() == GType_Sherlock1)
-		_debugger = new DemoDebugger();
+		setDebugger(new DemoDebugger());
 }
 
 Common::Error TSageEngine::init() {
@@ -61,7 +61,6 @@ Common::Error TSageEngine::init() {
 TSageEngine::~TSageEngine() {
 	// Remove all of our debug levels here
 	DebugMan.clearAllDebugChannels();
-	delete _debugger;
 }
 
 bool TSageEngine::hasFeature(EngineFeature f) const {
diff --git a/engines/tsage/tsage.h b/engines/tsage/tsage.h
index f3c98f8..57e00ea 100644
--- a/engines/tsage/tsage.h
+++ b/engines/tsage/tsage.h
@@ -68,8 +68,6 @@ public:
 	bool hasFeature(EngineFeature f) const override;
 
 	MemoryManager _memoryManager;
-	Debugger *_debugger;
-	GUI::Debugger *getDebugger() override { return _debugger; }
 
 	const char *getGameId() const;
 	uint32 getGameID() const;


Commit: 85b469ff5dc81c97e9b4570ff469ba508484ecd7
    https://github.com/scummvm/scummvm/commit/85b469ff5dc81c97e9b4570ff469ba508484ecd7
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
TUCKER: Refactor to use Engine debugger

Changed paths:
    engines/tucker/tucker.cpp
    engines/tucker/tucker.h


diff --git a/engines/tucker/tucker.cpp b/engines/tucker/tucker.cpp
index 29ce41c..c4725d1 100644
--- a/engines/tucker/tucker.cpp
+++ b/engines/tucker/tucker.cpp
@@ -43,7 +43,7 @@ namespace Tucker {
 
 TuckerEngine::TuckerEngine(OSystem *system, Common::Language language, uint32 flags)
 	: Engine(system), _gameLang(language), _gameFlags(flags), _rnd("tucker") {
-	_console = new TuckerConsole(this);
+	setDebugger(new TuckerConsole(this));
 
 	resetVariables();
 
@@ -75,7 +75,6 @@ TuckerEngine::TuckerEngine(OSystem *system, Common::Language language, uint32 fl
 }
 
 TuckerEngine::~TuckerEngine() {
-	delete _console;
 }
 
 bool TuckerEngine::hasFeature(EngineFeature f) const {
@@ -680,12 +679,6 @@ void TuckerEngine::parseEvents() {
 				_inputKeys[kInputKeyEscape] = true;
 				_inputKeys[kInputKeySkipSpeech] = true;
 				break;
-			case Common::KEYCODE_d:
-				if (ev.kbd.hasFlags(Common::KBD_CTRL)) {
-					this->getDebugger()->attach();
-					this->getDebugger()->onFrame();
-				}
-				break;
 			default:
 				break;
 			}
diff --git a/engines/tucker/tucker.h b/engines/tucker/tucker.h
index 9532449..34a4f93 100644
--- a/engines/tucker/tucker.h
+++ b/engines/tucker/tucker.h
@@ -450,7 +450,6 @@ public:
 
 	Common::Error run() override;
 	bool hasFeature(EngineFeature f) const override;
-	GUI::Debugger *getDebugger() override { return _console; }
 
 	WARN_UNUSED_RESULT static SavegameError readSavegameHeader(Common::InSaveFile *file, SavegameHeader &header, bool skipThumbnail = true);
 	WARN_UNUSED_RESULT static SavegameError readSavegameHeader(const char *target, int slot, SavegameHeader &header);
@@ -753,8 +752,6 @@ protected:
 	bool canSaveGameStateCurrently() override;
 	virtual bool existsSavegame();
 
-	TuckerConsole *_console;
-
 	void handleIntroSequence();
 	void handleCreditsSequence();
 	void handleCongratulationsSequence();


Commit: c811d4c658cc6c40b090292845acb848d62f73de
    https://github.com/scummvm/scummvm/commit/c811d4c658cc6c40b090292845acb848d62f73de
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
ULTIMA: Refactor to use Engine debugger

Changed paths:
    engines/ultima/nuvie/nuvie.cpp
    engines/ultima/nuvie/nuvie.h
    engines/ultima/shared/early/ultima_early.cpp
    engines/ultima/shared/early/ultima_early.h
    engines/ultima/shared/engine/events.cpp
    engines/ultima/shared/engine/events.h
    engines/ultima/shared/engine/ultima.cpp
    engines/ultima/shared/engine/ultima.h
    engines/ultima/ultima8/ultima8.cpp
    engines/ultima/ultima8/ultima8.h


diff --git a/engines/ultima/nuvie/nuvie.cpp b/engines/ultima/nuvie/nuvie.cpp
index 876ea07..39597f2 100644
--- a/engines/ultima/nuvie/nuvie.cpp
+++ b/engines/ultima/nuvie/nuvie.cpp
@@ -49,7 +49,7 @@ NuvieEngine *g_engine;
 
 NuvieEngine::NuvieEngine(OSystem *syst, const Ultima::UltimaGameDescription *gameDesc) :
 		Ultima::Shared::UltimaEngine(syst, gameDesc),  _config(nullptr), _savegame(nullptr),
-		_screen(nullptr), _script(nullptr), _game(nullptr), _debugger(nullptr) {
+		_screen(nullptr), _script(nullptr), _game(nullptr) {
 	g_engine = this;
 }
 
@@ -60,7 +60,6 @@ NuvieEngine::~NuvieEngine() {
 	delete _screen;
 	delete _script;
 	delete _game;
-	delete _debugger;
 
 	g_engine = nullptr;
 }
@@ -108,7 +107,7 @@ bool NuvieEngine::initialize() {
 	_savegame = new SaveGame(_config);
 
 	// Setup debugger
-	_debugger = new Debugger();
+	setDebugger(new Debugger());
 
 	// Setup screen
 	_screen = new Screen(_config);
diff --git a/engines/ultima/nuvie/nuvie.h b/engines/ultima/nuvie/nuvie.h
index 42f2ada..d99432a 100644
--- a/engines/ultima/nuvie/nuvie.h
+++ b/engines/ultima/nuvie/nuvie.h
@@ -46,7 +46,6 @@ private:
 	Script *_script;
 	Game *_game;
 	SaveGame *_savegame;
-	::GUI::Debugger *_debugger;
 private:
 	void initConfig();
 	void assignGameConfigValues(uint8 game_type);
@@ -100,10 +99,6 @@ public:
 	 */
 	Common::Error saveGameState(int slot, const Common::String &desc, bool isAutosave) override;
 
-	::GUI::Debugger *getDebugger() override {
-		return _debugger;
-	}
-
 	/**
 	 * Either starts the most recently saved game, or falls back on starting a new game
 	 */
diff --git a/engines/ultima/shared/early/ultima_early.cpp b/engines/ultima/shared/early/ultima_early.cpp
index ac40d29..235ab9f 100644
--- a/engines/ultima/shared/early/ultima_early.cpp
+++ b/engines/ultima/shared/early/ultima_early.cpp
@@ -51,7 +51,6 @@ UltimaEarlyEngine::UltimaEarlyEngine(OSystem *syst, const UltimaGameDescription
 }
 
 UltimaEarlyEngine::~UltimaEarlyEngine() {
-	delete _debugger;
 	delete _events;
 	delete _game;
 	delete _mouseCursor;
@@ -70,7 +69,7 @@ bool UltimaEarlyEngine::initialize() {
 	}
 	SearchMan.add("ultima", res);
 
-	_debugger = new Debugger();
+	setDebugger(new Debugger());
 	_events = new EventsManager(this);
 	_screen = new Gfx::Screen();
 
diff --git a/engines/ultima/shared/early/ultima_early.h b/engines/ultima/shared/early/ultima_early.h
index 239cf27..1a27a53 100644
--- a/engines/ultima/shared/early/ultima_early.h
+++ b/engines/ultima/shared/early/ultima_early.h
@@ -131,8 +131,6 @@ public:
 	 * Creates a new hierarchy for the game, that contains all the logic for playing that particular game.
 	 */
 	Game *createGame() const;
-
-	GUI::Debugger *getDebugger() override { return nullptr; }
 };
 
 } // End of namespace Shared
diff --git a/engines/ultima/shared/engine/events.cpp b/engines/ultima/shared/engine/events.cpp
index 32b19b2..9a6816b 100644
--- a/engines/ultima/shared/engine/events.cpp
+++ b/engines/ultima/shared/engine/events.cpp
@@ -78,16 +78,6 @@ bool EventsManager::pollEvent(Common::Event &event) {
 		switch (event.type) {
 		case Common::EVENT_KEYDOWN: {
 			handleKbdSpecial(event.kbd);
-
-			// Check for debugger
-			GUI::Debugger *debugger = _callback->getDebugger();
-			if (debugger != nullptr && event.kbd.keycode == Common::KEYCODE_d
-					&& (event.kbd.flags & Common::KBD_CTRL)) {
-				// Attach to the debugger
-				debugger->attach();
-				debugger->onFrame();
-				return false;
-			}
 			break;
 		}
 		case Common::EVENT_KEYUP:
@@ -167,11 +157,6 @@ void EventsManager::nextFrame() {
 	if (!_eventTargets.empty())
 		eventTarget()->onIdle();
 
-	// Handle debugger updates
-	GUI::Debugger *debugger = _callback->getDebugger();
-	if (debugger)
-		debugger->onFrame();
-
 	// Render anything pending for the screen
 	Graphics::Screen *screen = _callback->getScreen();
 	if (screen)
diff --git a/engines/ultima/shared/engine/events.h b/engines/ultima/shared/engine/events.h
index 590ab2a..f08fcbb 100644
--- a/engines/ultima/shared/engine/events.h
+++ b/engines/ultima/shared/engine/events.h
@@ -135,11 +135,6 @@ public:
 	virtual bool autoSaveCheck(int lastSaveTime) = 0;
 
 	/**
-	 * Get the debugger
-	 */
-	virtual GUI::Debugger *getDebugger() = 0;
-
-	/**
 	 * Get the screen
 	 */
 	virtual Graphics::Screen *getScreen() const {
diff --git a/engines/ultima/shared/engine/ultima.cpp b/engines/ultima/shared/engine/ultima.cpp
index ce6b55a..e866876 100644
--- a/engines/ultima/shared/engine/ultima.cpp
+++ b/engines/ultima/shared/engine/ultima.cpp
@@ -36,7 +36,7 @@ UltimaEngine * g_ultima;
 
 UltimaEngine::UltimaEngine(OSystem *syst, const Ultima::UltimaGameDescription *gameDesc) :
 		Engine(syst), _gameDescription(gameDesc), _randomSource("Ultima"),
-		_dataArchive(nullptr), _debugger(nullptr), _events(nullptr) {
+		_dataArchive(nullptr), _events(nullptr) {
 	g_ultima = this;
 }
 
diff --git a/engines/ultima/shared/engine/ultima.h b/engines/ultima/shared/engine/ultima.h
index 72c574b..4b985b6 100644
--- a/engines/ultima/shared/engine/ultima.h
+++ b/engines/ultima/shared/engine/ultima.h
@@ -44,7 +44,6 @@ private:
 protected:
 	const UltimaGameDescription *_gameDescription;
 	Common::Archive *_dataArchive;
-	Debugger *_debugger;
 protected:
 	/**
 	 * Initializes needed data for the engine
@@ -138,13 +137,6 @@ public:
 	bool autoSaveCheck(int lastSaveTime) override;
 
 	/**
-	 * Return the debugger
-	 */
-	GUI::Debugger *getDebugger() override {
-		return _debugger;
-	}
-
-	/**
 	 * Returns a file system node for the game directory
 	 */
 	Common::FSNode getGameDirectory() const;
diff --git a/engines/ultima/ultima8/ultima8.cpp b/engines/ultima/ultima8/ultima8.cpp
index 5ff49df..b91c760 100644
--- a/engines/ultima/ultima8/ultima8.cpp
+++ b/engines/ultima/ultima8/ultima8.cpp
@@ -127,9 +127,9 @@ DEFINE_RUNTIME_CLASSTYPE_CODE(Ultima8Engine, CoreApp)
 
 Ultima8Engine::Ultima8Engine(OSystem *syst, const Ultima::UltimaGameDescription *gameDesc) :
 		Shared::UltimaEngine(syst, gameDesc), CoreApp(gameDesc), _saveCount(0), _game(0),
-		_kernel(0), _objectManager(0), _debugger(0), _hidManager(0), _mouse(0), _ucMachine(0),
-		_screen(0), _fontManager(0), _fullScreen(false), _paletteManager(0), _gameData(0),
-		_world(0), _desktopGump(0), _consoleGump(0), _gameMapGump(0), _avatarMoverProcess(0),
+		_kernel(0), _objectManager(0), _hidManager(0), _mouse(0), _ucMachine(0), _screen(0),
+		_fontManager(0), _fullScreen(false), _paletteManager(0), _gameData(0), _world(0),
+		_desktopGump(0), _consoleGump(0), _gameMapGump(0), _avatarMoverProcess(0),
 		_frameSkip(false), _frameLimit(true), _interpolate(true), _animationRate(100),
 		_avatarInStasis(false), _paintEditorItems(false), _inversion(0), _painting(false),
 		_showTouching(false), _timeOffset(0), _hasCheated(false), _cheatsEnabled(false),
@@ -157,7 +157,6 @@ Ultima8Engine::~Ultima8Engine() {
 	FORGET_OBJECT(_fontManager);
 	FORGET_OBJECT(_screen);
 	FORGET_OBJECT(_memoryManager);
-	FORGET_OBJECT(_debugger);
 }
 
 Common::Error Ultima8Engine::run() {
@@ -344,7 +343,7 @@ void Ultima8Engine::startup() {
 
 	_kernel = new Kernel();
 	_memoryManager = new MemoryManager();
-	_debugger = new Debugger();
+	setDebugger(new Debugger());
 
 	//!! move this elsewhere
 	_kernel->addProcessLoader("DelayProcess",
@@ -2029,10 +2028,6 @@ bool Ultima8Engine::isDataRequired(Common::String &folder, int &majorVersion, in
 	return true;
 }
 
-GUI::Debugger *Ultima8Engine::getDebugger() {
-	return _debugger;
-}
-
 Graphics::Screen *Ultima8Engine::getScreen() const {
 	Graphics::Screen *scr = dynamic_cast<Graphics::Screen *>(_screen->getRawSurface());
 	assert(scr);
diff --git a/engines/ultima/ultima8/ultima8.h b/engines/ultima/ultima8/ultima8.h
index fd0c8ae..6f7dff4 100644
--- a/engines/ultima/ultima8/ultima8.h
+++ b/engines/ultima/ultima8/ultima8.h
@@ -93,7 +93,6 @@ private:
 	Kernel *_kernel;
 	MemoryManager *_memoryManager;
 	ObjectManager *_objectManager;
-	GUI::Debugger *_debugger;
 	HIDManager *_hidManager;
 	UCMachine *_ucMachine;
 	RenderSurface *_screen;
@@ -241,7 +240,6 @@ public:
 		return _screen;
 	}
 
-	GUI::Debugger *getDebugger() override;
 	Graphics::Screen *getScreen() const override;
 
 	void runGame() override;


Commit: 11dd04aa6b4a20a5ce577111900c859d2283042f
    https://github.com/scummvm/scummvm/commit/11dd04aa6b4a20a5ce577111900c859d2283042f
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
VOYEUR: Refactor to use Engine debugger

Changed paths:
    engines/voyeur/events.cpp
    engines/voyeur/voyeur.cpp


diff --git a/engines/voyeur/events.cpp b/engines/voyeur/events.cpp
index ae7e300..941c3f3 100644
--- a/engines/voyeur/events.cpp
+++ b/engines/voyeur/events.cpp
@@ -150,18 +150,12 @@ void EventsManager::checkForNextFrameCounter() {
 		if ((_gameCounter % GAME_FRAME_RATE) == 0)
 			mainVoyeurIntFunc();
 
-		// Give time to the debugger
-		_vm->_debugger->onFrame();
-
 		// If mouse position display is on, display the position
 		if (_vm->_debugger->_showMousePosition)
 			showMousePosition();
 
 		// Display the frame
 		_vm->_screen->update();
-
-		// Signal the ScummVM debugger
-		_vm->_debugger->onFrame();
 	}
 }
 
@@ -254,12 +248,6 @@ void EventsManager::pollEvents() {
 			return;
 
 		case Common::EVENT_KEYDOWN:
-			// Check for debugger
-			if (event.kbd.keycode == Common::KEYCODE_d && (event.kbd.flags & Common::KBD_CTRL)) {
-				// Attach to the debugger
-				_vm->_debugger->attach();
-				_vm->_debugger->onFrame();
-			}
 			return;
 		case Common::EVENT_LBUTTONDOWN:
 			_newLeftClick = true;
diff --git a/engines/voyeur/voyeur.cpp b/engines/voyeur/voyeur.cpp
index b7769c1..1b2837d 100644
--- a/engines/voyeur/voyeur.cpp
+++ b/engines/voyeur/voyeur.cpp
@@ -84,7 +84,7 @@ VoyeurEngine::~VoyeurEngine() {
 	delete _screen;
 	delete _filesManager;
 	delete _eventsManager;
-	delete _debugger;
+	//_debugger is deleted by Engine
 }
 
 Common::Error VoyeurEngine::run() {
@@ -120,6 +120,7 @@ void VoyeurEngine::ESP_Init() {
 
 void VoyeurEngine::globalInitBolt() {
 	_debugger = new Debugger(this);
+	setDebugger(_debugger);
 	_eventsManager = new EventsManager(this);
 	_filesManager = new FilesManager(this);
 	_screen = new Screen(this);


Commit: 813226095a8c33c63231b3a073a37e2943119050
    https://github.com/scummvm/scummvm/commit/813226095a8c33c63231b3a073a37e2943119050
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
WAGE: Refactor to use Engine debugger

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


diff --git a/engines/wage/wage.cpp b/engines/wage/wage.cpp
index 9a32b12..a3d33d0 100644
--- a/engines/wage/wage.cpp
+++ b/engines/wage/wage.cpp
@@ -83,11 +83,9 @@ WageEngine::WageEngine(OSystem *syst, const ADGameDescription *desc) : Engine(sy
 
 	_gui = NULL;
 	_world = NULL;
-	_console = NULL;
 	_offer = NULL;
 
 	_resManager = NULL;
-	_debugger = NULL;
 
 	debug("WageEngine::WageEngine()");
 }
@@ -100,7 +98,6 @@ WageEngine::~WageEngine() {
 	delete _resManager;
 	delete _gui;
 	delete _rnd;
-	delete _console;
 }
 
 Common::Error WageEngine::run() {
@@ -108,10 +105,7 @@ Common::Error WageEngine::run() {
 
 	initGraphics(512, 342);
 
-	// Create debugger console. It requires GFX to be initialized
-	_console = new Console(this);
-
-	_debugger = new Debugger(this);
+	setDebugger(new Debugger(this));
 
 	// Your main event loop should be (invoked from) here.
 	_resManager = new Common::MacResManager();
@@ -143,8 +137,6 @@ Common::Error WageEngine::run() {
 	_temporarilyHidden = false;
 
 	while (!_shouldQuit) {
-		_debugger->onFrame();
-
 		processEvents();
 
 		_gui->draw();
@@ -185,11 +177,6 @@ void WageEngine::processEvents() {
 					break;
 				}
 			default:
-				if (event.kbd.ascii == '~') {
-					_debugger->attach();
-					break;
-				}
-
 				break;
 			}
 			break;
diff --git a/engines/wage/wage.h b/engines/wage/wage.h
index 0ab2f3d..acf390a 100644
--- a/engines/wage/wage.h
+++ b/engines/wage/wage.h
@@ -177,8 +177,6 @@ public:
 public:
 	Common::RandomSource *_rnd;
 
-	Debugger *_debugger;
-
 	Gui *_gui;
 	World *_world;
 
@@ -227,13 +225,7 @@ private:
 	int loadGame(int slotId);
 	Common::String getSavegameFilename(int16 slotId) const;
 
-public:
-
-	GUI::Debugger *getDebugger() override { return _debugger; }
-
 private:
-	Console *_console;
-
 	const ADGameDescription *_gameDescription;
 
 	Common::MacResManager *_resManager;
@@ -241,13 +233,6 @@ private:
 	Audio::SoundHandle _soundHandle;
 };
 
-// Example console class
-class Console : public GUI::Debugger {
-public:
-	Console(WageEngine *vm) {}
-	~Console(void) override {}
-};
-
 } // End of namespace Wage
 
 #endif


Commit: 848cb075f37805e29ac10141c792d500f49f3649
    https://github.com/scummvm/scummvm/commit/848cb075f37805e29ac10141c792d500f49f3649
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
WINTERMUTE: Refactor to use Engine debugger

Changed paths:
    engines/wintermute/platform_osystem.cpp
    engines/wintermute/wintermute.cpp
    engines/wintermute/wintermute.h


diff --git a/engines/wintermute/platform_osystem.cpp b/engines/wintermute/platform_osystem.cpp
index 119ea74..4a0d5ee 100644
--- a/engines/wintermute/platform_osystem.cpp
+++ b/engines/wintermute/platform_osystem.cpp
@@ -94,11 +94,6 @@ void BasePlatform::handleEvent(Common::Event *event) {
 		}
 		break;
 	case Common::EVENT_KEYDOWN:
-		if (event->kbd.flags & Common::KBD_CTRL) {
-			if (event->kbd.keycode == Common::KEYCODE_d) {
-				_engineRef->trigDebugger();
-			}
-		}
 		if (_gameRef) {
 			_gameRef->handleKeypress(event);
 		}
diff --git a/engines/wintermute/wintermute.cpp b/engines/wintermute/wintermute.cpp
index d048c17..1f02199 100644
--- a/engines/wintermute/wintermute.cpp
+++ b/engines/wintermute/wintermute.cpp
@@ -55,7 +55,6 @@ WintermuteEngine::WintermuteEngine() : Engine(g_system) {
 	_game = new AdGame("");
 	_debugger = nullptr;
 	_dbgController = nullptr;
-	_trigDebug = false;
 	_gameDescription = nullptr;
 }
 
@@ -83,14 +82,13 @@ WintermuteEngine::WintermuteEngine(OSystem *syst, const WMEGameDescription *desc
 	_game = nullptr;
 	_debugger = nullptr;
 	_dbgController = nullptr;
-	_trigDebug = false;
 }
 
 WintermuteEngine::~WintermuteEngine() {
 	// Dispose your resources here
 	deinit();
 	delete _game;
-	delete _debugger;
+	//_debugger deleted by Engine
 
 	// Remove all of our debug levels here
 	DebugMan.clearAllDebugChannels();
@@ -129,6 +127,7 @@ Common::Error WintermuteEngine::run() {
 	// Create debugger console. It requires GFX to be initialized
 	_dbgController = new DebuggerController(this);
 	_debugger = new Console(this);
+	setDebugger(_debugger);
 
 //	DebugMan.enableDebugChannel("enginelog");
 	debugC(1, kWintermuteDebugLog, "Engine Debug-LOG enabled");
@@ -271,18 +270,12 @@ int WintermuteEngine::messageLoop() {
 		if (!_game) {
 			break;
 		}
-		_debugger->onFrame();
 
 		Common::Event event;
 		while (_system->getEventManager()->pollEvent(event)) {
 			BasePlatform::handleEvent(&event);
 		}
 
-		if (_trigDebug) {
-			_debugger->attach();
-			_trigDebug = false;
-		}
-
 		if (_game && _game->_renderer->_active && _game->_renderer->isReady()) {
 			_game->displayContent();
 			_game->displayQuickMsg();
diff --git a/engines/wintermute/wintermute.h b/engines/wintermute/wintermute.h
index 4d0a4f3..9799cc5 100644
--- a/engines/wintermute/wintermute.h
+++ b/engines/wintermute/wintermute.h
@@ -59,7 +59,6 @@ public:
 	~WintermuteEngine() override;
 
 	virtual Wintermute::Console *getConsole() { return _debugger; }
-	void trigDebugger() { _trigDebug = true; }
 
 	Common::Error run() override;
 	bool hasFeature(EngineFeature f) const override;
@@ -71,7 +70,6 @@ public:
 	// For detection-purposes:
 	static bool getGameInfo(const Common::FSList &fslist, Common::String &name, Common::String &caption);
 private:
-	bool _trigDebug;
 	int init();
 	void deinit();
 	int messageLoop();


Commit: 528d62930ad2553b8e2391c3d6aa16119c748df6
    https://github.com/scummvm/scummvm/commit/528d62930ad2553b8e2391c3d6aa16119c748df6
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
XEEN: Refactor to use Engine debugger

Changed paths:
    engines/xeen/debugger.cpp
    engines/xeen/debugger.h
    engines/xeen/events.cpp
    engines/xeen/xeen.cpp


diff --git a/engines/xeen/debugger.cpp b/engines/xeen/debugger.cpp
index 7d8f170..b73ad77 100644
--- a/engines/xeen/debugger.cpp
+++ b/engines/xeen/debugger.cpp
@@ -59,7 +59,7 @@ Debugger::Debugger(XeenEngine *vm) : GUI::Debugger(), _vm(vm),
 	registerCmd("intangible", WRAP_METHOD(Debugger, cmdIntangible));
 }
 
-void Debugger::update() {
+void Debugger::onFrame() {
 	Party &party = *_vm->_party;
 	Spells &spells = *_vm->_spells;
 
@@ -72,7 +72,7 @@ void Debugger::update() {
 		spells.castSpell(c, spellId);
 	}
 
-	onFrame();
+	GUI::Debugger::onFrame();
 }
 
 bool Debugger::cmdSpell(int argc, const char **argv) {
diff --git a/engines/xeen/debugger.h b/engines/xeen/debugger.h
index 48eb8f3..4b870f6 100644
--- a/engines/xeen/debugger.h
+++ b/engines/xeen/debugger.h
@@ -92,9 +92,9 @@ public:
 	Debugger(XeenEngine *vm);
 
 	/**
-	 * Updates the debugger window if active
+	 * Updates the debugger
 	 */
-	void update();
+	virtual void onFrame() override;
 };
 
 } // End of namespace Xeen
diff --git a/engines/xeen/events.cpp b/engines/xeen/events.cpp
index 5243de6..090c6e0 100644
--- a/engines/xeen/events.cpp
+++ b/engines/xeen/events.cpp
@@ -89,14 +89,7 @@ void EventsManager::pollEvents() {
 		case Common::EVENT_RTL:
 			return;
 		case Common::EVENT_KEYDOWN:
-			// Check for debugger
-			if (event.kbd.keycode == Common::KEYCODE_d && (event.kbd.flags & Common::KBD_CTRL)) {
-				// Attach to the debugger
-				_vm->_debugger->attach();
-				_vm->_debugger->onFrame();
-			} else {
-				addEvent(event.kbd);
-			}
+			addEvent(event.kbd);
 			break;
 		case Common::EVENT_MOUSEMOVE:
 			_mousePos = event.mouse;
@@ -215,9 +208,6 @@ void EventsManager::nextFrame() {
 	++_frameCounter;
 	++_playTime;
 
-	// Allow debugger to update
-	_vm->_debugger->update();
-
 	// Update the screen
 	_vm->_screen->update();
 }
diff --git a/engines/xeen/xeen.cpp b/engines/xeen/xeen.cpp
index 5f72623..fd0a041 100644
--- a/engines/xeen/xeen.cpp
+++ b/engines/xeen/xeen.cpp
@@ -70,7 +70,7 @@ XeenEngine::XeenEngine(OSystem *syst, const XeenGameDescription *gameDesc)
 
 XeenEngine::~XeenEngine() {
 	delete _combat;
-	delete _debugger;
+	//_debugger is deleted by Engine
 	delete _events;
 	delete _interface;
 	delete _locations;
@@ -97,6 +97,7 @@ bool XeenEngine::initialize() {
 	_resources = new Resources();
 	_combat = new Combat(this);
 	_debugger = new Debugger(this);
+	setDebugger(_debugger);
 	_events = new EventsManager(this);
 	_interface = new Interface(this);
 	_locations = new LocationManager();


Commit: c44a028ae7733deb62034b8370006ea459383a34
    https://github.com/scummvm/scummvm/commit/c44a028ae7733deb62034b8370006ea459383a34
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
ZVISION: Refactor to use Engine debugger

Changed paths:
    engines/zvision/core/events.cpp
    engines/zvision/zvision.cpp
    engines/zvision/zvision.h


diff --git a/engines/zvision/core/events.cpp b/engines/zvision/core/events.cpp
index f1922c6..4ef551a 100644
--- a/engines/zvision/core/events.cpp
+++ b/engines/zvision/core/events.cpp
@@ -224,14 +224,6 @@ void ZVision::processEvents() {
 
 		case Common::EVENT_KEYDOWN: {
 			switch (_event.kbd.keycode) {
-			case Common::KEYCODE_d:
-				if (_event.kbd.hasFlags(Common::KBD_CTRL)) {
-					// Start the debugger
-					_console->attach();
-					_console->onFrame();
-				}
-				break;
-
 			case Common::KEYCODE_LEFT:
 			case Common::KEYCODE_RIGHT:
 				if (_renderManager->getRenderTable()->getRenderState() == RenderTable::PANORAMA)
diff --git a/engines/zvision/zvision.cpp b/engines/zvision/zvision.cpp
index 41b2297..c3dd189 100644
--- a/engines/zvision/zvision.cpp
+++ b/engines/zvision/zvision.cpp
@@ -90,7 +90,6 @@ ZVision::ZVision(OSystem *syst, const ZVisionGameDescription *gameDesc)
 	  _cursorManager(nullptr),
 	  _midiManager(nullptr),
 	  _rnd(nullptr),
-	  _console(nullptr),
 	  _menu(nullptr),
 	  _searchManager(nullptr),
 	  _textRenderer(nullptr),
@@ -112,7 +111,6 @@ ZVision::~ZVision() {
 	debug(1, "ZVision::~ZVision");
 
 	// Dispose of resources
-	delete _console;
 	delete _cursorManager;
 	delete _stringManager;
 	delete _saveManager;
@@ -234,7 +232,7 @@ void ZVision::initialize() {
 #endif
 
 	// Create debugger console. It requires GFX to be initialized
-	_console = new Console(this);
+	setDebugger(new Console(this));
 	_doubleFPS = ConfMan.getBool("doublefps");
 
 	// Initialize FPS timer callback
@@ -382,10 +380,6 @@ bool ZVision::canRender() {
 	return _frameRenderDelay <= 0;
 }
 
-GUI::Debugger *ZVision::getDebugger() {
-	return _console;
-}
-
 void ZVision::syncSoundSettings() {
 	Engine::syncSoundSettings();
 
diff --git a/engines/zvision/zvision.h b/engines/zvision/zvision.h
index 46192b9..b098670 100644
--- a/engines/zvision/zvision.h
+++ b/engines/zvision/zvision.h
@@ -112,7 +112,6 @@ public:
 	const Graphics::PixelFormat _screenPixelFormat;
 
 private:
-	Console *_console;
 	const ZVisionGameDescription *_gameDescription;
 
 	const int _desiredFrameTime;
@@ -231,7 +230,6 @@ public:
 		return _fps;
 	}
 
-	GUI::Debugger *getDebugger() override;
 	void syncSoundSettings() override;
 
 	void loadSettings();


Commit: 03ca59c17d4d5aa54ceb319d4d520eadac0ea310
    https://github.com/scummvm/scummvm/commit/03ca59c17d4d5aa54ceb319d4d520eadac0ea310
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
MOHAWK: Refactor to use Engine debugger

Changed paths:
    engines/mohawk/cstime.cpp
    engines/mohawk/cstime.h
    engines/mohawk/livingbooks.cpp
    engines/mohawk/livingbooks.h
    engines/mohawk/myst.cpp
    engines/mohawk/myst.h
    engines/mohawk/riven.cpp
    engines/mohawk/riven.h


diff --git a/engines/mohawk/cstime.cpp b/engines/mohawk/cstime.cpp
index 89044eb..9b05f7a 100644
--- a/engines/mohawk/cstime.cpp
+++ b/engines/mohawk/cstime.cpp
@@ -52,7 +52,6 @@ MohawkEngine_CSTime::MohawkEngine_CSTime(OSystem *syst, const MohawkGameDescript
 
 	reset();
 
-	_console = 0;
 	_gfx = 0;
 	_video = 0;
 	_sound = 0;
@@ -67,7 +66,6 @@ MohawkEngine_CSTime::MohawkEngine_CSTime(OSystem *syst, const MohawkGameDescript
 MohawkEngine_CSTime::~MohawkEngine_CSTime() {
 	delete _interface;
 	delete _view;
-	delete _console;
 	delete _sound;
 	delete _video;
 	delete _gfx;
@@ -81,7 +79,7 @@ Common::Error MohawkEngine_CSTime::run() {
 		return Common::kAudioDeviceInitFailed;
 	}
 
-	_console = new CSTimeConsole(this);
+	setDebugger(new CSTimeConsole(this));
 	_gfx = new CSTimeGraphics(this);
 	_video = new VideoManager(this);
 	_sound = new Sound(this);
@@ -156,13 +154,6 @@ void MohawkEngine_CSTime::update() {
 
 		case Common::EVENT_KEYDOWN:
 			switch (event.kbd.keycode) {
-			case Common::KEYCODE_d:
-				if (event.kbd.flags & Common::KBD_CTRL) {
-					_console->attach();
-					_console->onFrame();
-				}
-				break;
-
 			case Common::KEYCODE_SPACE:
 				pauseGame();
 				break;
diff --git a/engines/mohawk/cstime.h b/engines/mohawk/cstime.h
index 8a3ef7d..d4167ec 100644
--- a/engines/mohawk/cstime.h
+++ b/engines/mohawk/cstime.h
@@ -142,7 +142,6 @@ public:
 	CSTimeGraphics *_gfx;
 	bool _needsUpdate;
 
-	GUI::Debugger *getDebugger() override { return _console; }
 	CSTimeView *getView() { return _view; }
 	CSTimeCase *getCase() { return _case; }
 	CSTimeInterface *getInterface() { return _interface; }
@@ -163,7 +162,6 @@ public:
 
 private:
 	CSTimeCase *_case;
-	CSTimeConsole *_console;
 	CSTimeInterface *_interface;
 	CSTimeView *_view;
 
diff --git a/engines/mohawk/livingbooks.cpp b/engines/mohawk/livingbooks.cpp
index b159bbe..f48daf0 100644
--- a/engines/mohawk/livingbooks.cpp
+++ b/engines/mohawk/livingbooks.cpp
@@ -159,7 +159,6 @@ MohawkEngine_LivingBooks::MohawkEngine_LivingBooks(OSystem *syst, const MohawkGa
 MohawkEngine_LivingBooks::~MohawkEngine_LivingBooks() {
 	destroyPage();
 
-	delete _console;
 	delete _sound;
 	delete _video;
 	delete _gfx;
@@ -174,7 +173,7 @@ Common::Error MohawkEngine_LivingBooks::run() {
 		return Common::kAudioDeviceInitFailed;
 	}
 
-	_console = new LivingBooksConsole(this);
+	setDebugger(new LivingBooksConsole(this));
 	// Load the book info from the detected file
 	loadBookInfo(getBookInfoFileName());
 
@@ -235,13 +234,6 @@ Common::Error MohawkEngine_LivingBooks::run() {
 
 			case Common::EVENT_KEYDOWN:
 				switch (event.kbd.keycode) {
-				case Common::KEYCODE_d:
-					if (event.kbd.flags & Common::KBD_CTRL) {
-						_console->attach();
-						_console->onFrame();
-					}
-					break;
-
 				case Common::KEYCODE_SPACE:
 					pauseGame();
 					break;
diff --git a/engines/mohawk/livingbooks.h b/engines/mohawk/livingbooks.h
index 8ad3933..1d79d44 100644
--- a/engines/mohawk/livingbooks.h
+++ b/engines/mohawk/livingbooks.h
@@ -725,7 +725,6 @@ public:
 	Common::SeekableSubReadStreamEndian *wrapStreamEndian(uint32 tag, uint16 id);
 	Common::String readString(Common::ReadStream *stream);
 	Common::Rect readRect(Common::ReadStreamEndian *stream);
-	GUI::Debugger *getDebugger() override { return _console; }
 
 	void addArchive(Archive *archive);
 	void removeArchive(Archive *archive);
@@ -761,7 +760,6 @@ public:
 	Archive *createArchive() const;
 
 private:
-	LivingBooksConsole *_console;
 	Common::INIFile _bookInfoFile;
 
 	Common::String getBookInfoFileName() const;
diff --git a/engines/mohawk/myst.cpp b/engines/mohawk/myst.cpp
index 6367e34..92c4c78 100644
--- a/engines/mohawk/myst.cpp
+++ b/engines/mohawk/myst.cpp
@@ -95,7 +95,6 @@ MohawkEngine_Myst::MohawkEngine_Myst(OSystem *syst, const MohawkGameDescription
 	_sound = nullptr;
 	_video = nullptr;
 	_gfx = nullptr;
-	_console = nullptr;
 	_gameState = nullptr;
 	_optionsDialog = nullptr;
 	_rnd = nullptr;
@@ -112,7 +111,6 @@ MohawkEngine_Myst::~MohawkEngine_Myst() {
 	delete _gfx;
 	delete _video;
 	delete _sound;
-	delete _console;
 	delete _gameState;
 	delete _optionsDialog;
 	delete _rnd;
@@ -420,7 +418,7 @@ Common::Error MohawkEngine_Myst::run() {
 	_gfx = new MystGraphics(this);
 	_video = new VideoManager(this);
 	_sound = new MystSound(this);
-	_console = new MystConsole(this);
+	setDebugger(new MystConsole(this));
 	_gameState = new MystGameState(this, _saveFileMan);
 	_optionsDialog = new MystOptionsDialog(this);
 	_cursor = new MystCursorManager(this);
@@ -581,8 +579,7 @@ void MohawkEngine_Myst::doFrame() {
 		case Common::EVENT_CUSTOM_ENGINE_ACTION_START:
 			switch ((MystEventAction)event.customType) {
 			case kMystActionOpenDebugger:
-				_console->attach();
-				_console->onFrame();
+				getDebugger()->attach();
 				break;
 			case kMystActionInteract:
 				_mouseClicked = true;
diff --git a/engines/mohawk/myst.h b/engines/mohawk/myst.h
index 6367072..a7e6e25 100644
--- a/engines/mohawk/myst.h
+++ b/engines/mohawk/myst.h
@@ -178,8 +178,6 @@ public:
 
 	void playSoundBlocking(uint16 id);
 
-	GUI::Debugger *getDebugger() override { return _console; }
-
 	/**
 	 * Is the game currently interactive
 	 *
@@ -202,7 +200,6 @@ public:
 	void runOptionsDialog();
 
 private:
-	MystConsole *_console;
 	MystOptionsDialog *_optionsDialog;
 	ResourceCache _cache;
 
diff --git a/engines/mohawk/riven.cpp b/engines/mohawk/riven.cpp
index 1ea7e81..faa40c6 100644
--- a/engines/mohawk/riven.cpp
+++ b/engines/mohawk/riven.cpp
@@ -71,7 +71,6 @@ MohawkEngine_Riven::MohawkEngine_Riven(OSystem *syst, const MohawkGameDescriptio
 	_sound = nullptr;
 	_rnd = nullptr;
 	_scriptMan = nullptr;
-	_console = nullptr;
 	_saveLoad = nullptr;
 	_optionsDialog = nullptr;
 	_card = nullptr;
@@ -104,7 +103,6 @@ MohawkEngine_Riven::~MohawkEngine_Riven() {
 	delete _sound;
 	delete _video;
 	delete _gfx;
-	delete _console;
 	delete _extrasFile;
 	delete _saveLoad;
 	delete _scriptMan;
@@ -115,10 +113,6 @@ MohawkEngine_Riven::~MohawkEngine_Riven() {
 	DebugMan.clearAllDebugChannels();
 }
 
-GUI::Debugger *MohawkEngine_Riven::getDebugger() {
-	return _console;
-}
-
 Common::Error MohawkEngine_Riven::run() {
 	MohawkEngine::run();
 
@@ -138,7 +132,7 @@ Common::Error MohawkEngine_Riven::run() {
 	_gfx = new RivenGraphics(this);
 	_video = new RivenVideoManager(this);
 	_sound = new RivenSoundManager(this);
-	_console = new RivenConsole(this);
+	setDebugger(new RivenConsole(this));
 	_saveLoad = new RivenSaveLoad(this, _saveFileMan);
 	_optionsDialog = new RivenOptionsDialog();
 	_scriptMan = new RivenScriptManager(this);
@@ -274,8 +268,7 @@ void MohawkEngine_Riven::processInput() {
 				_stack->onMouseDown(_eventMan->getMousePos());
 				break;
 			case kRivenActionOpenDebugger:
-				_console->attach();
-				_console->onFrame();
+				getDebugger()->attach();
 				break;
 			case kRivenActionPause:
 				pauseGame();
diff --git a/engines/mohawk/riven.h b/engines/mohawk/riven.h
index 69c4c2d..ba00caa 100644
--- a/engines/mohawk/riven.h
+++ b/engines/mohawk/riven.h
@@ -101,8 +101,6 @@ public:
 	// Display debug rectangles around the hotspots
 	bool _showHotspots;
 
-	GUI::Debugger *getDebugger() override;
-
 	bool canLoadGameStateCurrently() override;
 	bool canSaveGameStateCurrently() override;
 	Common::Error loadGameState(int slot) override;
@@ -120,7 +118,6 @@ private:
 	void loadLanguageDatafile(char prefix, uint16 stackId);
 	bool checkDatafiles();
 
-	RivenConsole *_console;
 	RivenSaveLoad *_saveLoad;
 	RivenOptionsDialog *_optionsDialog;
 	InstallerArchive _installerArchive;


Commit: 0d0191fb4488742ebfa85e68d12dfc42875f95cd
    https://github.com/scummvm/scummvm/commit/0d0191fb4488742ebfa85e68d12dfc42875f95cd
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
SWORD25: Refactor to use Engine debugger

Changed paths:
    engines/sword25/input/inputengine.cpp
    engines/sword25/sword25.cpp
    engines/sword25/sword25.h


diff --git a/engines/sword25/input/inputengine.cpp b/engines/sword25/input/inputengine.cpp
index 9bedca3..01544cc 100644
--- a/engines/sword25/input/inputengine.cpp
+++ b/engines/sword25/input/inputengine.cpp
@@ -118,11 +118,6 @@ void InputEngine::update() {
 
 		case Common::EVENT_KEYDOWN:
 		case Common::EVENT_KEYUP:
-			if (event.kbd.hasFlags(Common::KBD_CTRL) && event.kbd.keycode == Common::KEYCODE_d && event.type == Common::EVENT_KEYDOWN) {
-				g_engine->getDebugger()->attach();
-				g_engine->getDebugger()->onFrame();
-			}
-
 			alterKeyboardState(event.kbd.keycode, (event.type == Common::EVENT_KEYDOWN) ? 0x80 : 0);
 			break;
 
diff --git a/engines/sword25/sword25.cpp b/engines/sword25/sword25.cpp
index 9d8d02e..9b243fc 100644
--- a/engines/sword25/sword25.cpp
+++ b/engines/sword25/sword25.cpp
@@ -69,12 +69,11 @@ Sword25Engine::Sword25Engine(OSystem *syst, const ADGameDescription *gameDesc):
 	DebugMan.addDebugChannel(kDebugScript, "Scripts", "Script debug level");
 	DebugMan.addDebugChannel(kDebugSound, "Sound", "Sound debug level");
 
-	_console = new Sword25Console(this);
+	setDebugger(new Sword25Console(this));
 }
 
 Sword25Engine::~Sword25Engine() {
 	DebugMan.clearAllDebugChannels();
-	delete _console;
 }
 
 Common::Error Sword25Engine::run() {
diff --git a/engines/sword25/sword25.h b/engines/sword25/sword25.h
index 697c503..9b58cf9 100644
--- a/engines/sword25/sword25.h
+++ b/engines/sword25/sword25.h
@@ -74,8 +74,6 @@ private:
 
 	bool loadPackages();
 
-	Sword25Console *_console;
-
 protected:
 	Common::Error run() override;
 	bool hasFeature(EngineFeature f) const override;
@@ -86,8 +84,6 @@ protected:
 // 	bool canLoadGameStateCurrently();	// TODO: Implement this?
 // 	bool canSaveGameStateCurrently();	// TODO: Implement this?
 
-	GUI::Debugger *getDebugger() override { return _console; }
-
 	void shutdown();
 
 public:


Commit: 73f17c2ae004894a316c46f4518a3068cda2de97
    https://github.com/scummvm/scummvm/commit/73f17c2ae004894a316c46f4518a3068cda2de97
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
MUTATIONOFJB: Refactor to use Engine debugger

Changed paths:
    engines/mutationofjb/mutationofjb.cpp
    engines/mutationofjb/mutationofjb.h


diff --git a/engines/mutationofjb/mutationofjb.cpp b/engines/mutationofjb/mutationofjb.cpp
index ea99b32..71e639f 100644
--- a/engines/mutationofjb/mutationofjb.cpp
+++ b/engines/mutationofjb/mutationofjb.cpp
@@ -46,7 +46,6 @@ namespace MutationOfJB {
 MutationOfJBEngine::MutationOfJBEngine(OSystem *syst, const ADGameDescription *gameDesc)
 	: Engine(syst),
 	  _gameDesc(gameDesc),
-	  _console(nullptr),
 	  _screen(nullptr),
 	  _game(nullptr),
 	  _mapObjectId(0),
@@ -173,7 +172,7 @@ const ADGameDescription *MutationOfJBEngine::getGameDescription() const {
 Common::Error MutationOfJBEngine::run() {
 	initGraphics(320, 200);
 
-	_console = new Console(this);
+	setDebugger(new Console(this));
 	_screen = new Graphics::Screen();
 	_game = new Game(this);
 	_currentScreen = &_game->getGameScreen();
@@ -193,10 +192,6 @@ Common::Error MutationOfJBEngine::run() {
 		while (_eventMan->pollEvent(event)) {
 			switch (event.type) {
 			case Common::EVENT_KEYDOWN: {
-				if ((event.kbd.hasFlags(Common::KBD_CTRL) && event.kbd.keycode == Common::KEYCODE_d) ||
-						event.kbd.ascii == '~' || event.kbd.ascii == '#') {
-					_console->attach();
-				}
 				if (event.kbd.keycode == Common::KEYCODE_F5 && event.kbd.hasFlags(0)) {
 					openMainMenuDialog();
 				}
@@ -210,7 +205,6 @@ Common::Error MutationOfJBEngine::run() {
 				_currentScreen->handleEvent(event);
 		}
 
-		_console->onFrame();
 		_game->update();
 		if (_currentScreen)
 			_currentScreen->update();
diff --git a/engines/mutationofjb/mutationofjb.h b/engines/mutationofjb/mutationofjb.h
index cedb753..30a4ec1 100644
--- a/engines/mutationofjb/mutationofjb.h
+++ b/engines/mutationofjb/mutationofjb.h
@@ -79,7 +79,6 @@ private:
 	void updateCursorPalette();
 
 	const ADGameDescription *_gameDesc;
-	Console *_console;
 	Graphics::Screen *_screen;
 	Game *_game;
 	uint8 _mapObjectId;


Commit: 98f9c4f254f081202db3fb77e2438785c4cfaa9b
    https://github.com/scummvm/scummvm/commit/98f9c4f254f081202db3fb77e2438785c4cfaa9b
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
ENGINES: Create a default debugger when needed if none is yet set

Changed paths:
    backends/events/default/default-events.cpp
    engines/engine.cpp
    engines/engine.h


diff --git a/backends/events/default/default-events.cpp b/backends/events/default/default-events.cpp
index a7c03f5..929546e 100644
--- a/backends/events/default/default-events.cpp
+++ b/backends/events/default/default-events.cpp
@@ -112,7 +112,7 @@ bool DefaultEventManager::pollEvent(Common::Event &event) {
 			_currentKeyDown.ascii = Common::KEYCODE_BACKSPACE;
 
 		} else if (event.kbd.keycode == Common::KEYCODE_d && (_modifierState & Common::KBD_CTRL)) {
-			GUI::Debugger *debugger = g_engine->getDebugger();
+			GUI::Debugger *debugger = g_engine->getOrCreateDebugger();
 			if (debugger) {
 				debugger->attach();
 				debugger->onFrame();
diff --git a/engines/engine.cpp b/engines/engine.cpp
index d6e267f..ac6a01b 100644
--- a/engines/engine.cpp
+++ b/engines/engine.cpp
@@ -86,7 +86,7 @@ static void defaultErrorHandler(const char *msg) {
 	// Unless this error -originated- within the debugger itself, we
 	// now invoke the debugger, if available / supported.
 	if (g_engine) {
-		GUI::Debugger *debugger = g_engine->getDebugger();
+		GUI::Debugger *debugger = g_engine->getOrCreateDebugger();
 
 #if defined(USE_TASKBAR)
 		g_system->getTaskbarManager()->notifyError();
@@ -760,6 +760,15 @@ bool Engine::shouldQuit() {
 	return (eventMan->shouldQuit() || eventMan->shouldRTL());
 }
 
+GUI::Debugger *Engine::getOrCreateDebugger() {
+	if (!_debugger)
+		// Create a bare-bones debugger. This is useful for engines without their own
+		// debugger when an error occurs
+		_debugger = new GUI::Debugger();
+
+	return _debugger;
+}
+
 /*
 EnginePlugin *Engine::getMetaEnginePlugin() const {
 	return EngineMan.findPlugin(ConfMan.get("engineid"));
diff --git a/engines/engine.h b/engines/engine.h
index 4172d12..65a325f 100644
--- a/engines/engine.h
+++ b/engines/engine.h
@@ -174,8 +174,7 @@ public:
 	virtual void errorString(const char *buf_input, char *buf_output, int buf_output_size);
 
 	/**
-	 * Return the engine's debugger instance, if any. Used by error() to
-	 * invoke the debugger when a severe error is reported.
+	 * Return the engine's debugger instance, if any.
 	 */
 	virtual GUI::Debugger *getDebugger() { return _debugger; }
 
@@ -189,6 +188,12 @@ public:
 	}
 
 	/**
+	 * Return the engine's debugger instance, or create one if none is present.
+	 * Used by error() to invoke the debugger when a severe error is reported.
+	 */
+	GUI::Debugger *getOrCreateDebugger();
+
+	/**
 	 * Determine whether the engine supports the specified feature.
 	 */
 	virtual bool hasFeature(EngineFeature f) const { return false; }


Commit: b76b6d0e41db2b311e868ceb7c6d435dbbece594
    https://github.com/scummvm/scummvm/commit/b76b6d0e41db2b311e868ceb7c6d435dbbece594
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
NEWS: Add line for error display in debugger

Changed paths:
    NEWS.md


diff --git a/NEWS.md b/NEWS.md
index 891361f..95dcbfe 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -3,6 +3,9 @@ For a more comprehensive changelog of the latest experimental code, see:
 
 #### 2.2.0 (XXXX-XX-XX)
 
+General:
+   - Errors are more likely to open the debugger, and be displayed, then just crash ScummVM
+
  Dreamweb:
    - Added support for Russian fan-translation.
 


Commit: 818d9bab275aa13898cf3a38c4304b432240b36c
    https://github.com/scummvm/scummvm/commit/818d9bab275aa13898cf3a38c4304b432240b36c
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
ENGINES: Change debugger trigger to Ctrl+Alt+D using keymapper

Changed paths:
    backends/events/default/default-events.cpp
    common/events.h


diff --git a/backends/events/default/default-events.cpp b/backends/events/default/default-events.cpp
index 929546e..6554663 100644
--- a/backends/events/default/default-events.cpp
+++ b/backends/events/default/default-events.cpp
@@ -110,14 +110,6 @@ bool DefaultEventManager::pollEvent(Common::Event &event) {
 			// making invalid assumptions about ascii values.
 			event.kbd.ascii = Common::KEYCODE_BACKSPACE;
 			_currentKeyDown.ascii = Common::KEYCODE_BACKSPACE;
-
-		} else if (event.kbd.keycode == Common::KEYCODE_d && (_modifierState & Common::KBD_CTRL)) {
-			GUI::Debugger *debugger = g_engine->getOrCreateDebugger();
-			if (debugger) {
-				debugger->attach();
-				debugger->onFrame();
-				forwardEvent = false;
-			}
 		}
 		break;
 
@@ -206,10 +198,20 @@ bool DefaultEventManager::pollEvent(Common::Event &event) {
 			if (g_engine)
 				g_engine->pauseEngine(false);
 			_confirmExitDialogActive = false;
-		} else
+		} else {
 			_shouldQuit = true;
+		}
+		break;
 
+	case Common::EVENT_DEBUGGER: {
+		GUI::Debugger *debugger = g_engine ? g_engine->getOrCreateDebugger() : nullptr;
+		if (debugger) {
+			debugger->attach();
+			debugger->onFrame();
+			forwardEvent = false;
+		}
 		break;
+	}
 
 	default:
 		break;
@@ -356,6 +358,11 @@ Common::Keymap *DefaultEventManager::getGlobalKeymap() {
 
 	globalKeymap->addAction(act);
 
+	act = new Action("DEBUGGER", _("Open Debugger"));
+	act->addDefaultInputMapping("C+A+d");
+	act->setEvent(EVENT_DEBUGGER);
+	globalKeymap->addAction(act);
+
 	return globalKeymap;
 }
 
diff --git a/common/events.h b/common/events.h
index 80a109c..ba017b4 100644
--- a/common/events.h
+++ b/common/events.h
@@ -91,7 +91,8 @@ enum EventType {
 
 	EVENT_CLIPBOARD_UPDATE = 27,
 
-	EVENT_CUSTOM_BACKEND_HARDWARE = 28
+	EVENT_CUSTOM_BACKEND_HARDWARE = 28,
+	EVENT_DEBUGGER = 29
 };
 
 const int16 JOYAXIS_MIN = -32768;


Commit: ba147f5ad5eb562d102fdcf09f7f45fb4cedd086
    https://github.com/scummvm/scummvm/commit/ba147f5ad5eb562d102fdcf09f7f45fb4cedd086
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-16T13:07:19+02:00

Commit Message:
SCI: Refactor to use Engine debugger

Changed paths:
    engines/sci/console.cpp
    engines/sci/console.h
    engines/sci/event.cpp
    engines/sci/sci.cpp
    engines/sci/sci.h


diff --git a/engines/sci/console.cpp b/engines/sci/console.cpp
index 0ca003c..ba71446 100644
--- a/engines/sci/console.cpp
+++ b/engines/sci/console.cpp
@@ -261,6 +261,15 @@ Console::Console(SciEngine *engine) : GUI::Debugger(),
 Console::~Console() {
 }
 
+void Console::attach(const char *entry) {
+	if (entry) {
+		// Attaching to display a severe error, let the engine know
+		_engine->severeError();
+	}
+
+	GUI::Debugger::attach(entry);
+}
+
 void Console::preEnter() {
 	_engine->pauseEngine(true);
 }
diff --git a/engines/sci/console.h b/engines/sci/console.h
index 60ff01d..852bd4f 100644
--- a/engines/sci/console.h
+++ b/engines/sci/console.h
@@ -41,6 +41,12 @@ public:
 	Console(SciEngine *engine);
 	~Console() override;
 
+	/**
+	 * 'Attach' the debugger. This ensures that the next time onFrame()
+	 * is invoked, the debugger will activate and accept user input.
+	 */
+	void attach(const char *entry = nullptr) override;
+
 private:
 	void preEnter() override;
 	void postEnter() override;
diff --git a/engines/sci/event.cpp b/engines/sci/event.cpp
index 2c9cc0b..9bbea4a 100644
--- a/engines/sci/event.cpp
+++ b/engines/sci/event.cpp
@@ -303,14 +303,6 @@ SciEvent EventManager::getScummVMEvent() {
 		return noEvent;
 	}
 
-	// Check for Control-Shift-D (debug console)
-	if (ev.type == Common::EVENT_KEYDOWN && ev.kbd.hasFlags(Common::KBD_CTRL | Common::KBD_SHIFT) && ev.kbd.keycode == Common::KEYCODE_d) {
-		// Open debug console
-		Console *con = g_sci->getSciDebugger();
-		con->attach();
-		return noEvent;
-	}
-
 	// The IBM keyboard driver prior to SCI1.1 only sent keydown events to the
 	// interpreter
 	if (ev.type != Common::EVENT_KEYDOWN && getSciVersion() < SCI_VERSION_1_1) {
diff --git a/engines/sci/sci.cpp b/engines/sci/sci.cpp
index c72e268..6b2c0af 100644
--- a/engines/sci/sci.cpp
+++ b/engines/sci/sci.cpp
@@ -240,7 +240,7 @@ SciEngine::~SciEngine() {
 	delete _soundCmd;
 	delete _kernel;
 	delete _vocabulary;
-	delete _console;
+	//_console deleted by Engine
 	delete _guestAdditions;
 	delete _features;
 	delete _gfxMacIconBar;
@@ -331,6 +331,7 @@ Common::Error SciEngine::run() {
 
 	// Create debugger console. It requires GFX and _gamestate to be initialized
 	_console = new Console(this);
+	setDebugger(_console);
 
 	// The game needs to be initialized before the graphics system is initialized, as
 	// the graphics code checks parts of the seg manager upon initialization (e.g. for
@@ -757,8 +758,8 @@ void SciEngine::exitGame() {
 	_gamestate->_fileHandles.resize(5);
 }
 
-// Invoked by error() when a severe error occurs
-GUI::Debugger *SciEngine::getDebugger() {
+// Invoked by debugger when a severe error occurs
+void SciEngine::severeError() {
 	if (_gamestate) {
 		ExecStack *xs = &(_gamestate->_executionStack.back());
 		if (xs) {
@@ -769,11 +770,8 @@ GUI::Debugger *SciEngine::getDebugger() {
 
 	_debugState.runningStep = 0; // Stop multiple execution
 	_debugState.seeking = kDebugSeekNothing; // Stop special seeks
-
-	return _console;
 }
 
-// Used to obtain the engine's console in order to print messages to it
 Console *SciEngine::getSciDebugger() {
 	return _console;
 }
diff --git a/engines/sci/sci.h b/engines/sci/sci.h
index f44338f..fafd49f 100644
--- a/engines/sci/sci.h
+++ b/engines/sci/sci.h
@@ -257,7 +257,7 @@ public:
 	Common::Error run() override;
 	bool hasFeature(EngineFeature f) const override;
 	void pauseEngineIntern(bool pause) override;
-	GUI::Debugger *getDebugger() override;
+	void severeError();
 	Console *getSciDebugger();
 	Common::Error loadGameState(int slot) override;
 	Common::Error saveGameState(int slot, const Common::String &desc) override;




More information about the Scummvm-git-logs mailing list