[Scummvm-git-logs] scummvm master -> 844a26e34b6bb9a8d1d883e9869fe96a64d728ec

dreammaster paulfgilbert at gmail.com
Sat Feb 22 19:42:32 UTC 2020


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

Summary:
bfc05da365 ULTIMA8: Shifting more console methods to Debugger
dece483ff5 ULTIMA8: Shifting more console methods to Debugger
09c99ae780 ULTIMA8: Shifting more console methods to Debugger
142a65d1ae ULTIMA8: Shifting game/cheat console methods to Debugger
67a5d0d7e3 ULTIMA8: Shifting UCMachine console methods to Debugger
844a26e34b ULTIMA8: Fix compilation of DEBUG code


Commit: bfc05da365b132cb54dcaf7ca73487ba2fcad090
    https://github.com/scummvm/scummvm/commit/bfc05da365b132cb54dcaf7ca73487ba2fcad090
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-22T11:42:21-08:00

Commit Message:
ULTIMA8: Shifting more console methods to Debugger

Changed paths:
    engines/ultima/ultima8/misc/debugger.cpp
    engines/ultima/ultima8/misc/debugger.h
    engines/ultima/ultima8/ultima8.cpp
    engines/ultima/ultima8/ultima8.h


diff --git a/engines/ultima/ultima8/misc/debugger.cpp b/engines/ultima/ultima8/misc/debugger.cpp
index 1535203..4795592 100644
--- a/engines/ultima/ultima8/misc/debugger.cpp
+++ b/engines/ultima/ultima8/misc/debugger.cpp
@@ -31,12 +31,30 @@
 #include "ultima/ultima8/kernel/memory_manager.h"
 #include "ultima/ultima8/kernel/object_manager.h"
 #include "ultima/ultima8/misc/id_man.h"
+#include "ultima/ultima8/usecode/uc_machine.h"
 #include "ultima/ultima8/world/actors/quick_avatar_mover_process.h"
+#include "ultima/ultima8/world/world.h"
 
 namespace Ultima {
 namespace Ultima8 {
 
 Debugger::Debugger() : Shared::Debugger() {
+	registerCmd("quit", WRAP_METHOD(Debugger, cmdQuit));
+	registerCmd("Ultima8Engine::quit", WRAP_METHOD(Debugger, cmdQuit));
+	registerCmd("Ultima8Engine::saveGame", WRAP_METHOD(Debugger, cmdSaveGame));
+	registerCmd("Ultima8Engine::loadGame", WRAP_METHOD(Debugger, cmdLoadGame));
+	registerCmd("Ultima8Engine::newGame", WRAP_METHOD(Debugger, cmdNewGame));
+	registerCmd("Ultima8Engine::_drawRenderStats", WRAP_METHOD(Debugger, cmdDrawRenderStats));
+	registerCmd("Ultima8Engine::engineStats", WRAP_METHOD(Debugger, cmdEngineStats));
+	registerCmd("Ultima8Engine::changeGame", WRAP_METHOD(Debugger, cmdChangeGame));
+	registerCmd("Ultima8Engine::listGames", WRAP_METHOD(Debugger, cmdListGames));
+	registerCmd("Ultima8Engine::memberVar", WRAP_METHOD(Debugger, cmdMemberVar));
+	registerCmd("Ultima8Engine::setVideoMode", WRAP_METHOD(Debugger, cmdSetVideoMode));
+	registerCmd("Ultima8Engine::toggleAvatarInStasis", WRAP_METHOD(Debugger, cmdToggleAvatarInStasis));
+	registerCmd("Ultima8Engine::togglePaintEditorItems", WRAP_METHOD(Debugger, cmdTogglePaintEditorItems));
+	registerCmd("Ultima8Engine::toggleShowTouchingItems", WRAP_METHOD(Debugger, cmdToggleShowTouchingItems));
+	registerCmd("Ultima8Engine::closeItemGumps", WRAP_METHOD(Debugger, cmdCloseItemGumps));
+
 	registerCmd("AudioProcess::listSFX", WRAP_METHOD(Debugger, cmdListSFX));
 	registerCmd("AudioProcess::playSFX", WRAP_METHOD(Debugger, cmdPlaySFX));
 	registerCmd("AudioProcess::stopSFX", WRAP_METHOD(Debugger, cmdStopSFX));
@@ -81,6 +99,205 @@ Debugger::Debugger() : Shared::Debugger() {
 	registerCmd("QuickAvatarMoverProcess::toggleClipping", WRAP_METHOD(Debugger, cmdToggleClipping));
 }
 
+bool Debugger::cmdSaveGame(int argc, const char **argv) {
+	if (argc == 2) {
+		// Save a _game with the given name into the quicksave slot
+		Ultima8Engine::get_instance()->saveGame(1, argv[1]);
+	} else {
+		Ultima8Engine::get_instance()->saveGameDialog();
+	}
+
+	return false;
+}
+
+bool Debugger::cmdLoadGame(int argc, const char **argv) {
+	if (argc == 2) {
+		// Load a _game from the quicksave slot. The second parameter is ignored,
+		// it just needs to be present to differentiate from showing the GUI load dialog
+		Ultima8Engine::get_instance()->loadGameState(1);
+	} else {
+		Ultima8Engine::get_instance()->loadGameDialog();
+	}
+
+	return false;
+}
+
+bool Debugger::cmdNewGame(int argc, const char **argv) {
+	Ultima8Engine::get_instance()->newGame();
+	return false;
+}
+
+bool Debugger::cmdQuit(int argc, const char **argv) {
+	Ultima8Engine::get_instance()->_isRunning = false;
+	return true;
+}
+
+bool Debugger::cmdDrawRenderStats(int argc, const char **argv) {
+	if (argc == 1) {
+		debugPrintf("Ultima8Engine::_drawRenderStats = %s",
+			strBool(Ultima8Engine::get_instance()->_drawRenderStats));
+		return true;
+	} else {
+		Ultima8Engine::get_instance()->_drawRenderStats = Std::strtol(argv[1], 0, 0) != 0;
+		return false;
+	}
+}
+
+bool Debugger::cmdEngineStats(int argc, const char **argv) {
+	Kernel::get_instance()->kernelStats();
+	ObjectManager::get_instance()->objectStats();
+	UCMachine::get_instance()->usecodeStats();
+	World::get_instance()->worldStats();
+
+
+	return true;
+}
+
+bool Debugger::cmdChangeGame(int argc, const char **argv) {
+	if (argc == 1) {
+		debugPrintf("Current _game is: %s\n", Ultima8Engine::get_instance()->_gameInfo->_name.c_str());
+	} else {
+		Ultima8Engine::get_instance()->changeGame(argv[1]);
+	}
+
+	return true;
+}
+
+bool Debugger::cmdListGames(int argc, const char **argv) {
+	Ultima8Engine *app = Ultima8Engine::get_instance();
+	Std::vector<istring> games;
+	games = app->_settingMan->listGames();
+	Std::vector<istring>::iterator iter;
+	for (iter = games.begin(); iter != games.end(); ++iter) {
+		istring _game = *iter;
+		GameInfo *info = app->getGameInfo(_game);
+		debugPrintf("%s: ", _game.c_str());
+		if (info) {
+			Std::string details = info->getPrintDetails();
+			debugPrintf("%s\n", details.c_str());
+		} else {
+			debugPrintf("(unknown)\n");
+		}
+	}
+
+	return true;
+}
+
+bool Debugger::cmdSetVideoMode(int argc, const char **argv) {
+	if (argc != 3) {
+		debugPrintf("Usage: Ultima8Engine::setVidMode width height\n");
+		return true;
+	} else {
+		Ultima8Engine::get_instance()->changeVideoMode(strtol(argv[1], 0, 0), strtol(argv[2], 0, 0));
+		return false;
+	}
+}
+
+bool Debugger::cmdToggleAvatarInStasis(int argc, const char **argv) {
+	Ultima8Engine *g = Ultima8Engine::get_instance();
+	g->toggleAvatarInStasis();
+	debugPrintf("_avatarInStasis = %s\n", strBool(g->isAvatarInStasis()));
+	return true;
+}
+
+bool Debugger::cmdTogglePaintEditorItems(int argc, const char **argv) {
+	Ultima8Engine *g = Ultima8Engine::get_instance();
+	g->togglePaintEditorItems();
+	debugPrintf("_paintEditorItems = %s\n", strBool(g->isPaintEditorItems()));
+	return true;
+}
+
+bool Debugger::cmdToggleShowTouchingItems(int argc, const char **argv) {
+	Ultima8Engine *g = Ultima8Engine::get_instance();
+	g->toggleShowTouchingItems();
+	debugPrintf("ShowTouchingItems = %s\n", strBool(g->isShowTouchingItems()));
+	return true;
+}
+
+bool Debugger::cmdCloseItemGumps(int argc, const char **argv) {
+	Ultima8Engine *g = Ultima8Engine::get_instance();
+	g->getDesktopGump()->CloseItemDependents();
+	return true;
+}
+
+bool Debugger::cmdToggleCheatMode(int argc, const char **argv) {
+	Ultima8Engine *g = Ultima8Engine::get_instance();
+	g->setCheatMode(!g->areCheatsEnabled());
+	debugPrintf("Cheats = %s\n", strBool(g->areCheatsEnabled()));
+	return true;
+}
+
+bool Debugger::cmdMemberVar(int argc, const char **argv) {
+	if (argc == 1) {
+		debugPrintf("Usage: Ultima8Engine::memberVar <member> [newvalue] [updateini]\n");
+		return true;
+	}
+
+	Ultima8Engine *g = Ultima8Engine::get_instance();
+
+	// Set the pointer to the correct type
+	bool *b = 0;
+	int *i = 0;
+	Std::string *str = 0;
+	istring *istr = 0;
+
+	// ini entry name if supported
+	const char *ini = 0;
+
+	if (!scumm_stricmp(argv[1], "_frameLimit")) {
+		b = &g->_frameLimit;
+		ini = "_frameLimit";
+	} else if (!scumm_stricmp(argv[1], "_frameSkip")) {
+		b = &g->_frameSkip;
+		ini = "_frameSkip";
+	} else if (!scumm_stricmp(argv[1], "_interpolate")) {
+		b = &g->_interpolate;
+		ini = "_interpolate";
+	} else {
+		debugPrintf("Unknown member: %s\n", argv[1]);
+		return true;
+	}
+
+	// Set the value
+	if (argc >= 3) {
+		if (b)
+			*b = !scumm_stricmp(argv[2], "yes") || !scumm_stricmp(argv[2], "true");
+		else if (istr)
+			*istr = argv[2];
+		else if (i)
+			*i = Std::strtol(argv[2], 0, 0);
+		else if (str)
+			*str = argv[2];
+
+		// Set config value
+		if (argc >= 4 && ini && *ini && (!scumm_stricmp(argv[3], "yes") || !scumm_stricmp(argv[3], "true"))) {
+			if (b)
+				g->_settingMan->set(ini, *b);
+			else if (istr)
+				g->_settingMan->set(ini, *istr);
+			else if (i)
+				g->_settingMan->set(ini, *i);
+			else if (str)
+				g->_settingMan->set(ini, *str);
+		}
+	}
+
+	// Print the value
+	debugPrintf("Ultima8Engine::%s = ", argv[1]);
+	if (b)
+		debugPrintf("%s", strBool(*b));
+	else if (istr)
+		debugPrintf("%s", istr->c_str());
+	else if (i)
+		debugPrintf("%d", *i);
+	else if (str)
+		debugPrintf("%s", str->c_str());
+	debugPrintf("\n");
+
+	return true;
+}
+
+
 bool Debugger::cmdListSFX(int argc, const char **argv) {
 	AudioProcess *ap = AudioProcess::get_instance();
 	if (!ap) {
diff --git a/engines/ultima/ultima8/misc/debugger.h b/engines/ultima/ultima8/misc/debugger.h
index e25d5d8..a8c1a03 100644
--- a/engines/ultima/ultima8/misc/debugger.h
+++ b/engines/ultima/ultima8/misc/debugger.h
@@ -35,6 +35,27 @@ class Ultima1Engine;
  */
 class Debugger : public Shared::Debugger {
 private:
+	const char *strBool(bool flag) {
+		return flag ? "true" : "false";
+	}
+private:
+	// Engine
+	bool cmdSaveGame(int argc, const char **argv);
+	bool cmdLoadGame(int argc, const char **argv);
+	bool cmdNewGame(int argc, const char **argv);
+	bool cmdQuit(int argc, const char **argv);
+	bool cmdChangeGame(int argc, const char **argv);
+	bool cmdListGames(int argc, const char **argv);
+	bool cmdSetVideoMode(int argc, const char **argv);
+	bool cmdDrawRenderStats(int argc, const char **argv);
+	bool cmdEngineStats(int argc, const char **argv);
+	bool cmdToggleAvatarInStasis(int argc, const char **argv);
+	bool cmdTogglePaintEditorItems(int argc, const char **argv);
+	bool cmdToggleShowTouchingItems(int argc, const char **argv);
+	bool cmdCloseItemGumps(int argc, const char **argv);
+	bool cmdToggleCheatMode(int argc, const char **argv);
+	bool cmdMemberVar(int argc, const char **argv);
+
 	// Audio Process
 	bool cmdListSFX(int argc, const char **argv);
 	bool cmdStopSFX(int argc, const char **argv);
@@ -61,7 +82,9 @@ private:
 
 	// Memory Manager
 	bool cmdMemInfo(int argc, const char **argv);
+#ifdef DEBUG
 	bool cmdTest(int argc, const char **argv);
+#endif
 
 	// Object Manager
 	bool cmdObjectTypes(int argc, const char **argv);
diff --git a/engines/ultima/ultima8/ultima8.cpp b/engines/ultima/ultima8/ultima8.cpp
index 4737a92..17c7657 100644
--- a/engines/ultima/ultima8/ultima8.cpp
+++ b/engines/ultima/ultima8/ultima8.cpp
@@ -174,48 +174,14 @@ bool Ultima8Engine::initialize() {
 	_events = new Shared::EventsManager(this);
 
 	// Add console commands
-	con->AddConsoleCommand("quit", ConCmd_quit);
-	con->AddConsoleCommand("Ultima8Engine::quit", ConCmd_quit);
 	con->AddConsoleCommand("QuitGump::verifyQuit", QuitGump::ConCmd_verifyQuit);
 	con->AddConsoleCommand("ShapeViewerGump::U8ShapeViewer", ShapeViewerGump::ConCmd_U8ShapeViewer);
 	con->AddConsoleCommand("MenuGump::showMenu", MenuGump::ConCmd_showMenu);
-	con->AddConsoleCommand("Ultima8Engine::_drawRenderStats", ConCmd_drawRenderStats);
-	con->AddConsoleCommand("Ultima8Engine::engineStats", ConCmd_engineStats);
-
-	con->AddConsoleCommand("Ultima8Engine::changeGame", ConCmd_changeGame);
-	con->AddConsoleCommand("Ultima8Engine::listGames", ConCmd_listGames);
-
-	con->AddConsoleCommand("Ultima8Engine::memberVar", &Ultima8Engine::ConCmd_memberVar);
-	con->AddConsoleCommand("Ultima8Engine::setVideoMode", ConCmd_setVideoMode);
-
-	con->AddConsoleCommand("Ultima8Engine::toggleAvatarInStasis", ConCmd_toggleAvatarInStasis);
-	con->AddConsoleCommand("Ultima8Engine::togglePaintEditorItems", ConCmd_togglePaintEditorItems);
-	con->AddConsoleCommand("Ultima8Engine::toggleShowTouchingItems", ConCmd_toggleShowTouchingItems);
-
-	con->AddConsoleCommand("Ultima8Engine::closeItemGumps", ConCmd_closeItemGumps);
 
 	return true;
 }
 
 void Ultima8Engine::deinitialize() {
-	con->RemoveConsoleCommand(Ultima8Engine::ConCmd_quit);
-	con->RemoveConsoleCommand(QuitGump::ConCmd_verifyQuit);
-	con->RemoveConsoleCommand(ShapeViewerGump::ConCmd_U8ShapeViewer);
-	con->RemoveConsoleCommand(MenuGump::ConCmd_showMenu);
-	con->RemoveConsoleCommand(Ultima8Engine::ConCmd_drawRenderStats);
-	con->RemoveConsoleCommand(Ultima8Engine::ConCmd_engineStats);
-
-	con->RemoveConsoleCommand(Ultima8Engine::ConCmd_changeGame);
-	con->RemoveConsoleCommand(Ultima8Engine::ConCmd_listGames);
-
-	con->RemoveConsoleCommand(Ultima8Engine::ConCmd_memberVar);
-	con->RemoveConsoleCommand(Ultima8Engine::ConCmd_setVideoMode);
-
-	con->RemoveConsoleCommand(Ultima8Engine::ConCmd_toggleAvatarInStasis);
-	con->RemoveConsoleCommand(Ultima8Engine::ConCmd_togglePaintEditorItems);
-	con->RemoveConsoleCommand(Ultima8Engine::ConCmd_toggleShowTouchingItems);
-
-	con->RemoveConsoleCommand(Ultima8Engine::ConCmd_closeItemGumps);
 }
 
 void Ultima8Engine::startup() {
@@ -338,9 +304,6 @@ void Ultima8Engine::startupGame() {
 	GraphicSysInit();
 
 	// Generic Commands
-	con->AddConsoleCommand("Ultima8Engine::saveGame", ConCmd_saveGame);
-	con->AddConsoleCommand("Ultima8Engine::loadGame", ConCmd_loadGame);
-	con->AddConsoleCommand("Ultima8Engine::newGame", ConCmd_newGame);
 #ifdef DEBUG
 	con->AddConsoleCommand("Pathfinder::visualDebug",
 		Pathfinder::ConCmd_visualDebug);
@@ -354,7 +317,7 @@ void Ultima8Engine::startupGame() {
 	con->AddConsoleCommand("Cheat::maxstats", MainActor::ConCmd_maxstats);
 	con->AddConsoleCommand("Cheat::heal", MainActor::ConCmd_heal);
 	con->AddConsoleCommand("Cheat::toggleInvincibility", MainActor::ConCmd_toggleInvincibility);
-	con->AddConsoleCommand("Cheat::toggle", Ultima8Engine::ConCmd_toggleCheatMode);
+//SVM	con->AddConsoleCommand("Cheat::toggle", Ultima8Engine::ConCmd_toggleCheatMode);
 	con->AddConsoleCommand("MainActor::name", MainActor::ConCmd_name);
 	con->AddConsoleCommand("MovieGump::play", MovieGump::ConCmd_play);
 	con->AddConsoleCommand("MusicProcess::playMusic", MusicProcess::ConCmd_playMusic);
@@ -507,36 +470,6 @@ void Ultima8Engine::shutdownGame(bool reloading) {
 	_saveCount = 0;
 	_hasCheated = false;
 
-	// Generic Game
-	con->RemoveConsoleCommand(Ultima8Engine::ConCmd_saveGame);
-	con->RemoveConsoleCommand(Ultima8Engine::ConCmd_loadGame);
-	con->RemoveConsoleCommand(Ultima8Engine::ConCmd_newGame);
-#ifdef DEBUG
-	con->RemoveConsoleCommand(Pathfinder::ConCmd_visualDebug);
-#endif
-
-	// U8 Only kind of
-	con->RemoveConsoleCommand(MainActor::ConCmd_teleport);
-	con->RemoveConsoleCommand(MainActor::ConCmd_mark);
-	con->RemoveConsoleCommand(MainActor::ConCmd_recall);
-	con->RemoveConsoleCommand(MainActor::ConCmd_listmarks);
-	con->RemoveConsoleCommand(MainActor::ConCmd_maxstats);
-	con->RemoveConsoleCommand(MainActor::ConCmd_heal);
-	con->RemoveConsoleCommand(MainActor::ConCmd_toggleInvincibility);
-	con->RemoveConsoleCommand(Ultima8Engine::ConCmd_toggleCheatMode);
-	con->RemoveConsoleCommand(MainActor::ConCmd_name);
-	con->RemoveConsoleCommand(MovieGump::ConCmd_play);
-	con->RemoveConsoleCommand(MusicProcess::ConCmd_playMusic);
-	con->RemoveConsoleCommand(InverterProcess::ConCmd_invertScreen);
-	con->RemoveConsoleCommand(FastAreaVisGump::ConCmd_toggle);
-	con->RemoveConsoleCommand(MiniMapGump::ConCmd_toggle);
-	con->RemoveConsoleCommand(MainActor::ConCmd_useBackpack);
-	con->RemoveConsoleCommand(MainActor::ConCmd_useInventory);
-	con->RemoveConsoleCommand(MainActor::ConCmd_useRecall);
-	con->RemoveConsoleCommand(MainActor::ConCmd_useBedroll);
-	con->RemoveConsoleCommand(MainActor::ConCmd_useKeyring);
-	con->RemoveConsoleCommand(MainActor::ConCmd_toggleCombat);
-
 	// Kill Game
 	CoreApp::killGame();
 
@@ -1650,181 +1583,6 @@ bool Ultima8Engine::load(IDataSource *ids, uint32 version) {
 	return true;
 }
 
-//
-// Console Commands
-//
-
-void Ultima8Engine::ConCmd_saveGame(const Console::ArgvType &argv) {
-	if (argv.size() == 2) {
-		// Save a _game with the given name into the quicksave slot
-		Ultima8Engine::get_instance()->saveGame(1, argv[1]);
-	} else {
-		Ultima8Engine::get_instance()->saveGameDialog();
-	}
-}
-
-void Ultima8Engine::ConCmd_loadGame(const Console::ArgvType &argv) {
-	if (argv.size() == 2) {
-		// Load a _game from the quicksave slot. The second parameter is ignored,
-		// it just needs to be present to differentiate from showing the GUI load dialog
-		Ultima8Engine::get_instance()->loadGameState(1);
-	} else {
-		Ultima8Engine::get_instance()->loadGameDialog();
-	}
-}
-
-void Ultima8Engine::ConCmd_newGame(const Console::ArgvType &argv) {
-	Ultima8Engine::get_instance()->newGame();
-}
-
-void Ultima8Engine::ConCmd_quit(const Console::ArgvType &argv) {
-	Ultima8Engine::get_instance()->_isRunning = false;
-}
-
-void Ultima8Engine::ConCmd_drawRenderStats(const Console::ArgvType &argv) {
-	if (argv.size() == 1) {
-		pout << "Ultima8Engine::_drawRenderStats = " << Ultima8Engine::get_instance()->_drawRenderStats << Std::endl;
-	} else {
-		Ultima8Engine::get_instance()->_drawRenderStats = Std::strtol(argv[1].c_str(), 0, 0) != 0;
-	}
-}
-
-void Ultima8Engine::ConCmd_engineStats(const Console::ArgvType &argv) {
-	Kernel::get_instance()->kernelStats();
-	ObjectManager::get_instance()->objectStats();
-	UCMachine::get_instance()->usecodeStats();
-	World::get_instance()->worldStats();
-}
-
-void Ultima8Engine::ConCmd_changeGame(const Console::ArgvType &argv) {
-	if (argv.size() == 1) {
-		pout << "Current _game is: " << Ultima8Engine::get_instance()->_gameInfo->_name << Std::endl;
-	} else {
-		Ultima8Engine::get_instance()->changeGame(argv[1]);
-	}
-}
-
-void Ultima8Engine::ConCmd_listGames(const Console::ArgvType &argv) {
-	Ultima8Engine *app = Ultima8Engine::get_instance();
-	Std::vector<istring> games;
-	games = app->_settingMan->listGames();
-	Std::vector<istring>::iterator iter;
-	for (iter = games.begin(); iter != games.end(); ++iter) {
-		istring _game = *iter;
-		GameInfo *info = app->getGameInfo(_game);
-		con->Printf(MM_INFO, "%s: ", _game.c_str());
-		if (info) {
-			Std::string details = info->getPrintDetails();
-			con->Print(MM_INFO, details.c_str());
-		} else {
-			con->Print(MM_INFO, "(unknown)");
-		}
-		con->Print(MM_INFO, "\n");
-	}
-}
-
-void Ultima8Engine::ConCmd_setVideoMode(const Console::ArgvType &argv) {
-	int _fullScreen = -1;
-
-	//if (argv.size() == 4) {
-	//  if (argv[3] == "_fullScreen") _fullScreen = 1;
-	//  else _fullScreen = 0;
-	//} else
-	if (argv.size() != 3) {
-		//pout << "Usage: Ultima8Engine::setVidMode width height [_fullScreen/windowed]" << Std::endl;
-		pout << "Usage: Ultima8Engine::setVidMode width height" << Std::endl;
-		return;
-	}
-
-	Ultima8Engine::get_instance()->changeVideoMode(strtol(argv[1].c_str(), 0, 0), strtol(argv[2].c_str(), 0, 0), _fullScreen);
-}
-
-void Ultima8Engine::ConCmd_toggleAvatarInStasis(const Console::ArgvType &argv) {
-	Ultima8Engine *g = Ultima8Engine::get_instance();
-	g->toggleAvatarInStasis();
-	pout << "_avatarInStasis = " << g->isAvatarInStasis() << Std::endl;
-}
-
-void Ultima8Engine::ConCmd_togglePaintEditorItems(const Console::ArgvType &argv) {
-	Ultima8Engine *g = Ultima8Engine::get_instance();
-	g->togglePaintEditorItems();
-	pout << "_paintEditorItems = " << g->isPaintEditorItems() << Std::endl;
-}
-
-void Ultima8Engine::ConCmd_toggleShowTouchingItems(const Console::ArgvType &argv) {
-	Ultima8Engine *g = Ultima8Engine::get_instance();
-	g->toggleShowTouchingItems();
-	pout << "ShowTouchingItems = " << g->isShowTouchingItems() << Std::endl;
-}
-
-void Ultima8Engine::ConCmd_closeItemGumps(const Console::ArgvType &argv) {
-	Ultima8Engine *g = Ultima8Engine::get_instance();
-	g->getDesktopGump()->CloseItemDependents();
-}
-
-void Ultima8Engine::ConCmd_toggleCheatMode(const Console::ArgvType &argv) {
-	Ultima8Engine *g = Ultima8Engine::get_instance();
-	g->setCheatMode(!g->areCheatsEnabled());
-	pout << "Cheats = " << g->areCheatsEnabled() << Std::endl;
-}
-
-void Ultima8Engine::ConCmd_memberVar(const Console::ArgvType &argv) {
-	if (argv.size() == 1) {
-		pout << "Usage: Ultima8Engine::memberVar <member> [newvalue] [updateini]" << Std::endl;
-		return;
-	}
-
-	Ultima8Engine *g = Ultima8Engine::get_instance();
-
-	// Set the pointer to the correct type
-	bool *b = 0;
-	int *i = 0;
-	Std::string *str = 0;
-	istring *istr = 0;
-
-	// ini entry name if supported
-	const char *ini = 0;
-
-	if (argv[1] == "_frameLimit") {
-		b = &g->_frameLimit;
-		ini = "_frameLimit";
-	} else if (argv[1] == "_frameSkip") {
-		b = &g->_frameSkip;
-		ini = "_frameSkip";
-	} else if (argv[1] == "_interpolate") {
-		b = &g->_interpolate;
-		ini = "_interpolate";
-	} else {
-		pout << "Unknown member: " << argv[1] << Std::endl;
-		return;
-	}
-
-	// Set the value
-	if (argv.size() >= 3) {
-		if (b) *b = (argv[2] == "yes" || argv[2] == "true");
-		else if (istr) *istr = argv[2];
-		else if (i) *i = Std::strtol(argv[2].c_str(), 0, 0);
-		else if (str) *str = argv[2];
-
-		// Set config value
-		if (argv.size() >= 4 && ini && *ini && (argv[3] == "yes" || argv[3] == "true")) {
-			if (b) g->_settingMan->set(ini, *b);
-			else if (istr) g->_settingMan->set(ini, *istr);
-			else if (i) g->_settingMan->set(ini, *i);
-			else if (str) g->_settingMan->set(ini, *str);
-		}
-	}
-
-	// Print the value
-	pout << "Ultima8Engine::" << argv[1] << " = ";
-	if (b) pout << ((*b) ? "true" : "false");
-	else if (istr) pout << *istr;
-	else if (i) pout << *i;
-	else if (str) pout << *str;
-	pout << Std::endl;
-
-	return;
-}
 
 //
 // Intrinsics
diff --git a/engines/ultima/ultima8/ultima8.h b/engines/ultima/ultima8/ultima8.h
index 6f7dff4..c961d58 100644
--- a/engines/ultima/ultima8/ultima8.h
+++ b/engines/ultima/ultima8/ultima8.h
@@ -53,6 +53,7 @@ namespace Ultima8 {
 #define SCREEN_WIDTH 640
 #define SCREEN_HEIGHT 480
 
+class Debugger;
 class Kernel;
 class MemoryManager;
 class UCMachine;
@@ -77,6 +78,7 @@ struct Texture;
 class AudioMixer;
 
 class Ultima8Engine : public Shared::UltimaEngine, public CoreApp {
+	friend class Debugger;
 private:
 	Std::list<ObjId> _textModes;      //!< Gumps that want text mode
 	bool _ttfOverrides;
@@ -147,33 +149,6 @@ private:
 
 	static void conAutoPaint(void);
 
-	// Load and save games from arbitrary filenames from the console
-	static void ConCmd_saveGame(const Console::ArgvType &argv);         //!< "Ultima8Engine::saveGame <optional filename>" console command
-	static void ConCmd_loadGame(const Console::ArgvType &argv);         //!< "Ultima8Engine::loadGame <optional filename>" console command
-	static void ConCmd_newGame(const Console::ArgvType &argv);          //!< "Ultima8Engine::newGame" console command
-//	static void ConCmd_ForceQuit(const Console::ArgvType &argv);
-
-	static void ConCmd_quit(const Console::ArgvType &argv);             //!< "quit" console command
-
-	static void ConCmd_changeGame(const Console::ArgvType &argv);       //!< "Ultima8Engine::changeGame" console command
-	static void ConCmd_listGames(const Console::ArgvType &argv);            //!< "Ultima8Engine::listGames" console command
-
-	static void ConCmd_setVideoMode(const Console::ArgvType &argv);     //!< "Ultima8Engine::setVideoMode" console command
-
-	// This should be a console variable once they are implemented
-	static void ConCmd_drawRenderStats(const Console::ArgvType &argv);  //!< "Ultima8Engine::drawRenderStats" console command
-
-	static void ConCmd_engineStats(const Console::ArgvType &argv);  //!< "Ultima8Engine::engineStats" console command
-
-	static void ConCmd_toggleAvatarInStasis(const Console::ArgvType &argv); //!< "Ultima8Engine::toggleAvatarInStasis" console command
-	static void ConCmd_togglePaintEditorItems(const Console::ArgvType &argv);   //!< "Ultima8Engine::togglePaintEditorItems" console command
-	static void ConCmd_toggleShowTouchingItems(const Console::ArgvType &argv);  //!< "Ultima8Engine::toggleShowTouchingItems" console command
-
-	static void ConCmd_closeItemGumps(const Console::ArgvType &argv);   //!< "Ultima8Engine::closeItemGumps" console command
-
-	static void ConCmd_toggleCheatMode(const Console::ArgvType &argv);  //!< "Cheat::toggle" console command
-
-	static void ConCmd_memberVar(const Console::ArgvType &argv);    //!< "Ultima8Engine::memberVar <member> [newvalue] [updateini]" console command
 private:
 	//! write savegame info (time, ..., game-specifics)
 	void writeSaveInfo(ODataSource *ods);


Commit: dece483ff564bc21c1b15438f0797cbecb5f9209
    https://github.com/scummvm/scummvm/commit/dece483ff564bc21c1b15438f0797cbecb5f9209
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-22T11:42:21-08:00

Commit Message:
ULTIMA8: Shifting more console methods to Debugger

Changed paths:
    engines/ultima/ultima8/gumps/menu_gump.cpp
    engines/ultima/ultima8/gumps/menu_gump.h
    engines/ultima/ultima8/gumps/quit_gump.cpp
    engines/ultima/ultima8/gumps/quit_gump.h
    engines/ultima/ultima8/gumps/shape_viewer_gump.cpp
    engines/ultima/ultima8/gumps/shape_viewer_gump.h
    engines/ultima/ultima8/misc/debugger.cpp
    engines/ultima/ultima8/misc/debugger.h
    engines/ultima/ultima8/ultima8.cpp
    engines/ultima/ultima8/world/actors/main_actor.cpp
    engines/ultima/ultima8/world/actors/main_actor.h


diff --git a/engines/ultima/ultima8/gumps/menu_gump.cpp b/engines/ultima/ultima8/gumps/menu_gump.cpp
index a046149..d6eeb5d 100644
--- a/engines/ultima/ultima8/gumps/menu_gump.cpp
+++ b/engines/ultima/ultima8/gumps/menu_gump.cpp
@@ -254,11 +254,6 @@ void MenuGump::showMenu() {
 	gump->setRelativePosition(CENTER);
 }
 
-// static
-void MenuGump::ConCmd_showMenu(const Console::ArgvType &argv) {
-	MenuGump::showMenu();
-}
-
 //static
 void MenuGump::inputName() {
 	ModalGump *gump = new MenuGump(true);
diff --git a/engines/ultima/ultima8/gumps/menu_gump.h b/engines/ultima/ultima8/gumps/menu_gump.h
index b875992..55aae1c 100644
--- a/engines/ultima/ultima8/gumps/menu_gump.h
+++ b/engines/ultima/ultima8/gumps/menu_gump.h
@@ -50,7 +50,6 @@ public:
 	void ChildNotify(Gump *child, uint32 message) override;
 
 	static void showMenu();
-	static void ConCmd_showMenu(const Console::ArgvType &argv);
 
 	static void inputName();
 
diff --git a/engines/ultima/ultima8/gumps/quit_gump.cpp b/engines/ultima/ultima8/gumps/quit_gump.cpp
index 21f797d..8980afa 100644
--- a/engines/ultima/ultima8/gumps/quit_gump.cpp
+++ b/engines/ultima/ultima8/gumps/quit_gump.cpp
@@ -145,10 +145,6 @@ void QuitGump::verifyQuit() {
 	gump->setRelativePosition(CENTER);
 }
 
-void QuitGump::ConCmd_verifyQuit(const Console::ArgvType &argv) {
-	QuitGump::verifyQuit();
-}
-
 bool QuitGump::loadData(IDataSource *ids) {
 	CANT_HAPPEN_MSG("Trying to load ModalGump");
 	return true;
diff --git a/engines/ultima/ultima8/gumps/quit_gump.h b/engines/ultima/ultima8/gumps/quit_gump.h
index eb23f3e..3dafdcd 100644
--- a/engines/ultima/ultima8/gumps/quit_gump.h
+++ b/engines/ultima/ultima8/gumps/quit_gump.h
@@ -45,8 +45,6 @@ public:
 	void ChildNotify(Gump *child, uint32 message) override;
 
 	static void verifyQuit();
-	//! "QuitGump::verifyQuit" console command
-	static void ConCmd_verifyQuit(const Console::ArgvType &argv);
 
 	bool loadData(IDataSource *ids);
 protected:
diff --git a/engines/ultima/ultima8/gumps/shape_viewer_gump.cpp b/engines/ultima/ultima8/gumps/shape_viewer_gump.cpp
index b7af7a4..0f2a9be 100644
--- a/engines/ultima/ultima8/gumps/shape_viewer_gump.cpp
+++ b/engines/ultima/ultima8/gumps/shape_viewer_gump.cpp
@@ -273,10 +273,6 @@ void ShapeViewerGump::U8ShapeViewer() {
 	gump->InitGump(0);
 }
 
-void ShapeViewerGump::ConCmd_U8ShapeViewer(const Console::ArgvType &argv) {
-	ShapeViewerGump::U8ShapeViewer();
-}
-
 bool ShapeViewerGump::loadData(IDataSource *ids) {
 	CANT_HAPPEN_MSG("Trying to load ModalGump");
 	return false;
diff --git a/engines/ultima/ultima8/gumps/shape_viewer_gump.h b/engines/ultima/ultima8/gumps/shape_viewer_gump.h
index fc1d20e..fdfbc0e 100644
--- a/engines/ultima/ultima8/gumps/shape_viewer_gump.h
+++ b/engines/ultima/ultima8/gumps/shape_viewer_gump.h
@@ -50,7 +50,6 @@ public:
 	bool OnTextInput(int unicode) override;
 
 	static void U8ShapeViewer();
-	static void ConCmd_U8ShapeViewer(const Console::ArgvType &argv);
 
 	bool loadData(IDataSource *ids);
 protected:
diff --git a/engines/ultima/ultima8/misc/debugger.cpp b/engines/ultima/ultima8/misc/debugger.cpp
index 4795592..86aca34 100644
--- a/engines/ultima/ultima8/misc/debugger.cpp
+++ b/engines/ultima/ultima8/misc/debugger.cpp
@@ -25,6 +25,9 @@
 #include "ultima/ultima8/audio/audio_process.h"
 #include "ultima/ultima8/conf/setting_manager.h"
 #include "ultima/ultima8/gumps/game_map_gump.h"
+#include "ultima/ultima8/gumps/quit_gump.h"
+#include "ultima/ultima8/gumps/shape_viewer_gump.h"
+#include "ultima/ultima8/gumps/menu_gump.h"
 #include "ultima/ultima8/kernel/allocator.h"
 #include "ultima/ultima8/kernel/hid_manager.h"
 #include "ultima/ultima8/kernel/kernel.h"
@@ -32,8 +35,10 @@
 #include "ultima/ultima8/kernel/object_manager.h"
 #include "ultima/ultima8/misc/id_man.h"
 #include "ultima/ultima8/usecode/uc_machine.h"
-#include "ultima/ultima8/world/actors/quick_avatar_mover_process.h"
 #include "ultima/ultima8/world/world.h"
+#include "ultima/ultima8/world/get_object.h"
+#include "ultima/ultima8/world/actors/quick_avatar_mover_process.h"
+#include "ultima/ultima8/world/actors/main_actor.h"
 
 namespace Ultima {
 namespace Ultima8 {
@@ -97,6 +102,40 @@ Debugger::Debugger() : Shared::Debugger() {
 	registerCmd("QuickAvatarMoverProcess::stopDescend", WRAP_METHOD(Debugger, cmdStopDescend));
 	registerCmd("QuickAvatarMoverProcess::toggleQuarterSpeed", WRAP_METHOD(Debugger, cmdToggleQuarterSpeed));
 	registerCmd("QuickAvatarMoverProcess::toggleClipping", WRAP_METHOD(Debugger, cmdToggleClipping));
+
+	registerCmd("QuitGump::verifyQuit", WRAP_METHOD(Debugger, cmdVerifyQuit));
+	registerCmd("ShapeViewerGump::U8ShapeViewer", WRAP_METHOD(Debugger, cmdU8ShapeViewer));
+	registerCmd("MenuGump::showMenu", WRAP_METHOD(Debugger, cmdShowMenu));
+
+#ifdef DEBUG
+	registerCmd("Pathfinder::visualDebug",
+		Pathfinder::ConCmd_visualDebug);
+#endif
+
+	registerCmd("MainActor::teleport", WRAP_METHOD(Debugger, cmdTeleport));
+	registerCmd("MainActor::mark", WRAP_METHOD(Debugger, cmdMark));
+	registerCmd("MainActor::recall", WRAP_METHOD(Debugger, cmdRecall));
+	registerCmd("MainActor::listmarks", WRAP_METHOD(Debugger, cmdListMarks));
+	registerCmd("MainActor::name", WRAP_METHOD(Debugger, cmdName));
+	registerCmd("MainActor::useBackpack", WRAP_METHOD(Debugger, cmdUseBackpack));
+	registerCmd("MainActor::useInventory", WRAP_METHOD(Debugger, cmdUseInventory));
+	registerCmd("MainActor::useRecall", WRAP_METHOD(Debugger, cmdUseRecall));
+	registerCmd("MainActor::useBedroll", WRAP_METHOD(Debugger, cmdUseBedroll));
+	registerCmd("MainActor::useKeyring", WRAP_METHOD(Debugger, cmdUseKeyring));
+	registerCmd("MainActor::toggleCombat", WRAP_METHOD(Debugger, cmdToggleCombat));
+
+	/*
+	registerCmd("Cheat::maxstats", WRAP_METHOD(Debugger, cmdMaxStats));
+	registerCmd("Cheat::heal", WRAP_METHOD(Debugger, cmdHeal));
+	registerCmd("Cheat::toggleInvincibility", WRAP_METHOD(Debugger, cmdToggleInvincibility));
+	registerCmd("Cheat::toggle", Ultima8Engine::ConCmd_toggleCheatMode);
+
+	registerCmd("MovieGump::play", MovieGump::ConCmd_play);
+	registerCmd("MusicProcess::playMusic", MusicProcess::ConCmd_playMusic);
+	registerCmd("InverterProcess::invertScreen", InverterProcess::ConCmd_invertScreen);
+	registerCmd("FastAreaVisGump::toggle", FastAreaVisGump::ConCmd_toggle);
+	registerCmd("MiniMapGump::toggle", MiniMapGump::ConCmd_toggle);
+	*/
 }
 
 bool Debugger::cmdSaveGame(int argc, const char **argv) {
@@ -654,6 +693,222 @@ bool Debugger::cmdAdvanceFrame(int argc, const char **argv) {
 }
 
 
+bool Debugger::cmdTeleport(int argc, const char **argv) {
+	if (!Ultima8Engine::get_instance()->areCheatsEnabled()) {
+		debugPrintf("Cheats are disabled\n");
+		return true;
+	}
+	MainActor *mainActor = getMainActor();
+	int curmap = mainActor->getMapNum();
+
+	switch (argc - 1) {
+	case 1:
+		mainActor->teleport(curmap,
+			strtol(argv[1], 0, 0));
+		break;
+	case 2:
+		mainActor->teleport(strtol(argv[1], 0, 0),
+			strtol(argv[2], 0, 0));
+		break;
+	case 3:
+		mainActor->teleport(curmap,
+			strtol(argv[1], 0, 0),
+			strtol(argv[2], 0, 0),
+			strtol(argv[3], 0, 0));
+		break;
+	case 4:
+		mainActor->teleport(strtol(argv[1], 0, 0),
+			strtol(argv[2], 0, 0),
+			strtol(argv[3], 0, 0),
+			strtol(argv[4], 0, 0));
+		break;
+	default:
+		debugPrintf("teleport usage:\n");
+		debugPrintf("teleport <mapnum> <x> <y> <z>: teleport to (x,y,z) on map mapnum\n");
+		debugPrintf("teleport <x> <y> <z>: teleport to (x,y,z) on current map\n");
+		debugPrintf("teleport <mapnum> <eggnum>: teleport to target egg eggnum on map mapnum\n");
+		debugPrintf("teleport <eggnum>: teleport to target egg eggnum on current map\n");
+		return true;
+	}
+
+	return false;
+}
+
+bool Debugger::cmdMark(int argc, const char **argv) {
+	if (argc == 1) {
+		debugPrintf("Usage: mark <mark>: set named mark to this location\n");
+		return true;
+	}
+
+	SettingManager *settings = SettingManager::get_instance();
+	MainActor *mainActor = getMainActor();
+	int curmap = mainActor->getMapNum();
+	int32 x, y, z;
+	mainActor->getLocation(x, y, z);
+
+	istring confkey = Common::String::format("marks/%s", argv[1]);
+	char buf[100]; // large enough for 4 ints
+	sprintf(buf, "%d %d %d %d", curmap, x, y, z);
+
+	settings->set(confkey, buf);
+	settings->write(); //!! FIXME: clean this up
+
+	debugPrintf("Set mark \"%s\" to %s\n", argv[1], buf);
+	return true;
+}
+
+bool Debugger::cmdRecall(int argc, const char **argv) {
+	if (!Ultima8Engine::get_instance()->areCheatsEnabled()) {
+		debugPrintf("Cheats are disabled\n");
+		return true;
+	}
+	if (argc == 1) {
+		debugPrintf("Usage: recall <mark>: recall to named mark\n");
+		return true;
+	}
+
+	SettingManager *settings = SettingManager::get_instance();
+	MainActor *mainActor = getMainActor();
+	Common::String confKey = Common::String::format("marks/%s", argv[1]);
+	Std::string target;
+	if (!settings->get(confKey, target)) {
+		debugPrintf("recall: no such mark\n");
+		return true;
+	}
+
+	int t[4];
+	int n = sscanf(target.c_str(), "%d%d%d%d", &t[0], &t[1], &t[2], &t[3]);
+	if (n != 4) {
+		debugPrintf("recall: invalid mark\n");
+		return true;
+	}
+
+	mainActor->teleport(t[0], t[1], t[2], t[3]);
+	return false;
+}
+
+bool Debugger::cmdListMarks(int argc, const char **argv) {
+	SettingManager *settings = SettingManager::get_instance();
+	Std::vector<istring> marks;
+	marks = settings->listDataKeys("marks");
+	for (Std::vector<istring>::iterator iter = marks.begin();
+		iter != marks.end(); ++iter) {
+		debugPrintf("%s\n", iter->c_str());
+	}
+
+	return true;
+}
+
+bool Debugger::cmdMaxStats(int argc, const char **argv) {
+	if (!Ultima8Engine::get_instance()->areCheatsEnabled()) {
+		debugPrintf("Cheats are disabled\n");
+		return true;
+	}
+	MainActor *mainActor = getMainActor();
+
+	// constants!!
+	mainActor->setStr(25);
+	mainActor->setDex(25);
+	mainActor->setInt(25);
+	mainActor->setHP(mainActor->getMaxHP());
+	mainActor->setMana(mainActor->getMaxMana());
+
+	AudioProcess *audioproc = AudioProcess::get_instance();
+	if (audioproc)
+		audioproc->playSFX(0x36, 0x60, 1, 0); //constants!!
+	return false;
+}
+
+bool Debugger::cmdHeal(int argc, const char **argv) {
+	if (!Ultima8Engine::get_instance()->areCheatsEnabled()) {
+		debugPrintf("Cheats are disabled\n");
+		return true;
+	}
+	MainActor *mainActor = getMainActor();
+
+	mainActor->setHP(mainActor->getMaxHP());
+	mainActor->setMana(mainActor->getMaxMana());
+	return false;
+}
+
+bool Debugger::cmdName(int argc, const char **argv) {
+	MainActor *av = getMainActor();
+	if (argc > 1)
+		av->setName(argv[1]);
+
+	debugPrintf("MainActor::name = \"%s\"\n", av->getName().c_str());
+	return true;
+}
+
+bool Debugger::cmdUseBackpack(int argc, const char **argv) {
+	if (Ultima8Engine::get_instance()->isAvatarInStasis()) {
+		debugPrintf("Can't: avatarInStasis\n");
+		return true;
+	}
+	MainActor *av = getMainActor();
+	Item *backpack = getItem(av->getEquip(7));
+	if (backpack)
+		backpack->callUsecodeEvent_use();
+	return false;
+}
+
+bool Debugger::cmdUseInventory(int argc, const char **argv) {
+	if (Ultima8Engine::get_instance()->isAvatarInStasis()) {
+		debugPrintf("Can't: avatarInStasis\n");
+		return true;
+	}
+	MainActor *av = getMainActor();
+	av->callUsecodeEvent_use();
+	return false;
+}
+
+bool Debugger::cmdUseRecall(int argc, const char **argv) {
+	MainActor *av = getMainActor();
+	av->useInventoryItem(833);
+	return false;
+}
+
+bool Debugger::cmdUseBedroll(int argc, const char **argv) {
+	MainActor *av = getMainActor();
+	av->useInventoryItem(534);
+	return false;
+}
+
+bool Debugger::cmdUseKeyring(int argc, const char **argv) {
+	MainActor *av = getMainActor();
+	av->useInventoryItem(79);
+	return false;
+}
+
+bool Debugger::cmdToggleCombat(int argc, const char **argv) {
+	if (Ultima8Engine::get_instance()->isAvatarInStasis()) {
+		debugPrintf("Can't: avatarInStasis\n");
+		return true;
+	}
+	MainActor *av = getMainActor();
+	av->toggleInCombat();
+	return false;
+}
+
+bool Debugger::cmdToggleInvincibility(int argc, const char **argv) {
+	if (!Ultima8Engine::get_instance()->areCheatsEnabled()) {
+		debugPrintf("Cheats are disabled\n");
+		return true;
+	}
+	MainActor *av = getMainActor();
+
+	if (av->getActorFlags() & Actor::ACT_INVINCIBLE) {
+		av->clearActorFlag(Actor::ACT_INVINCIBLE);
+		debugPrintf("Avatar is no longer invincible.\n");
+	} else {
+		av->setActorFlag(Actor::ACT_INVINCIBLE);
+		debugPrintf("Avatar invincible.\n");
+	}
+
+	return true;
+}
+
+
 bool Debugger::cmdMemInfo(int argc, const char **argv) {
 	MemoryManager *mm = MemoryManager::get_instance();
 	int i, count;
@@ -816,5 +1071,21 @@ bool Debugger::cmdToggleClipping(int argc, const char **argv) {
 	return true;
 }
 
+
+bool Debugger::cmdVerifyQuit(int argc, const char **argv) {
+	QuitGump::verifyQuit();
+	return false;
+}
+
+bool Debugger::cmdU8ShapeViewer(int argc, const char **argv) {
+	ShapeViewerGump::U8ShapeViewer();
+	return false;
+}
+
+bool Debugger::cmdShowMenu(int argc, const char **argv) {
+	MenuGump::showMenu();
+	return false;
+}
+
 } // End of namespace Ultima8
 } // End of namespace Ultima
diff --git a/engines/ultima/ultima8/misc/debugger.h b/engines/ultima/ultima8/misc/debugger.h
index a8c1a03..6dd03c2 100644
--- a/engines/ultima/ultima8/misc/debugger.h
+++ b/engines/ultima/ultima8/misc/debugger.h
@@ -80,6 +80,22 @@ private:
 	bool cmdToggleFrameByFrame(int argc, const char **argv);
 	bool cmdAdvanceFrame(int argc, const char **argv);
 
+	// Main Actor
+	bool cmdTeleport(int argc, const char **argv);
+	bool cmdMark(int argc, const char **argv);
+	bool cmdRecall(int argc, const char **argv);
+	bool cmdListMarks(int argc, const char **argv);
+	bool cmdName(int argc, const char **argv);
+	bool cmdMaxStats(int argc, const char **argv);
+	bool cmdHeal(int argc, const char **argv);
+	bool cmdToggleInvincibility(int argc, const char **argv);
+	bool cmdUseBackpack(int argc, const char **argv);
+	bool cmdUseInventory(int argc, const char **argv);
+	bool cmdUseRecall(int argc, const char **argv);
+	bool cmdUseBedroll(int argc, const char **argv);
+	bool cmdUseKeyring(int argc, const char **argv);
+	bool cmdToggleCombat(int argc, const char **argv);
+
 	// Memory Manager
 	bool cmdMemInfo(int argc, const char **argv);
 #ifdef DEBUG
@@ -105,6 +121,12 @@ private:
 	bool cmdStopDescend(int argc, const char **argv);
 	bool cmdToggleQuarterSpeed(int argc, const char **argv);
 	bool cmdToggleClipping(int argc, const char **argv);
+
+	// Miscellaneous
+	bool cmdVerifyQuit(int argc, const char **argv);
+	bool cmdU8ShapeViewer(int argc, const char **argv);
+	bool cmdShowMenu(int argc, const char **argv);
+
 public:
 	Debugger();
     ~Debugger() override {}
diff --git a/engines/ultima/ultima8/ultima8.cpp b/engines/ultima/ultima8/ultima8.cpp
index 17c7657..4d79000 100644
--- a/engines/ultima/ultima8/ultima8.cpp
+++ b/engines/ultima/ultima8/ultima8.cpp
@@ -173,11 +173,6 @@ bool Ultima8Engine::initialize() {
 	// Set up the events manager
 	_events = new Shared::EventsManager(this);
 
-	// Add console commands
-	con->AddConsoleCommand("QuitGump::verifyQuit", QuitGump::ConCmd_verifyQuit);
-	con->AddConsoleCommand("ShapeViewerGump::U8ShapeViewer", ShapeViewerGump::ConCmd_U8ShapeViewer);
-	con->AddConsoleCommand("MenuGump::showMenu", MenuGump::ConCmd_showMenu);
-
 	return true;
 }
 
@@ -303,43 +298,6 @@ void Ultima8Engine::startupGame() {
 
 	GraphicSysInit();
 
-	// Generic Commands
-#ifdef DEBUG
-	con->AddConsoleCommand("Pathfinder::visualDebug",
-		Pathfinder::ConCmd_visualDebug);
-#endif
-
-	// U8 Game commands
-	con->AddConsoleCommand("MainActor::teleport", MainActor::ConCmd_teleport);
-	con->AddConsoleCommand("MainActor::mark", MainActor::ConCmd_mark);
-	con->AddConsoleCommand("MainActor::recall", MainActor::ConCmd_recall);
-	con->AddConsoleCommand("MainActor::listmarks", MainActor::ConCmd_listmarks);
-	con->AddConsoleCommand("Cheat::maxstats", MainActor::ConCmd_maxstats);
-	con->AddConsoleCommand("Cheat::heal", MainActor::ConCmd_heal);
-	con->AddConsoleCommand("Cheat::toggleInvincibility", MainActor::ConCmd_toggleInvincibility);
-//SVM	con->AddConsoleCommand("Cheat::toggle", Ultima8Engine::ConCmd_toggleCheatMode);
-	con->AddConsoleCommand("MainActor::name", MainActor::ConCmd_name);
-	con->AddConsoleCommand("MovieGump::play", MovieGump::ConCmd_play);
-	con->AddConsoleCommand("MusicProcess::playMusic", MusicProcess::ConCmd_playMusic);
-	con->AddConsoleCommand("InverterProcess::invertScreen",
-		InverterProcess::ConCmd_invertScreen);
-	con->AddConsoleCommand("FastAreaVisGump::toggle",
-		FastAreaVisGump::ConCmd_toggle);
-	con->AddConsoleCommand("MiniMapGump::toggle",
-		MiniMapGump::ConCmd_toggle);
-	con->AddConsoleCommand("MainActor::useBackpack",
-		MainActor::ConCmd_useBackpack);
-	con->AddConsoleCommand("MainActor::useInventory",
-		MainActor::ConCmd_useInventory);
-	con->AddConsoleCommand("MainActor::useRecall",
-		MainActor::ConCmd_useRecall);
-	con->AddConsoleCommand("MainActor::useBedroll",
-		MainActor::ConCmd_useBedroll);
-	con->AddConsoleCommand("MainActor::useKeyring",
-		MainActor::ConCmd_useKeyring);
-	con->AddConsoleCommand("MainActor::toggleCombat",
-		MainActor::ConCmd_toggleCombat);
-
 	_gameData = new GameData(_gameInfo);
 
 	Std::string bindingsfile;
diff --git a/engines/ultima/ultima8/world/actors/main_actor.cpp b/engines/ultima/ultima8/world/actors/main_actor.cpp
index ff1b985..6b574cc 100644
--- a/engines/ultima/ultima8/world/actors/main_actor.cpp
+++ b/engines/ultima/ultima8/world/actors/main_actor.cpp
@@ -326,137 +326,6 @@ ProcId MainActor::die(uint16 damageType) {
 	return animprocid;
 }
 
-
-void MainActor::ConCmd_teleport(const Console::ArgvType &argv) {
-	if (!Ultima8Engine::get_instance()->areCheatsEnabled()) {
-		pout << "Cheats are disabled" << Std::endl;
-		return;
-	}
-	MainActor *mainactor = getMainActor();
-	int curmap = mainactor->getMapNum();
-
-	switch (argv.size() - 1) {
-	case 1:
-		mainactor->teleport(curmap,
-		                    strtol(argv[1].c_str(), 0, 0));
-		break;
-	case 2:
-		mainactor->teleport(strtol(argv[1].c_str(), 0, 0),
-		                    strtol(argv[2].c_str(), 0, 0));
-		break;
-	case 3:
-		mainactor->teleport(curmap,
-		                    strtol(argv[1].c_str(), 0, 0),
-		                    strtol(argv[2].c_str(), 0, 0),
-		                    strtol(argv[3].c_str(), 0, 0));
-		break;
-	case 4:
-		mainactor->teleport(strtol(argv[1].c_str(), 0, 0),
-		                    strtol(argv[2].c_str(), 0, 0),
-		                    strtol(argv[3].c_str(), 0, 0),
-		                    strtol(argv[4].c_str(), 0, 0));
-		break;
-	default:
-		pout << "teleport usage:" << Std::endl;
-		pout << "teleport <mapnum> <x> <y> <z>: teleport to (x,y,z) on map mapnum" << Std::endl;
-		pout << "teleport <x> <y> <z>: teleport to (x,y,z) on current map" << Std::endl;
-		pout << "teleport <mapnum> <eggnum>: teleport to target egg eggnum on map mapnum" << Std::endl;
-		pout << "teleport <eggnum>: teleport to target egg eggnum on current map" << Std::endl;
-		break;
-	}
-}
-
-void MainActor::ConCmd_mark(const Console::ArgvType &argv) {
-	if (argv.size() == 1) {
-		pout << "Usage: mark <mark>: set named mark to this location" << Std::endl;
-		return;
-	}
-
-	SettingManager *settings = SettingManager::get_instance();
-	MainActor *mainactor = getMainActor();
-	int curmap = mainactor->getMapNum();
-	int32 x, y, z;
-	mainactor->getLocation(x, y, z);
-
-	istring confkey = "marks/" + argv[1];
-	char buf[100]; // large enough for 4 ints
-	sprintf(buf, "%d %d %d %d", curmap, x, y, z);
-
-	settings->set(confkey, buf);
-	settings->write(); //!! FIXME: clean this up
-
-	pout << "Set mark \"" << argv[1].c_str() << "\" to " << buf << Std::endl;
-}
-
-void MainActor::ConCmd_recall(const Console::ArgvType &argv) {
-	if (!Ultima8Engine::get_instance()->areCheatsEnabled()) {
-		pout << "Cheats are disabled" << Std::endl;
-		return;
-	}
-	if (argv.size() == 1) {
-		pout << "Usage: recall <mark>: recall to named mark" << Std::endl;
-		return;
-	}
-
-	SettingManager *settings = SettingManager::get_instance();
-	MainActor *mainactor = getMainActor();
-	istring confkey = "marks/" + argv[1];
-	Std::string target;
-	if (!settings->get(confkey, target)) {
-		pout << "recall: no such mark" << Std::endl;
-		return;
-	}
-
-	int t[4];
-	int n = sscanf(target.c_str(), "%d%d%d%d", &t[0], &t[1], &t[2], &t[3]);
-	if (n != 4) {
-		pout << "recall: invalid mark" << Std::endl;
-		return;
-	}
-
-	mainactor->teleport(t[0], t[1], t[2], t[3]);
-}
-
-void MainActor::ConCmd_listmarks(const Console::ArgvType &argv) {
-	SettingManager *settings = SettingManager::get_instance();
-	Std::vector<istring> marks;
-	marks = settings->listDataKeys("marks");
-	for (Std::vector<istring>::iterator iter = marks.begin();
-	        iter != marks.end(); ++iter) {
-		pout << (*iter) << Std::endl;
-	}
-}
-
-void MainActor::ConCmd_maxstats(const Console::ArgvType &argv) {
-	if (!Ultima8Engine::get_instance()->areCheatsEnabled()) {
-		pout << "Cheats are disabled" << Std::endl;
-		return;
-	}
-	MainActor *mainactor = getMainActor();
-
-	// constants!!
-	mainactor->setStr(25);
-	mainactor->setDex(25);
-	mainactor->setInt(25);
-	mainactor->setHP(mainactor->getMaxHP());
-	mainactor->setMana(mainactor->getMaxMana());
-
-	AudioProcess *audioproc = AudioProcess::get_instance();
-	if (audioproc) audioproc->playSFX(0x36, 0x60, 1, 0); //constants!!
-}
-
-void MainActor::ConCmd_heal(const Console::ArgvType &argv) {
-	if (!Ultima8Engine::get_instance()->areCheatsEnabled()) {
-		pout << "Cheats are disabled" << Std::endl;
-		return;
-	}
-	MainActor *mainactor = getMainActor();
-
-	mainactor->setHP(mainactor->getMaxHP());
-	mainactor->setMana(mainactor->getMaxMana());
-}
-
-
 void MainActor::accumulateStr(int n) {
 	// already max?
 	if (_strength == 25) return; //!! constant
@@ -615,34 +484,6 @@ uint32 MainActor::I_isAvatarInCombat(const uint8 * /*args*/,
 		return 0;
 }
 
-void MainActor::ConCmd_name(const Console::ArgvType &argv) {
-	MainActor *av = getMainActor();
-	if (argv.size() > 1)
-		av->setName(argv[1]);
-
-	pout << "MainActor::name = \"" << av->getName() << "\"" << Std::endl;
-}
-
-void MainActor::ConCmd_useBackpack(const Console::ArgvType &argv) {
-	if (Ultima8Engine::get_instance()->isAvatarInStasis()) {
-		pout << "Can't: avatarInStasis" << Std::endl;
-		return;
-	}
-	MainActor *av = getMainActor();
-	Item *backpack = getItem(av->getEquip(7));
-	if (backpack)
-		backpack->callUsecodeEvent_use();
-}
-
-void MainActor::ConCmd_useInventory(const Console::ArgvType &argv) {
-	if (Ultima8Engine::get_instance()->isAvatarInStasis()) {
-		pout << "Can't: avatarInStasis" << Std::endl;
-		return;
-	}
-	MainActor *av = getMainActor();
-	av->callUsecodeEvent_use();
-}
-
 void MainActor::useInventoryItem(uint32 shapenum) {
 	if (Ultima8Engine::get_instance()->isAvatarInStasis()) {
 		pout << "Can't: avatarInStasis" << Std::endl;
@@ -660,50 +501,5 @@ void MainActor::useInventoryItem(uint32 shapenum) {
 
 }
 
-void MainActor::ConCmd_useRecall(const Console::ArgvType &argv) {
-	MainActor *av = getMainActor();
-	av->useInventoryItem(833);
-}
-
-void MainActor::ConCmd_useBedroll(const Console::ArgvType &argv) {
-	MainActor *av = getMainActor();
-	av->useInventoryItem(534);
-}
-
-void MainActor::ConCmd_useKeyring(const Console::ArgvType &argv) {
-	MainActor *av = getMainActor();
-	av->useInventoryItem(79);
-}
-
-void MainActor::ConCmd_toggleCombat(const Console::ArgvType &argv) {
-	if (Ultima8Engine::get_instance()->isAvatarInStasis()) {
-		pout << "Can't: avatarInStasis" << Std::endl;
-		return;
-	}
-	MainActor *av = getMainActor();
-	av->toggleInCombat();
-}
-
-void MainActor::ConCmd_toggleInvincibility(const Console::ArgvType &argv) {
-	if (!Ultima8Engine::get_instance()->areCheatsEnabled()) {
-		pout << "Cheats are disabled" << Std::endl;
-		return;
-	}
-	MainActor *av = getMainActor();
-
-	if (av->getActorFlags() & Actor::ACT_INVINCIBLE) {
-
-		av->clearActorFlag(Actor::ACT_INVINCIBLE);
-		pout << "Avatar is no longer invincible." << Std::endl;
-
-
-	} else {
-
-		av->setActorFlag(Actor::ACT_INVINCIBLE);
-		pout << "Avatar invincible." << Std::endl;
-
-	}
-}
-
 } // End of namespace Ultima8
 } // End of namespace Ultima
diff --git a/engines/ultima/ultima8/world/actors/main_actor.h b/engines/ultima/ultima8/world/actors/main_actor.h
index 26b5a94..b73e70a 100644
--- a/engines/ultima/ultima8/world/actors/main_actor.h
+++ b/engines/ultima/ultima8/world/actors/main_actor.h
@@ -28,9 +28,11 @@
 namespace Ultima {
 namespace Ultima8 {
 
+class Debugger;
 struct WeaponOverlayFrame;
 
 class MainActor : public Actor {
+	friend class Debugger;
 public:
 	MainActor();
 	~MainActor() override;
@@ -90,39 +92,6 @@ public:
 
 	bool loadData(IDataSource *ids, uint32 version);
 
-	//! "teleport" console command
-	static void ConCmd_teleport(const Console::ArgvType &argv);
-	//! "mark" console command
-	static void ConCmd_mark(const Console::ArgvType &argv);
-	//! "recall" console command
-	static void ConCmd_recall(const Console::ArgvType &argv);
-	//! "listmarks" console command
-	static void ConCmd_listmarks(const Console::ArgvType &argv);
-	//! "Name" console command
-	static void ConCmd_name(const Console::ArgvType &argv);
-
-	//! "maxstats" console command
-	static void ConCmd_maxstats(const Console::ArgvType &argv);
-	//! "heal" console command
-	static void ConCmd_heal(const Console::ArgvType &argv);
-	//! "toggleInvincibility" console command
-	static void ConCmd_toggleInvincibility(const Console::ArgvType &argv);
-
-
-	//! "useBackpack" console command
-	static void ConCmd_useBackpack(const Console::ArgvType &argv);
-	//! "useInventory" console command
-	static void ConCmd_useInventory(const Console::ArgvType &argv);
-	//! "useRecall" console command
-	static void ConCmd_useRecall(const Console::ArgvType &argv);
-	//! "useBedroll" console command
-	static void ConCmd_useBedroll(const Console::ArgvType &argv);
-	//! "useKeyring" console command
-	static void ConCmd_useKeyring(const Console::ArgvType &argv);
-
-	//! "toggleCombat" console command
-	static void ConCmd_toggleCombat(const Console::ArgvType &argv);
-
 	// p_dynamic_cast stuff
 	ENABLE_RUNTIME_CLASSTYPE()
 


Commit: 09c99ae780971c62c2c19149a6096ab3efc259b3
    https://github.com/scummvm/scummvm/commit/09c99ae780971c62c2c19149a6096ab3efc259b3
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-22T11:42:21-08:00

Commit Message:
ULTIMA8: Shifting more console methods to Debugger

Changed paths:
    engines/ultima/ultima8/audio/music_process.cpp
    engines/ultima/ultima8/audio/music_process.h
    engines/ultima/ultima8/graphics/inverter_process.cpp
    engines/ultima/ultima8/graphics/inverter_process.h
    engines/ultima/ultima8/gumps/fast_area_vis_gump.cpp
    engines/ultima/ultima8/gumps/fast_area_vis_gump.h
    engines/ultima/ultima8/gumps/minimap_gump.cpp
    engines/ultima/ultima8/gumps/minimap_gump.h
    engines/ultima/ultima8/gumps/movie_gump.cpp
    engines/ultima/ultima8/gumps/movie_gump.h
    engines/ultima/ultima8/misc/debugger.cpp
    engines/ultima/ultima8/misc/debugger.h
    engines/ultima/ultima8/world/actors/pathfinder.cpp
    engines/ultima/ultima8/world/actors/pathfinder.h


diff --git a/engines/ultima/ultima8/audio/music_process.cpp b/engines/ultima/ultima8/audio/music_process.cpp
index f761726..c3ab096 100644
--- a/engines/ultima/ultima8/audio/music_process.cpp
+++ b/engines/ultima/ultima8/audio/music_process.cpp
@@ -263,19 +263,5 @@ uint32 MusicProcess::I_playMusic(const uint8 *args,
 	return 0;
 }
 
-
-void MusicProcess::ConCmd_playMusic(const Console::ArgvType &argv) {
-	if (_theMusicProcess) {
-		if (argv.size() != 2) {
-			pout << "MusicProcess::playMusic (tracknum)" << Std::endl;
-		} else {
-			pout << "Playing track " << argv[1] << Std::endl;
-			_theMusicProcess->playMusic_internal(atoi(argv[1].c_str()));
-		}
-	} else {
-		pout << "No Music Process" << Std::endl;
-	}
-}
-
 } // End of namespace Ultima8
 } // End of namespace Ultima
diff --git a/engines/ultima/ultima8/audio/music_process.h b/engines/ultima/ultima8/audio/music_process.h
index 6ee2a03..afb8732 100644
--- a/engines/ultima/ultima8/audio/music_process.h
+++ b/engines/ultima/ultima8/audio/music_process.h
@@ -31,9 +31,12 @@
 namespace Ultima {
 namespace Ultima8 {
 
+class Debugger;
 class MidiPlayer;
 
 class MusicProcess : public Process {
+	friend class Debugger;
+
 	enum MusicStates {
 		MUSIC_NORMAL = 1,
 		MUSIC_TRANSITION = 2,
@@ -87,9 +90,6 @@ public:
 	void run() override;
 
 	bool loadData(IDataSource *ids, uint32 version);
-
-	// MusicProcess::playMusic console command
-	static void ConCmd_playMusic(const Console::ArgvType &argv);
 };
 
 } // End of namespace Ultima8
diff --git a/engines/ultima/ultima8/graphics/inverter_process.cpp b/engines/ultima/ultima8/graphics/inverter_process.cpp
index 6946638..ee088db 100644
--- a/engines/ultima/ultima8/graphics/inverter_process.cpp
+++ b/engines/ultima/ultima8/graphics/inverter_process.cpp
@@ -114,9 +114,5 @@ uint32 InverterProcess::I_invertScreen(const uint8 *args,
 	return invertScreen();
 }
 
-void InverterProcess::ConCmd_invertScreen(const Console::ArgvType &argv) {
-	invertScreen();
-}
-
 } // End of namespace Ultima8
 } // End of namespace Ultima
diff --git a/engines/ultima/ultima8/graphics/inverter_process.h b/engines/ultima/ultima8/graphics/inverter_process.h
index f723963..497d971 100644
--- a/engines/ultima/ultima8/graphics/inverter_process.h
+++ b/engines/ultima/ultima8/graphics/inverter_process.h
@@ -46,7 +46,6 @@ public:
 	void run() override;
 
 	static ProcId invertScreen();
-	static void ConCmd_invertScreen(const Console::ArgvType &argv);
 
 	INTRINSIC(I_invertScreen);
 
diff --git a/engines/ultima/ultima8/gumps/fast_area_vis_gump.cpp b/engines/ultima/ultima8/gumps/fast_area_vis_gump.cpp
index 6596ab4..74654fa 100644
--- a/engines/ultima/ultima8/gumps/fast_area_vis_gump.cpp
+++ b/engines/ultima/ultima8/gumps/fast_area_vis_gump.cpp
@@ -51,20 +51,6 @@ void FastAreaVisGump::PaintThis(RenderSurface *surf, int32 lerp_factor, bool sca
 			if (currentmap->isChunkFast(xp, yp)) surf->Fill32(0xFFFFFFFF, xp + 1, yp + 1, 1, 1);
 }
 
-void FastAreaVisGump::ConCmd_toggle(const Console::ArgvType &argv) {
-	Ultima8Engine *app = Ultima8Engine::get_instance();
-	Gump *desktop = app->getDesktopGump();
-	Gump *favg = desktop->FindGump(FastAreaVisGump::ClassType);
-
-	if (!favg) {
-		favg = new FastAreaVisGump;
-		favg->InitGump(0);
-		favg->setRelativePosition(TOP_RIGHT, -4, 4);
-	} else {
-		favg->Close();
-	}
-}
-
 uint16 FastAreaVisGump::TraceObjId(int32 mx, int32 my) {
 	uint16 objId_ = Gump::TraceObjId(mx, my);
 
diff --git a/engines/ultima/ultima8/gumps/fast_area_vis_gump.h b/engines/ultima/ultima8/gumps/fast_area_vis_gump.h
index 5c7c651..06e6794 100644
--- a/engines/ultima/ultima8/gumps/fast_area_vis_gump.h
+++ b/engines/ultima/ultima8/gumps/fast_area_vis_gump.h
@@ -38,9 +38,6 @@ public:
 
 	void        PaintThis(RenderSurface *surf, int32 lerp_factor, bool scaled) override;
 	uint16      TraceObjId(int32 mx, int32 my) override;
-
-	static void         ConCmd_toggle(const Console::ArgvType &argv);   //!< "FastAreaVisGump::toggle" console command
-
 };
 
 } // End of namespace Ultima8
diff --git a/engines/ultima/ultima8/gumps/minimap_gump.cpp b/engines/ultima/ultima8/gumps/minimap_gump.cpp
index 72684fc..e763209 100644
--- a/engines/ultima/ultima8/gumps/minimap_gump.cpp
+++ b/engines/ultima/ultima8/gumps/minimap_gump.cpp
@@ -44,17 +44,12 @@ MiniMapGump::MiniMapGump(int x_, int y_) :
 	_minimap._format = TEX_FMT_NATIVE;
 	_minimap._width = _minimap._height = MAP_NUM_CHUNKS * MINMAPGUMP_SCALE;
 	_minimap._buffer = texbuffer[0];
-
-	con->AddConsoleCommand("MiniMapGump::generateWholeMap",
-	                      MiniMapGump::ConCmd_generateWholeMap);
 }
 
 MiniMapGump::MiniMapGump() : Gump() {
-	con->RemoveConsoleCommand(MiniMapGump::ConCmd_generateWholeMap);
 }
 
 MiniMapGump::~MiniMapGump(void) {
-	con->RemoveConsoleCommand(MiniMapGump::ConCmd_generateWholeMap);
 }
 
 void MiniMapGump::PaintThis(RenderSurface *surf, int32 lerp_factor, bool scaled) {
@@ -168,37 +163,6 @@ uint32 MiniMapGump::sampleAtPoint(int x_, int y_, CurrentMap *currentmap) {
 	} else return 0;
 }
 
-void MiniMapGump::ConCmd_toggle(const Console::ArgvType &argv) {
-	Ultima8Engine *app = Ultima8Engine::get_instance();
-	Gump *desktop = app->getDesktopGump();
-	Gump *mmg = desktop->FindGump(MiniMapGump::ClassType);
-
-	if (!mmg) {
-		mmg = new MiniMapGump(4, 4);
-		mmg->InitGump(0);
-		mmg->setRelativePosition(TOP_LEFT, 4, 4);
-
-	} else {
-		mmg->Close();
-	}
-}
-
-void MiniMapGump::ConCmd_generateWholeMap(const Console::ArgvType &argv) {
-	World *world = World::get_instance();
-	CurrentMap *currentmap = world->getCurrentMap();
-	currentmap->setWholeMapFast();
-}
-
-uint16 MiniMapGump::TraceObjId(int32 mx, int32 my) {
-	uint16 objId_ = Gump::TraceObjId(mx, my);
-
-	if (!objId_ || objId_ == 65535)
-		if (PointOnGump(mx, my))
-			objId_ = getObjId();
-
-	return objId_;
-}
-
 void MiniMapGump::saveData(ODataSource *ods) {
 	Gump::saveData(ods);
 }
@@ -211,10 +175,18 @@ bool MiniMapGump::loadData(IDataSource *ids, uint32 version) {
 	_minimap._width = _minimap._height = MAP_NUM_CHUNKS * MINMAPGUMP_SCALE;
 	_minimap._buffer = texbuffer[0];
 
-	con->AddConsoleCommand("MiniMapGump::generateWholeMap",
-	                      MiniMapGump::ConCmd_generateWholeMap);
 	return true;
 }
 
+uint16 MiniMapGump::TraceObjId(int32 mx, int32 my) {
+	uint16 objId_ = Gump::TraceObjId(mx, my);
+
+	if (!objId_ || objId_ == 65535)
+		if (PointOnGump(mx, my))
+			objId_ = getObjId();
+
+	return objId_;
+}
+
 } // End of namespace Ultima8
 } // End of namespace Ultima
diff --git a/engines/ultima/ultima8/gumps/minimap_gump.h b/engines/ultima/ultima8/gumps/minimap_gump.h
index db4f457..b198caf 100644
--- a/engines/ultima/ultima8/gumps/minimap_gump.h
+++ b/engines/ultima/ultima8/gumps/minimap_gump.h
@@ -50,9 +50,6 @@ public:
 	void        PaintThis(RenderSurface *surf, int32 lerp_factor, bool scaled) override;
 	uint16      TraceObjId(int32 mx, int32 my) override;
 
-	static void         ConCmd_toggle(const Console::ArgvType &argv);   //!< "MiniMapGump::toggle" console command
-	static void         ConCmd_generateWholeMap(const Console::ArgvType &argv); //!< "MiniMapGump::generateWholeMap" console command
-
 	bool loadData(IDataSource *ids, uint32 version);
 protected:
 	void saveData(ODataSource *ods) override;
diff --git a/engines/ultima/ultima8/gumps/movie_gump.cpp b/engines/ultima/ultima8/gumps/movie_gump.cpp
index 4409cc2..2fc3700 100644
--- a/engines/ultima/ultima8/gumps/movie_gump.cpp
+++ b/engines/ultima/ultima8/gumps/movie_gump.cpp
@@ -102,26 +102,6 @@ ProcId MovieGump::U8MovieViewer(RawArchive *movie, bool introMusicHack) {
 	return gump->GetNotifyProcess()->getPid();
 }
 
-//static
-void MovieGump::ConCmd_play(const Console::ArgvType &argv) {
-	if (argv.size() != 2) {
-		pout << "play usage: play <moviename>" << Std::endl;
-		return;
-	}
-
-	Std::string filename = "@game/static/" + argv[1] + ".skf";
-	FileSystem *filesys = FileSystem::get_instance();
-	IDataSource *skf = filesys->ReadFile(filename);
-	if (!skf) {
-		pout << "movie not found." << Std::endl;
-		return;
-	}
-
-	RawArchive *flex = new RawArchive(skf);
-	U8MovieViewer(flex);
-}
-
-
 bool MovieGump::loadData(IDataSource *ids) {
 	return false;
 }
diff --git a/engines/ultima/ultima8/gumps/movie_gump.h b/engines/ultima/ultima8/gumps/movie_gump.h
index 3802eda..fa43305 100644
--- a/engines/ultima/ultima8/gumps/movie_gump.h
+++ b/engines/ultima/ultima8/gumps/movie_gump.h
@@ -54,9 +54,6 @@ public:
 
 	static ProcId U8MovieViewer(RawArchive *skf, bool introMusicHack = false);
 
-	//! "play" console command
-	static void ConCmd_play(const Console::ArgvType &argv);
-
 	bool loadData(IDataSource *ids);
 protected:
 	void saveData(ODataSource *ods) override;
diff --git a/engines/ultima/ultima8/misc/debugger.cpp b/engines/ultima/ultima8/misc/debugger.cpp
index 86aca34..fb94ef4 100644
--- a/engines/ultima/ultima8/misc/debugger.cpp
+++ b/engines/ultima/ultima8/misc/debugger.cpp
@@ -23,8 +23,15 @@
 #include "ultima/ultima8/misc/debugger.h"
 #include "ultima/ultima8/ultima8.h"
 #include "ultima/ultima8/audio/audio_process.h"
+#include "ultima/ultima8/audio/music_process.h"
 #include "ultima/ultima8/conf/setting_manager.h"
+#include "ultima/ultima8/filesys/file_system.h"
+#include "ultima/ultima8/filesys/raw_archive.h"
+#include "ultima/ultima8/graphics/inverter_process.h"
+#include "ultima/ultima8/gumps/fast_area_vis_gump.h"
 #include "ultima/ultima8/gumps/game_map_gump.h"
+#include "ultima/ultima8/gumps/minimap_gump.h"
+#include "ultima/ultima8/gumps/movie_gump.h"
 #include "ultima/ultima8/gumps/quit_gump.h"
 #include "ultima/ultima8/gumps/shape_viewer_gump.h"
 #include "ultima/ultima8/gumps/menu_gump.h"
@@ -64,6 +71,11 @@ Debugger::Debugger() : Shared::Debugger() {
 	registerCmd("AudioProcess::playSFX", WRAP_METHOD(Debugger, cmdPlaySFX));
 	registerCmd("AudioProcess::stopSFX", WRAP_METHOD(Debugger, cmdStopSFX));
 
+	registerCmd("Cheat::maxstats", WRAP_METHOD(Debugger, cmdMaxStats));
+	registerCmd("Cheat::heal", WRAP_METHOD(Debugger, cmdHeal));
+	registerCmd("Cheat::toggleInvincibility", WRAP_METHOD(Debugger, cmdToggleInvincibility));
+	registerCmd("Cheat::toggle", WRAP_METHOD(Debugger, cmdToggleCheatMode));
+
 	registerCmd("GameMapGump::toggleHighlightItems", WRAP_METHOD(Debugger, cmdToggleHighlightItems));
 	registerCmd("GameMapGump::dumpMap", WRAP_METHOD(Debugger, cmdDumpMap));
 	registerCmd("GameMapGump::incrementSortOrder", WRAP_METHOD(Debugger, cmdIncrementSortOrder));
@@ -80,9 +92,21 @@ Debugger::Debugger() : Shared::Debugger() {
 	registerCmd("Kernel::toggleFrameByFrame", WRAP_METHOD(Debugger, cmdToggleFrameByFrame));
 	registerCmd("Kernel::advanceFrame", WRAP_METHOD(Debugger, cmdAdvanceFrame));
 
+	registerCmd("MainActor::teleport", WRAP_METHOD(Debugger, cmdTeleport));
+	registerCmd("MainActor::mark", WRAP_METHOD(Debugger, cmdMark));
+	registerCmd("MainActor::recall", WRAP_METHOD(Debugger, cmdRecall));
+	registerCmd("MainActor::listmarks", WRAP_METHOD(Debugger, cmdListMarks));
+	registerCmd("MainActor::name", WRAP_METHOD(Debugger, cmdName));
+	registerCmd("MainActor::useBackpack", WRAP_METHOD(Debugger, cmdUseBackpack));
+	registerCmd("MainActor::useInventory", WRAP_METHOD(Debugger, cmdUseInventory));
+	registerCmd("MainActor::useRecall", WRAP_METHOD(Debugger, cmdUseRecall));
+	registerCmd("MainActor::useBedroll", WRAP_METHOD(Debugger, cmdUseBedroll));
+	registerCmd("MainActor::useKeyring", WRAP_METHOD(Debugger, cmdUseKeyring));
+	registerCmd("MainActor::toggleCombat", WRAP_METHOD(Debugger, cmdToggleCombat));
+
 	registerCmd("MemoryManager::MemInfo", WRAP_METHOD(Debugger, cmdMemInfo));
 #ifdef DEBUG
-	registerCmd("MemoryManager::test", WRAP_METHOD(Debugger, cmdTest));
+	registerCmd("MemoryManager::test", WRAP_METHOD(Debugger, cmdTestMemory));
 #endif
 
 	registerCmd("ObjectManager::objectTypes", WRAP_METHOD(Debugger, cmdObjectTypes));
@@ -103,39 +127,19 @@ Debugger::Debugger() : Shared::Debugger() {
 	registerCmd("QuickAvatarMoverProcess::toggleQuarterSpeed", WRAP_METHOD(Debugger, cmdToggleQuarterSpeed));
 	registerCmd("QuickAvatarMoverProcess::toggleClipping", WRAP_METHOD(Debugger, cmdToggleClipping));
 
+	registerCmd("FastAreaVisGump::toggle", WRAP_METHOD(Debugger, cmdToggleFastArea));
+	registerCmd("InverterProcess::invertScreen", WRAP_METHOD(Debugger, cmdInvertScreen));
+	registerCmd("MenuGump::showMenu", WRAP_METHOD(Debugger, cmdShowMenu));
+	registerCmd("MiniMapGump::toggle", WRAP_METHOD(Debugger, cmdToggleMinimap));
+	registerCmd("MiniMapGump::generateWholeMap", WRAP_METHOD(Debugger, cmdGenerateWholeMap));
+	registerCmd("MovieGump::play", WRAP_METHOD(Debugger, cmdPlayMovie));
+	registerCmd("MusicProcess::playMusic", WRAP_METHOD(Debugger, cmdPlayMusic));
 	registerCmd("QuitGump::verifyQuit", WRAP_METHOD(Debugger, cmdVerifyQuit));
 	registerCmd("ShapeViewerGump::U8ShapeViewer", WRAP_METHOD(Debugger, cmdU8ShapeViewer));
-	registerCmd("MenuGump::showMenu", WRAP_METHOD(Debugger, cmdShowMenu));
 
 #ifdef DEBUG
-	registerCmd("Pathfinder::visualDebug",
-		Pathfinder::ConCmd_visualDebug);
+	registerCmd("Pathfinder::visualDebug", Pathfinder::cmdVisualDebugPathfinder);
 #endif
-
-	registerCmd("MainActor::teleport", WRAP_METHOD(Debugger, cmdTeleport));
-	registerCmd("MainActor::mark", WRAP_METHOD(Debugger, cmdMark));
-	registerCmd("MainActor::recall", WRAP_METHOD(Debugger, cmdRecall));
-	registerCmd("MainActor::listmarks", WRAP_METHOD(Debugger, cmdListMarks));
-	registerCmd("MainActor::name", WRAP_METHOD(Debugger, cmdName));
-	registerCmd("MainActor::useBackpack", WRAP_METHOD(Debugger, cmdUseBackpack));
-	registerCmd("MainActor::useInventory", WRAP_METHOD(Debugger, cmdUseInventory));
-	registerCmd("MainActor::useRecall", WRAP_METHOD(Debugger, cmdUseRecall));
-	registerCmd("MainActor::useBedroll", WRAP_METHOD(Debugger, cmdUseBedroll));
-	registerCmd("MainActor::useKeyring", WRAP_METHOD(Debugger, cmdUseKeyring));
-	registerCmd("MainActor::toggleCombat", WRAP_METHOD(Debugger, cmdToggleCombat));
-
-	/*
-	registerCmd("Cheat::maxstats", WRAP_METHOD(Debugger, cmdMaxStats));
-	registerCmd("Cheat::heal", WRAP_METHOD(Debugger, cmdHeal));
-	registerCmd("Cheat::toggleInvincibility", WRAP_METHOD(Debugger, cmdToggleInvincibility));
-	registerCmd("Cheat::toggle", Ultima8Engine::ConCmd_toggleCheatMode);
-
-	registerCmd("MovieGump::play", MovieGump::ConCmd_play);
-	registerCmd("MusicProcess::playMusic", MusicProcess::ConCmd_playMusic);
-	registerCmd("InverterProcess::invertScreen", InverterProcess::ConCmd_invertScreen);
-	registerCmd("FastAreaVisGump::toggle", FastAreaVisGump::ConCmd_toggle);
-	registerCmd("MiniMapGump::toggle", MiniMapGump::ConCmd_toggle);
-	*/
 }
 
 bool Debugger::cmdSaveGame(int argc, const char **argv) {
@@ -1087,5 +1091,102 @@ bool Debugger::cmdShowMenu(int argc, const char **argv) {
 	return false;
 }
 
+bool Debugger::cmdToggleFastArea(int argc, const char **argv) {
+	Ultima8Engine *app = Ultima8Engine::get_instance();
+	Gump *desktop = app->getDesktopGump();
+	Gump *favg = desktop->FindGump(FastAreaVisGump::ClassType);
+
+	if (!favg) {
+		favg = new FastAreaVisGump;
+		favg->InitGump(0);
+		favg->setRelativePosition(Gump::TOP_RIGHT, -4, 4);
+	} else {
+		favg->Close();
+	}
+
+	return false;
+}
+
+bool Debugger::cmdInvertScreen(int argc, const char **argv) {
+	InverterProcess::invertScreen();
+	return false;
+}
+
+bool Debugger::cmdPlayMovie(int argc, const char **argv) {
+	if (argc != 2) {
+		debugPrintf("play usage: play <moviename>\n");
+		return true;
+	}
+
+	Std::string filename = Common::String::format("@game/static/%s.skf", argv[1]);
+	FileSystem *filesys = FileSystem::get_instance();
+	IDataSource *skf = filesys->ReadFile(filename);
+	if (!skf) {
+		debugPrintf("movie not found.\n");
+		return true;
+	}
+
+	RawArchive *flex = new RawArchive(skf);
+	MovieGump::U8MovieViewer(flex);
+	return false;
+}
+
+bool Debugger::cmdPlayMusic(int argc, const char **argv) {
+	if (MusicProcess::_theMusicProcess) {
+		if (argc != 2) {
+			debugPrintf("MusicProcess::playMusic (tracknum)\n");
+		} else {
+			debugPrintf("Playing track %s\n", argv[1]);
+			MusicProcess::_theMusicProcess->playMusic_internal(atoi(argv[1]));
+			return false;
+		}
+	} else {
+		debugPrintf("No Music Process\n");
+	}
+
+	return true;
+}
+
+bool Debugger::cmdToggleMinimap(int argc, const char **argv) {
+	Ultima8Engine *app = Ultima8Engine::get_instance();
+	Gump *desktop = app->getDesktopGump();
+	Gump *mmg = desktop->FindGump(MiniMapGump::ClassType);
+
+	if (!mmg) {
+		mmg = new MiniMapGump(4, 4);
+		mmg->InitGump(0);
+		mmg->setRelativePosition(Gump::TOP_LEFT, 4, 4);
+	} else {
+		mmg->Close();
+	}
+
+	return true;
+}
+
+bool Debugger::cmdGenerateWholeMap(int argc, const char **argv) {
+	World *world = World::get_instance();
+	CurrentMap *currentmap = world->getCurrentMap();
+	currentmap->setWholeMapFast();
+	return false;
+}
+
+#ifdef DEBUG
+bool Debugger::cmdVisualDebugPathfinder(int argc, const char **argv) {
+	if (argc != 2) {
+		pout << "Usage: Pathfinder::visualDebug objid\n");
+		pout << "Specify objid -1 to stop tracing.\n");
+		return;
+	}
+	int p = strtol(argv[1].c_str(), 0, 0);
+	if (p == -1) {
+		visualdebug_actor = 0xFFFF;
+		pout << "Pathfinder: stopped visual tracing\n");
+	} else {
+		visualdebug_actor = (uint16)p;
+		pout << "Pathfinder: visually tracing _actor " << visualdebug_actor << Std::endl;
+	}
+}
+#endif
+
 } // End of namespace Ultima8
 } // End of namespace Ultima
diff --git a/engines/ultima/ultima8/misc/debugger.h b/engines/ultima/ultima8/misc/debugger.h
index 6dd03c2..d45aabc 100644
--- a/engines/ultima/ultima8/misc/debugger.h
+++ b/engines/ultima/ultima8/misc/debugger.h
@@ -99,7 +99,7 @@ private:
 	// Memory Manager
 	bool cmdMemInfo(int argc, const char **argv);
 #ifdef DEBUG
-	bool cmdTest(int argc, const char **argv);
+	bool cmdTestMemory(int argc, const char **argv);
 #endif
 
 	// Object Manager
@@ -123,9 +123,18 @@ private:
 	bool cmdToggleClipping(int argc, const char **argv);
 
 	// Miscellaneous
+	bool cmdToggleFastArea(int argc, const char **argv);
 	bool cmdVerifyQuit(int argc, const char **argv);
 	bool cmdU8ShapeViewer(int argc, const char **argv);
 	bool cmdShowMenu(int argc, const char **argv);
+	bool cmdGenerateWholeMap(int argc, const char **argv);
+	bool cmdToggleMinimap(int argc, const char **argv);
+	bool cmdInvertScreen(int argc, const char **argv);
+	bool cmdPlayMovie(int argc, const char **argv);
+	bool cmdPlayMusic(int argc, const char **argv);
+#ifdef DEBUG
+	bool cmdVisualDebugPathfinder(int argc, const char **argv);
+#endif
 
 public:
 	Debugger();
diff --git a/engines/ultima/ultima8/world/actors/pathfinder.cpp b/engines/ultima/ultima8/world/actors/pathfinder.cpp
index ff7217e..d35ee42 100644
--- a/engines/ultima/ultima8/world/actors/pathfinder.cpp
+++ b/engines/ultima/ultima8/world/actors/pathfinder.cpp
@@ -624,24 +624,5 @@ bool Pathfinder::pathfind(Std::vector<PathfindingAction> &path) {
 	return false;
 }
 
-
-#ifdef DEBUG
-void Pathfinder::ConCmd_visualDebug(const Console::ArgvType &argv) {
-	if (argv.size() != 2) {
-		pout << "Usage: Pathfinder::visualDebug objid" << Std::endl;
-		pout << "Specify objid -1 to stop tracing." << Std::endl;
-		return;
-	}
-	int p = strtol(argv[1].c_str(), 0, 0);
-	if (p == -1) {
-		visualdebug_actor = 0xFFFF;
-		pout << "Pathfinder: stopped visual tracing" << Std::endl;
-	} else {
-		visualdebug_actor = (uint16)p;
-		pout << "Pathfinder: visually tracing _actor " << visualdebug_actor << Std::endl;
-	}
-}
-#endif
-
 } // End of namespace Ultima8
 } // End of namespace Ultima
diff --git a/engines/ultima/ultima8/world/actors/pathfinder.h b/engines/ultima/ultima8/world/actors/pathfinder.h
index b3a3da2..1be98b6 100644
--- a/engines/ultima/ultima8/world/actors/pathfinder.h
+++ b/engines/ultima/ultima8/world/actors/pathfinder.h
@@ -76,8 +76,6 @@ public:
 	bool pathfind(Std::vector<PathfindingAction> &path);
 
 #ifdef DEBUG
-	//! "visualDebug" console command
-	static void ConCmd_visualDebug(const Console::ArgvType &argv);
 	static ObjId visualdebug_actor;
 #endif
 


Commit: 142a65d1ae4bbc5d17107dca642161a033ec798d
    https://github.com/scummvm/scummvm/commit/142a65d1ae4bbc5d17107dca642161a033ec798d
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-22T11:42:21-08:00

Commit Message:
ULTIMA8: Shifting game/cheat console methods to Debugger

Changed paths:
    engines/ultima/ultima8/audio/audio_process.h
    engines/ultima/ultima8/games/u8_game.cpp
    engines/ultima/ultima8/games/u8_game.h
    engines/ultima/ultima8/gumps/minimap_gump.cpp
    engines/ultima/ultima8/misc/debugger.cpp
    engines/ultima/ultima8/misc/debugger.h


diff --git a/engines/ultima/ultima8/audio/audio_process.h b/engines/ultima/ultima8/audio/audio_process.h
index fba6896..b326ee1 100644
--- a/engines/ultima/ultima8/audio/audio_process.h
+++ b/engines/ultima/ultima8/audio/audio_process.h
@@ -116,9 +116,6 @@ public:
 	//! stop all samples except speech
 	void stopAllExceptSpeech();
 
-	// AudioProcess::playSound console command
-	//static void ConCmd_playSound(const Console::ArgvType &argv);
-
 	bool loadData(IDataSource *ids, uint32 version);
 
 private:
diff --git a/engines/ultima/ultima8/games/u8_game.cpp b/engines/ultima/ultima8/games/u8_game.cpp
index e15d1ad..641a316 100644
--- a/engines/ultima/ultima8/games/u8_game.cpp
+++ b/engines/ultima/ultima8/games/u8_game.cpp
@@ -58,14 +58,9 @@ U8Game::U8Game() : Game() {
 	} else {
 		settingman->setDefault("textdelay", 8);
 	}
-
-	con->AddConsoleCommand("Cheat::items", U8Game::ConCmd_cheatItems);
-	con->AddConsoleCommand("Cheat::equip", U8Game::ConCmd_cheatEquip);
 }
 
 U8Game::~U8Game() {
-	con->RemoveConsoleCommand(U8Game::ConCmd_cheatItems);
-	con->RemoveConsoleCommand(U8Game::ConCmd_cheatEquip);
 }
 
 bool U8Game::loadFiles() {
@@ -146,201 +141,6 @@ bool U8Game::startGame() {
 	return true;
 }
 
-void U8Game::ConCmd_cheatItems(const Console::ArgvType &argv) {
-	if (!Ultima8Engine::get_instance()->areCheatsEnabled()) {
-		pout << "Cheats are disabled" << Std::endl;
-		return;
-	}
-	MainActor *av = getMainActor();
-	if (!av) return;
-	Container *backpack = getContainer(av->getEquip(7)); // CONSTANT!
-	if (!backpack) return;
-
-	// obsidian
-	Item *money = ItemFactory::createItem(143, 7, 500, 0, 0, 0, 0, true);
-	money->moveToContainer(backpack);
-	money->setGumpLocation(40, 20);
-
-	// skull of quakes
-	Item *skull = ItemFactory::createItem(814, 0, 0, 0, 0, 0, 0, true);
-	skull->moveToContainer(backpack);
-	skull->setGumpLocation(60, 20);
-
-	// recall item
-	Item *recall = ItemFactory::createItem(833, 0, 0, 0, 0, 0, 0, true);
-	recall->moveToContainer(backpack);
-	recall->setGumpLocation(20, 20);
-
-	// sword
-	Item *sword = ItemFactory::createItem(420, 0, 0, 0, 0, 0, 0, true);
-	sword->moveToContainer(backpack);
-	sword->setGumpLocation(20, 30);
-
-	Item *flamesting = ItemFactory::createItem(817, 0, 0, 0, 0, 0, 0, true);
-	flamesting->moveToContainer(backpack);
-	flamesting->setGumpLocation(20, 30);
-
-	Item *hammer = ItemFactory::createItem(815, 0, 0, 0, 0, 0, 0, true);
-	hammer->moveToContainer(backpack);
-	hammer->setGumpLocation(20, 30);
-
-	Item *slayer = ItemFactory::createItem(816, 0, 0, 0, 0, 0, 0, true);
-	slayer->moveToContainer(backpack);
-	slayer->setGumpLocation(20, 30);
-
-	// necromancy reagents
-	Item *bagitem = ItemFactory::createItem(637, 0, 0, 0, 0, 0, 0, true);
-	bagitem->moveToContainer(backpack);
-	bagitem->setGumpLocation(70, 40);
-
-	bagitem = ItemFactory::createItem(637, 0, 0, 0, 0, 0, 0, true);
-	Container *bag = p_dynamic_cast<Container *>(bagitem);
-
-	Item *reagents = ItemFactory::createItem(395, 0, 50, 0, 0, 0, 0, true);
-	reagents->moveToContainer(bag);
-	reagents->setGumpLocation(10, 10);
-	reagents = ItemFactory::createItem(395, 6, 50, 0, 0, 0, 0, true);
-	reagents->moveToContainer(bag);
-	reagents->setGumpLocation(30, 10);
-	reagents = ItemFactory::createItem(395, 8, 50, 0, 0, 0, 0, true);
-	reagents->moveToContainer(bag);
-	reagents->setGumpLocation(50, 10);
-	reagents = ItemFactory::createItem(395, 9, 50, 0, 0, 0, 0, true);
-	reagents->moveToContainer(bag);
-	reagents->setGumpLocation(20, 30);
-	reagents = ItemFactory::createItem(395, 10, 50, 0, 0, 0, 0, true);
-	reagents->moveToContainer(bag);
-	reagents->setGumpLocation(40, 30);
-	reagents = ItemFactory::createItem(395, 14, 50, 0, 0, 0, 0, true);
-	reagents->moveToContainer(bag);
-	reagents->setGumpLocation(60, 30);
-
-	bagitem->moveToContainer(backpack);
-	bagitem->setGumpLocation(70, 20);
-
-	// theurgy foci
-	bagitem = ItemFactory::createItem(637, 0, 0, 0, 0, 0, 0, true);
-	bag = p_dynamic_cast<Container *>(bagitem);
-
-	Item *focus = ItemFactory::createItem(396, 8, 0, 0, 0, 0, 0, true);
-	focus->moveToContainer(bag);
-	focus->setGumpLocation(10, 10);
-	focus = ItemFactory::createItem(396, 9, 0, 0, 0, 0, 0, true);
-	focus->moveToContainer(bag);
-	focus->setGumpLocation(25, 10);
-	focus = ItemFactory::createItem(396, 10, 0, 0, 0, 0, 0, true);
-	focus->moveToContainer(bag);
-	focus->setGumpLocation(40, 10);
-	focus = ItemFactory::createItem(396, 11, 0, 0, 0, 0, 0, true);
-	focus->moveToContainer(bag);
-	focus->setGumpLocation(55, 10);
-	focus = ItemFactory::createItem(396, 12, 0, 0, 0, 0, 0, true);
-	focus->moveToContainer(bag);
-	focus->setGumpLocation(70, 10);
-	focus = ItemFactory::createItem(396, 13, 0, 0, 0, 0, 0, true);
-	focus->moveToContainer(bag);
-	focus->setGumpLocation(10, 30);
-	focus = ItemFactory::createItem(396, 14, 0, 0, 0, 0, 0, true);
-	focus->moveToContainer(bag);
-	focus->setGumpLocation(30, 30);
-	focus = ItemFactory::createItem(396, 15, 0, 0, 0, 0, 0, true);
-	focus->moveToContainer(bag);
-	focus->setGumpLocation(50, 30);
-	focus = ItemFactory::createItem(396, 17, 0, 0, 0, 0, 0, true);
-	focus->moveToContainer(bag);
-	focus->setGumpLocation(70, 30);
-
-	bagitem->moveToContainer(backpack);
-	bagitem->setGumpLocation(0, 30);
-
-
-	// oil flasks
-	Item *flask = ItemFactory::createItem(579, 0, 0, 0, 0, 0, 0, true);
-	flask->moveToContainer(backpack);
-	flask->setGumpLocation(30, 40);
-	flask = ItemFactory::createItem(579, 0, 0, 0, 0, 0, 0, true);
-	flask->moveToContainer(backpack);
-	flask->setGumpLocation(30, 40);
-	flask = ItemFactory::createItem(579, 0, 0, 0, 0, 0, 0, true);
-	flask->moveToContainer(backpack);
-	flask->setGumpLocation(30, 40);
-
-	// zealan shield
-	Item *shield = ItemFactory::createItem(828, 0, 0, 0, 0, 0, 0, true);
-	shield->moveToContainer(backpack);
-	shield->randomGumpLocation();
-
-	shield = ItemFactory::createItem(539, 0, 0, 0, 0, 0, 0, true);
-	shield->moveToContainer(backpack);
-	shield->randomGumpLocation();
-
-	// armour
-	Item *armour = ItemFactory::createItem(64, 0, 0, 0, 0, 0, 0, true);
-	armour->moveToContainer(backpack);
-	armour->randomGumpLocation();
-
-	// death disks
-	Item *disk = ItemFactory::createItem(750, 0, 0, 0, 0, 0, 0, true);
-	disk->moveToContainer(backpack);
-	disk->randomGumpLocation();
-
-	disk = ItemFactory::createItem(750, 0, 0, 0, 0, 0, 0, true);
-	disk->moveToContainer(backpack);
-	disk->randomGumpLocation();
-
-	disk = ItemFactory::createItem(750, 0, 0, 0, 0, 0, 0, true);
-	disk->moveToContainer(backpack);
-	disk->randomGumpLocation();
-}
-
-void U8Game::ConCmd_cheatEquip(const Console::ArgvType &argv) {
-	if (!Ultima8Engine::get_instance()->areCheatsEnabled()) {
-		pout << "Cheats are disabled" << Std::endl;
-		return;
-	}
-	MainActor *av = getMainActor();
-	if (!av) return;
-	Container *backpack = getContainer(av->getEquip(7)); // CONSTANT!
-	if (!backpack) return;
-
-	Item *item;
-
-	// move all current equipment to backpack
-	for (unsigned int i = 0; i < 7; ++i) {
-		item = getItem(av->getEquip(i));
-		if (item) {
-			item->moveToContainer(backpack, false); // no weight/volume check
-			item->randomGumpLocation();
-		}
-	}
-
-	// give new equipment:
-
-	// deceiver
-	item = ItemFactory::createItem(822, 0, 0, 0, 0, 0, 0, true);
-	av->setEquip(item, false);
-
-	// armour
-	item = ItemFactory::createItem(841, 0, 0, 0, 0, 0, 0, true);
-	av->setEquip(item, false);
-
-	// shield
-	item = ItemFactory::createItem(842, 0, 0, 0, 0, 0, 0, true);
-	av->setEquip(item, false);
-
-	// helmet
-	item = ItemFactory::createItem(843, 0, 0, 0, 0, 0, 0, true);
-	av->setEquip(item, false);
-
-	// arm guards
-	item = ItemFactory::createItem(844, 0, 0, 0, 0, 0, 0, true);
-	av->setEquip(item, false);
-
-	// leggings
-	item = ItemFactory::createItem(845, 0, 0, 0, 0, 0, 0, true);
-	av->setEquip(item, false);
-}
-
 bool U8Game::startInitialUsecode(int saveSlot) {
 	Process *proc = new StartU8Process(saveSlot);
 	Kernel::get_instance()->addProcess(proc);
diff --git a/engines/ultima/ultima8/games/u8_game.h b/engines/ultima/ultima8/games/u8_game.h
index b87b5c0..a6f87f8 100644
--- a/engines/ultima/ultima8/games/u8_game.h
+++ b/engines/ultima/ultima8/games/u8_game.h
@@ -48,9 +48,6 @@ public:
 	void playCredits() override;
 	void playQuotes() override;
 
-	static void ConCmd_cheatItems(const Console::ArgvType &argv);
-	static void ConCmd_cheatEquip(const Console::ArgvType &argv);
-
 protected:
 	Std::string getCreditText(IDataSource *ids);
 };
diff --git a/engines/ultima/ultima8/gumps/minimap_gump.cpp b/engines/ultima/ultima8/gumps/minimap_gump.cpp
index e763209..b8b64c1 100644
--- a/engines/ultima/ultima8/gumps/minimap_gump.cpp
+++ b/engines/ultima/ultima8/gumps/minimap_gump.cpp
@@ -179,13 +179,13 @@ bool MiniMapGump::loadData(IDataSource *ids, uint32 version) {
 }
 
 uint16 MiniMapGump::TraceObjId(int32 mx, int32 my) {
-	uint16 objId_ = Gump::TraceObjId(mx, my);
+	uint16 objId = Gump::TraceObjId(mx, my);
 
-	if (!objId_ || objId_ == 65535)
+	if (!objId || objId == 65535)
 		if (PointOnGump(mx, my))
-			objId_ = getObjId();
+			objId = getObjId();
 
-	return objId_;
+	return objId;
 }
 
 } // End of namespace Ultima8
diff --git a/engines/ultima/ultima8/misc/debugger.cpp b/engines/ultima/ultima8/misc/debugger.cpp
index fb94ef4..1a98793 100644
--- a/engines/ultima/ultima8/misc/debugger.cpp
+++ b/engines/ultima/ultima8/misc/debugger.cpp
@@ -44,6 +44,7 @@
 #include "ultima/ultima8/usecode/uc_machine.h"
 #include "ultima/ultima8/world/world.h"
 #include "ultima/ultima8/world/get_object.h"
+#include "ultima/ultima8/world/item_factory.h"
 #include "ultima/ultima8/world/actors/quick_avatar_mover_process.h"
 #include "ultima/ultima8/world/actors/main_actor.h"
 
@@ -71,10 +72,12 @@ Debugger::Debugger() : Shared::Debugger() {
 	registerCmd("AudioProcess::playSFX", WRAP_METHOD(Debugger, cmdPlaySFX));
 	registerCmd("AudioProcess::stopSFX", WRAP_METHOD(Debugger, cmdStopSFX));
 
+	registerCmd("Cheat::toggle", WRAP_METHOD(Debugger, cmdToggleCheatMode));
 	registerCmd("Cheat::maxstats", WRAP_METHOD(Debugger, cmdMaxStats));
 	registerCmd("Cheat::heal", WRAP_METHOD(Debugger, cmdHeal));
 	registerCmd("Cheat::toggleInvincibility", WRAP_METHOD(Debugger, cmdToggleInvincibility));
-	registerCmd("Cheat::toggle", WRAP_METHOD(Debugger, cmdToggleCheatMode));
+	registerCmd("Cheat::items", WRAP_METHOD(Debugger, cmdCheatItems));
+	registerCmd("Cheat::equip", WRAP_METHOD(Debugger, cmdCheatEquip));
 
 	registerCmd("GameMapGump::toggleHighlightItems", WRAP_METHOD(Debugger, cmdToggleHighlightItems));
 	registerCmd("GameMapGump::dumpMap", WRAP_METHOD(Debugger, cmdDumpMap));
@@ -263,13 +266,6 @@ bool Debugger::cmdCloseItemGumps(int argc, const char **argv) {
 	return true;
 }
 
-bool Debugger::cmdToggleCheatMode(int argc, const char **argv) {
-	Ultima8Engine *g = Ultima8Engine::get_instance();
-	g->setCheatMode(!g->areCheatsEnabled());
-	debugPrintf("Cheats = %s\n", strBool(g->areCheatsEnabled()));
-	return true;
-}
-
 bool Debugger::cmdMemberVar(int argc, const char **argv) {
 	if (argc == 1) {
 		debugPrintf("Usage: Ultima8Engine::memberVar <member> [newvalue] [updateini]\n");
@@ -395,6 +391,263 @@ bool Debugger::cmdPlaySFX(int argc, const char **argv) {
 }
 
 
+bool Debugger::cmdToggleCheatMode(int argc, const char **argv) {
+	Ultima8Engine *g = Ultima8Engine::get_instance();
+	g->setCheatMode(!g->areCheatsEnabled());
+	debugPrintf("Cheats = %s\n", strBool(g->areCheatsEnabled()));
+	return true;
+}
+
+bool Debugger::cmdMaxStats(int argc, const char **argv) {
+	if (!Ultima8Engine::get_instance()->areCheatsEnabled()) {
+		debugPrintf("Cheats are disabled\n");
+		return true;
+	}
+	MainActor *mainActor = getMainActor();
+
+	// constants!!
+	mainActor->setStr(25);
+	mainActor->setDex(25);
+	mainActor->setInt(25);
+	mainActor->setHP(mainActor->getMaxHP());
+	mainActor->setMana(mainActor->getMaxMana());
+
+	AudioProcess *audioproc = AudioProcess::get_instance();
+	if (audioproc)
+		audioproc->playSFX(0x36, 0x60, 1, 0); //constants!!
+	return false;
+}
+
+bool Debugger::cmdCheatItems(int argc, const char **argv) {
+	if (!Ultima8Engine::get_instance()->areCheatsEnabled()) {
+		debugPrintf("Cheats are disabled\n");
+		return true;
+	}
+	MainActor *av = getMainActor();
+	if (!av) return true;
+	Container *backpack = getContainer(av->getEquip(7)); // CONSTANT!
+	if (!backpack) return true;
+
+	// obsidian
+	Item *money = ItemFactory::createItem(143, 7, 500, 0, 0, 0, 0, true);
+	money->moveToContainer(backpack);
+	money->setGumpLocation(40, 20);
+
+	// skull of quakes
+	Item *skull = ItemFactory::createItem(814, 0, 0, 0, 0, 0, 0, true);
+	skull->moveToContainer(backpack);
+	skull->setGumpLocation(60, 20);
+
+	// recall item
+	Item *recall = ItemFactory::createItem(833, 0, 0, 0, 0, 0, 0, true);
+	recall->moveToContainer(backpack);
+	recall->setGumpLocation(20, 20);
+
+	// sword
+	Item *sword = ItemFactory::createItem(420, 0, 0, 0, 0, 0, 0, true);
+	sword->moveToContainer(backpack);
+	sword->setGumpLocation(20, 30);
+
+	Item *flamesting = ItemFactory::createItem(817, 0, 0, 0, 0, 0, 0, true);
+	flamesting->moveToContainer(backpack);
+	flamesting->setGumpLocation(20, 30);
+
+	Item *hammer = ItemFactory::createItem(815, 0, 0, 0, 0, 0, 0, true);
+	hammer->moveToContainer(backpack);
+	hammer->setGumpLocation(20, 30);
+
+	Item *slayer = ItemFactory::createItem(816, 0, 0, 0, 0, 0, 0, true);
+	slayer->moveToContainer(backpack);
+	slayer->setGumpLocation(20, 30);
+
+	// necromancy reagents
+	Item *bagitem = ItemFactory::createItem(637, 0, 0, 0, 0, 0, 0, true);
+	bagitem->moveToContainer(backpack);
+	bagitem->setGumpLocation(70, 40);
+
+	bagitem = ItemFactory::createItem(637, 0, 0, 0, 0, 0, 0, true);
+	Container *bag = p_dynamic_cast<Container *>(bagitem);
+
+	Item *reagents = ItemFactory::createItem(395, 0, 50, 0, 0, 0, 0, true);
+	reagents->moveToContainer(bag);
+	reagents->setGumpLocation(10, 10);
+	reagents = ItemFactory::createItem(395, 6, 50, 0, 0, 0, 0, true);
+	reagents->moveToContainer(bag);
+	reagents->setGumpLocation(30, 10);
+	reagents = ItemFactory::createItem(395, 8, 50, 0, 0, 0, 0, true);
+	reagents->moveToContainer(bag);
+	reagents->setGumpLocation(50, 10);
+	reagents = ItemFactory::createItem(395, 9, 50, 0, 0, 0, 0, true);
+	reagents->moveToContainer(bag);
+	reagents->setGumpLocation(20, 30);
+	reagents = ItemFactory::createItem(395, 10, 50, 0, 0, 0, 0, true);
+	reagents->moveToContainer(bag);
+	reagents->setGumpLocation(40, 30);
+	reagents = ItemFactory::createItem(395, 14, 50, 0, 0, 0, 0, true);
+	reagents->moveToContainer(bag);
+	reagents->setGumpLocation(60, 30);
+
+	bagitem->moveToContainer(backpack);
+	bagitem->setGumpLocation(70, 20);
+
+	// theurgy foci
+	bagitem = ItemFactory::createItem(637, 0, 0, 0, 0, 0, 0, true);
+	bag = p_dynamic_cast<Container *>(bagitem);
+
+	Item *focus = ItemFactory::createItem(396, 8, 0, 0, 0, 0, 0, true);
+	focus->moveToContainer(bag);
+	focus->setGumpLocation(10, 10);
+	focus = ItemFactory::createItem(396, 9, 0, 0, 0, 0, 0, true);
+	focus->moveToContainer(bag);
+	focus->setGumpLocation(25, 10);
+	focus = ItemFactory::createItem(396, 10, 0, 0, 0, 0, 0, true);
+	focus->moveToContainer(bag);
+	focus->setGumpLocation(40, 10);
+	focus = ItemFactory::createItem(396, 11, 0, 0, 0, 0, 0, true);
+	focus->moveToContainer(bag);
+	focus->setGumpLocation(55, 10);
+	focus = ItemFactory::createItem(396, 12, 0, 0, 0, 0, 0, true);
+	focus->moveToContainer(bag);
+	focus->setGumpLocation(70, 10);
+	focus = ItemFactory::createItem(396, 13, 0, 0, 0, 0, 0, true);
+	focus->moveToContainer(bag);
+	focus->setGumpLocation(10, 30);
+	focus = ItemFactory::createItem(396, 14, 0, 0, 0, 0, 0, true);
+	focus->moveToContainer(bag);
+	focus->setGumpLocation(30, 30);
+	focus = ItemFactory::createItem(396, 15, 0, 0, 0, 0, 0, true);
+	focus->moveToContainer(bag);
+	focus->setGumpLocation(50, 30);
+	focus = ItemFactory::createItem(396, 17, 0, 0, 0, 0, 0, true);
+	focus->moveToContainer(bag);
+	focus->setGumpLocation(70, 30);
+
+	bagitem->moveToContainer(backpack);
+	bagitem->setGumpLocation(0, 30);
+
+
+	// oil flasks
+	Item *flask = ItemFactory::createItem(579, 0, 0, 0, 0, 0, 0, true);
+	flask->moveToContainer(backpack);
+	flask->setGumpLocation(30, 40);
+	flask = ItemFactory::createItem(579, 0, 0, 0, 0, 0, 0, true);
+	flask->moveToContainer(backpack);
+	flask->setGumpLocation(30, 40);
+	flask = ItemFactory::createItem(579, 0, 0, 0, 0, 0, 0, true);
+	flask->moveToContainer(backpack);
+	flask->setGumpLocation(30, 40);
+
+	// zealan shield
+	Item *shield = ItemFactory::createItem(828, 0, 0, 0, 0, 0, 0, true);
+	shield->moveToContainer(backpack);
+	shield->randomGumpLocation();
+
+	shield = ItemFactory::createItem(539, 0, 0, 0, 0, 0, 0, true);
+	shield->moveToContainer(backpack);
+	shield->randomGumpLocation();
+
+	// armour
+	Item *armour = ItemFactory::createItem(64, 0, 0, 0, 0, 0, 0, true);
+	armour->moveToContainer(backpack);
+	armour->randomGumpLocation();
+
+	// death disks
+	Item *disk = ItemFactory::createItem(750, 0, 0, 0, 0, 0, 0, true);
+	disk->moveToContainer(backpack);
+	disk->randomGumpLocation();
+
+	disk = ItemFactory::createItem(750, 0, 0, 0, 0, 0, 0, true);
+	disk->moveToContainer(backpack);
+	disk->randomGumpLocation();
+
+	disk = ItemFactory::createItem(750, 0, 0, 0, 0, 0, 0, true);
+	disk->moveToContainer(backpack);
+	disk->randomGumpLocation();
+
+	return false;
+}
+
+bool Debugger::cmdCheatEquip(int argc, const char **argv) {
+	if (!Ultima8Engine::get_instance()->areCheatsEnabled()) {
+		debugPrintf("Cheats are disabled\n");
+		return true;
+	}
+	MainActor *av = getMainActor();
+	if (!av) return true;
+	Container *backpack = getContainer(av->getEquip(7)); // CONSTANT!
+	if (!backpack) return true;
+
+	Item *item;
+
+	// move all current equipment to backpack
+	for (unsigned int i = 0; i < 7; ++i) {
+		item = getItem(av->getEquip(i));
+		if (item) {
+			item->moveToContainer(backpack, false); // no weight/volume check
+			item->randomGumpLocation();
+		}
+	}
+
+	// give new equipment:
+
+	// deceiver
+	item = ItemFactory::createItem(822, 0, 0, 0, 0, 0, 0, true);
+	av->setEquip(item, false);
+
+	// armour
+	item = ItemFactory::createItem(841, 0, 0, 0, 0, 0, 0, true);
+	av->setEquip(item, false);
+
+	// shield
+	item = ItemFactory::createItem(842, 0, 0, 0, 0, 0, 0, true);
+	av->setEquip(item, false);
+
+	// helmet
+	item = ItemFactory::createItem(843, 0, 0, 0, 0, 0, 0, true);
+	av->setEquip(item, false);
+
+	// arm guards
+	item = ItemFactory::createItem(844, 0, 0, 0, 0, 0, 0, true);
+	av->setEquip(item, false);
+
+	// leggings
+	item = ItemFactory::createItem(845, 0, 0, 0, 0, 0, 0, true);
+	av->setEquip(item, false);
+
+	return false;
+}
+
+bool Debugger::cmdHeal(int argc, const char **argv) {
+	if (!Ultima8Engine::get_instance()->areCheatsEnabled()) {
+		debugPrintf("Cheats are disabled\n");
+		return true;
+	}
+	MainActor *mainActor = getMainActor();
+
+	mainActor->setHP(mainActor->getMaxHP());
+	mainActor->setMana(mainActor->getMaxMana());
+	return false;
+}
+
+bool Debugger::cmdToggleInvincibility(int argc, const char **argv) {
+	if (!Ultima8Engine::get_instance()->areCheatsEnabled()) {
+		debugPrintf("Cheats are disabled\n");
+		return true;
+	}
+	MainActor *av = getMainActor();
+
+	if (av->getActorFlags() & Actor::ACT_INVINCIBLE) {
+		av->clearActorFlag(Actor::ACT_INVINCIBLE);
+		debugPrintf("Avatar is no longer invincible.\n");
+	} else {
+		av->setActorFlag(Actor::ACT_INVINCIBLE);
+		debugPrintf("Avatar invincible.\n");
+	}
+
+	return true;
+}
+
+
 bool Debugger::cmdToggleHighlightItems(int argc, const char **argv) {
 	GameMapGump::Set_highlightItems(!GameMapGump::is_highlightItems());
 	return false;
@@ -803,38 +1056,6 @@ bool Debugger::cmdListMarks(int argc, const char **argv) {
 	return true;
 }
 
-bool Debugger::cmdMaxStats(int argc, const char **argv) {
-	if (!Ultima8Engine::get_instance()->areCheatsEnabled()) {
-		debugPrintf("Cheats are disabled\n");
-		return true;
-	}
-	MainActor *mainActor = getMainActor();
-
-	// constants!!
-	mainActor->setStr(25);
-	mainActor->setDex(25);
-	mainActor->setInt(25);
-	mainActor->setHP(mainActor->getMaxHP());
-	mainActor->setMana(mainActor->getMaxMana());
-
-	AudioProcess *audioproc = AudioProcess::get_instance();
-	if (audioproc)
-		audioproc->playSFX(0x36, 0x60, 1, 0); //constants!!
-	return false;
-}
-
-bool Debugger::cmdHeal(int argc, const char **argv) {
-	if (!Ultima8Engine::get_instance()->areCheatsEnabled()) {
-		debugPrintf("Cheats are disabled\n");
-		return true;
-	}
-	MainActor *mainActor = getMainActor();
-
-	mainActor->setHP(mainActor->getMaxHP());
-	mainActor->setMana(mainActor->getMaxMana());
-	return false;
-}
-
 bool Debugger::cmdName(int argc, const char **argv) {
 	MainActor *av = getMainActor();
 	if (argc > 1)
@@ -894,25 +1115,6 @@ bool Debugger::cmdToggleCombat(int argc, const char **argv) {
 	return false;
 }
 
-bool Debugger::cmdToggleInvincibility(int argc, const char **argv) {
-	if (!Ultima8Engine::get_instance()->areCheatsEnabled()) {
-		debugPrintf("Cheats are disabled\n");
-		return true;
-	}
-	MainActor *av = getMainActor();
-
-	if (av->getActorFlags() & Actor::ACT_INVINCIBLE) {
-		av->clearActorFlag(Actor::ACT_INVINCIBLE);
-		debugPrintf("Avatar is no longer invincible.\n");
-	} else {
-		av->setActorFlag(Actor::ACT_INVINCIBLE);
-		debugPrintf("Avatar invincible.\n");
-	}
-
-	return true;
-}
-
-
 bool Debugger::cmdMemInfo(int argc, const char **argv) {
 	MemoryManager *mm = MemoryManager::get_instance();
 	int i, count;
@@ -1173,17 +1375,17 @@ bool Debugger::cmdGenerateWholeMap(int argc, const char **argv) {
 #ifdef DEBUG
 bool Debugger::cmdVisualDebugPathfinder(int argc, const char **argv) {
 	if (argc != 2) {
-		pout << "Usage: Pathfinder::visualDebug objid\n");
-		pout << "Specify objid -1 to stop tracing.\n");
+		debugPrintf("Usage: Pathfinder::visualDebug objid\n");
+		debugPrintf("Specify objid -1 to stop tracing.\n");
 		return;
 	}
 	int p = strtol(argv[1].c_str(), 0, 0);
 	if (p == -1) {
 		visualdebug_actor = 0xFFFF;
-		pout << "Pathfinder: stopped visual tracing\n");
+		debugPrintf("Pathfinder: stopped visual tracing\n");
 	} else {
 		visualdebug_actor = (uint16)p;
-		pout << "Pathfinder: visually tracing _actor " << visualdebug_actor << Std::endl;
+		debugPrintf("Pathfinder: visually tracing _actor " << visualdebug_actor << Std::endl;
 	}
 }
 #endif
diff --git a/engines/ultima/ultima8/misc/debugger.h b/engines/ultima/ultima8/misc/debugger.h
index d45aabc..9af9124 100644
--- a/engines/ultima/ultima8/misc/debugger.h
+++ b/engines/ultima/ultima8/misc/debugger.h
@@ -53,7 +53,6 @@ private:
 	bool cmdTogglePaintEditorItems(int argc, const char **argv);
 	bool cmdToggleShowTouchingItems(int argc, const char **argv);
 	bool cmdCloseItemGumps(int argc, const char **argv);
-	bool cmdToggleCheatMode(int argc, const char **argv);
 	bool cmdMemberVar(int argc, const char **argv);
 
 	// Audio Process
@@ -61,6 +60,14 @@ private:
 	bool cmdStopSFX(int argc, const char **argv);
 	bool cmdPlaySFX(int argc, const char **argv);
 
+	// Cheats
+	bool cmdToggleCheatMode(int argc, const char **argv);
+	bool cmdCheatItems(int argc, const char **argv);
+	bool cmdCheatEquip(int argc, const char **argv);
+	bool cmdMaxStats(int argc, const char **argv);
+	bool cmdHeal(int argc, const char **argv);
+	bool cmdToggleInvincibility(int argc, const char **argv);
+
 	// Game Map Gump
 	bool cmdToggleHighlightItems(int argc, const char **argv);
 	bool cmdDumpMap(int argc, const char **argvv);
@@ -86,9 +93,6 @@ private:
 	bool cmdRecall(int argc, const char **argv);
 	bool cmdListMarks(int argc, const char **argv);
 	bool cmdName(int argc, const char **argv);
-	bool cmdMaxStats(int argc, const char **argv);
-	bool cmdHeal(int argc, const char **argv);
-	bool cmdToggleInvincibility(int argc, const char **argv);
 	bool cmdUseBackpack(int argc, const char **argv);
 	bool cmdUseInventory(int argc, const char **argv);
 	bool cmdUseRecall(int argc, const char **argv);


Commit: 67a5d0d7e381a45f0495024106a16fcc41af70cb
    https://github.com/scummvm/scummvm/commit/67a5d0d7e381a45f0495024106a16fcc41af70cb
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-22T11:42:21-08:00

Commit Message:
ULTIMA8: Shifting UCMachine console methods to Debugger

Changed paths:
    engines/ultima/ultima8/misc/debugger.cpp
    engines/ultima/ultima8/misc/debugger.h
    engines/ultima/ultima8/usecode/uc_machine.cpp
    engines/ultima/ultima8/usecode/uc_machine.h


diff --git a/engines/ultima/ultima8/misc/debugger.cpp b/engines/ultima/ultima8/misc/debugger.cpp
index 1a98793..ae82979 100644
--- a/engines/ultima/ultima8/misc/debugger.cpp
+++ b/engines/ultima/ultima8/misc/debugger.cpp
@@ -42,6 +42,7 @@
 #include "ultima/ultima8/kernel/object_manager.h"
 #include "ultima/ultima8/misc/id_man.h"
 #include "ultima/ultima8/usecode/uc_machine.h"
+#include "ultima/ultima8/usecode/bit_set.h"
 #include "ultima/ultima8/world/world.h"
 #include "ultima/ultima8/world/get_object.h"
 #include "ultima/ultima8/world/item_factory.h"
@@ -130,6 +131,17 @@ Debugger::Debugger() : Shared::Debugger() {
 	registerCmd("QuickAvatarMoverProcess::toggleQuarterSpeed", WRAP_METHOD(Debugger, cmdToggleQuarterSpeed));
 	registerCmd("QuickAvatarMoverProcess::toggleClipping", WRAP_METHOD(Debugger, cmdToggleClipping));
 
+	registerCmd("UCMachine::getGlobal", WRAP_METHOD(Debugger, cmdGetGlobal));
+	registerCmd("UCMachine::setGlobal", WRAP_METHOD(Debugger, cmdSetGlobal));
+#ifdef DEBUG
+	registerCmd("UCMachine::traceObjID", WRAP_METHOD(Debugger, cmdTraceObjID));
+	registerCmd("UCMachine::tracePID", WRAP_METHOD(Debugger, cmdTracePID));
+	registerCmd("UCMachine::traceClass", WRAP_METHOD(Debugger, cmdTraceClass));
+	registerCmd("UCMachine::traceEvents", WRAP_METHOD(Debugger, cmdTraceEvents));
+	registerCmd("UCMachine::traceAll", WRAP_METHOD(Debugger, cmdTraceAll));
+	registerCmd("UCMachine::stopTrace", WRAP_METHOD(Debugger, cmdStopTrace));
+#endif
+
 	registerCmd("FastAreaVisGump::toggle", WRAP_METHOD(Debugger, cmdToggleFastArea));
 	registerCmd("InverterProcess::invertScreen", WRAP_METHOD(Debugger, cmdInvertScreen));
 	registerCmd("MenuGump::showMenu", WRAP_METHOD(Debugger, cmdShowMenu));
@@ -1278,6 +1290,123 @@ bool Debugger::cmdToggleClipping(int argc, const char **argv) {
 }
 
 
+bool Debugger::cmdGetGlobal(int argc, const char **argv) {
+	UCMachine *uc = UCMachine::get_instance();
+	if (argc != 3) {
+		debugPrintf("usage: UCMachine::getGlobal offset size\n");
+		return true;
+	}
+
+	unsigned int offset = strtol(argv[1], 0, 0);
+	unsigned int size = strtol(argv[2], 0, 0);
+
+	pout.Print("[%04X %02X] = %d\n", offset, size,
+		uc->_globals->getBits(offset, size));
+
+	return true;
+}
+
+bool Debugger::cmdSetGlobal(int argc, const char **argv) {
+	UCMachine *uc = UCMachine::get_instance();
+	if (argc != 4) {
+		debugPrintf("usage: UCMachine::setGlobal offset size value\n");
+		return true;
+	}
+
+	unsigned int offset = strtol(argv[1], 0, 0);
+	unsigned int size = strtol(argv[2], 0, 0);
+	unsigned int value = strtol(argv[3], 0, 0);
+
+	uc->_globals->setBits(offset, size, value);
+
+	debugPrintf("[%04X %02X] = %d\n", offset, size, uc->_globals->getBits(offset, size));
+	return true;
+}
+
+#ifdef DEBUG
+
+bool Debugger::cmdTracePID(int argc, const char **argv) {
+	if (argc != 2) {
+		debugPrintf("Usage: UCMachine::tracePID _pid\n");
+		return true;
+	}
+
+	uint16 _pid = static_cast<uint16>(strtol(argv[1].c_str(), 0, 0));
+
+	UCMachine *uc = UCMachine::get_instance();
+	uc->tracing_enabled = true;
+	uc->trace_PIDs.insert(_pid);
+
+	debugPrintf("UCMachine: tracing process %d\n", pid);
+	return true;
+}
+
+bool Debugger::cmdTraceObjID(int argc, const char **argv) {
+	if (argc != 2) {
+		debugPrintf("Usage: UCMachine::traceObjID objid\n");
+		return true;
+	}
+
+	uint16 objid = static_cast<uint16>(strtol(argv[1].c_str(), 0, 0));
+
+	UCMachine *uc = UCMachine::get_instance();
+	uc->tracing_enabled = true;
+	uc->trace_ObjIDs.insert(objid);
+
+	debugPrintf("UCMachine: tracing object %d\n", objid);
+	return true;
+}
+
+bool Debugger::cmdTraceClass(int argc, const char **argv) {
+	if (argc != 2) {
+		debugPrintf("Usage: UCMachine::traceClass class\n");
+		return true;
+	}
+
+	uint16 ucclass = static_cast<uint16>(strtol(argv[1].c_str(), 0, 0));
+
+	UCMachine *uc = UCMachine::get_instance();
+	uc->tracing_enabled = true;
+	uc->trace_classes.insert(ucclass);
+
+	debugPrintf("UCMachine: tracing class %d\n", ucclass);
+	return true;
+}
+
+bool Debugger::cmdTraceAll(int argc, const char **argv) {
+	UCMachine *uc = UCMachine::get_instance();
+	uc->tracing_enabled = true;
+	uc->trace_all = true;
+
+	debugPrintf("UCMachine: tracing all usecode\n");
+	return true;
+}
+
+bool Debugger::cmdTraceEvents(int argc, const char **argv) {
+	UCMachine *uc = UCMachine::get_instance();
+	uc->tracing_enabled = true;
+	uc->trace_events = true;
+
+	debugPrintf("UCMachine: tracing usecode events\n");
+	return true;
+}
+
+bool Debugger::cmdStopTrace(const Console::ArgvType &/*argv*/) {
+	UCMachine *uc = UCMachine::get_instance();
+	uc->trace_ObjIDs.clear();
+	uc->trace_PIDs.clear();
+	uc->trace_classes.clear();
+	uc->tracing_enabled = false;
+	uc->trace_all = false;
+	uc->trace_events = false;
+
+	debugPrintf("Trace stopped\n");
+	return true;
+}
+
+#endif
+
+
 bool Debugger::cmdVerifyQuit(int argc, const char **argv) {
 	QuitGump::verifyQuit();
 	return false;
diff --git a/engines/ultima/ultima8/misc/debugger.h b/engines/ultima/ultima8/misc/debugger.h
index 9af9124..06fea7e 100644
--- a/engines/ultima/ultima8/misc/debugger.h
+++ b/engines/ultima/ultima8/misc/debugger.h
@@ -126,6 +126,18 @@ private:
 	bool cmdToggleQuarterSpeed(int argc, const char **argv);
 	bool cmdToggleClipping(int argc, const char **argv);
 
+	// UCMachine
+	bool cmdGetGlobal(int argc, const char **argv);
+	bool cmdSetGlobal(int argc, const char **argv);
+#ifdef DEBUG
+	bool cmdTracePID(int argc, const char **argv);
+	bool cmdTraceObjID(int argc, const char **argv);
+	bool cmdTraceClass(int argc, const char **argv);
+	bool cmdTraceAll(int argc, const char **argv);
+	bool cmdTraceEvents(int argc, const char **argv);
+	bool cmdStopTrace(int argc, const char **argv);
+#endif
+
 	// Miscellaneous
 	bool cmdToggleFastArea(int argc, const char **argv);
 	bool cmdVerifyQuit(int argc, const char **argv);
diff --git a/engines/ultima/ultima8/usecode/uc_machine.cpp b/engines/ultima/ultima8/usecode/uc_machine.cpp
index 53c5546..4da71e9 100644
--- a/engines/ultima/ultima8/usecode/uc_machine.cpp
+++ b/engines/ultima/ultima8/usecode/uc_machine.cpp
@@ -96,16 +96,7 @@ UCMachine::UCMachine(Intrinsic *iset, unsigned int icount) {
 	_listIDs = new idMan(1, 65534, 128);
 	_stringIDs = new idMan(1, 65534, 256);
 
-	con->AddConsoleCommand("UCMachine::getGlobal", ConCmd_getGlobal);
-	con->AddConsoleCommand("UCMachine::setGlobal", ConCmd_setGlobal);
 #ifdef DEBUG
-	con->AddConsoleCommand("UCMachine::traceObjID", ConCmd_traceObjID);
-	con->AddConsoleCommand("UCMachine::tracePID", ConCmd_tracePID);
-	con->AddConsoleCommand("UCMachine::traceClass", ConCmd_traceClass);
-	con->AddConsoleCommand("UCMachine::traceEvents", ConCmd_traceEvents);
-	con->AddConsoleCommand("UCMachine::traceAll", ConCmd_traceAll);
-	con->AddConsoleCommand("UCMachine::stopTrace", ConCmd_stopTrace);
-
 	tracing_enabled = false;
 	trace_all = false;
 #endif
@@ -114,17 +105,6 @@ UCMachine::UCMachine(Intrinsic *iset, unsigned int icount) {
 
 UCMachine::~UCMachine() {
 	con->Print(MM_INFO, "Destroying UCMachine...\n");
-
-	con->RemoveConsoleCommand(UCMachine::ConCmd_getGlobal);
-	con->RemoveConsoleCommand(UCMachine::ConCmd_setGlobal);
-#ifdef DEBUG
-	con->RemoveConsoleCommand(UCMachine::ConCmd_traceObjID);
-	con->RemoveConsoleCommand(UCMachine::ConCmd_tracePID);
-	con->RemoveConsoleCommand(UCMachine::ConCmd_traceClass);
-	con->RemoveConsoleCommand(UCMachine::ConCmd_traceAll);
-	con->RemoveConsoleCommand(UCMachine::ConCmd_stopTrace);
-#endif
-
 	_ucMachine = 0;
 
 	delete _globals;
@@ -2359,114 +2339,5 @@ uint32 UCMachine::I_rndRange(const uint8 *args, unsigned int /*argsize*/) {
 	return (lo + (getRandom() % (hi - lo + 1)));
 }
 
-
-void UCMachine::ConCmd_getGlobal(const Console::ArgvType &argv) {
-	UCMachine *uc = UCMachine::get_instance();
-	if (argv.size() != 3) {
-		pout << "usage: UCMachine::getGlobal offset size" << Std::endl;
-		return;
-	}
-
-	unsigned int offset = strtol(argv[1].c_str(), 0, 0);
-	unsigned int size = strtol(argv[2].c_str(), 0, 0);
-
-	pout.Print("[%04X %02X] = %d\n", offset, size,
-	            uc->_globals->getBits(offset, size));
-}
-
-void UCMachine::ConCmd_setGlobal(const Console::ArgvType &argv) {
-	UCMachine *uc = UCMachine::get_instance();
-	if (argv.size() != 4) {
-		pout << "usage: UCMachine::setGlobal offset size value" << Std::endl;
-		return;
-	}
-
-	unsigned int offset = strtol(argv[1].c_str(), 0, 0);
-	unsigned int size = strtol(argv[2].c_str(), 0, 0);
-	unsigned int value = strtol(argv[3].c_str(), 0, 0);
-
-	uc->_globals->setBits(offset, size, value);
-
-	pout.Print("[%04X %02X] = %d\n", offset, size,
-	            uc->_globals->getBits(offset, size));
-}
-
-#ifdef DEBUG
-
-void UCMachine::ConCmd_tracePID(const Console::ArgvType &argv) {
-	if (argv.size() != 2) {
-		pout << "Usage: UCMachine::tracePID _pid" << Std::endl;
-		return;
-	}
-
-	uint16 _pid = static_cast<uint16>(strtol(argv[1].c_str(), 0, 0));
-
-	UCMachine *uc = UCMachine::get_instance();
-	uc->tracing_enabled = true;
-	uc->trace_PIDs.insert(_pid);
-
-	pout << "UCMachine: tracing process " << _pid << Std::endl;
-}
-
-void UCMachine::ConCmd_traceObjID(const Console::ArgvType &argv) {
-	if (argv.size() != 2) {
-		pout << "Usage: UCMachine::traceObjID objid" << Std::endl;
-		return;
-	}
-
-	uint16 objid = static_cast<uint16>(strtol(argv[1].c_str(), 0, 0));
-
-	UCMachine *uc = UCMachine::get_instance();
-	uc->tracing_enabled = true;
-	uc->trace_ObjIDs.insert(objid);
-
-	pout << "UCMachine: tracing object " << objid << Std::endl;
-}
-
-void UCMachine::ConCmd_traceClass(const Console::ArgvType &argv) {
-	if (argv.size() != 2) {
-		pout << "Usage: UCMachine::traceClass class" << Std::endl;
-		return;
-	}
-
-	uint16 ucclass = static_cast<uint16>(strtol(argv[1].c_str(), 0, 0));
-
-	UCMachine *uc = UCMachine::get_instance();
-	uc->tracing_enabled = true;
-	uc->trace_classes.insert(ucclass);
-
-	pout << "UCMachine: tracing class " << ucclass << Std::endl;
-}
-
-void UCMachine::ConCmd_traceAll(const Console::ArgvType &argv) {
-	UCMachine *uc = UCMachine::get_instance();
-	uc->tracing_enabled = true;
-	uc->trace_all = true;
-
-	pout << "UCMachine: tracing all usecode" << Std::endl;
-}
-
-void UCMachine::ConCmd_traceEvents(const Console::ArgvType &argv) {
-	UCMachine *uc = UCMachine::get_instance();
-	uc->tracing_enabled = true;
-	uc->trace_events = true;
-
-	pout << "UCMachine: tracing usecode events" << Std::endl;
-}
-
-
-
-void UCMachine::ConCmd_stopTrace(const Console::ArgvType &/*argv*/) {
-	UCMachine *uc = UCMachine::get_instance();
-	uc->trace_ObjIDs.clear();
-	uc->trace_PIDs.clear();
-	uc->trace_classes.clear();
-	uc->tracing_enabled = false;
-	uc->trace_all = false;
-	uc->trace_events = false;
-}
-
-#endif
-
 } // End of namespace Ultima8
 } // End of namespace Ultima
diff --git a/engines/ultima/ultima8/usecode/uc_machine.h b/engines/ultima/ultima8/usecode/uc_machine.h
index 0077d03..8c0d00b 100644
--- a/engines/ultima/ultima8/usecode/uc_machine.h
+++ b/engines/ultima/ultima8/usecode/uc_machine.h
@@ -29,6 +29,7 @@
 namespace Ultima {
 namespace Ultima8 {
 
+class Debugger;
 class Process;
 class UCProcess;
 class ConvertUsecode;
@@ -39,6 +40,7 @@ class UCList;
 class idMan;
 
 class UCMachine {
+	friend class Debugger;
 public:
 	UCMachine(Intrinsic *iset, unsigned int icount);
 	~UCMachine();
@@ -110,10 +112,6 @@ private:
 
 	static UCMachine *_ucMachine;
 
-	static void     ConCmd_getGlobal(const Console::ArgvType &argv);
-	static void     ConCmd_setGlobal(const Console::ArgvType &argv);
-
-
 #ifdef DEBUG
 	// tracing
 	bool tracing_enabled;
@@ -136,14 +134,6 @@ public:
 	bool trace_event() {
 		return (tracing_enabled && (trace_all || trace_events));
 	}
-
-private:
-	static void     ConCmd_tracePID(const Console::ArgvType &argv);
-	static void     ConCmd_traceObjID(const Console::ArgvType &argv);
-	static void     ConCmd_traceClass(const Console::ArgvType &argv);
-	static void     ConCmd_traceAll(const Console::ArgvType &argv);
-	static void     ConCmd_traceEvents(const Console::ArgvType &argv);
-	static void     ConCmd_stopTrace(const Console::ArgvType &argv);
 #endif
 };
 


Commit: 844a26e34b6bb9a8d1d883e9869fe96a64d728ec
    https://github.com/scummvm/scummvm/commit/844a26e34b6bb9a8d1d883e9869fe96a64d728ec
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-22T11:42:21-08:00

Commit Message:
ULTIMA8: Fix compilation of DEBUG code

Changed paths:
    engines/ultima/nuvie/core/nuvie_defs.h
    engines/ultima/shared/std/containers.h
    engines/ultima/ultima8/misc/debugger.cpp
    engines/ultima/ultima8/ultima8.cpp
    engines/ultima/ultima8/usecode/uc_machine.cpp
    engines/ultima/ultima8/usecode/uc_machine.h
    engines/ultima/ultima8/world/actors/pathfinder.cpp
    engines/ultima/ultima8/world/actors/pathfinder.h
    engines/ultima/ultima8/world/item.cpp


diff --git a/engines/ultima/nuvie/core/nuvie_defs.h b/engines/ultima/nuvie/core/nuvie_defs.h
index 983d316..cda8194 100644
--- a/engines/ultima/nuvie/core/nuvie_defs.h
+++ b/engines/ultima/nuvie/core/nuvie_defs.h
@@ -113,6 +113,9 @@ inline void u6debug(bool no_header, const DebugLevelType level, const char *form
 extern void u6debug(bool no_header, const DebugLevelType level, const char *format, ...);
 #endif
 
+#ifdef DEBUG
+#undef DEBUG
+#endif
 #define DEBUG u6debug
 
 #define U6PATH_DELIMITER '/'
diff --git a/engines/ultima/shared/std/containers.h b/engines/ultima/shared/std/containers.h
index 129fb36..dc4224a 100644
--- a/engines/ultima/shared/std/containers.h
+++ b/engines/ultima/shared/std/containers.h
@@ -107,7 +107,7 @@ template<class T>
 class set {
 	struct Comparitor {
 		bool operator()(const T &a, const T &b) const {
-			return a.Compare(b);
+			return a == b;
 		}
 	};
 
@@ -130,6 +130,13 @@ public:
 	iterator end() { return _items.end(); }
 
 	/**
+	 * Clear the set
+	 */
+	void clear() {
+		_items.clear();
+	}
+
+	/**
 	 * Inserts a new item
 	 */
 	void insert(T val) {
@@ -152,6 +159,15 @@ public:
 	void swap(set<T> &arr) {
 		_items.swap(arr);
 	}
+
+	/**
+	 * Find an item
+	 */
+	iterator find(T item) {
+		iterator it = begin();
+		for (; it != end() && *it != item; ++it) {}
+		return it;
+	}
 };
 
 template<class Key, class Val, class HashFunc = Common::Hash<Key>,
diff --git a/engines/ultima/ultima8/misc/debugger.cpp b/engines/ultima/ultima8/misc/debugger.cpp
index ae82979..9580993 100644
--- a/engines/ultima/ultima8/misc/debugger.cpp
+++ b/engines/ultima/ultima8/misc/debugger.cpp
@@ -48,6 +48,7 @@
 #include "ultima/ultima8/world/item_factory.h"
 #include "ultima/ultima8/world/actors/quick_avatar_mover_process.h"
 #include "ultima/ultima8/world/actors/main_actor.h"
+#include "ultima/ultima8/world/actors/pathfinder.h"
 
 namespace Ultima {
 namespace Ultima8 {
@@ -153,7 +154,7 @@ Debugger::Debugger() : Shared::Debugger() {
 	registerCmd("ShapeViewerGump::U8ShapeViewer", WRAP_METHOD(Debugger, cmdU8ShapeViewer));
 
 #ifdef DEBUG
-	registerCmd("Pathfinder::visualDebug", Pathfinder::cmdVisualDebugPathfinder);
+	registerCmd("Pathfinder::visualDebug", WRAP_METHOD(Debugger, cmdVisualDebugPathfinder));
 #endif
 }
 
@@ -1145,7 +1146,7 @@ bool Debugger::cmdMemInfo(int argc, const char **argv) {
 }
 
 #ifdef DEBUG
-bool Debugger::cmdTest(int argc, const char **argv) {
+bool Debugger::cmdTestMemory(int argc, const char **argv) {
 	return true;
 }
 #endif
@@ -1331,11 +1332,11 @@ bool Debugger::cmdTracePID(int argc, const char **argv) {
 		return true;
 	}
 
-	uint16 _pid = static_cast<uint16>(strtol(argv[1].c_str(), 0, 0));
+	uint16 pid = static_cast<uint16>(strtol(argv[1], 0, 0));
 
 	UCMachine *uc = UCMachine::get_instance();
-	uc->tracing_enabled = true;
-	uc->trace_PIDs.insert(_pid);
+	uc->_tracingEnabled = true;
+	uc->_tracePIDs.insert(pid);
 
 	debugPrintf("UCMachine: tracing process %d\n", pid);
 	return true;
@@ -1347,11 +1348,11 @@ bool Debugger::cmdTraceObjID(int argc, const char **argv) {
 		return true;
 	}
 
-	uint16 objid = static_cast<uint16>(strtol(argv[1].c_str(), 0, 0));
+	uint16 objid = static_cast<uint16>(strtol(argv[1], 0, 0));
 
 	UCMachine *uc = UCMachine::get_instance();
-	uc->tracing_enabled = true;
-	uc->trace_ObjIDs.insert(objid);
+	uc->_tracingEnabled = true;
+	uc->_traceObjIDs.insert(objid);
 
 	debugPrintf("UCMachine: tracing object %d\n", objid);
 	return true;
@@ -1363,11 +1364,11 @@ bool Debugger::cmdTraceClass(int argc, const char **argv) {
 		return true;
 	}
 
-	uint16 ucclass = static_cast<uint16>(strtol(argv[1].c_str(), 0, 0));
+	uint16 ucclass = static_cast<uint16>(strtol(argv[1], 0, 0));
 
 	UCMachine *uc = UCMachine::get_instance();
-	uc->tracing_enabled = true;
-	uc->trace_classes.insert(ucclass);
+	uc->_tracingEnabled = true;
+	uc->_traceClasses.insert(ucclass);
 
 	debugPrintf("UCMachine: tracing class %d\n", ucclass);
 	return true;
@@ -1375,8 +1376,8 @@ bool Debugger::cmdTraceClass(int argc, const char **argv) {
 
 bool Debugger::cmdTraceAll(int argc, const char **argv) {
 	UCMachine *uc = UCMachine::get_instance();
-	uc->tracing_enabled = true;
-	uc->trace_all = true;
+	uc->_tracingEnabled = true;
+	uc->_traceAll = true;
 
 	debugPrintf("UCMachine: tracing all usecode\n");
 	return true;
@@ -1384,21 +1385,21 @@ bool Debugger::cmdTraceAll(int argc, const char **argv) {
 
 bool Debugger::cmdTraceEvents(int argc, const char **argv) {
 	UCMachine *uc = UCMachine::get_instance();
-	uc->tracing_enabled = true;
-	uc->trace_events = true;
+	uc->_tracingEnabled = true;
+	uc->_traceEvents = true;
 
 	debugPrintf("UCMachine: tracing usecode events\n");
 	return true;
 }
 
-bool Debugger::cmdStopTrace(const Console::ArgvType &/*argv*/) {
+bool Debugger::cmdStopTrace(int argc, const char **argv) {
 	UCMachine *uc = UCMachine::get_instance();
-	uc->trace_ObjIDs.clear();
-	uc->trace_PIDs.clear();
-	uc->trace_classes.clear();
-	uc->tracing_enabled = false;
-	uc->trace_all = false;
-	uc->trace_events = false;
+	uc->_traceObjIDs.clear();
+	uc->_tracePIDs.clear();
+	uc->_traceClasses.clear();
+	uc->_tracingEnabled = false;
+	uc->_traceAll = false;
+	uc->_traceEvents = false;
 
 	debugPrintf("Trace stopped\n");
 	return true;
@@ -1506,16 +1507,18 @@ bool Debugger::cmdVisualDebugPathfinder(int argc, const char **argv) {
 	if (argc != 2) {
 		debugPrintf("Usage: Pathfinder::visualDebug objid\n");
 		debugPrintf("Specify objid -1 to stop tracing.\n");
-		return;
+		return true;
 	}
-	int p = strtol(argv[1].c_str(), 0, 0);
+	int p = strtol(argv[1], 0, 0);
 	if (p == -1) {
-		visualdebug_actor = 0xFFFF;
+		Pathfinder::_visualDebugActor = 0xFFFF;
 		debugPrintf("Pathfinder: stopped visual tracing\n");
 	} else {
-		visualdebug_actor = (uint16)p;
-		debugPrintf("Pathfinder: visually tracing _actor " << visualdebug_actor << Std::endl;
+		Pathfinder::_visualDebugActor = (uint16)p;
+		debugPrintf("Pathfinder: visually tracing _actor %d\n", Pathfinder::_visualDebugActor);
 	}
+
+	return true;
 }
 #endif
 
diff --git a/engines/ultima/ultima8/ultima8.cpp b/engines/ultima/ultima8/ultima8.cpp
index 4d79000..5eab862 100644
--- a/engines/ultima/ultima8/ultima8.cpp
+++ b/engines/ultima/ultima8/ultima8.cpp
@@ -1337,9 +1337,7 @@ Common::Error Ultima8Engine::loadGameStream(Common::SeekableReadStream *stream)
 		_settingMan->get("ignore_savegame_mismatch", ignore);
 
 		if (!ignore) {
-			Error(message, "Error Loading savegame " + filename);
-			delete sg;
-			return false;
+			error("%s", message.c_str());
 		}
 		perr << message << Std::endl;
 #else
diff --git a/engines/ultima/ultima8/usecode/uc_machine.cpp b/engines/ultima/ultima8/usecode/uc_machine.cpp
index 4da71e9..9bc8967 100644
--- a/engines/ultima/ultima8/usecode/uc_machine.cpp
+++ b/engines/ultima/ultima8/usecode/uc_machine.cpp
@@ -97,8 +97,8 @@ UCMachine::UCMachine(Intrinsic *iset, unsigned int icount) {
 	_stringIDs = new idMan(1, 65534, 256);
 
 #ifdef DEBUG
-	tracing_enabled = false;
-	trace_all = false;
+	_tracingEnabled = false;
+	_traceAll = false;
 #endif
 }
 
@@ -147,7 +147,7 @@ void UCMachine::execProcess(UCProcess *p) {
 #ifdef DEBUG
 	if (trace_show(p->_pid, p->_itemNum, p->_classId)) {
 		pout << Std::hex << "running process " << p->_pid
-		     << ", item " << p->_itemNum << ", type " << p->type
+		     << ", item " << p->_itemNum << ", type " << p->_type
 		     << ", class " << p->_classId << ", offset " << p->_ip
 		     << Std::dec << Std::endl;
 	}
@@ -354,7 +354,7 @@ void UCMachine::execProcess(UCProcess *p) {
 			//! TODO
 			uint16 arg_bytes = cs.read1();
 			uint16 func = cs.read2();
-			LOGPF(("calli\t\t%04Xh (%02Xh arg bytes) %s \n", func, arg_bytes, _convUse->_intrinsics()[func]));
+			debug(("calli\t\t%04Xh (%02Xh arg bytes) %s \n", func, arg_bytes, _convUse->intrinsics()[func]));
 
 			// !constants
 			if (func >= _intrinsicCount || _intrinsics[func] == 0) {
@@ -1337,7 +1337,7 @@ void UCMachine::execProcess(UCProcess *p) {
 #ifdef DEBUG
 			if (trace_show(p->_pid, p->_itemNum, p->_classId)) {
 				pout << Std::hex << "(still) running process " << p->_pid
-				     << ", item " << p->_itemNum << ", type " << p->type
+				     << ", item " << p->_itemNum << ", type " << p->_type
 				     << ", class " << p->_classId << ", offset " << p->_ip
 				     << Std::dec << Std::endl;
 			}
@@ -1365,10 +1365,10 @@ void UCMachine::execProcess(UCProcess *p) {
 			uint16 offset = cs.read2();
 			uint16 delta = cs.read2();
 			int this_size = cs.read1();
-			(void)cs.read1(); // ??
+			int unknown = cs.read1(); // ??
 
-			LOGPF(("spawn inline\t%04X:%04X+%04X=%04X %02X %02X\n",
-			       classid, offset, delta, offset + delta, this_size, unknown));
+			debug("spawn inline\t%04X:%04X+%04X=%04X %02X %02X\n",
+				classid, offset, delta, offset + delta, this_size, unknown);
 
 			uint32 thisptr = 0;
 			if (this_size > 0)
diff --git a/engines/ultima/ultima8/usecode/uc_machine.h b/engines/ultima/ultima8/usecode/uc_machine.h
index 8c0d00b..299a4de 100644
--- a/engines/ultima/ultima8/usecode/uc_machine.h
+++ b/engines/ultima/ultima8/usecode/uc_machine.h
@@ -23,6 +23,7 @@
 #ifndef ULTIMA8_USECODE_UCMACHINE_H
 #define ULTIMA8_USECODE_UCMACHINE_H
 
+#include "ultima/ultima8/misc/common_types.h"
 #include "ultima/shared/std/containers.h"
 #include "ultima/ultima8/usecode/intrinsics.h"
 
@@ -114,25 +115,25 @@ private:
 
 #ifdef DEBUG
 	// tracing
-	bool tracing_enabled;
-	bool trace_all;
-	bool trace_events;
-	Std::set<ObjId> trace_ObjIDs;
-	Std::set<ProcId> trace_PIDs;
-	Std::set<uint16> trace_classes;
+	bool _tracingEnabled;
+	bool _traceAll;
+	bool _traceEvents;
+	Std::set<ObjId> _traceObjIDs;
+	Std::set<ProcId> _tracePIDs;
+	Std::set<uint16> _traceClasses;
 
 	inline bool trace_show(ProcId pid, ObjId objid, uint16 ucclass) {
-		if (!tracing_enabled) return false;
-		if (trace_all) return true;
-		if (trace_ObjIDs.find(objid) != trace_ObjIDs.end()) return true;
-		if (trace_PIDs.find(pid) != trace_PIDs.end()) return true;
-		if (trace_classes.find(ucclass) != trace_classes.end()) return true;
+		if (!_tracingEnabled) return false;
+		if (_traceAll) return true;
+		if (_traceObjIDs.find(objid) != _traceObjIDs.end()) return true;
+		if (_tracePIDs.find(pid) != _tracePIDs.end()) return true;
+		if (_traceClasses.find(ucclass) != _traceClasses.end()) return true;
 		return false;
 	}
 
 public:
 	bool trace_event() {
-		return (tracing_enabled && (trace_all || trace_events));
+		return (_tracingEnabled && (_traceAll || _traceEvents));
 	}
 #endif
 };
diff --git a/engines/ultima/ultima8/world/actors/pathfinder.cpp b/engines/ultima/ultima8/world/actors/pathfinder.cpp
index d35ee42..3346711 100644
--- a/engines/ultima/ultima8/world/actors/pathfinder.cpp
+++ b/engines/ultima/ultima8/world/actors/pathfinder.cpp
@@ -33,7 +33,7 @@ namespace Ultima {
 namespace Ultima8 {
 
 #ifdef DEBUG
-ObjId Pathfinder::visualdebug_actor = 0xFFFF;
+ObjId Pathfinder::_visualDebugActor = 0xFFFF;
 #endif
 
 struct PathNode {
@@ -403,12 +403,12 @@ void Pathfinder::newNode(PathNode *oldnode, PathfindingState &state,
 #endif
 
 #ifdef DEBUG
-	if (_actor->getObjId() == visualdebug_actor) {
+	if (_actor->getObjId() == _visualDebugActor) {
 		RenderSurface *screen = Ultima8Engine::get_instance()->getRenderScreen();
 		screen->BeginPainting();
 		drawpath(newnode, 0xFFFFFF00, done);
 		screen->EndPainting();
-		SDL_Delay(250);
+		g_system->delayMillis(250);
 		if (!done) {
 			screen->BeginPainting();
 			drawpath(newnode, 0xFFB0B000, done);
@@ -513,7 +513,7 @@ bool Pathfinder::pathfind(Std::vector<PathfindingAction> &path) {
 #endif
 
 #ifdef DEBUG
-	if (_actor->getObjId() == visualdebug_actor) {
+	if (_actor->getObjId() == _visualDebugActor) {
 		RenderSurface *screen = Ultima8Engine::get_instance()->getRenderScreen();
 		screen->BeginPainting();
 		if (_targetItem)
diff --git a/engines/ultima/ultima8/world/actors/pathfinder.h b/engines/ultima/ultima8/world/actors/pathfinder.h
index 1be98b6..bb885ec 100644
--- a/engines/ultima/ultima8/world/actors/pathfinder.h
+++ b/engines/ultima/ultima8/world/actors/pathfinder.h
@@ -76,7 +76,7 @@ public:
 	bool pathfind(Std::vector<PathfindingAction> &path);
 
 #ifdef DEBUG
-	static ObjId visualdebug_actor;
+	static ObjId _visualDebugActor;
 #endif
 
 
diff --git a/engines/ultima/ultima8/world/item.cpp b/engines/ultima/ultima8/world/item.cpp
index c7fce2d..13e5464 100644
--- a/engines/ultima/ultima8/world/item.cpp
+++ b/engines/ultima/ultima8/world/item.cpp
@@ -1035,8 +1035,8 @@ uint32 Item::callUsecodeEvent(uint32 event, const uint8 *args, int argsize) {
 
 #ifdef DEBUG
 	if (UCMachine::get_instance()->trace_event()) {
-		pout.printf("Item: %d calling usecode event %d @ %04X:%04X\n",
-		            _objId, event, class_id, offset);
+		pout.Print("Item: %d calling usecode event %d @ %04X:%04X\n",
+			_objId, event, class_id, offset);
 	}
 #endif
 




More information about the Scummvm-git-logs mailing list