[Scummvm-cvs-logs] SF.net SVN: scummvm:[41136] scummvm/trunk/engines/sci

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Wed Jun 3 11:45:17 CEST 2009


Revision: 41136
          http://scummvm.svn.sourceforge.net/scummvm/?rev=41136&view=rev
Author:   thebluegr
Date:     2009-06-03 09:45:16 +0000 (Wed, 03 Jun 2009)

Log Message:
-----------
- Sorted the console commands a bit more 
- Removed the commands which manipulated variables and turned them into debug variables instead 
- Rewrote help so that it's more organized and easier to read
- Unified the debug variable names

Modified Paths:
--------------
    scummvm/trunk/engines/sci/console.cpp
    scummvm/trunk/engines/sci/console.h
    scummvm/trunk/engines/sci/engine/kevent.cpp
    scummvm/trunk/engines/sci/engine/vm.cpp

Modified: scummvm/trunk/engines/sci/console.cpp
===================================================================
--- scummvm/trunk/engines/sci/console.cpp	2009-06-03 06:52:39 UTC (rev 41135)
+++ scummvm/trunk/engines/sci/console.cpp	2009-06-03 09:45:16 UTC (rev 41136)
@@ -48,26 +48,35 @@
 extern EngineState *g_EngineState;
 
 int debug_sleeptime_factor = 1;
-int _kdebug_cheap_event_hack = 0;
-bool _kdebug_track_mouse_clicks = false;
-int _weak_validations = 1; // Some validation errors are reduced to warnings if non-0
+int debug_simulated_key = 0;
+bool debug_track_mouse_clicks = false;
+bool debug_weak_validations = false;
 
 
 Console::Console(SciEngine *vm) : GUI::Debugger() {
 	_vm = vm;
 
+	// Variables
+	DVar_Register("sleeptime_factor",	&debug_sleeptime_factor, DVAR_INT, 0);
+	DVar_Register("gc_interval",		&script_gc_interval, DVAR_INT, 0);
+	DVar_Register("simulated_key",		&debug_simulated_key, DVAR_INT, 0);
+	DVar_Register("track_mouse_clicks",	&debug_track_mouse_clicks, DVAR_BOOL, 0);
+	DVar_Register("weak_validations",	&debug_weak_validations, DVAR_BOOL, 0);
+
+	// General
+	DCmd_Register("help",				WRAP_METHOD(Console, cmdHelp));
 	// Kernel
 //	DCmd_Register("classes",			WRAP_METHOD(Console, cmdClasses));	// TODO
 	DCmd_Register("opcodes",			WRAP_METHOD(Console, cmdOpcodes));
 	DCmd_Register("selectors",			WRAP_METHOD(Console, cmdSelectors));
-	DCmd_Register("kernel_names",		WRAP_METHOD(Console, cmdKernelNames));
-	DCmd_Register("registers",			WRAP_METHOD(Console, cmdRegisters));
-	DCmd_Register("weak_validations",	WRAP_METHOD(Console, cmdWeakValidations));
+	DCmd_Register("functions",			WRAP_METHOD(Console, cmdKernelFunctions));
+	DCmd_Register("class_table",		WRAP_METHOD(Console, cmdClassTable));
 	// Parser
 	DCmd_Register("suffixes",			WRAP_METHOD(Console, cmdSuffixes));
 	DCmd_Register("parse_grammar",		WRAP_METHOD(Console, cmdParseGrammar));
 	DCmd_Register("parser_nodes",		WRAP_METHOD(Console, cmdParserNodes));
 	DCmd_Register("parser_words",		WRAP_METHOD(Console, cmdParserWords));
+	DCmd_Register("sentence_fragments",	WRAP_METHOD(Console, cmdSentenceFragments));
 	// Resources
 	DCmd_Register("hexdump",			WRAP_METHOD(Console, cmdHexDump));
 	DCmd_Register("resource_id",		WRAP_METHOD(Console, cmdResourceId));
@@ -81,31 +90,29 @@
 	DCmd_Register("restart_game",		WRAP_METHOD(Console, cmdRestartGame));
 	DCmd_Register("version",			WRAP_METHOD(Console, cmdGetVersion));
 	DCmd_Register("room",				WRAP_METHOD(Console, cmdRoomNumber));
-	// Graphics
+	DCmd_Register("exit",				WRAP_METHOD(Console, cmdExit));
+	// Screen
 	DCmd_Register("sci0_palette",		WRAP_METHOD(Console, cmdSci0Palette));
 	DCmd_Register("clear_screen",		WRAP_METHOD(Console, cmdClearScreen));
 	DCmd_Register("redraw_screen",		WRAP_METHOD(Console, cmdRedrawScreen));
-	DCmd_Register("class_table",		WRAP_METHOD(Console, cmdClassTable));
-	DCmd_Register("sentence_fragments",	WRAP_METHOD(Console, cmdSentenceFragments));
+	DCmd_Register("fill_screen",		WRAP_METHOD(Console, cmdFillScreen));
+	DCmd_Register("show_map",			WRAP_METHOD(Console, cmdShowMap));
+	DCmd_Register("update_zone",		WRAP_METHOD(Console, cmdUpdateZone));
+	DCmd_Register("propagate_zone",		WRAP_METHOD(Console, cmdPropagateZone));
+	DCmd_Register("priority_bands",		WRAP_METHOD(Console, cmdPriorityBands));
+	// Graphics
 	DCmd_Register("draw_pic",			WRAP_METHOD(Console, cmdDrawPic));
 	DCmd_Register("draw_rect",			WRAP_METHOD(Console, cmdDrawRect));
 	DCmd_Register("draw_cel",			WRAP_METHOD(Console, cmdDrawCel));
 	DCmd_Register("view_info",			WRAP_METHOD(Console, cmdViewInfo));
-	DCmd_Register("update_zone",		WRAP_METHOD(Console, cmdUpdateZone));
-	DCmd_Register("propagate_zone",		WRAP_METHOD(Console, cmdPropagateZone));
-	DCmd_Register("fill_screen",		WRAP_METHOD(Console, cmdFillScreen));
+	// GUI
 	DCmd_Register("current_port",		WRAP_METHOD(Console, cmdCurrentPort));
 	DCmd_Register("print_port",			WRAP_METHOD(Console, cmdPrintPort));
 	DCmd_Register("visual_state",		WRAP_METHOD(Console, cmdVisualState));
 	DCmd_Register("flush_visual",		WRAP_METHOD(Console, cmdFlushPorts));
 	DCmd_Register("dynamic_views",		WRAP_METHOD(Console, cmdDynamicViews));
 	DCmd_Register("dropped_views",		WRAP_METHOD(Console, cmdDroppedViews));
-	DCmd_Register("priority_bands",		WRAP_METHOD(Console, cmdPriorityBands));
 	DCmd_Register("status_bar",			WRAP_METHOD(Console, cmdStatusBarColors));
-	DCmd_Register("show_map",			WRAP_METHOD(Console, cmdShowMap));
-	// Events
-	DCmd_Register("simkey",				WRAP_METHOD(Console, cmdSimulateKey));
-	DCmd_Register("track_mouse",		WRAP_METHOD(Console, cmdTrackMouse));
 	// Segments
 	DCmd_Register("segment_table",		WRAP_METHOD(Console, cmdPrintSegmentTable));
 	DCmd_Register("segment_info",		WRAP_METHOD(Console, cmdSegmentInfo));
@@ -113,7 +120,6 @@
 	// Garbage collection
 	DCmd_Register("gc",					WRAP_METHOD(Console, cmdGCInvoke));
 	DCmd_Register("gc_objects",			WRAP_METHOD(Console, cmdGCObjects));
-	DCmd_Register("gc_interval",		WRAP_METHOD(Console, cmdGCInterval));
 	DCmd_Register("gc_reachable",		WRAP_METHOD(Console, cmdGCShowReachable));
 	DCmd_Register("gc_freeable",		WRAP_METHOD(Console, cmdGCShowFreeable));
 	DCmd_Register("gc_normalize",		WRAP_METHOD(Console, cmdGCNormalize));
@@ -125,21 +131,20 @@
 	DCmd_Register("stop_sfx",			WRAP_METHOD(Console, cmdStopSfx));
 	// Script
 	DCmd_Register("addresses",			WRAP_METHOD(Console, cmdAddresses));
+	DCmd_Register("registers",			WRAP_METHOD(Console, cmdRegisters));
 	DCmd_Register("dissect_script",		WRAP_METHOD(Console, cmdDissectScript));
-	DCmd_Register("script_steps",		WRAP_METHOD(Console, cmdScriptSteps));
 	DCmd_Register("set_acc",			WRAP_METHOD(Console, cmdSetAccumulator));
 	DCmd_Register("bp_list",			WRAP_METHOD(Console, cmdBreakpointList));
 	DCmd_Register("bp_del",				WRAP_METHOD(Console, cmdBreakpointDelete));
 	// VM
+	DCmd_Register("script_steps",		WRAP_METHOD(Console, cmdScriptSteps));
 	DCmd_Register("vm_varlist",			WRAP_METHOD(Console, cmdVMVarlist));
 	DCmd_Register("stack",				WRAP_METHOD(Console, cmdStack));
 	DCmd_Register("value_type",			WRAP_METHOD(Console, cmdValueType));
-	DCmd_Register("view_object",		WRAP_METHOD(Console, cmdViewListNode));
+	DCmd_Register("view_listnode",		WRAP_METHOD(Console, cmdViewListNode));
 	DCmd_Register("view_object",		WRAP_METHOD(Console, cmdViewObject));
 	DCmd_Register("active_object",		WRAP_METHOD(Console, cmdViewActiveObject));
 	DCmd_Register("acc_object",			WRAP_METHOD(Console, cmdViewAccumulatorObject));
-	DCmd_Register("sleep_factor",		WRAP_METHOD(Console, cmdSleepFactor));
-	DCmd_Register("exit",				WRAP_METHOD(Console, cmdExit));
 
 	// These were in sci.cpp
 	/*
@@ -159,7 +164,113 @@
 Console::~Console() {
 }
 
-static ResourceType parseResourceType(const char *resid) {
+bool Console::cmdHelp(int argc, const char **argv) {
+	DebugPrintf("\n");
+	DebugPrintf("Variables\n");
+	DebugPrintf("---------\n");
+	DebugPrintf("sleeptime_factor: Factor to multiply with wait times in kWait()\n");
+	DebugPrintf("gc_interval: Number of kernel calls in between garbage collections\n");
+	DebugPrintf("simulated_key: Add a key with the specified scan code to the event list\n");
+	DebugPrintf("track_mouse_clicks: Toggles mouse click tracking to the console\n");
+	DebugPrintf("weak_validations: Turns some validation errors into warnings\n");
+	DebugPrintf("\n");
+	DebugPrintf("Commands\n");
+	DebugPrintf("--------\n");
+	DebugPrintf("Kernel:\n");
+	DebugPrintf(" opcodes - Lists the opcode names\n");
+	DebugPrintf(" selectors - Lists the selector names\n");
+	DebugPrintf(" functions - Lists the kernel functions\n");
+	DebugPrintf(" class_table - Shows the available classes\n");
+	DebugPrintf("\n");
+	DebugPrintf("Parser:\n");
+	DebugPrintf(" suffixes - Lists the vocabulary suffixes\n");
+	DebugPrintf(" parse_grammar - Shows the parse grammar, in strict GNF\n");
+	DebugPrintf(" parser_nodes - Shows the specified number of nodes from the parse node tree\n");
+	DebugPrintf(" parser_words - Shows the words from the parse node tree\n");
+	DebugPrintf(" sentence_fragments - Shows the sentence fragments (used to build Parse trees)\n");
+	DebugPrintf("\n");
+	DebugPrintf("Resources:\n");
+	DebugPrintf(" hexdump - Dumps the specified resource to standard output\n");
+	DebugPrintf(" resource_id - Identifies a resource number by splitting it up in resource type and resource number\n");
+	DebugPrintf(" resource_size - Shows the size of a resource\n");
+	DebugPrintf(" resource_types - Shows the valid resource types\n");
+	DebugPrintf(" list - Lists all the resources of a given type\n");
+	DebugPrintf(" hexgrep - Searches some resources for a particular sequence of bytes, represented as hexadecimal numbers\n");
+	DebugPrintf("\n");
+	DebugPrintf("Game:\n");
+	DebugPrintf(" save_game - Saves the current game state to the hard disk\n");
+	DebugPrintf(" restore_game - Restores a saved game from the hard disk\n");
+	DebugPrintf(" restart_game - Restarts the game\n");
+	DebugPrintf(" version - Shows the resource and interpreter versions\n");
+	DebugPrintf(" room - Shows the current room number\n");
+	DebugPrintf(" exit - Exits the game\n");
+	DebugPrintf("\n");
+	DebugPrintf("Screen:\n");
+	DebugPrintf(" sci0_palette - Sets the SCI0 palette to use (EGA, Amiga or grayscale)\n");
+	DebugPrintf(" clear_screen - Clears the screen\n");
+	DebugPrintf(" redraw_screen - Redraws the screen\n");
+	DebugPrintf(" fill_screen - Fills the screen with one of the EGA colors\n");
+	DebugPrintf(" show_map - Shows one of the screen maps (visual, priority or control)\n");
+	DebugPrintf(" update_zone - Propagates a rectangular area from the back buffer to the front buffer\n");
+	DebugPrintf(" propagate_zone - Propagates a rectangular area from a lower graphics buffer to a higher one\n");
+	DebugPrintf(" priority_bands - Shows information about priority bands\n");
+	DebugPrintf("\n");
+	DebugPrintf("Graphics:\n");
+	DebugPrintf(" draw_pic - Draws a pic resource\n");
+	DebugPrintf(" draw_rect - Draws a rectangle to the screen with one of the EGA colors\n");
+	DebugPrintf(" draw_cel - Draws a single view cel to the center of the screen\n");
+	DebugPrintf(" view_info - Displays information for the specified view\n");
+	DebugPrintf("\n");
+	DebugPrintf("GUI:\n");
+	DebugPrintf(" current_port - Shows the ID of the currently active port\n");
+	DebugPrintf(" print_port - Prints information about a port\n");
+	DebugPrintf(" visual_state - Shows the state of the current visual widget\n");
+	DebugPrintf(" flush_visual - Flushes dynamically allocated ports (for memory profiling)\n");
+	DebugPrintf(" dynamic_views - Lists active dynamic views\n");
+	DebugPrintf(" dropped_views - Lists dropped dynamic views\n");
+	DebugPrintf(" status_bar - Sets the colors of the status bar\n");
+	DebugPrintf("\n");
+	DebugPrintf("Segments:\n");
+	DebugPrintf(" segment_table - Lists all segments\n");
+	DebugPrintf(" segment_info - Provides information on the specified segment\n");
+	DebugPrintf(" segment_kill - Deletes the specified segment\n");
+	DebugPrintf("\n");
+	DebugPrintf("Garbage collection:\n");
+	DebugPrintf(" gc - Invokes the garbage collector\n");
+	DebugPrintf(" gc_objects - Lists all reachable objects, normalized\n");
+	DebugPrintf(" gc_reachable - Lists all addresses directly reachable from a given memory object\n");
+	DebugPrintf(" gc_freeable - Lists all addresses freeable in a given segment\n");
+	DebugPrintf(" gc_normalize - Prints the \"normal\" address of a given address\n");
+	DebugPrintf("\n");
+	DebugPrintf("Music/SFX:\n");
+	DebugPrintf(" songlib - Shows the song library\n");
+	DebugPrintf(" is_sample - Shows information on a given sound resource, if it's a PCM sample\n");
+	DebugPrintf(" sfx01_header - Dumps the header of a SCI01 song\n");
+	DebugPrintf(" sfx01_track - Dumps a track of a SCI01 song\n");
+	DebugPrintf(" stop_sfx - Stops a playing sound\n");
+	DebugPrintf("\n");
+	DebugPrintf("Script:\n");
+	DebugPrintf(" addresses - Provides information on how to pass addresses\n");
+	DebugPrintf(" registers - Shows the current register values\n");
+	DebugPrintf(" dissect_script - Examines a script\n");
+	DebugPrintf(" set_acc - Sets the accumulator\n");
+	DebugPrintf(" bp_list - Lists the current breakpoints\n");
+	DebugPrintf(" bp_del - Deletes a breakpoint with the specified index\n");
+	DebugPrintf("\n");
+	DebugPrintf("VM:\n");
+	DebugPrintf(" script_steps - Shows the number of executed SCI operations\n");
+	DebugPrintf(" vm_varlist - Shows the addresses of variables in the VM\n");
+	DebugPrintf(" stack - Lists the specified number of stack elements\n");
+	DebugPrintf(" value_type - Determines the type of a value\n");
+	DebugPrintf(" view_listnode - Examines the list node at the given address\n");
+	DebugPrintf(" view_object - Examines the object at the given address\n");
+	DebugPrintf(" active_object - Shows information on the currently active object or class\n");
+	DebugPrintf(" acc_object - Shows information on the object or class at the address indexed by the accumulator\n");
+	DebugPrintf("\n");
+	return true;
+}
+
+ResourceType parseResourceType(const char *resid) {
 	// Gets the resource number of a resource string, or returns -1
 	ResourceType res = kResourceTypeInvalid;
 
@@ -206,8 +317,8 @@
 	return true;
 }
 
-bool Console::cmdKernelNames(int argc, const char **argv) {
-	DebugPrintf("Selector names in numeric order:\n");
+bool Console::cmdKernelFunctions(int argc, const char **argv) {
+	DebugPrintf("Kernel function names in numeric order:\n");
 	for (uint seeker = 0; seeker <  g_EngineState->_kernel->getKernelNamesSize(); seeker++) {
 		DebugPrintf("%03x: %20s | ", seeker, g_EngineState->_kernel->getKernelName(seeker).c_str());
 		if ((seeker % 3) == 2)
@@ -251,6 +362,7 @@
 
 bool Console::cmdHexDump(int argc, const char **argv) {
 	if (argc != 3) {
+		DebugPrintf("Dumps the specified resource to standard output\n");
 		DebugPrintf("Usage: %s <resource type> <resource number>\n", argv[0]);
 		cmdResourceTypes(argc, argv);
 		return true;
@@ -304,26 +416,6 @@
 	return true;
 }
 
-bool Console::cmdWeakValidations(int argc, const char **argv) {
-	if (argc != 2) {
-		DebugPrintf("Turns some validation errors into warnings\n");
-		DebugPrintf("Usage: %s <on/off>\n", argv[0]);
-		DebugPrintf("Weak validations are currently %s\n", (_weak_validations ? "on" : "off"));
-		return true;
-	}
-
-	DebugPrintf("Weak validations are currently %s\n", (_weak_validations ? "on" : "off"));
-	if (!scumm_stricmp(argv[1], "on")) {
-		DebugPrintf("Turning weak validations on\n");
-		_weak_validations = 1;
-	} else if (!scumm_stricmp(argv[1], "off")) {
-		DebugPrintf("Turning weak validations off\n");
-		_weak_validations = 0;
-	}
-
-	return true;
-}
-
 bool Console::cmdRoomNumber(int argc, const char **argv) {
 	DebugPrintf("Current room number is %d\n", g_EngineState->currentRoomNumber());
 
@@ -373,7 +465,7 @@
 
 bool Console::cmdSci0Palette(int argc, const char **argv) {
 	if (argc != 2) {
-		DebugPrintf("Set the SCI0 palette to use - 0: EGA, 1: AGI/Amiga, 2: Grayscale\n");
+		DebugPrintf("Sets the SCI0 palette to use - 0: EGA, 1: AGI/Amiga, 2: Grayscale\n");
 		return true;
 	}
 
@@ -453,7 +545,7 @@
 
 bool Console::cmdList(int argc, const char **argv) {
 	if (argc != 2) {
-		DebugPrintf("Lists all of the resources of a given type\n");
+		DebugPrintf("Lists all the resources of a given type\n");
 		cmdResourceTypes(argc, argv);
 		return true;
 	}
@@ -494,7 +586,7 @@
 
 bool Console::cmdSaveGame(int argc, const char **argv) {
 	if (argc != 2) {
-		DebugPrintf("Save the current game state to the hard disk\n");
+		DebugPrintf("Saves the current game state to the hard disk\n");
 		DebugPrintf("Usage: %s <filename>\n", argv[0]);
 		return true;
 	}
@@ -592,7 +684,7 @@
 }
 
 bool Console::cmdSentenceFragments(int argc, const char **argv) {
-	DebugPrintf("Sentence fragments (used to build Parse trees\n");
+	DebugPrintf("Sentence fragments (used to build Parse trees)\n");
 
 	for (uint i = 0; i < g_EngineState->_vocabulary->getParserBranchesSize(); i++) {
 		int j = 0;
@@ -702,7 +794,7 @@
 
 bool Console::cmdDrawCel(int argc, const char **argv) {
 	if (argc != 4) {
-		DebugPrintf("Draws a single view cel to the center of the\n  screen\n\n");
+		DebugPrintf("Draws a single view cel to the center of the screen\n");
 		DebugPrintf("Usage: %s <view> <loop> <cel> <palette>\n", argv[0]);
 		return true;
 	}
@@ -951,38 +1043,6 @@
 	return false;
 }
 
-bool Console::cmdSimulateKey(int argc, const char **argv) {
-	if (argc != 2) {
-		DebugPrintf("Simulate a keypress with the specified scancode\n");
-		DebugPrintf("Usage: %s <key scan code>\n", argv[0]);
-		return true;
-	}
-
-	_kdebug_cheap_event_hack = atoi(argv[1]);
-
-	return true;
-}
-
-bool Console::cmdTrackMouse(int argc, const char **argv) {
-	if (argc != 2) {
-		DebugPrintf("Toggles mouse position tracking\n");
-		DebugPrintf("Usage: %s <on/off>\n", argv[0]);
-		DebugPrintf("If switched on, left mouse clicks will print\n");
-		DebugPrintf("the coordinates clicked in the debug console\n");
-		return true;
-	}
-
-	if (!scumm_stricmp(argv[1], "on")) {
-		_kdebug_track_mouse_clicks = true;
-		DebugPrintf("Mouse tracking turned on\n");
-	} else if (!scumm_stricmp(argv[1], "off")) {
-		_kdebug_track_mouse_clicks = false;
-		DebugPrintf("Mouse tracking turned off\n");
-	}
-
-	return true;
-}
-
 bool Console::cmdPrintSegmentTable(int argc, const char **argv) {
 	DebugPrintf("Segment table:\n");
 
@@ -1292,20 +1352,6 @@
 	return true;
 }
 
-bool Console::cmdGCInterval(int argc, const char **argv) {
-	if (argc != 2) {
-		DebugPrintf("Sets the number of kernel calls in between garbage collections.\n");
-		DebugPrintf("Usage: %s <number>\n", argv[0]);
-		DebugPrintf("Number of kernel calls in between garbage collections is currently %d.", script_gc_interval);
-		return true;
-	}
-
-	DebugPrintf("Number of kernel calls in between garbage collections was %d, setting it to %d\n", script_gc_interval, atoi(argv[1]));
-	script_gc_interval = atoi(argv[1]);
-
-	return true;
-}
-
 // TODO/FIXME: This should be using DebugPrintf
 void _print_address(void * _, reg_t addr) {
 	if (addr.segment)
@@ -1420,7 +1466,7 @@
 
 bool Console::cmdStack(int argc, const char **argv) {
 	if (argc != 2) {
-		DebugPrintf("Dumps the specified number of stack elements.\n");
+		DebugPrintf("Lists the specified number of stack elements.\n");
 		DebugPrintf("Usage: %s <elements>\n", argv[0]);
 		return true;
 	}
@@ -1549,21 +1595,6 @@
 	return true;
 }
 
-bool Console::cmdSleepFactor(int argc, const char **argv) {
-	if (argc != 2) {
-		DebugPrintf("Factor to multiply with wait times in kWait().\n");
-		DebugPrintf("Set to 0 to speed up games.\n");
-		DebugPrintf("Usage: %s <factor>\n", argv[0]);
-		DebugPrintf("Sleep factor is currently %d.", debug_sleeptime_factor);
-		return true;
-	}
-
-	DebugPrintf("Sleep factor was %d, setting it to %d\n", debug_sleeptime_factor, atoi(argv[1]));
-	debug_sleeptime_factor = atoi(argv[1]);
-
-	return true;
-}
-
 bool Console::cmdScriptSteps(int argc, const char **argv) {
 	DebugPrintf("Number of executed SCI operations: %d\n", script_step_counter);
 	return true;

Modified: scummvm/trunk/engines/sci/console.h
===================================================================
--- scummvm/trunk/engines/sci/console.h	2009-06-03 06:52:39 UTC (rev 41135)
+++ scummvm/trunk/engines/sci/console.h	2009-06-03 09:45:16 UTC (rev 41136)
@@ -44,79 +44,88 @@
 	virtual ~Console();
 
 private:
-	bool cmdGetVersion(int argc, const char **argv);
+	// General
+	bool cmdHelp(int argc, const char **argv);
+	// Kernel
 //	bool cmdClasses(int argc, const char **argv);	// TODO
 	bool cmdOpcodes(int argc, const char **argv);
 	bool cmdSelectors(int argc, const char **argv);
-	bool cmdKernelNames(int argc, const char **argv);
+	bool cmdKernelFunctions(int argc, const char **argv);
+	bool cmdClassTable(int argc, const char **argv);
+	// Parser
 	bool cmdSuffixes(int argc, const char **argv);
+	bool cmdParseGrammar(int argc, const char **argv);
+	bool cmdParserNodes(int argc, const char **argv);
+	bool cmdParserWords(int argc, const char **argv);
+	bool cmdSentenceFragments(int argc, const char **argv);
+	// Resources
 	bool cmdHexDump(int argc, const char **argv);
 	bool cmdResourceId(int argc, const char **argv);
-	bool cmdDissectScript(int argc, const char **argv);
-	bool cmdWeakValidations(int argc, const char **argv);
-	bool cmdRoomNumber(int argc, const char **argv);
 	bool cmdResourceSize(int argc, const char **argv);
 	bool cmdResourceTypes(int argc, const char **argv);
-	bool cmdSci0Palette(int argc, const char **argv);
+	bool cmdList(int argc, const char **argv);
 	bool cmdHexgrep(int argc, const char **argv);
-	bool cmdList(int argc, const char **argv);
-	bool cmdClearScreen(int argc, const char **argv);
-	bool cmdRedrawScreen(int argc, const char **argv);
+	// Game
 	bool cmdSaveGame(int argc, const char **argv);
 	bool cmdRestoreGame(int argc, const char **argv);
 	bool cmdRestartGame(int argc, const char **argv);
-	bool cmdClassTable(int argc, const char **argv);
-	bool cmdSentenceFragments(int argc, const char **argv);
-	bool cmdParserNodes(int argc, const char **argv);
-	bool cmdParserWords(int argc, const char **argv);
-	bool cmdRegisters(int argc, const char **argv);
+	bool cmdGetVersion(int argc, const char **argv);
+	bool cmdRoomNumber(int argc, const char **argv);
+	bool cmdExit(int argc, const char **argv);
+	// Screen
+	bool cmdSci0Palette(int argc, const char **argv);
+	bool cmdClearScreen(int argc, const char **argv);
+	bool cmdRedrawScreen(int argc, const char **argv);
+	bool cmdFillScreen(int argc, const char **argv);
+	bool cmdShowMap(int argc, const char **argv);
+	bool cmdUpdateZone(int argc, const char **argv);
+	bool cmdPropagateZone(int argc, const char **argv);
+	bool cmdPriorityBands(int argc, const char **argv);
+	// Graphics
 	bool cmdDrawPic(int argc, const char **argv);
 	bool cmdDrawRect(int argc, const char **argv);
 	bool cmdDrawCel(int argc, const char **argv);
 	bool cmdViewInfo(int argc, const char **argv);
-	bool cmdUpdateZone(int argc, const char **argv);
-	bool cmdPropagateZone(int argc, const char **argv);
-	bool cmdFillScreen(int argc, const char **argv);
+	// GUI
 	bool cmdCurrentPort(int argc, const char **argv);
 	bool cmdPrintPort(int argc, const char **argv);
-	bool cmdParseGrammar(int argc, const char **argv);
 	bool cmdVisualState(int argc, const char **argv);
 	bool cmdFlushPorts(int argc, const char **argv);
 	bool cmdDynamicViews(int argc, const char **argv);
 	bool cmdDroppedViews(int argc, const char **argv);
-	bool cmdPriorityBands(int argc, const char **argv);
 	bool cmdStatusBarColors(int argc, const char **argv);
-	bool cmdSimulateKey(int argc, const char **argv);
-	bool cmdTrackMouse(int argc, const char **argv);
+	// Segments
 	bool cmdPrintSegmentTable(int argc, const char **argv);
 	bool cmdSegmentInfo(int argc, const char **argv);
 	bool cmdKillSegment(int argc, const char **argv);
-	bool cmdShowMap(int argc, const char **argv);
-	bool cmdSongLib(int argc, const char **argv);
+	// Garbage collection
 	bool cmdGCInvoke(int argc, const char **argv);
 	bool cmdGCObjects(int argc, const char **argv);
-	bool cmdGCInterval(int argc, const char **argv);
 	bool cmdGCShowReachable(int argc, const char **argv);
 	bool cmdGCShowFreeable(int argc, const char **argv);
 	bool cmdGCNormalize(int argc, const char **argv);
+	// Music/SFX
+	bool cmdSongLib(int argc, const char **argv);
+	bool cmdIsSample(int argc, const char **argv);
+	bool cmdSfx01Header(int argc, const char **argv);
+	bool cmdSfx01Track(int argc, const char **argv);
+	bool cmdStopSfx(int argc, const char **argv);
+	// Script
+	bool cmdAddresses(int argc, const char **argv);
+	bool cmdRegisters(int argc, const char **argv);
+	bool cmdDissectScript(int argc, const char **argv);
+	bool cmdSetAccumulator(int argc, const char **argv);
+	bool cmdBreakpointList(int argc, const char **argv);
+	bool cmdBreakpointDelete(int argc, const char **argv);
+	// VM
+	bool cmdScriptSteps(int argc, const char **argv);
 	bool cmdVMVarlist(int argc, const char **argv);
 	bool cmdStack(int argc, const char **argv);
+	bool cmdValueType(int argc, const char **argv);
 	bool cmdViewListNode(int argc, const char **argv);
-	bool cmdValueType(int argc, const char **argv);
 	bool cmdViewObject(int argc, const char **argv);
 	bool cmdViewActiveObject(int argc, const char **argv);
 	bool cmdViewAccumulatorObject(int argc, const char **argv);
-	bool cmdSleepFactor(int argc, const char **argv);
-	bool cmdIsSample(int argc, const char **argv);
-	bool cmdSfx01Header(int argc, const char **argv);
-	bool cmdSfx01Track(int argc, const char **argv);
-	bool cmdScriptSteps(int argc, const char **argv);
-	bool cmdSetAccumulator(int argc, const char **argv);
-	bool cmdBreakpointList(int argc, const char **argv);
-	bool cmdBreakpointDelete(int argc, const char **argv);
-	bool cmdExit(int argc, const char **argv);
-	bool cmdAddresses(int argc, const char **argv);
-	bool cmdStopSfx(int argc, const char **argv);
 
 	bool segmentInfo(int nr);
 	void printList(List *l);

Modified: scummvm/trunk/engines/sci/engine/kevent.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kevent.cpp	2009-06-03 06:52:39 UTC (rev 41135)
+++ scummvm/trunk/engines/sci/engine/kevent.cpp	2009-06-03 09:45:16 UTC (rev 41136)
@@ -28,13 +28,13 @@
 #include "sci/engine/kernel.h"
 #include "sci/gfx/gfx_widgets.h"
 #include "sci/gfx/gfx_state_internal.h"	// required for GfxPort, GfxVisual
-#include "sci/console.h"	// for _kdebug_cheap_event_hack
+#include "sci/console.h"	// for debug_simulated_key
 
 namespace Sci {
 
 int stop_on_event = 0;
-extern int _kdebug_cheap_event_hack;
-extern bool _kdebug_track_mouse_clicks;
+extern int debug_simulated_key;
+extern bool debug_track_mouse_clicks;
 
 #define SCI_VARIABLE_GAME_SPEED 3
 
@@ -53,13 +53,13 @@
 
 	// If there's a simkey pending, and the game wants a keyboard event, use the
 	// simkey instead of a normal event
-	if (_kdebug_cheap_event_hack && (mask & SCI_EVT_KEYBOARD)) {
+	if (debug_simulated_key && (mask & SCI_EVT_KEYBOARD)) {
 		PUT_SEL32V(obj, type, SCI_EVT_KEYBOARD); // Keyboard event
-		PUT_SEL32V(obj, message, _kdebug_cheap_event_hack);
+		PUT_SEL32V(obj, message, debug_simulated_key);
 		PUT_SEL32V(obj, modifiers, SCI_EVM_NUMLOCK); // Numlock on
 		PUT_SEL32V(obj, x, s->gfx_state->pointer_pos.x);
 		PUT_SEL32V(obj, y, s->gfx_state->pointer_pos.y);
-		_kdebug_cheap_event_hack = 0;
+		debug_simulated_key = 0;
 		return make_reg(0, 1);
 	}
 
@@ -110,7 +110,7 @@
 		int extra_bits = 0;
 
 		// track left buttton clicks, if requested
-		if (e.type == SCI_EVT_MOUSE_PRESS && e.data == 1 && _kdebug_track_mouse_clicks) {
+		if (e.type == SCI_EVT_MOUSE_PRESS && e.data == 1 && debug_track_mouse_clicks) {
 			((SciEngine *)g_engine)->_console->DebugPrintf("Mouse clicked at %d, %d\n", 
 						s->gfx_state->pointer_pos.x, s->gfx_state->pointer_pos.y);
 		}

Modified: scummvm/trunk/engines/sci/engine/vm.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/vm.cpp	2009-06-03 06:52:39 UTC (rev 41135)
+++ scummvm/trunk/engines/sci/engine/vm.cpp	2009-06-03 09:45:16 UTC (rev 41136)
@@ -27,7 +27,7 @@
 #include "common/stack.h"
 
 #include "sci/sci.h"
-#include "sci/console.h"	// for _weak_validations
+#include "sci/console.h"	// for debug_weak_validations
 #include "sci/resource.h"
 #include "sci/engine/state.h"
 #include "sci/engine/intmap.h"
@@ -52,7 +52,7 @@
 
 extern int _debug_step_running;
 extern int _debug_seeking;
-extern int _weak_validations;
+extern bool debug_weak_validations;
 
 
 static bool breakpointFlag = false;
@@ -90,7 +90,9 @@
 
 static int validate_arithmetic(reg_t reg) {
 	if (reg.segment) {
-		if (!_weak_validations)
+		if (debug_weak_validations)
+			warning("[VM] Attempt to read arithmetic value from non-zero segment [%04x]\n", reg.segment);
+		else
 			error("[VM] Attempt to read arithmetic value from non-zero segment [%04x]\n", reg.segment);
 		return 0;
 	}
@@ -100,10 +102,10 @@
 
 static int signed_validate_arithmetic(reg_t reg) {
 	if (reg.segment) {
-		debugC(2, kDebugLevelVM, "[VM] Attempt to read arithmetic value from non-zero segment [%04x]\n", reg.segment);
-		if (!_weak_validations) {
-			error("signed_validate_arithmetic failed");
-		}
+		if (debug_weak_validations)
+			warning("[VM] Attempt to read arithmetic value from non-zero segment [%04x]\n", reg.segment);
+		else
+			error("[VM] Attempt to read arithmetic value from non-zero segment [%04x]\n", reg.segment);
 		return 0;
 	}
 
@@ -117,16 +119,23 @@
 	const char *names[4] = {"global", "local", "temp", "param"};
 
 	if (index < 0 || index >= max) {
-		sciprintf("[VM] Attempt to use invalid %s variable %04x ", names[type], index);
+		char txt[200];
+		char tmp[40];
+		sprintf(txt, "[VM] Attempt to use invalid %s variable %04x ", names[type], index);
 		if (max == 0)
-			sciprintf("(variable type invalid)");
-		else
-			sciprintf("(out of range [%d..%d])", 0, max - 1);
-		sciprintf(" in %s, line %d\n", __FILE__, line);
-		if (!_weak_validations) {
-			error("validate_variable failed");
+			strcat(txt, "(variable type invalid)");
+		else {
+			sprintf(tmp, "(out of range [%d..%d])", 0, max - 1);
+			strcat(txt, tmp);
 		}
+		sprintf(tmp, " in %s, line %d\n", __FILE__, line);
+		strcat(txt, tmp);
 
+		if (debug_weak_validations)
+			warning(txt);
+		else
+			error(txt);
+
 #ifdef STRICT_READ
 		return 1;
 #else // !STRICT_READ
@@ -139,7 +148,7 @@
 				sciprintf("[VM] Access within stack boundaries; access granted.\n");
 				return 0;
 			}
-		};
+		}
 #endif
 	}
 


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list