[Scummvm-cvs-logs] CVS: scummvm/scumm debugger.cpp,1.25,1.26 debugger.h,1.16,1.17

Jonathan Gray khalek at users.sourceforge.net
Thu Apr 24 19:54:04 CEST 2003


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv19749

Modified Files:
	debugger.cpp debugger.h 
Log Message:
add importres and script starting functionality to the debugger

Index: debugger.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/debugger.cpp,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -d -r1.25 -r1.26
--- debugger.cpp	23 Apr 2003 05:10:17 -0000	1.25
+++ debugger.cpp	25 Apr 2003 02:53:35 -0000	1.26
@@ -24,6 +24,7 @@
 #include "actor.h"
 #include "debugger.h"
 #include "common/util.h"
+#include "common/file.h"
 
 // The new debugger doesn't actually have the guts for text console coded yet ;)
 
@@ -86,7 +87,9 @@
 		DCmd_Register("objects", &ScummDebugger::Cmd_PrintObjects);
 		DCmd_Register("object", &ScummDebugger::Cmd_Object);
 		DCmd_Register("script", &ScummDebugger::Cmd_Script);
+		DCmd_Register("scr", &ScummDebugger::Cmd_Script);
 		DCmd_Register("scripts", &ScummDebugger::Cmd_PrintScript);
+		DCmd_Register("importres", &ScummDebugger::Cmd_ImportRes);
 
 		DCmd_Register("loadgame", &ScummDebugger::Cmd_LoadGame);
 		DCmd_Register("savegame", &ScummDebugger::Cmd_SaveGame);
@@ -415,10 +418,53 @@
 	
 	if ((!strcmp(argv[2], "kill")) || (!strcmp(argv[2], "stop"))) {
 		_s->stopScriptNr(scriptnum);
+	} else if ((!strcmp(argv[2], "run")) || (!strcmp(argv[2], "start"))) {
+		_s->runScript(scriptnum, 0, 0, 0);
 	} else {
 		Debug_Printf("Unknown script command '%s'\n", argv[2]);
 	}
 
+	return true;
+}
+
+bool ScummDebugger::Cmd_ImportRes(int argc, const char** argv) {
+	File file;
+	uint32 size;
+	int resnum;
+	
+	if (argc < 3) {
+		Debug_Printf("Syntax: importres <restype> <filename> <resnum>\n");
+		return true;
+	}
+
+	resnum = atoi(argv[3]);
+	// FIXME add bounds check
+	
+	if (!strncmp(argv[1], "scr", 3)) {
+		file.open(argv[2], "");
+		if (file.isOpen() == false) {
+			Debug_Printf("Could not open file %s\n", argv[2]);
+			return true;
+		}
+		if (_s->_features & GF_SMALL_HEADER) {
+			size = file.readUint16LE();
+			file.seek(-2, SEEK_CUR);
+		} else if (_s->_features & GF_SMALL_HEADER) {
+			if (!(_s->_features & GF_SMALL_NAMES))
+				file.seek(8, SEEK_CUR);
+			size = file.readUint32LE();
+			file.readUint16LE();
+			file.seek(-6, SEEK_CUR);
+		} else {
+			file.readUint32BE();
+			size = file.readUint32BE();
+			file.seek(-8, SEEK_CUR);
+		}
+		
+		file.read(_s->createResource(rtScript, resnum, size), size);
+	
+	} else
+		Debug_Printf("Unknown importres type '%s'\n", argv[1]);
 	return true;
 }
 			

Index: debugger.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/debugger.h,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- debugger.h	23 Apr 2003 05:05:20 -0000	1.16
+++ debugger.h	25 Apr 2003 02:53:35 -0000	1.17
@@ -82,6 +82,7 @@
 	bool Cmd_Object(int argc, const char **argv);
 	bool Cmd_Script(int argc, const char **argv);
 	bool Cmd_PrintScript(int argc, const char **argv);
+	bool Cmd_ImportRes(int argc, const char **argv);
 	
 	bool Cmd_DebugLevel(int argc, const char **argv);
 	bool Cmd_Help(int argc, const char **argv);





More information about the Scummvm-git-logs mailing list