[Scummvm-git-logs] scummvm master -> 93aa5997c6a8d7babef41482c347c4248d4b8b92

dreammaster paulfgilbert at gmail.com
Fri Feb 21 06:05:19 UTC 2020


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

Summary:
fa8d4e5f3b ULTIMA8: Remove deprecated ifdef blocks
681d4cb8df ULTIMA8: Move GameMapGump console methods into Debugger
437cd591bf ULTIMA8: Move Quick Avatar Mover console cmds into Debugger
46c68a4545 ULTIMA8: Moved audio process console cmds to Debugger
93aa5997c6 ULTIMA8: Moving console methods into Debugger


Commit: fa8d4e5f3b1b522e242d590a0545088aca80ab27
    https://github.com/scummvm/scummvm/commit/fa8d4e5f3b1b522e242d590a0545088aca80ab27
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-20T19:09:31-08:00

Commit Message:
ULTIMA8: Remove deprecated ifdef blocks

Changed paths:
    engines/ultima/ultima8/ultima8.cpp


diff --git a/engines/ultima/ultima8/ultima8.cpp b/engines/ultima/ultima8/ultima8.cpp
index a701acd..fa1bcbc 100644
--- a/engines/ultima/ultima8/ultima8.cpp
+++ b/engines/ultima/ultima8/ultima8.cpp
@@ -1040,24 +1040,13 @@ void Ultima8Engine::enterTextMode(Gump *gump) {
 
 	if (!_textModes.empty()) {
 		_textModes.remove(gump->getObjId());
-	} else {
-#ifdef TODO
-		SDL_EnableUNICODE(1);
-		SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL);
-#endif
 	}
 	_textModes.push_front(gump->getObjId());
 }
 
 void Ultima8Engine::leaveTextMode(Gump *gump) {
-	if (_textModes.empty()) return;
-	_textModes.remove(gump->getObjId());
-	if (_textModes.empty()) {
-#ifdef TODO
-		SDL_EnableUNICODE(0);
-		SDL_EnableKeyRepeat(0, 0);
-#endif
-	}
+	if (!_textModes.empty())
+		_textModes.remove(gump->getObjId());
 }
 
 void Ultima8Engine::handleEvent(const Common::Event &event) {


Commit: 681d4cb8df7a0cd4c59969f5b1e395c2c7840580
    https://github.com/scummvm/scummvm/commit/681d4cb8df7a0cd4c59969f5b1e395c2c7840580
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-20T20:31:00-08:00

Commit Message:
ULTIMA8: Move GameMapGump console methods into Debugger

Changed paths:
    engines/ultima/ultima8/gumps/game_map_gump.cpp
    engines/ultima/ultima8/gumps/game_map_gump.h
    engines/ultima/ultima8/kernel/object.h
    engines/ultima/ultima8/misc/debugger.cpp
    engines/ultima/ultima8/misc/debugger.h
    engines/ultima/ultima8/ultima8.cpp


diff --git a/engines/ultima/ultima8/gumps/game_map_gump.cpp b/engines/ultima/ultima8/gumps/game_map_gump.cpp
index 463fc67..85b90d0 100644
--- a/engines/ultima/ultima8/gumps/game_map_gump.cpp
+++ b/engines/ultima/ultima8/gumps/game_map_gump.cpp
@@ -560,177 +560,6 @@ void GameMapGump::DropItem(Item *item, int mx, int my) {
 	}
 }
 
-void GameMapGump::ConCmd_toggleHighlightItems(const Console::ArgvType &argv) {
-	GameMapGump::Set_highlightItems(!GameMapGump::is_highlightItems());
-}
-
-void GameMapGump::ConCmd_dumpMap(const Console::ArgvType &) {
-#ifdef TODO
-	// We only support 32 bits per pixel for now
-	if (RenderSurface::format.s_bpp != 32) return;
-
-	// Save because we're going to potentially break the game by enlarging
-	// the fast area and available object IDs.
-	Std::string savefile = "@save/dumpmap";
-	Ultima8Engine::get_instance()->saveGame(savefile, "Pre-dumpMap save");
-
-	// Increase number of available object IDs.
-	ObjectManager::get_instance()->allow64kObjects();
-
-	// Actual size
-	int32 awidth = 8192;
-	int32 aheight = 8192;
-
-	int32 xpos = 0;
-	int32 ypos = 0;
-
-	int32 left = 16384;
-	int32 right = -16384;
-	int32 top = 16384;
-	int32 bot = -16384;
-
-	int32 camheight = 256;
-
-	// Work out the map limit we do this very coarsly
-	// Now render the map
-	for (int32 y = 0; y < 64; y++) {
-		for (int32 x = 0; x < 64; x++) {
-			const Std::list<Item *> *list =
-			    World::get_instance()->getCurrentMap()->getItemList(x, y);
-
-			// Should iterate the items!
-			// (items could extend outside of this chunk and they have height)
-			if (list && list->size() != 0) {
-				int32 l = (x * 512 - y * 512) / 4 - 128;
-				int32 r = (x * 512 - y * 512) / 4 + 128;
-				int32 t = (x * 512 + y * 512) / 8 - 256;
-				int32 b = (x * 512 + y * 512) / 8;
-
-				t -= 256; // approx. adjustment for height of items in chunk
-
-				if (l < left) left = l;
-				if (r > right) right = r;
-				if (t < top) top = t;
-				if (b > bot) bot = b;
-			}
-		}
-	}
-
-	if (right == -16384) return;
-
-	// camera height
-	bot += camheight;
-	top += camheight;
-
-	awidth = right - left;
-	aheight = bot - top;
-
-	ypos = top;
-	xpos = left;
-
-	// Buffer Size
-	int32 bwidth = awidth;
-	int32 bheight = 256;
-
-	// Tile size
-	int32 twidth = bwidth / 8;
-	int32 theight = bheight;
-
-
-	GameMapGump *g = new GameMapGump(0, 0, twidth, theight);
-
-	// HACK: Setting both INVISIBLE and TRANSPARENT flags on the Avatar
-	// will make him completely invisible.
-	getMainActor()->setFlag(Item::FLG_INVISIBLE);
-	getMainActor()->setExtFlag(Item::EXT_TRANSPARENT);
-	World::get_instance()->getCurrentMap()->setWholeMapFast();
-
-	RenderSurface *s = RenderSurface::CreateSecondaryRenderSurface(bwidth,
-	                   bheight);
-	Texture *t = s->GetSurfaceAsTexture();
-	// clear buffer
-	Std::memset(t->buffer, 0, 4 * bwidth * bheight);
-
-
-	// Write tga header
-	Std::string filename = "@home/mapdump";
-	char buf[32];
-	sprintf(buf, "%02d",  World::get_instance()->getCurrentMap()->getNum());
-	filename += buf;
-	filename += ".png";
-	ODataSource *ds = FileSystem::get_instance()->WriteFile(filename);
-	Std::string pngcomment = "Map ";
-	pngcomment += buf;
-	pngcomment += ", dumped by Pentagram.";
-
-	PNGWriter *pngw = new PNGWriter(ds);
-	pngw->init(awidth, aheight, pngcomment);
-
-	// Now render the map
-	for (int32 y = 0; y < aheight; y += theight) {
-		for (int32 x = 0; x < awidth; x += twidth) {
-			// Work out 'effective' and world coords
-			int32 ex = xpos + x + twidth / 2;
-			int32 ey = ypos + y + theight / 2;
-			int32 wx = ex * 2 + ey * 4;
-			int32 wy = ey * 4 - ex * 2;
-
-			s->SetOrigin(x, y % bheight);
-			CameraProcess::SetCameraProcess(
-			    new CameraProcess(wx + 4 * camheight, wy + 4 * camheight, camheight));
-			g->Paint(s, 256, false);
-
-		}
-
-		// Write out the current buffer
-		if (((y + theight) % bheight) == 0) {
-			for (int i = 0; i < bwidth * bheight; ++i) {
-				// Convert to correct pixel format
-				uint8 r, g, b;
-				UNPACK_RGB8(t->buffer[i], r, g, b);
-				uint8 *buf = reinterpret_cast<uint8 *>(&t->buffer[i]);
-				buf[0] = b;
-				buf[1] = g;
-				buf[2] = r;
-				buf[3] = 0xFF;
-			}
-
-			pngw->writeRows(bheight, t);
-
-			// clear buffer for next set
-			Std::memset(t->buffer, 0, 4 * bwidth * bheight);
-		}
-	}
-
-	pngw->finish();
-	delete pngw;
-
-	delete ds;
-
-	delete g;
-	delete s;
-
-	// Reload
-	Ultima8Engine::get_instance()->loadGame(savefile);
-
-	pout << "Map stored in " << filename << "." << Std::endl;
-#endif
-}
-
-void GameMapGump::ConCmd_incrementSortOrder(const Console::ArgvType &argv) {
-	GameMapGump *gameMapGump = Ultima8Engine::get_instance()->getGameMapGump();
-	if (gameMapGump) {
-		gameMapGump->IncSortOrder(1);
-	}
-}
-
-void GameMapGump::ConCmd_decrementSortOrder(const Console::ArgvType &argv) {
-	GameMapGump *gameMapGump = Ultima8Engine::get_instance()->getGameMapGump();
-	if (gameMapGump) {
-		gameMapGump->IncSortOrder(-1);
-	}
-}
-
 void GameMapGump::RenderSurfaceChanged() {
 	_dims.x += _dims.w / 2;
 	_dims.y += _dims.h / 2;
diff --git a/engines/ultima/ultima8/gumps/game_map_gump.h b/engines/ultima/ultima8/gumps/game_map_gump.h
index 07bc1eb..a0176d2 100644
--- a/engines/ultima/ultima8/gumps/game_map_gump.h
+++ b/engines/ultima/ultima8/gumps/game_map_gump.h
@@ -84,12 +84,6 @@ public:
 		return _highlightItems;
 	}
 
-	static void ConCmd_toggleHighlightItems(const Console::ArgvType &argv);
-	static void ConCmd_dumpMap(const Console::ArgvType &argv);
-
-	static void ConCmd_incrementSortOrder(const Console::ArgvType &argv);
-	static void ConCmd_decrementSortOrder(const Console::ArgvType &argv);
-
 	void        RenderSurfaceChanged() override;
 
 protected:
diff --git a/engines/ultima/ultima8/kernel/object.h b/engines/ultima/ultima8/kernel/object.h
index a614b75..0668b2c 100644
--- a/engines/ultima/ultima8/kernel/object.h
+++ b/engines/ultima/ultima8/kernel/object.h
@@ -24,6 +24,7 @@
 #define ULTIMA8_KERNEL_OBJECT_H
 
 #include "ultima/ultima8/misc/p_dynamic_cast.h"
+#include "ultima/ultima8/misc/pent_include.h"
 
 namespace Ultima {
 namespace Ultima8 {
diff --git a/engines/ultima/ultima8/misc/debugger.cpp b/engines/ultima/ultima8/misc/debugger.cpp
index f6ecb46..4144660 100644
--- a/engines/ultima/ultima8/misc/debugger.cpp
+++ b/engines/ultima/ultima8/misc/debugger.cpp
@@ -21,11 +21,190 @@
  */
 
 #include "ultima/ultima8/misc/debugger.h"
+#include "ultima/ultima8/ultima8.h"
+#include "ultima/ultima8/gumps/game_map_gump.h"
 
 namespace Ultima {
 namespace Ultima8 {
 
 Debugger::Debugger() : Shared::Debugger() {
+	registerCmd("GameMapGump::toggleHighlightItems", WRAP_METHOD(Debugger, cmdToggleHighlightItems));
+	registerCmd("GameMapGump::dumpMap", WRAP_METHOD(Debugger, cmdDumpMap));
+	registerCmd("GameMapGump::incrementSortOrder", WRAP_METHOD(Debugger, cmdIncrementSortOrder));
+	registerCmd("GameMapGump::decrementSortOrder", WRAP_METHOD(Debugger, cmdDecrementSortOrder));
+}
+
+bool Debugger::cmdToggleHighlightItems(int argc, const char **argv) {
+	GameMapGump::Set_highlightItems(!GameMapGump::is_highlightItems());
+	return false;
+}
+
+bool Debugger::cmdDumpMap(int argc, const char **argv) {
+#ifdef TODO
+	// We only support 32 bits per pixel for now
+	if (RenderSurface::format.s_bpp != 32) return;
+
+	// Save because we're going to potentially break the game by enlarging
+	// the fast area and available object IDs.
+	Std::string savefile = "@save/dumpmap";
+	Ultima8Engine::get_instance()->saveGame(savefile, "Pre-dumpMap save");
+
+	// Increase number of available object IDs.
+	ObjectManager::get_instance()->allow64kObjects();
+
+	// Actual size
+	int32 awidth = 8192;
+	int32 aheight = 8192;
+
+	int32 xpos = 0;
+	int32 ypos = 0;
+
+	int32 left = 16384;
+	int32 right = -16384;
+	int32 top = 16384;
+	int32 bot = -16384;
+
+	int32 camheight = 256;
+
+	// Work out the map limit we do this very coarsly
+	// Now render the map
+	for (int32 y = 0; y < 64; y++) {
+		for (int32 x = 0; x < 64; x++) {
+			const Std::list<Item *> *list =
+				World::get_instance()->getCurrentMap()->getItemList(x, y);
+
+			// Should iterate the items!
+			// (items could extend outside of this chunk and they have height)
+			if (list && list->size() != 0) {
+				int32 l = (x * 512 - y * 512) / 4 - 128;
+				int32 r = (x * 512 - y * 512) / 4 + 128;
+				int32 t = (x * 512 + y * 512) / 8 - 256;
+				int32 b = (x * 512 + y * 512) / 8;
+
+				t -= 256; // approx. adjustment for height of items in chunk
+
+				if (l < left) left = l;
+				if (r > right) right = r;
+				if (t < top) top = t;
+				if (b > bot) bot = b;
+			}
+		}
+	}
+
+	if (right == -16384) return;
+
+	// camera height
+	bot += camheight;
+	top += camheight;
+
+	awidth = right - left;
+	aheight = bot - top;
+
+	ypos = top;
+	xpos = left;
+
+	// Buffer Size
+	int32 bwidth = awidth;
+	int32 bheight = 256;
+
+	// Tile size
+	int32 twidth = bwidth / 8;
+	int32 theight = bheight;
+
+
+	Debugger *g = new Debugger(0, 0, twidth, theight);
+
+	// HACK: Setting both INVISIBLE and TRANSPARENT flags on the Avatar
+	// will make him completely invisible.
+	getMainActor()->setFlag(Item::FLG_INVISIBLE);
+	getMainActor()->setExtFlag(Item::EXT_TRANSPARENT);
+	World::get_instance()->getCurrentMap()->setWholeMapFast();
+
+	RenderSurface *s = RenderSurface::CreateSecondaryRenderSurface(bwidth,
+		bheight);
+	Texture *t = s->GetSurfaceAsTexture();
+	// clear buffer
+	Std::memset(t->buffer, 0, 4 * bwidth * bheight);
+
+
+	// Write tga header
+	Std::string filename = "@home/mapdump";
+	char buf[32];
+	sprintf(buf, "%02d", World::get_instance()->getCurrentMap()->getNum());
+	filename += buf;
+	filename += ".png";
+	ODataSource *ds = FileSystem::get_instance()->WriteFile(filename);
+	Std::string pngcomment = "Map ";
+	pngcomment += buf;
+	pngcomment += ", dumped by Pentagram.";
+
+	PNGWriter *pngw = new PNGWriter(ds);
+	pngw->init(awidth, aheight, pngcomment);
+
+	// Now render the map
+	for (int32 y = 0; y < aheight; y += theight) {
+		for (int32 x = 0; x < awidth; x += twidth) {
+			// Work out 'effective' and world coords
+			int32 ex = xpos + x + twidth / 2;
+			int32 ey = ypos + y + theight / 2;
+			int32 wx = ex * 2 + ey * 4;
+			int32 wy = ey * 4 - ex * 2;
+
+			s->SetOrigin(x, y % bheight);
+			CameraProcess::SetCameraProcess(
+				new CameraProcess(wx + 4 * camheight, wy + 4 * camheight, camheight));
+			g->Paint(s, 256, false);
+
+		}
+
+		// Write out the current buffer
+		if (((y + theight) % bheight) == 0) {
+			for (int i = 0; i < bwidth * bheight; ++i) {
+				// Convert to correct pixel format
+				uint8 r, g, b;
+				UNPACK_RGB8(t->buffer[i], r, g, b);
+				uint8 *buf = reinterpret_cast<uint8 *>(&t->buffer[i]);
+				buf[0] = b;
+				buf[1] = g;
+				buf[2] = r;
+				buf[3] = 0xFF;
+			}
+
+			pngw->writeRows(bheight, t);
+
+			// clear buffer for next set
+			Std::memset(t->buffer, 0, 4 * bwidth * bheight);
+		}
+	}
+
+	pngw->finish();
+	delete pngw;
+
+	delete ds;
+
+	delete g;
+	delete s;
+
+	// Reload
+	Ultima8Engine::get_instance()->loadGame(savefile);
+
+	debugPrintf("Map dumped\n");
+#endif
+	return false;
+}
+
+bool Debugger::cmdIncrementSortOrder(int argc, const char **argv) {
+	GameMapGump *gump = Ultima8Engine::get_instance()->getGameMapGump();
+	if (gump)
+		gump->IncSortOrder(1);
+	return false;
+}
+
+bool Debugger::cmdDecrementSortOrder(int argc, const char **argv) {
+	GameMapGump *gump = Ultima8Engine::get_instance()->getGameMapGump();
+	if (gump)
+		gump->IncSortOrder(-1);
+	return false;
 }
 
 } // End of namespace Ultima8
diff --git a/engines/ultima/ultima8/misc/debugger.h b/engines/ultima/ultima8/misc/debugger.h
index 99717fd..f893ac4 100644
--- a/engines/ultima/ultima8/misc/debugger.h
+++ b/engines/ultima/ultima8/misc/debugger.h
@@ -35,7 +35,11 @@ class Ultima1Engine;
  */
 class Debugger : public Shared::Debugger {
 private:
-	bool cmdSpell(int argc, const char **argv);
+	bool cmdToggleHighlightItems(int argc, const char **argv);
+	bool cmdDumpMap(int argc, const char **argvv);
+	bool cmdIncrementSortOrder(int argc, const char **argv);
+	bool cmdDecrementSortOrder(int argc, const char **argv);
+
 public:
 	Debugger();
     ~Debugger() override {}
diff --git a/engines/ultima/ultima8/ultima8.cpp b/engines/ultima/ultima8/ultima8.cpp
index fa1bcbc..0a40913 100644
--- a/engines/ultima/ultima8/ultima8.cpp
+++ b/engines/ultima/ultima8/ultima8.cpp
@@ -244,15 +244,6 @@ bool Ultima8Engine::initialize() {
 	con->AddConsoleCommand("QuickAvatarMoverProcess::toggleClipping",
 		QuickAvatarMoverProcess::ConCmd_toggleClipping);
 
-	con->AddConsoleCommand("GameMapGump::toggleHighlightItems",
-		GameMapGump::ConCmd_toggleHighlightItems);
-	con->AddConsoleCommand("GameMapGump::dumpMap",
-		GameMapGump::ConCmd_dumpMap);
-	con->AddConsoleCommand("GameMapGump::incrementSortOrder",
-		GameMapGump::ConCmd_incrementSortOrder);
-	con->AddConsoleCommand("GameMapGump::decrementSortOrder",
-		GameMapGump::ConCmd_decrementSortOrder);
-
 	con->AddConsoleCommand("AudioProcess::listSFX", AudioProcess::ConCmd_listSFX);
 	con->AddConsoleCommand("AudioProcess::playSFX", AudioProcess::ConCmd_playSFX);
 	con->AddConsoleCommand("AudioProcess::stopSFX", AudioProcess::ConCmd_stopSFX);
@@ -309,11 +300,6 @@ void Ultima8Engine::deinitialize() {
 	con->RemoveConsoleCommand(QuickAvatarMoverProcess::ConCmd_toggleQuarterSpeed);
 	con->RemoveConsoleCommand(QuickAvatarMoverProcess::ConCmd_toggleClipping);
 
-	con->RemoveConsoleCommand(GameMapGump::ConCmd_toggleHighlightItems);
-	con->RemoveConsoleCommand(GameMapGump::ConCmd_dumpMap);
-	con->RemoveConsoleCommand(GameMapGump::ConCmd_incrementSortOrder);
-	con->RemoveConsoleCommand(GameMapGump::ConCmd_decrementSortOrder);
-
 	con->RemoveConsoleCommand(AudioProcess::ConCmd_listSFX);
 	con->RemoveConsoleCommand(AudioProcess::ConCmd_stopSFX);
 	con->RemoveConsoleCommand(AudioProcess::ConCmd_playSFX);


Commit: 437cd591bfa61fb5a68f1633aa8a3382fea88d33
    https://github.com/scummvm/scummvm/commit/437cd591bfa61fb5a68f1633aa8a3382fea88d33
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-20T20:57:33-08:00

Commit Message:
ULTIMA8: Move Quick Avatar Mover console cmds into Debugger

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


diff --git a/engines/ultima/ultima8/misc/debugger.cpp b/engines/ultima/ultima8/misc/debugger.cpp
index 4144660..bf71466 100644
--- a/engines/ultima/ultima8/misc/debugger.cpp
+++ b/engines/ultima/ultima8/misc/debugger.cpp
@@ -23,6 +23,7 @@
 #include "ultima/ultima8/misc/debugger.h"
 #include "ultima/ultima8/ultima8.h"
 #include "ultima/ultima8/gumps/game_map_gump.h"
+#include "ultima/ultima8/world/actors/quick_avatar_mover_process.h"
 
 namespace Ultima {
 namespace Ultima8 {
@@ -32,6 +33,22 @@ Debugger::Debugger() : Shared::Debugger() {
 	registerCmd("GameMapGump::dumpMap", WRAP_METHOD(Debugger, cmdDumpMap));
 	registerCmd("GameMapGump::incrementSortOrder", WRAP_METHOD(Debugger, cmdIncrementSortOrder));
 	registerCmd("GameMapGump::decrementSortOrder", WRAP_METHOD(Debugger, cmdDecrementSortOrder));
+
+	registerCmd("QuickAvatarMoverProcess::startMoveUp", WRAP_METHOD(Debugger, cmdStartMoveUp));
+	registerCmd("QuickAvatarMoverProcess::startMoveDown", WRAP_METHOD(Debugger, cmdStartMoveDown));
+	registerCmd("QuickAvatarMoverProcess::startMoveLeft", WRAP_METHOD(Debugger, cmdStartMoveLeft));
+	registerCmd("QuickAvatarMoverProcess::startMoveRight", WRAP_METHOD(Debugger, cmdStartMoveRight));
+	registerCmd("QuickAvatarMoverProcess::startAscend", WRAP_METHOD(Debugger, cmdStartAscend));
+	registerCmd("QuickAvatarMoverProcess::startDescend", WRAP_METHOD(Debugger, cmdStartDescend));
+	registerCmd("QuickAvatarMoverProcess::stopMoveUp", WRAP_METHOD(Debugger, cmdStopMoveUp));
+	registerCmd("QuickAvatarMoverProcess::stopMoveDown", WRAP_METHOD(Debugger, cmdStopMoveDown));
+	registerCmd("QuickAvatarMoverProcess::stopMoveLeft", WRAP_METHOD(Debugger, cmdStopMoveLeft));
+	registerCmd("QuickAvatarMoverProcess::stopMoveRight", WRAP_METHOD(Debugger, cmdStopMoveRight));
+	registerCmd("QuickAvatarMoverProcess::stopAscend", WRAP_METHOD(Debugger, cmdStopAscend));
+	registerCmd("QuickAvatarMoverProcess::stopDescend", WRAP_METHOD(Debugger, cmdStopDescend));
+	registerCmd("QuickAvatarMoverProcess::toggleQuarterSpeed", WRAP_METHOD(Debugger, cmdToggleQuarterSpeed));
+	registerCmd("QuickAvatarMoverProcess::toggleClipping", WRAP_METHOD(Debugger, cmdToggleClipping));
+
 }
 
 bool Debugger::cmdToggleHighlightItems(int argc, const char **argv) {
@@ -207,5 +224,113 @@ bool Debugger::cmdDecrementSortOrder(int argc, const char **argv) {
 	return false;
 }
 
+
+
+bool Debugger::cmdStartMoveUp(int argc, const char **argv) {
+	if (Ultima8Engine::get_instance()->areCheatsEnabled()) {
+		QuickAvatarMoverProcess::startMover(-64, -64, 0, 0);
+		return false;
+	} else {
+		debugPrintf("Cheats aren't enabled\n");
+		return true;
+	}
+}
+
+bool Debugger::cmdStartMoveDown(int argc, const char **argv) {
+	if (Ultima8Engine::get_instance()->areCheatsEnabled()) {
+		QuickAvatarMoverProcess::startMover(+64, +64, 0, 1);
+		return false;
+	} else {
+		debugPrintf("Cheats aren't enabled\n");
+		return true;
+	}
+}
+
+bool Debugger::cmdStartMoveLeft(int argc, const char **argv) {
+	if (Ultima8Engine::get_instance()->areCheatsEnabled()) {
+		QuickAvatarMoverProcess::startMover(-64, +64, 0, 2);
+		return false;
+	} else {
+		debugPrintf("Cheats aren't enabled\n");
+		return true;
+	}
+}
+
+bool Debugger::cmdStartMoveRight(int argc, const char **argv) {
+	if (Ultima8Engine::get_instance()->areCheatsEnabled()) {
+		QuickAvatarMoverProcess::startMover(+64, -64, 0, 3);
+		return false;
+	} else {
+		debugPrintf("Cheats aren't enabled\n");
+		return true;
+	}
+}
+
+bool Debugger::cmdStartAscend(int argc, const char **argv) {
+	if (Ultima8Engine::get_instance()->areCheatsEnabled()) {
+		QuickAvatarMoverProcess::startMover(0, 0, 8, 4);
+		return false;
+	} else {
+		debugPrintf("Cheats aren't enabled\n");
+		return true;
+	}
+}
+
+bool Debugger::cmdStartDescend(int argc, const char **argv) {
+	if (Ultima8Engine::get_instance()->areCheatsEnabled()) {
+		QuickAvatarMoverProcess::startMover(0, 0, -8, 5);
+		return false;
+	} else {
+		debugPrintf("Cheats aren't enabled\n");
+		return true;
+	}
+}
+
+bool Debugger::cmdStopMoveUp(int argc, const char **argv) {
+	QuickAvatarMoverProcess::terminateMover(0);
+	return false;
+}
+
+bool Debugger::cmdStopMoveDown(int argc, const char **argv) {
+	QuickAvatarMoverProcess::terminateMover(1);
+	return false;
+}
+
+bool Debugger::cmdStopMoveLeft(int argc, const char **argv) {
+	QuickAvatarMoverProcess::terminateMover(2);
+	return false;
+}
+
+bool Debugger::cmdStopMoveRight(int argc, const char **argv) {
+	QuickAvatarMoverProcess::terminateMover(3);
+	return false;
+}
+
+bool Debugger::cmdStopAscend(int argc, const char **argv) {
+	QuickAvatarMoverProcess::terminateMover(4);
+	return false;
+}
+
+bool Debugger::cmdStopDescend(int argc, const char **argv) {
+	QuickAvatarMoverProcess::terminateMover(5);
+	return false;
+}
+
+bool Debugger::cmdToggleQuarterSpeed(int argc, const char **argv) {
+	QuickAvatarMoverProcess::setQuarterSpeed(!QuickAvatarMoverProcess::isQuarterSpeed());
+	return false;
+}
+
+bool Debugger::cmdToggleClipping(int argc, const char **argv) {
+	if (Ultima8Engine::get_instance()->areCheatsEnabled()) {
+		QuickAvatarMoverProcess::toggleClipping();
+		debugPrintf("QuickAvatarMoverProcess::_clipping = %s\n",
+			QuickAvatarMoverProcess::isClipping() ? "true" : "false");
+	} else {
+		debugPrintf("Cheats aren't enabled\n");
+	}
+	return true;
+}
+
 } // 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 f893ac4..2c74270 100644
--- a/engines/ultima/ultima8/misc/debugger.h
+++ b/engines/ultima/ultima8/misc/debugger.h
@@ -35,11 +35,27 @@ class Ultima1Engine;
  */
 class Debugger : public Shared::Debugger {
 private:
+	// Game Map Gump
 	bool cmdToggleHighlightItems(int argc, const char **argv);
 	bool cmdDumpMap(int argc, const char **argvv);
 	bool cmdIncrementSortOrder(int argc, const char **argv);
 	bool cmdDecrementSortOrder(int argc, const char **argv);
 
+	// Quick Avatar Mover Process
+	bool cmdStartMoveUp(int argc, const char **argv);
+	bool cmdStartMoveDown(int argc, const char **argv);
+	bool cmdStartMoveLeft(int argc, const char **argv);
+	bool cmdStartMoveRight(int argc, const char **argv);
+	bool cmdStartAscend(int argc, const char **argv);
+	bool cmdStartDescend(int argc, const char **argv);
+	bool cmdStopMoveUp(int argc, const char **argv);
+	bool cmdStopMoveDown(int argc, const char **argv);
+	bool cmdStopMoveLeft(int argc, const char **argv);
+	bool cmdStopMoveRight(int argc, const char **argv);
+	bool cmdStopAscend(int argc, const char **argv);
+	bool cmdStopDescend(int argc, const char **argv);
+	bool cmdToggleQuarterSpeed(int argc, const char **argv);
+	bool cmdToggleClipping(int argc, const char **argv);
 public:
 	Debugger();
     ~Debugger() override {}
diff --git a/engines/ultima/ultima8/ultima8.cpp b/engines/ultima/ultima8/ultima8.cpp
index 0a40913..5e02897 100644
--- a/engines/ultima/ultima8/ultima8.cpp
+++ b/engines/ultima/ultima8/ultima8.cpp
@@ -215,35 +215,6 @@ bool Ultima8Engine::initialize() {
 	con->AddConsoleCommand("MemoryManager::test",
 		MemoryManager::ConCmd_test);
 
-	con->AddConsoleCommand("QuickAvatarMoverProcess::startMoveUp",
-		QuickAvatarMoverProcess::ConCmd_startMoveUp);
-	con->AddConsoleCommand("QuickAvatarMoverProcess::startMoveDown",
-		QuickAvatarMoverProcess::ConCmd_startMoveDown);
-	con->AddConsoleCommand("QuickAvatarMoverProcess::startMoveLeft",
-		QuickAvatarMoverProcess::ConCmd_startMoveLeft);
-	con->AddConsoleCommand("QuickAvatarMoverProcess::startMoveRight",
-		QuickAvatarMoverProcess::ConCmd_startMoveRight);
-	con->AddConsoleCommand("QuickAvatarMoverProcess::startAscend",
-		QuickAvatarMoverProcess::ConCmd_startAscend);
-	con->AddConsoleCommand("QuickAvatarMoverProcess::startDescend",
-		QuickAvatarMoverProcess::ConCmd_startDescend);
-	con->AddConsoleCommand("QuickAvatarMoverProcess::stopMoveUp",
-		QuickAvatarMoverProcess::ConCmd_stopMoveUp);
-	con->AddConsoleCommand("QuickAvatarMoverProcess::stopMoveDown",
-		QuickAvatarMoverProcess::ConCmd_stopMoveDown);
-	con->AddConsoleCommand("QuickAvatarMoverProcess::stopMoveLeft",
-		QuickAvatarMoverProcess::ConCmd_stopMoveLeft);
-	con->AddConsoleCommand("QuickAvatarMoverProcess::stopMoveRight",
-		QuickAvatarMoverProcess::ConCmd_stopMoveRight);
-	con->AddConsoleCommand("QuickAvatarMoverProcess::stopAscend",
-		QuickAvatarMoverProcess::ConCmd_stopAscend);
-	con->AddConsoleCommand("QuickAvatarMoverProcess::stopDescend",
-		QuickAvatarMoverProcess::ConCmd_stopDescend);
-	con->AddConsoleCommand("QuickAvatarMoverProcess::toggleQuarterSpeed",
-		QuickAvatarMoverProcess::ConCmd_toggleQuarterSpeed);
-	con->AddConsoleCommand("QuickAvatarMoverProcess::toggleClipping",
-		QuickAvatarMoverProcess::ConCmd_toggleClipping);
-
 	con->AddConsoleCommand("AudioProcess::listSFX", AudioProcess::ConCmd_listSFX);
 	con->AddConsoleCommand("AudioProcess::playSFX", AudioProcess::ConCmd_playSFX);
 	con->AddConsoleCommand("AudioProcess::stopSFX", AudioProcess::ConCmd_stopSFX);
@@ -285,21 +256,6 @@ void Ultima8Engine::deinitialize() {
 	con->RemoveConsoleCommand(MemoryManager::ConCmd_MemInfo);
 	con->RemoveConsoleCommand(MemoryManager::ConCmd_test);
 
-	con->RemoveConsoleCommand(QuickAvatarMoverProcess::ConCmd_startMoveUp);
-	con->RemoveConsoleCommand(QuickAvatarMoverProcess::ConCmd_startMoveDown);
-	con->RemoveConsoleCommand(QuickAvatarMoverProcess::ConCmd_startMoveLeft);
-	con->RemoveConsoleCommand(QuickAvatarMoverProcess::ConCmd_startMoveRight);
-	con->RemoveConsoleCommand(QuickAvatarMoverProcess::ConCmd_startAscend);
-	con->RemoveConsoleCommand(QuickAvatarMoverProcess::ConCmd_startDescend);
-	con->RemoveConsoleCommand(QuickAvatarMoverProcess::ConCmd_stopMoveUp);
-	con->RemoveConsoleCommand(QuickAvatarMoverProcess::ConCmd_stopMoveDown);
-	con->RemoveConsoleCommand(QuickAvatarMoverProcess::ConCmd_stopMoveLeft);
-	con->RemoveConsoleCommand(QuickAvatarMoverProcess::ConCmd_stopMoveRight);
-	con->RemoveConsoleCommand(QuickAvatarMoverProcess::ConCmd_stopAscend);
-	con->RemoveConsoleCommand(QuickAvatarMoverProcess::ConCmd_stopDescend);
-	con->RemoveConsoleCommand(QuickAvatarMoverProcess::ConCmd_toggleQuarterSpeed);
-	con->RemoveConsoleCommand(QuickAvatarMoverProcess::ConCmd_toggleClipping);
-
 	con->RemoveConsoleCommand(AudioProcess::ConCmd_listSFX);
 	con->RemoveConsoleCommand(AudioProcess::ConCmd_stopSFX);
 	con->RemoveConsoleCommand(AudioProcess::ConCmd_playSFX);
diff --git a/engines/ultima/ultima8/world/actors/quick_avatar_mover_process.cpp b/engines/ultima/ultima8/world/actors/quick_avatar_mover_process.cpp
index 32f7374..655bbec 100644
--- a/engines/ultima/ultima8/world/actors/quick_avatar_mover_process.cpp
+++ b/engines/ultima/ultima8/world/actors/quick_avatar_mover_process.cpp
@@ -179,69 +179,5 @@ bool QuickAvatarMoverProcess::loadData(IDataSource *ids, uint32 version) {
 	return true;
 }
 
-void QuickAvatarMoverProcess::ConCmd_startMoveUp(const Console::ArgvType &argv) {
-	if (!Ultima8Engine::get_instance()->areCheatsEnabled()) return;
-	QuickAvatarMoverProcess::startMover(-64, -64, 0, 0);
-}
-
-void QuickAvatarMoverProcess::ConCmd_startMoveDown(const Console::ArgvType &argv) {
-	if (!Ultima8Engine::get_instance()->areCheatsEnabled()) return;
-	QuickAvatarMoverProcess::startMover(+64, +64, 0, 1);
-}
-
-void QuickAvatarMoverProcess::ConCmd_startMoveLeft(const Console::ArgvType &argv) {
-	if (!Ultima8Engine::get_instance()->areCheatsEnabled()) return;
-	QuickAvatarMoverProcess::startMover(-64, +64, 0, 2);
-}
-
-void QuickAvatarMoverProcess::ConCmd_startMoveRight(const Console::ArgvType &argv) {
-	if (!Ultima8Engine::get_instance()->areCheatsEnabled()) return;
-	QuickAvatarMoverProcess::startMover(+64, -64, 0, 3);
-}
-
-void QuickAvatarMoverProcess::ConCmd_startAscend(const Console::ArgvType &argv) {
-	if (!Ultima8Engine::get_instance()->areCheatsEnabled()) return;
-	QuickAvatarMoverProcess::startMover(0, 0, 8, 4);
-}
-
-void QuickAvatarMoverProcess::ConCmd_startDescend(const Console::ArgvType &argv) {
-	if (!Ultima8Engine::get_instance()->areCheatsEnabled()) return;
-	QuickAvatarMoverProcess::startMover(0, 0, -8, 5);
-}
-
-void QuickAvatarMoverProcess::ConCmd_stopMoveUp(const Console::ArgvType &argv) {
-	QuickAvatarMoverProcess::terminateMover(0);
-}
-
-void QuickAvatarMoverProcess::ConCmd_stopMoveDown(const Console::ArgvType &argv) {
-	QuickAvatarMoverProcess::terminateMover(1);
-}
-
-void QuickAvatarMoverProcess::ConCmd_stopMoveLeft(const Console::ArgvType &argv) {
-	QuickAvatarMoverProcess::terminateMover(2);
-}
-
-void QuickAvatarMoverProcess::ConCmd_stopMoveRight(const Console::ArgvType &argv) {
-	QuickAvatarMoverProcess::terminateMover(3);
-}
-
-void QuickAvatarMoverProcess::ConCmd_stopAscend(const Console::ArgvType &argv) {
-	QuickAvatarMoverProcess::terminateMover(4);
-}
-
-void QuickAvatarMoverProcess::ConCmd_stopDescend(const Console::ArgvType &argv) {
-	QuickAvatarMoverProcess::terminateMover(5);
-}
-
-void QuickAvatarMoverProcess::ConCmd_toggleQuarterSpeed(const Console::ArgvType &argv) {
-	QuickAvatarMoverProcess::setQuarterSpeed(!QuickAvatarMoverProcess::isQuarterSpeed());
-}
-
-void QuickAvatarMoverProcess::ConCmd_toggleClipping(const Console::ArgvType &argv) {
-	if (!Ultima8Engine::get_instance()->areCheatsEnabled()) return;
-	QuickAvatarMoverProcess::toggleClipping();
-	pout << "QuickAvatarMoverProcess::_clipping = " << QuickAvatarMoverProcess::isClipping() << Std::endl;
-}
-
 } // End of namespace Ultima8
 } // End of namespace Ultima
diff --git a/engines/ultima/ultima8/world/actors/quick_avatar_mover_process.h b/engines/ultima/ultima8/world/actors/quick_avatar_mover_process.h
index 34082ec..d9af3c5 100644
--- a/engines/ultima/ultima8/world/actors/quick_avatar_mover_process.h
+++ b/engines/ultima/ultima8/world/actors/quick_avatar_mover_process.h
@@ -57,23 +57,6 @@ public:
 	static void terminateMover(int _dir);
 	static void startMover(int x, int y, int z, int _dir);
 
-	static void ConCmd_startMoveUp(const Console::ArgvType &argv);
-	static void ConCmd_startMoveDown(const Console::ArgvType &argv);
-	static void ConCmd_startMoveLeft(const Console::ArgvType &argv);
-	static void ConCmd_startMoveRight(const Console::ArgvType &argv);
-	static void ConCmd_startAscend(const Console::ArgvType &argv);
-	static void ConCmd_startDescend(const Console::ArgvType &argv);
-
-	static void ConCmd_stopMoveUp(const Console::ArgvType &argv);
-	static void ConCmd_stopMoveDown(const Console::ArgvType &argv);
-	static void ConCmd_stopMoveLeft(const Console::ArgvType &argv);
-	static void ConCmd_stopMoveRight(const Console::ArgvType &argv);
-	static void ConCmd_stopAscend(const Console::ArgvType &argv);
-	static void ConCmd_stopDescend(const Console::ArgvType &argv);
-
-	static void ConCmd_toggleQuarterSpeed(const Console::ArgvType &argv);
-	static void ConCmd_toggleClipping(const Console::ArgvType &argv);
-
 	bool loadData(IDataSource *ids, uint32 version);
 protected:
 	void saveData(ODataSource *ods) override;


Commit: 46c68a4545357e0f1c7a240e95873e2c042dcda7
    https://github.com/scummvm/scummvm/commit/46c68a4545357e0f1c7a240e95873e2c042dcda7
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-20T21:15:37-08:00

Commit Message:
ULTIMA8: Moved audio process console cmds to Debugger

Changed paths:
    engines/ultima/ultima8/audio/audio_process.cpp
    engines/ultima/ultima8/audio/audio_process.h
    engines/ultima/ultima8/kernel/process.h
    engines/ultima/ultima8/misc/debugger.cpp
    engines/ultima/ultima8/misc/debugger.h
    engines/ultima/ultima8/ultima8.cpp


diff --git a/engines/ultima/ultima8/audio/audio_process.cpp b/engines/ultima/ultima8/audio/audio_process.cpp
index 0b690bd..4472d7e 100644
--- a/engines/ultima/ultima8/audio/audio_process.cpp
+++ b/engines/ultima/ultima8/audio/audio_process.cpp
@@ -103,7 +103,7 @@ void AudioProcess::run() {
 
 	// Update the channels
 	Std::list<SampleInfo>::iterator it;
-	for (it = sample_info.begin(); it != sample_info.end();) {
+	for (it = _sampleInfo.begin(); it != _sampleInfo.end();) {
 		bool finished = false;
 		if (!mixer->isPlaying(it->_channel)) {
 			if (it->_sfxNum == -1)
@@ -113,7 +113,7 @@ void AudioProcess::run() {
 		}
 
 		if (finished)
-			it = sample_info.erase(it);
+			it = _sampleInfo.erase(it);
 		else {
 
 			if (it->_sfxNum != -1 && it->_objId) {
@@ -160,10 +160,10 @@ bool AudioProcess::continueSpeech(SampleInfo &si) {
 void AudioProcess::saveData(ODataSource *ods) {
 	Process::saveData(ods);
 
-	ods->write1(static_cast<uint8>(sample_info.size()));
+	ods->write1(static_cast<uint8>(_sampleInfo.size()));
 
 	Std::list<SampleInfo>::iterator it;
-	for (it = sample_info.begin(); it != sample_info.end(); ++it) {
+	for (it = _sampleInfo.begin(); it != _sampleInfo.end(); ++it) {
 		ods->write2(it->_sfxNum);
 		ods->write2(it->_priority);
 		ods->write2(it->_objId);
@@ -223,9 +223,9 @@ int AudioProcess::playSample(AudioSample *sample, int _priority, int _loops, uin
 
 	// Erase old sample using _channel (if any)
 	Std::list<SampleInfo>::iterator it;
-	for (it = sample_info.begin(); it != sample_info.end();) {
+	for (it = _sampleInfo.begin(); it != _sampleInfo.end();) {
 		if (it->_channel == _channel) {
-			it = sample_info.erase(it);
+			it = _sampleInfo.erase(it);
 		} else {
 			++it;
 		}
@@ -245,7 +245,7 @@ void AudioProcess::playSFX(int _sfxNum, int _priority, ObjId _objId, int _loops,
 
 	if (no_duplicates) {
 		Std::list<SampleInfo>::iterator it;
-		for (it = sample_info.begin(); it != sample_info.end();) {
+		for (it = _sampleInfo.begin(); it != _sampleInfo.end();) {
 			if (it->_sfxNum == _sfxNum && it->_objId == _objId &&
 			        it->_loops == _loops) {
 
@@ -255,7 +255,7 @@ void AudioProcess::playSFX(int _sfxNum, int _priority, ObjId _objId, int _loops,
 					pout << "Sound already playing" << Std::endl;
 					return;
 				} else {
-					it = sample_info.erase(it);
+					it = _sampleInfo.erase(it);
 					continue;
 				}
 			}
@@ -277,7 +277,7 @@ void AudioProcess::playSFX(int _sfxNum, int _priority, ObjId _objId, int _loops,
 	if (_channel == -1) return;
 
 	// Update list
-	sample_info.push_back(SampleInfo(_sfxNum, _priority, _objId, _loops, _channel, _pitchShift, _volume, _lVol, _rVol));
+	_sampleInfo.push_back(SampleInfo(_sfxNum, _priority, _objId, _loops, _channel, _pitchShift, _volume, _lVol, _rVol));
 }
 
 void AudioProcess::stopSFX(int _sfxNum, ObjId _objId) {
@@ -286,10 +286,10 @@ void AudioProcess::stopSFX(int _sfxNum, ObjId _objId) {
 	AudioMixer *mixer = AudioMixer::get_instance();
 
 	Std::list<SampleInfo>::iterator it;
-	for (it = sample_info.begin(); it != sample_info.end();) {
+	for (it = _sampleInfo.begin(); it != _sampleInfo.end();) {
 		if (it->_sfxNum == _sfxNum && it->_objId == _objId) {
 			if (mixer->isPlaying(it->_channel)) mixer->stopSample(it->_channel);
-			it = sample_info.erase(it);
+			it = _sampleInfo.erase(it);
 		} else {
 			++it;
 		}
@@ -300,7 +300,7 @@ bool AudioProcess::isSFXPlaying(int _sfxNum) {
 	//con->Printf("isSFXPlaying(%i)\n", _sfxNum);
 
 	Std::list<SampleInfo>::iterator it;
-	for (it = sample_info.begin(); it != sample_info.end(); ++it) {
+	for (it = _sampleInfo.begin(); it != _sampleInfo.end(); ++it) {
 		if (it->_sfxNum == _sfxNum)
 			return true;
 	}
@@ -313,7 +313,7 @@ void AudioProcess::setVolumeSFX(int _sfxNum, uint8 _volume) {
 	AudioMixer *mixer = AudioMixer::get_instance();
 
 	Std::list<SampleInfo>::iterator it;
-	for (it = sample_info.begin(); it != sample_info.end(); ++it) {
+	for (it = _sampleInfo.begin(); it != _sampleInfo.end(); ++it) {
 		if (it->_sfxNum == _sfxNum && it->_sfxNum != -1) {
 			it->_volume = _volume;
 
@@ -336,7 +336,7 @@ bool AudioProcess::playSpeech(Std::string &_barked, int shapenum, ObjId _objId,
 	AudioMixer *mixer = AudioMixer::get_instance();
 
 	Std::list<SampleInfo>::iterator it;
-	for (it = sample_info.begin(); it != sample_info.end();) {
+	for (it = _sampleInfo.begin(); it != _sampleInfo.end();) {
 
 		if (it->_sfxNum == -1 && it->_barked == _barked &&
 		        it->_priority == shapenum && it->_objId == _objId) {
@@ -345,7 +345,7 @@ bool AudioProcess::playSpeech(Std::string &_barked, int shapenum, ObjId _objId,
 				pout << "Speech already playing" << Std::endl;
 				return true;
 			} else {
-				it = sample_info.erase(it);
+				it = _sampleInfo.erase(it);
 				continue;
 			}
 		}
@@ -366,7 +366,7 @@ bool AudioProcess::playSpeech(Std::string &_barked, int shapenum, ObjId _objId,
 	if (_channel == -1) return false;
 
 	// Update list
-	sample_info.push_back(SampleInfo(_barked, shapenum, _objId, _channel,
+	_sampleInfo.push_back(SampleInfo(_barked, shapenum, _objId, _channel,
 	                                 speech_start, speech_end, _pitchShift, _volume, 256, 256));
 
 	return true;
@@ -384,11 +384,11 @@ void AudioProcess::stopSpeech(Std::string &_barked, int shapenum, ObjId _objId)
 	AudioMixer *mixer = AudioMixer::get_instance();
 
 	Std::list<SampleInfo>::iterator it;
-	for (it = sample_info.begin(); it != sample_info.end();) {
+	for (it = _sampleInfo.begin(); it != _sampleInfo.end();) {
 		if (it->_sfxNum == -1 && it->_priority == shapenum &&
 		        it->_objId == _objId && it->_barked == _barked) {
 			if (mixer->isPlaying(it->_channel)) mixer->stopSample(it->_channel);
-			it = sample_info.erase(it);
+			it = _sampleInfo.erase(it);
 		} else {
 			++it;
 		}
@@ -397,7 +397,7 @@ void AudioProcess::stopSpeech(Std::string &_barked, int shapenum, ObjId _objId)
 
 bool AudioProcess::isSpeechPlaying(Std::string &_barked, int shapenum) {
 	Std::list<SampleInfo>::iterator it;
-	for (it = sample_info.begin(); it != sample_info.end(); ++it) {
+	for (it = _sampleInfo.begin(); it != _sampleInfo.end(); ++it) {
 		if (it->_sfxNum == -1 && it->_priority == shapenum &&
 		        it->_barked == _barked) {
 			return true;
@@ -414,12 +414,12 @@ void AudioProcess::pauseAllSamples() {
 	AudioMixer *mixer = AudioMixer::get_instance();
 
 	Std::list<SampleInfo>::iterator it;
-	for (it = sample_info.begin(); it != sample_info.end();) {
+	for (it = _sampleInfo.begin(); it != _sampleInfo.end();) {
 		if (mixer->isPlaying(it->_channel)) {
 			mixer->setPaused(it->_channel, true);
 			++it;
 		} else {
-			it = sample_info.erase(it);
+			it = _sampleInfo.erase(it);
 		}
 
 	}
@@ -433,12 +433,12 @@ void AudioProcess::unpauseAllSamples() {
 	AudioMixer *mixer = AudioMixer::get_instance();
 
 	Std::list<SampleInfo>::iterator it;
-	for (it = sample_info.begin(); it != sample_info.end();) {
+	for (it = _sampleInfo.begin(); it != _sampleInfo.end();) {
 		if (mixer->isPlaying(it->_channel)) {
 			mixer->setPaused(it->_channel, false);
 			++it;
 		} else {
-			it = sample_info.erase(it);
+			it = _sampleInfo.erase(it);
 		}
 
 	}
@@ -449,10 +449,10 @@ void AudioProcess::stopAllExceptSpeech() {
 	AudioMixer *mixer = AudioMixer::get_instance();
 
 	Std::list<SampleInfo>::iterator it;
-	for (it = sample_info.begin(); it != sample_info.end();) {
+	for (it = _sampleInfo.begin(); it != _sampleInfo.end();) {
 		if (it->_barked.empty()) {
 			if (mixer->isPlaying(it->_channel)) mixer->stopSample(it->_channel);
-			it = sample_info.erase(it);
+			it = _sampleInfo.erase(it);
 		} else {
 			++it;
 		}
@@ -545,61 +545,5 @@ uint32 AudioProcess::I_stopSFX(const uint8 *args, unsigned int argsize) {
 	return 0;
 }
 
-// static
-void AudioProcess::ConCmd_listSFX(const Console::ArgvType &argv) {
-	AudioProcess *ap = AudioProcess::get_instance();
-	if (!ap) {
-		perr << "Error: No AudioProcess" << Std::endl;
-		return;
-	}
-
-	Std::list<SampleInfo>::iterator it;
-	for (it = ap->sample_info.begin(); it != ap->sample_info.end(); ++it) {
-		pout.Print("Sample: num %d, obj %d, loop %d, prio %d",
-		            it->_sfxNum, it->_objId, it->_loops, it->_priority);
-		if (!it->_barked.empty()) {
-			pout << ", speech: \"" << it->_barked.substr(it->_curSpeechStart, it->_curSpeechEnd - it->_curSpeechStart) << "\"";
-		}
-		pout << Std::endl;
-	}
-}
-
-// static
-void AudioProcess::ConCmd_stopSFX(const Console::ArgvType &argv) {
-	AudioProcess *ap = AudioProcess::get_instance();
-	if (!ap) {
-		perr << "Error: No AudioProcess" << Std::endl;
-		return;
-	}
-
-	if (argv.size() < 2) {
-		pout << "usage: stopSFX <_sfxNum> [<_objId>]" << Std::endl;
-		return;
-	}
-
-	int _sfxNum = static_cast<int>(strtol(argv[1].c_str(), 0, 0));
-	ObjId _objId = (argv.size() >= 3) ? static_cast<ObjId>(strtol(argv[2].c_str(), 0, 0)) : 0;
-
-	ap->stopSFX(_sfxNum, _objId);
-}
-
-// static
-void AudioProcess::ConCmd_playSFX(const Console::ArgvType &argv) {
-	AudioProcess *ap = AudioProcess::get_instance();
-	if (!ap) {
-		perr << "Error: No AudioProcess" << Std::endl;
-		return;
-	}
-
-	if (argv.size() < 2) {
-		pout << "usage: playSFX <_sfxNum>" << Std::endl;
-		return;
-	}
-
-	int _sfxNum = static_cast<int>(strtol(argv[1].c_str(), 0, 0));
-
-	ap->playSFX(_sfxNum, 0x60, 0, 0);
-}
-
 } // End of namespace Ultima8
 } // End of namespace Ultima
diff --git a/engines/ultima/ultima8/audio/audio_process.h b/engines/ultima/ultima8/audio/audio_process.h
index b4b05d4..fba6896 100644
--- a/engines/ultima/ultima8/audio/audio_process.h
+++ b/engines/ultima/ultima8/audio/audio_process.h
@@ -34,8 +34,8 @@ namespace Ultima8 {
 
 class AudioSample;
 
-class AudioProcess :
-	public Process {
+class AudioProcess : public Process {
+public:
 	struct SampleInfo {
 		int32       _sfxNum;
 		int32       _priority;
@@ -60,8 +60,7 @@ class AudioProcess :
 			_lVol(lv), _rVol(rv) { }
 	};
 
-	Std::list<SampleInfo>   sample_info;
-
+	Std::list<SampleInfo> _sampleInfo;
 public:
 	// p_dynamic_class stuff
 	ENABLE_RUNTIME_CLASSTYPE()
@@ -80,11 +79,6 @@ public:
 	INTRINSIC(I_setVolumeSFX);
 	INTRINSIC(I_stopSFX);
 
-	static void ConCmd_listSFX(const Console::ArgvType &argv);
-	static void ConCmd_stopSFX(const Console::ArgvType &argv);
-	static void ConCmd_playSFX(const Console::ArgvType &argv);
-
-
 	void run() override;
 
 	void playSFX(int _sfxNum, int _priority, ObjId _objId, int _loops,
diff --git a/engines/ultima/ultima8/kernel/process.h b/engines/ultima/ultima8/kernel/process.h
index 62bcd95..dca4c1d 100644
--- a/engines/ultima/ultima8/kernel/process.h
+++ b/engines/ultima/ultima8/kernel/process.h
@@ -25,6 +25,7 @@
 
 #include "ultima/shared/std/containers.h"
 #include "ultima/ultima8/misc/p_dynamic_cast.h"
+#include "ultima/ultima8/misc/pent_include.h"
 
 namespace Ultima {
 namespace Ultima8 {
diff --git a/engines/ultima/ultima8/misc/debugger.cpp b/engines/ultima/ultima8/misc/debugger.cpp
index bf71466..aae6d81 100644
--- a/engines/ultima/ultima8/misc/debugger.cpp
+++ b/engines/ultima/ultima8/misc/debugger.cpp
@@ -22,6 +22,7 @@
 
 #include "ultima/ultima8/misc/debugger.h"
 #include "ultima/ultima8/ultima8.h"
+#include "ultima/ultima8/audio/audio_process.h"
 #include "ultima/ultima8/gumps/game_map_gump.h"
 #include "ultima/ultima8/world/actors/quick_avatar_mover_process.h"
 
@@ -29,6 +30,10 @@ namespace Ultima {
 namespace Ultima8 {
 
 Debugger::Debugger() : Shared::Debugger() {
+	registerCmd("AudioProcess::listSFX", WRAP_METHOD(Debugger, cmdListSFX));
+	registerCmd("AudioProcess::playSFX", WRAP_METHOD(Debugger, cmdPlaySFX));
+	registerCmd("AudioProcess::stopSFX", WRAP_METHOD(Debugger, cmdStopSFX));
+
 	registerCmd("GameMapGump::toggleHighlightItems", WRAP_METHOD(Debugger, cmdToggleHighlightItems));
 	registerCmd("GameMapGump::dumpMap", WRAP_METHOD(Debugger, cmdDumpMap));
 	registerCmd("GameMapGump::incrementSortOrder", WRAP_METHOD(Debugger, cmdIncrementSortOrder));
@@ -51,6 +56,60 @@ Debugger::Debugger() : Shared::Debugger() {
 
 }
 
+
+bool Debugger::cmdListSFX(int argc, const char **argv) {
+	AudioProcess *ap = AudioProcess::get_instance();
+	if (!ap) {
+		debugPrintf("Error: No AudioProcess\n");
+
+	} else {
+		Std::list<AudioProcess::SampleInfo>::iterator it;
+		for (it = ap->_sampleInfo.begin(); it != ap->_sampleInfo.end(); ++it) {
+			debugPrintf("Sample: num %d, obj %d, loop %d, prio %d",
+				it->_sfxNum, it->_objId, it->_loops, it->_priority);
+			if (!it->_barked.empty()) {
+				debugPrintf(", speech: \"%s\"",
+					it->_barked.substr(it->_curSpeechStart, it->_curSpeechEnd - it->_curSpeechStart).c_str());
+			}
+			debugPrintf("\n");
+		}
+	}
+
+	return true;
+}
+
+bool Debugger::cmdStopSFX(int argc, const char **argv) {
+	AudioProcess *ap = AudioProcess::get_instance();
+	if (!ap) {
+		debugPrintf("Error: No AudioProcess\n");
+		return true;
+	} else if (argc < 2) {
+		debugPrintf("usage: stopSFX <_sfxNum> [<_objId>]\n");
+		return true;
+	} else {
+		int _sfxNum = static_cast<int>(strtol(argv[1], 0, 0));
+		ObjId _objId = (argc >= 3) ? static_cast<ObjId>(strtol(argv[2], 0, 0)) : 0;
+
+		ap->stopSFX(_sfxNum, _objId);
+		return false;
+	}
+}
+
+bool Debugger::cmdPlaySFX(int argc, const char **argv) {
+	AudioProcess *ap = AudioProcess::get_instance();
+	if (!ap) {
+		debugPrintf("Error: No AudioProcess\n");
+		return true;
+	} else if (argc < 2) {
+		debugPrintf("usage: playSFX <_sfxNum>\n");
+		return true;
+	} else {
+		int _sfxNum = static_cast<int>(strtol(argv[1], 0, 0));
+		ap->playSFX(_sfxNum, 0x60, 0, 0);
+		return false;
+	}
+}
+
 bool Debugger::cmdToggleHighlightItems(int argc, const char **argv) {
 	GameMapGump::Set_highlightItems(!GameMapGump::is_highlightItems());
 	return false;
diff --git a/engines/ultima/ultima8/misc/debugger.h b/engines/ultima/ultima8/misc/debugger.h
index 2c74270..b767577 100644
--- a/engines/ultima/ultima8/misc/debugger.h
+++ b/engines/ultima/ultima8/misc/debugger.h
@@ -35,6 +35,11 @@ class Ultima1Engine;
  */
 class Debugger : public Shared::Debugger {
 private:
+	// Audio Process
+	bool cmdListSFX(int argc, const char **argv);
+	bool cmdStopSFX(int argc, const char **argv);
+	bool cmdPlaySFX(int argc, const char **argv);
+
 	// Game Map Gump
 	bool cmdToggleHighlightItems(int argc, const char **argv);
 	bool cmdDumpMap(int argc, const char **argvv);
diff --git a/engines/ultima/ultima8/ultima8.cpp b/engines/ultima/ultima8/ultima8.cpp
index 5e02897..ac6bc62 100644
--- a/engines/ultima/ultima8/ultima8.cpp
+++ b/engines/ultima/ultima8/ultima8.cpp
@@ -215,10 +215,6 @@ bool Ultima8Engine::initialize() {
 	con->AddConsoleCommand("MemoryManager::test",
 		MemoryManager::ConCmd_test);
 
-	con->AddConsoleCommand("AudioProcess::listSFX", AudioProcess::ConCmd_listSFX);
-	con->AddConsoleCommand("AudioProcess::playSFX", AudioProcess::ConCmd_playSFX);
-	con->AddConsoleCommand("AudioProcess::stopSFX", AudioProcess::ConCmd_stopSFX);
-
 	return true;
 }
 
@@ -255,10 +251,6 @@ void Ultima8Engine::deinitialize() {
 	con->RemoveConsoleCommand(ObjectManager::ConCmd_objectInfo);
 	con->RemoveConsoleCommand(MemoryManager::ConCmd_MemInfo);
 	con->RemoveConsoleCommand(MemoryManager::ConCmd_test);
-
-	con->RemoveConsoleCommand(AudioProcess::ConCmd_listSFX);
-	con->RemoveConsoleCommand(AudioProcess::ConCmd_stopSFX);
-	con->RemoveConsoleCommand(AudioProcess::ConCmd_playSFX);
 }
 
 void Ultima8Engine::startup() {


Commit: 93aa5997c6a8d7babef41482c347c4248d4b8b92
    https://github.com/scummvm/scummvm/commit/93aa5997c6a8d7babef41482c347c4248d4b8b92
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-02-20T22:04:57-08:00

Commit Message:
ULTIMA8: Moving console methods into Debugger

Changed paths:
    engines/ultima/ultima8/kernel/hid_manager.cpp
    engines/ultima/ultima8/kernel/hid_manager.h
    engines/ultima/ultima8/kernel/kernel.cpp
    engines/ultima/ultima8/kernel/kernel.h
    engines/ultima/ultima8/kernel/memory_manager.cpp
    engines/ultima/ultima8/kernel/memory_manager.h
    engines/ultima/ultima8/kernel/object_manager.cpp
    engines/ultima/ultima8/kernel/object_manager.h
    engines/ultima/ultima8/kernel/process.h
    engines/ultima/ultima8/misc/debugger.cpp
    engines/ultima/ultima8/misc/debugger.h
    engines/ultima/ultima8/ultima8.cpp


diff --git a/engines/ultima/ultima8/kernel/hid_manager.cpp b/engines/ultima/ultima8/kernel/hid_manager.cpp
index 794a7ca..c922477 100644
--- a/engines/ultima/ultima8/kernel/hid_manager.cpp
+++ b/engines/ultima/ultima8/kernel/hid_manager.cpp
@@ -189,52 +189,6 @@ void HIDManager::unbind(const istring &control) {
 	bind(control, command);
 }
 
-void HIDManager::ConCmd_bind(const Console::ArgvType &argv) {
-	Console::ArgvType argv2;
-	Console::ArgvType::const_iterator it;
-	if (argv.size() < 3) {
-		if (! argv.empty())
-			pout << "Usage: " << argv[0] << " <key> <action> [<arg> ...]: binds a key or button to an action" << Std::endl;
-		return;
-	}
-	HIDManager *hid = HIDManager::get_instance();
-
-	istring control(argv[1]);
-
-	it = argv.begin();
-	++it;
-	++it;
-	argv2.assign(it, argv.end());
-
-	hid->bind(control, argv2);
-}
-
-void HIDManager::ConCmd_unbind(const Console::ArgvType &argv) {
-	if (argv.size() != 2) {
-		if (! argv.empty())
-			pout << "Usage: " << argv[0] << " <key>: unbinds a key or button" << Std::endl;
-		return;
-	}
-	HIDManager *hid = HIDManager::get_instance();
-
-	istring control(argv[1]);
-
-	hid->unbind(control);
-}
-
-void HIDManager::ConCmd_listbinds(const Console::ArgvType &argv) {
-	HIDManager *hid = HIDManager::get_instance();
-	hid->listBindings();
-}
-
-void HIDManager::ConCmd_save(const Console::ArgvType &argv) {
-	HIDManager *hid = HIDManager::get_instance();
-	hid->saveBindings();
-
-	SettingManager *settings = SettingManager::get_instance();
-	settings->write();
-}
-
 void HIDManager::listBindings() {
 	uint16 key, event;
 	Console::ArgsType command;
diff --git a/engines/ultima/ultima8/kernel/hid_manager.h b/engines/ultima/ultima8/kernel/hid_manager.h
index 95765a9..5d5684c 100644
--- a/engines/ultima/ultima8/kernel/hid_manager.h
+++ b/engines/ultima/ultima8/kernel/hid_manager.h
@@ -36,8 +36,6 @@ private:
 	Std::vector<Console::ArgvType *> _commands;
 	typedef Common::HashMap<uint32, Console::ArgvType *> Bindings;
 	Bindings _bindings;
-
-	void listBindings();
 public:
 	HIDManager();
 	~HIDManager();
@@ -47,6 +45,8 @@ public:
 		return _hidManager;
 	}
 
+	void listBindings();
+
 	//! execute the Console command associated with the event
 	//! \param key a HID_KEY used to find an appropriate Console command
 	//! \param events is a bitset of event/flags
@@ -74,18 +74,6 @@ public:
 	//! removes all controls to a HIDBinding or the binding to one specified key
 	//! \param bindingName name of a HIDBinding or the name of key
 	void unbind(const istring &control);
-
-	//! "bind" console command
-	static void ConCmd_bind(const Console::ArgvType &argv);
-
-	//! "unbind" console command
-	static void ConCmd_unbind(const Console::ArgvType &argv);
-
-	//! "listbinds" console command
-	static void ConCmd_listbinds(const Console::ArgvType &argv);
-
-	//! "save" console command
-	static void ConCmd_save(const Console::ArgvType &argv);
 };
 
 } // End of namespace Ultima8
diff --git a/engines/ultima/ultima8/kernel/kernel.cpp b/engines/ultima/ultima8/kernel/kernel.cpp
index 8e9b052..2a3ceb3 100644
--- a/engines/ultima/ultima8/kernel/kernel.cpp
+++ b/engines/ultima/ultima8/kernel/kernel.cpp
@@ -32,8 +32,6 @@
 namespace Ultima {
 namespace Ultima8 {
 
-typedef Std::list<Process *>::iterator ProcessIterator;
-
 Kernel *Kernel::kernel = 0;
 
 Kernel::Kernel() : loading(false) {
@@ -257,70 +255,6 @@ void Kernel::processTypes() {
 	}
 }
 
-void Kernel::ConCmd_processTypes(const Console::ArgvType & /*argv*/) {
-	Kernel::get_instance()->processTypes();
-}
-
-void Kernel::ConCmd_listProcesses(const Console::ArgvType &argv) {
-	if (argv.size() > 2) {
-		pout << "usage: listProcesses [<itemnum>]" << Std::endl;
-		return;
-	}
-
-	Kernel *kern = Kernel::get_instance();
-	ObjId item = 0;
-	if (argv.size() == 2) {
-		item = static_cast<ObjId>(strtol(argv[1].c_str(), 0, 0));
-		pout << "Processes for item " << item << ":" << Std::endl;
-	} else {
-		pout << "Processes:" << Std::endl;
-	}
-	for (ProcessIterator it = kern->processes.begin();
-	        it != kern->processes.end(); ++it) {
-		Process *p = *it;
-		if (argv.size() == 1 || p->_itemNum == item)
-			p->dumpInfo();
-	}
-
-}
-
-void Kernel::ConCmd_processInfo(const Console::ArgvType &argv) {
-	if (argv.size() != 2) {
-		pout << "usage: processInfo <objectnum>" << Std::endl;
-		return;
-	}
-
-	Kernel *kern = Kernel::get_instance();
-
-	ProcId procid = static_cast<ProcId>(strtol(argv[1].c_str(), 0, 0));
-
-	Process *p = kern->getProcess(procid);
-	if (p == 0) {
-		pout << "No such process: " << procid << Std::endl;
-	} else {
-		p->dumpInfo();
-	}
-}
-
-void Kernel::ConCmd_toggleFrameByFrame(const Console::ArgvType &argv) {
-	Kernel *kern = Kernel::get_instance();
-	bool fbf = !kern->isFrameByFrame();
-	kern->setFrameByFrame(fbf);
-	pout << "FrameByFrame = " << fbf << Std::endl;
-	if (fbf)
-		kern->pause();
-	else
-		kern->unpause();
-}
-
-void Kernel::ConCmd_advanceFrame(const Console::ArgvType &argv) {
-	Kernel *kern = Kernel::get_instance();
-	if (kern->isFrameByFrame()) {
-		kern->unpause();
-		pout << "FrameByFrame: Next Frame" << Std::endl;
-	}
-}
-
 uint32 Kernel::getNumProcesses(ObjId objid, uint16 processtype) {
 	uint32 count = 0;
 
diff --git a/engines/ultima/ultima8/kernel/kernel.h b/engines/ultima/ultima8/kernel/kernel.h
index 01f2523..18b6433 100644
--- a/engines/ultima/ultima8/kernel/kernel.h
+++ b/engines/ultima/ultima8/kernel/kernel.h
@@ -29,6 +29,7 @@
 namespace Ultima {
 namespace Ultima8 {
 
+class Debugger;
 class Process;
 class idMan;
 class IDataSource;
@@ -36,8 +37,11 @@ class ODataSource;
 
 typedef Process *(*ProcessLoadFunc)(IDataSource *, uint32 version);
 typedef Std::list<Process *>::const_iterator ProcessIter;
+typedef Std::list<Process *>::iterator ProcessIterator;
+
 
 class Kernel {
+	friend class Debugger;
 public:
 	Kernel();
 	~Kernel();
@@ -123,18 +127,6 @@ public:
 		return _frameNum;
 	};
 
-	//! "Kernel::processTypes" console command
-	static void ConCmd_processTypes(const Console::ArgvType &argv);
-	//! "Kernel::listProcesses" console command
-	static void ConCmd_listProcesses(const Console::ArgvType &argv);
-	//! "Kernel::processInfo" console command
-	static void ConCmd_processInfo(const Console::ArgvType &argv);
-
-	//! "Kernel::toggleFrameByFrame" console command
-	static void ConCmd_toggleFrameByFrame(const Console::ArgvType &argv);
-	//! "Kernel::advanceFrame" console command
-	static void ConCmd_advanceFrame(const Console::ArgvType &argv);
-
 	INTRINSIC(I_getNumProcesses);
 	INTRINSIC(I_resetRef);
 private:
diff --git a/engines/ultima/ultima8/kernel/memory_manager.cpp b/engines/ultima/ultima8/kernel/memory_manager.cpp
index 39572ea..1e24b2a 100644
--- a/engines/ultima/ultima8/kernel/memory_manager.cpp
+++ b/engines/ultima/ultima8/kernel/memory_manager.cpp
@@ -93,142 +93,5 @@ void MemoryManager::freeResources() {
 	}
 }
 
-void MemoryManager::ConCmd_MemInfo(const Console::ArgvType &argv) {
-	MemoryManager *mm = MemoryManager::get_instance();
-	int i, count;
-
-	if (!mm)
-		return;
-
-	count = mm->getAllocatorCount();
-	pout << "Allocators: " << count << Std::endl;
-	for (i = 0; i < count; ++i) {
-		pout << " Allocator " << i << ": " << Std::endl;
-		mm->getAllocator(i)->printInfo();
-		pout << "==============" << Std::endl;
-	}
-}
-
-#ifdef DEBUG
-
-#include <SDL.h>
-// Test classes purely here to check the speed of Allocators vs. normal allocation
-class TestClassBase {
-public:
-	TestClassBase() {
-		next = 0;
-	}
-
-	virtual ~TestClassBase() {
-	}
-
-	void setNext(TestClassBase *n) {
-		n->next = next;
-		next = n;
-	}
-
-	void removeNext() {
-		TestClassBase *n;
-		if (! next)
-			return;
-		n = next;
-		next = n->next;
-		delete n;
-	}
-
-	ENABLE_RUNTIME_CLASSTYPE()
-
-	TestClassBase *next;
-	int arr[32];
-};
-
-DEFINE_RUNTIME_CLASSTYPE_CODE_BASE_CLASS(TestClassBase)
-
-class TestClassOne: public TestClassBase {
-public:
-	TestClassOne() {
-	}
-
-	virtual ~TestClassOne() {
-	}
-
-	ENABLE_RUNTIME_CLASSTYPE()
-};
-
-DEFINE_RUNTIME_CLASSTYPE_CODE(TestClassOne, TestClassBase)
-
-
-class TestClassTwo: public TestClassBase {
-public:
-	TestClassTwo() {
-	}
-
-	virtual ~TestClassTwo() {
-	}
-
-	ENABLE_RUNTIME_CLASSTYPE()
-	ENABLE_CUSTOM_MEMORY_ALLOCATION()
-};
-
-DEFINE_RUNTIME_CLASSTYPE_CODE(TestClassTwo, TestClassBase)
-DEFINE_CUSTOM_MEMORY_ALLOCATION(TestClassTwo)
-
-void MemoryManager::ConCmd_test(const Console::ArgvType &argv) {
-	// Just some numbers of classes to allocate and free
-	int a[10] = {1000, 1231, 2423, 1233, 3213, 2554, 1123, 2432, 3311, 1022};
-	int b[10] = {900, 1111, 2321, 1000, 1321, 1432, 1123, 2144, 2443, 0};
-	int i, j, repeat;
-	uint32 pooled, unpooled;
-	TestClassBase *t;
-
-	t = new TestClassBase();
-
-	unpooled = g_system->getMillis();
-	for (repeat = 0; repeat < 100; ++repeat) {
-		for (i = 0; i < 10; ++i) {
-			// allocate
-			for (j = 0; j < a[i]; ++j) {
-				t->setNext(new TestClassOne());
-			}
-			// free
-			for (j = 0; j < b[i]; ++j) {
-				t->removeNext();
-			}
-		}
-		while (t->next) {
-			t->removeNext();
-		}
-	}
-	unpooled = g_system->getMillis() - unpooled;
-
-	pooled = g_system->getMillis();
-	for (repeat = 0; repeat < 100; ++repeat) {
-		for (i = 0; i < 10; ++i) {
-			// allocate
-			for (j = 0; j < a[i]; ++j) {
-				t->setNext(new TestClassTwo());
-			}
-			// free
-			for (j = 0; j < b[i]; ++j) {
-				t->removeNext();
-			}
-		}
-		while (t->next) {
-			t->removeNext();
-		}
-	}
-	pooled = g_system->getMillis() - pooled;
-
-	delete t;
-
-	con->Printf("Unpooled Allocation: %d ms\nPooled Allocation: %d ms\n", unpooled, pooled);
-}
-
-#else
-void MemoryManager::ConCmd_test(const Console::ArgvType &argv) {
-}
-
-#endif
-
 } // End of namespace Ultima8
 } // End of namespace Ultima
diff --git a/engines/ultima/ultima8/kernel/memory_manager.h b/engines/ultima/ultima8/kernel/memory_manager.h
index 3155ba4..5da99f2 100644
--- a/engines/ultima/ultima8/kernel/memory_manager.h
+++ b/engines/ultima/ultima8/kernel/memory_manager.h
@@ -57,12 +57,6 @@ public:
 
 	void freeResources();
 
-	//! "MemoryManager::MemInfo" console command
-	static void ConCmd_MemInfo(const Console::ArgvType &argv);
-
-	//! "MemoryManager::test" console command
-	static void ConCmd_test(const Console::ArgvType &argv);
-
 private:
 	Allocator *_allocators[10];
 	uint16 _allocatorCount;
diff --git a/engines/ultima/ultima8/kernel/object_manager.cpp b/engines/ultima/ultima8/kernel/object_manager.cpp
index 8a8d6e2..e3dce30 100644
--- a/engines/ultima/ultima8/kernel/object_manager.cpp
+++ b/engines/ultima/ultima8/kernel/object_manager.cpp
@@ -157,37 +157,6 @@ void ObjectManager::objectTypes() {
 	}
 }
 
-void ObjectManager::ConCmd_objectTypes(const Console::ArgvType & /*argv*/) {
-	ObjectManager::get_instance()->objectTypes();
-}
-
-void ObjectManager::ConCmd_objectInfo(const Console::ArgvType &argv) {
-	if (argv.size() != 2) {
-		pout << "usage: objectInfo <objectnum>" << Std::endl;
-		return;
-	}
-
-	ObjectManager *objman = ObjectManager::get_instance();
-
-	ObjId objid = static_cast<ObjId>(strtol(argv[1].c_str(), 0, 0));
-
-	Object *obj = objman->getObject(objid);
-	if (obj == 0) {
-		bool reserved = false;
-		if (objid >= 256) // CONSTANT!
-			reserved = objman->_objIDs->isIDUsed(objid);
-		else
-			reserved = objman->_actorIDs->isIDUsed(objid);
-		if (reserved)
-			pout << "Reserved objid: " << objid << Std::endl;
-		else
-			pout << "No such object: " << objid << Std::endl;
-	} else {
-		obj->dumpInfo();
-	}
-}
-
-
 uint16 ObjectManager::assignObjId(Object *obj, ObjId new_objid) {
 	if (new_objid == 0xFFFF)
 		new_objid = _objIDs->getNewID();
diff --git a/engines/ultima/ultima8/kernel/object_manager.h b/engines/ultima/ultima8/kernel/object_manager.h
index 80ed03e..6da343e 100644
--- a/engines/ultima/ultima8/kernel/object_manager.h
+++ b/engines/ultima/ultima8/kernel/object_manager.h
@@ -70,11 +70,6 @@ public:
 	Object *loadObject(IDataSource *ids, uint32 version);
 	Object *loadObject(IDataSource *ids, Std::string classname, uint32 version);
 
-	//! "ObjectManager::objectTypes" console command
-	static void ConCmd_objectTypes(const Console::ArgvType &argv);
-	//! "ObjectManager::objectInfo" console command
-	static void ConCmd_objectInfo(const Console::ArgvType &argv);
-
 	Std::vector<Object *> _objects;
 	idMan *_objIDs;
 	idMan *_actorIDs;
diff --git a/engines/ultima/ultima8/kernel/process.h b/engines/ultima/ultima8/kernel/process.h
index dca4c1d..e75a648 100644
--- a/engines/ultima/ultima8/kernel/process.h
+++ b/engines/ultima/ultima8/kernel/process.h
@@ -30,13 +30,14 @@
 namespace Ultima {
 namespace Ultima8 {
 
+class Debugger;
 class IDataSource;
 class ODataSource;
 
 class Process {
-public:
 	friend class Kernel;
-
+	friend class Debugger;
+public:
 	virtual void run() = 0;
 
 	Process(ObjId _itemNum = 0, uint16 type = 0);
diff --git a/engines/ultima/ultima8/misc/debugger.cpp b/engines/ultima/ultima8/misc/debugger.cpp
index aae6d81..1535203 100644
--- a/engines/ultima/ultima8/misc/debugger.cpp
+++ b/engines/ultima/ultima8/misc/debugger.cpp
@@ -23,7 +23,14 @@
 #include "ultima/ultima8/misc/debugger.h"
 #include "ultima/ultima8/ultima8.h"
 #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/kernel/allocator.h"
+#include "ultima/ultima8/kernel/hid_manager.h"
+#include "ultima/ultima8/kernel/kernel.h"
+#include "ultima/ultima8/kernel/memory_manager.h"
+#include "ultima/ultima8/kernel/object_manager.h"
+#include "ultima/ultima8/misc/id_man.h"
 #include "ultima/ultima8/world/actors/quick_avatar_mover_process.h"
 
 namespace Ultima {
@@ -39,6 +46,25 @@ Debugger::Debugger() : Shared::Debugger() {
 	registerCmd("GameMapGump::incrementSortOrder", WRAP_METHOD(Debugger, cmdIncrementSortOrder));
 	registerCmd("GameMapGump::decrementSortOrder", WRAP_METHOD(Debugger, cmdDecrementSortOrder));
 
+	registerCmd("HIDManager::bind", WRAP_METHOD(Debugger, cmdBind));
+	registerCmd("HIDManager::unbind", WRAP_METHOD(Debugger, cmdUnbind));
+	registerCmd("HIDManager::listbinds", WRAP_METHOD(Debugger, cmdListbinds));
+	registerCmd("HIDManager::save", WRAP_METHOD(Debugger, cmdSave));
+
+	registerCmd("Kernel::processTypes", WRAP_METHOD(Debugger, cmdProcessTypes));
+	registerCmd("Kernel::processInfo", WRAP_METHOD(Debugger, cmdProcessInfo));
+	registerCmd("Kernel::listProcesses", WRAP_METHOD(Debugger, cmdListProcesses));
+	registerCmd("Kernel::toggleFrameByFrame", WRAP_METHOD(Debugger, cmdToggleFrameByFrame));
+	registerCmd("Kernel::advanceFrame", WRAP_METHOD(Debugger, cmdAdvanceFrame));
+
+	registerCmd("MemoryManager::MemInfo", WRAP_METHOD(Debugger, cmdMemInfo));
+#ifdef DEBUG
+	registerCmd("MemoryManager::test", WRAP_METHOD(Debugger, cmdTest));
+#endif
+
+	registerCmd("ObjectManager::objectTypes", WRAP_METHOD(Debugger, cmdObjectTypes));
+	registerCmd("ObjectManager::objectInfo", WRAP_METHOD(Debugger, cmdObjectInfo));
+
 	registerCmd("QuickAvatarMoverProcess::startMoveUp", WRAP_METHOD(Debugger, cmdStartMoveUp));
 	registerCmd("QuickAvatarMoverProcess::startMoveDown", WRAP_METHOD(Debugger, cmdStartMoveDown));
 	registerCmd("QuickAvatarMoverProcess::startMoveLeft", WRAP_METHOD(Debugger, cmdStartMoveLeft));
@@ -53,10 +79,8 @@ 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));
-
 }
 
-
 bool Debugger::cmdListSFX(int argc, const char **argv) {
 	AudioProcess *ap = AudioProcess::get_instance();
 	if (!ap) {
@@ -110,6 +134,7 @@ bool Debugger::cmdPlaySFX(int argc, const char **argv) {
 	}
 }
 
+
 bool Debugger::cmdToggleHighlightItems(int argc, const char **argv) {
 	GameMapGump::Set_highlightItems(!GameMapGump::is_highlightItems());
 	return false;
@@ -284,6 +309,189 @@ bool Debugger::cmdDecrementSortOrder(int argc, const char **argv) {
 }
 
 
+bool Debugger::cmdBind(int argc, const char **argv) {
+	Console::ArgvType argv2;
+	Console::ArgvType::const_iterator it;
+	if (argc < 3) {
+		debugPrintf("Usage: %s <key> <action> [<arg> ...]: binds a key or button to an action\n",
+			argv[0]);
+		return true;
+	} else {
+		HIDManager *hid = HIDManager::get_instance();
+
+		istring control(argv[1]);
+		Common::Array<istring> args;
+		for (int i = 2; i < argc; ++i)
+			args.push_back(argv[i]);
+
+		it = args.begin();
+		++it;
+		++it;
+		argv2.assign(it, args.end());
+
+		hid->bind(control, argv2);
+		return false;
+	}
+}
+
+bool Debugger::cmdUnbind(int argc, const char **argv) {
+	if (argc != 2) {
+		debugPrintf("Usage: %s <key>: unbinds a key or button\n", argv[0]);
+		return true;
+	} else {
+		HIDManager *hid = HIDManager::get_instance();
+
+		istring control(argv[1]);
+
+		hid->unbind(control);
+		return false;
+	}
+}
+
+bool Debugger::cmdListbinds(int argc, const char **argv) {
+	HIDManager *hid = HIDManager::get_instance();
+	hid->listBindings();
+	return true;
+}
+
+bool Debugger::cmdSave(int argc, const char **argv) {
+	HIDManager *hid = HIDManager::get_instance();
+	hid->saveBindings();
+
+	SettingManager *settings = SettingManager::get_instance();
+	settings->write();
+	return false;
+}
+
+
+
+bool Debugger::cmdProcessTypes(int argc, const char **argv) {
+	Kernel::get_instance()->processTypes();
+	return false;
+}
+
+bool Debugger::cmdListProcesses(int argc, const char **argv) {
+	if (argc > 2) {
+		debugPrintf("usage: listProcesses [<itemnum>]\n");
+	} else {
+		Kernel *kern = Kernel::get_instance();
+		ObjId item = 0;
+		if (argc == 2) {
+			item = static_cast<ObjId>(strtol(argv[1], 0, 0));
+			debugPrintf("Processes for item %d:\n", item);
+		} else {
+			debugPrintf("Processes:\n");
+		}
+		for (ProcessIterator it = kern->processes.begin();
+			it != kern->processes.end(); ++it) {
+			Process *p = *it;
+			if (argc == 1 || p->_itemNum == item)
+				p->dumpInfo();
+		}
+	}
+
+	return true;
+}
+
+bool Debugger::cmdProcessInfo(int argc, const char **argv) {
+	if (argc != 2) {
+		debugPrintf("usage: processInfo <objectnum>\n");
+	} else {
+		Kernel *kern = Kernel::get_instance();
+
+		ProcId procid = static_cast<ProcId>(strtol(argv[1], 0, 0));
+
+		Process *p = kern->getProcess(procid);
+		if (p == 0) {
+			debugPrintf("No such process: %d\n", procid);
+		} else {
+			p->dumpInfo();
+		}
+	}
+
+	return true;
+}
+
+bool Debugger::cmdToggleFrameByFrame(int argc, const char **argv) {
+	Kernel *kern = Kernel::get_instance();
+	bool fbf = !kern->isFrameByFrame();
+	kern->setFrameByFrame(fbf);
+	debugPrintf("FrameByFrame = %s\n", fbf ? "true" : "false");
+
+	if (fbf)
+		kern->pause();
+	else
+		kern->unpause();
+
+	return true;
+}
+
+bool Debugger::cmdAdvanceFrame(int argc, const char **argv) {
+	Kernel *kern = Kernel::get_instance();
+	if (kern->isFrameByFrame()) {
+		kern->unpause();
+		debugPrintf("FrameByFrame: Next Frame\n");
+	}
+
+	return true;
+}
+
+
+bool Debugger::cmdMemInfo(int argc, const char **argv) {
+	MemoryManager *mm = MemoryManager::get_instance();
+	int i, count;
+
+	if (mm) {
+		count = mm->getAllocatorCount();
+		debugPrintf("Allocators: %d\n", count);
+		for (i = 0; i < count; ++i) {
+			debugPrintf(" Allocator %d:\n", i);
+			mm->getAllocator(i)->printInfo();
+			debugPrintf("==============\n");
+		}
+	}
+
+	return true;
+}
+
+#ifdef DEBUG
+bool Debugger::cmdTest(int argc, const char **argv) {
+	return true;
+}
+#endif
+
+bool Debugger::cmdObjectTypes(int argc, const char **argv) {
+	ObjectManager::get_instance()->objectTypes();
+	return true;
+}
+
+bool Debugger::cmdObjectInfo(int argc, const char **argv) {
+	if (argc != 2) {
+		debugPrintf("usage: objectInfo <objectnum>\n");
+	} else {
+		ObjectManager *objMan = ObjectManager::get_instance();
+
+		ObjId objid = static_cast<ObjId>(strtol(argv[1], 0, 0));
+
+		Object *obj = objMan->getObject(objid);
+		if (obj == 0) {
+			bool reserved = false;
+			if (objid >= 256) // CONSTANT!
+				reserved = objMan->_objIDs->isIDUsed(objid);
+			else
+				reserved = objMan->_actorIDs->isIDUsed(objid);
+			if (reserved)
+				debugPrintf("Reserved objid: %d\n", objid);
+			else
+				debugPrintf("No such object: %d\n", objid);
+		} else {
+			obj->dumpInfo();
+		}
+	}
+
+	return true;
+}
+
 
 bool Debugger::cmdStartMoveUp(int argc, const char **argv) {
 	if (Ultima8Engine::get_instance()->areCheatsEnabled()) {
diff --git a/engines/ultima/ultima8/misc/debugger.h b/engines/ultima/ultima8/misc/debugger.h
index b767577..e25d5d8 100644
--- a/engines/ultima/ultima8/misc/debugger.h
+++ b/engines/ultima/ultima8/misc/debugger.h
@@ -46,6 +46,27 @@ private:
 	bool cmdIncrementSortOrder(int argc, const char **argv);
 	bool cmdDecrementSortOrder(int argc, const char **argv);
 
+	// HID Manager
+	bool cmdBind(int argc, const char **argv);
+	bool cmdUnbind(int argc, const char **argv);
+	bool cmdListbinds(int argc, const char **argv);
+	bool cmdSave(int argc, const char **argv);
+
+	// Kernel
+	bool cmdProcessTypes(int argc, const char **argv);
+	bool cmdListProcesses(int argc, const char **argv);
+	bool cmdProcessInfo(int argc, const char **argv);
+	bool cmdToggleFrameByFrame(int argc, const char **argv);
+	bool cmdAdvanceFrame(int argc, const char **argv);
+
+	// Memory Manager
+	bool cmdMemInfo(int argc, const char **argv);
+	bool cmdTest(int argc, const char **argv);
+
+	// Object Manager
+	bool cmdObjectTypes(int argc, const char **argv);
+	bool cmdObjectInfo(int argc, const char **argv);
+
 	// Quick Avatar Mover Process
 	bool cmdStartMoveUp(int argc, const char **argv);
 	bool cmdStartMoveDown(int argc, const char **argv);
diff --git a/engines/ultima/ultima8/ultima8.cpp b/engines/ultima/ultima8/ultima8.cpp
index ac6bc62..4737a92 100644
--- a/engines/ultima/ultima8/ultima8.cpp
+++ b/engines/ultima/ultima8/ultima8.cpp
@@ -194,27 +194,6 @@ bool Ultima8Engine::initialize() {
 
 	con->AddConsoleCommand("Ultima8Engine::closeItemGumps", ConCmd_closeItemGumps);
 
-	con->AddConsoleCommand("HIDManager::bind", HIDManager::ConCmd_bind);
-	con->AddConsoleCommand("HIDManager::unbind", HIDManager::ConCmd_unbind);
-	con->AddConsoleCommand("HIDManager::listbinds",
-		HIDManager::ConCmd_listbinds);
-	con->AddConsoleCommand("HIDManager::save", HIDManager::ConCmd_save);
-	con->AddConsoleCommand("Kernel::processTypes", Kernel::ConCmd_processTypes);
-	con->AddConsoleCommand("Kernel::processInfo", Kernel::ConCmd_processInfo);
-	con->AddConsoleCommand("Kernel::listProcesses",
-		Kernel::ConCmd_listProcesses);
-	con->AddConsoleCommand("Kernel::toggleFrameByFrame",
-		Kernel::ConCmd_toggleFrameByFrame);
-	con->AddConsoleCommand("Kernel::advanceFrame", Kernel::ConCmd_advanceFrame);
-	con->AddConsoleCommand("ObjectManager::objectTypes",
-		ObjectManager::ConCmd_objectTypes);
-	con->AddConsoleCommand("ObjectManager::objectInfo",
-		ObjectManager::ConCmd_objectInfo);
-	con->AddConsoleCommand("MemoryManager::MemInfo",
-		MemoryManager::ConCmd_MemInfo);
-	con->AddConsoleCommand("MemoryManager::test",
-		MemoryManager::ConCmd_test);
-
 	return true;
 }
 
@@ -237,20 +216,6 @@ void Ultima8Engine::deinitialize() {
 	con->RemoveConsoleCommand(Ultima8Engine::ConCmd_toggleShowTouchingItems);
 
 	con->RemoveConsoleCommand(Ultima8Engine::ConCmd_closeItemGumps);
-
-	con->RemoveConsoleCommand(HIDManager::ConCmd_bind);
-	con->RemoveConsoleCommand(HIDManager::ConCmd_unbind);
-	con->RemoveConsoleCommand(HIDManager::ConCmd_listbinds);
-	con->RemoveConsoleCommand(HIDManager::ConCmd_save);
-	con->RemoveConsoleCommand(Kernel::ConCmd_processTypes);
-	con->RemoveConsoleCommand(Kernel::ConCmd_processInfo);
-	con->RemoveConsoleCommand(Kernel::ConCmd_listProcesses);
-	con->RemoveConsoleCommand(Kernel::ConCmd_toggleFrameByFrame);
-	con->RemoveConsoleCommand(Kernel::ConCmd_advanceFrame);
-	con->RemoveConsoleCommand(ObjectManager::ConCmd_objectTypes);
-	con->RemoveConsoleCommand(ObjectManager::ConCmd_objectInfo);
-	con->RemoveConsoleCommand(MemoryManager::ConCmd_MemInfo);
-	con->RemoveConsoleCommand(MemoryManager::ConCmd_test);
 }
 
 void Ultima8Engine::startup() {




More information about the Scummvm-git-logs mailing list