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

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Tue May 12 10:22:20 CEST 2009


Revision: 40474
          http://scummvm.svn.sourceforge.net/scummvm/?rev=40474&view=rev
Author:   thebluegr
Date:     2009-05-12 08:22:20 +0000 (Tue, 12 May 2009)

Log Message:
-----------
- Slight cleanup of c_sfx_01_header()
- "words" -> "kernelwords"

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

Modified: scummvm/trunk/engines/sci/console.cpp
===================================================================
--- scummvm/trunk/engines/sci/console.cpp	2009-05-12 08:14:24 UTC (rev 40473)
+++ scummvm/trunk/engines/sci/console.cpp	2009-05-12 08:22:20 UTC (rev 40474)
@@ -83,7 +83,7 @@
 	DCmd_Register("selectors",			WRAP_METHOD(Console, cmdSelectors));
 	DCmd_Register("kernelnames",		WRAP_METHOD(Console, cmdKernelNames));
 	DCmd_Register("suffixes",			WRAP_METHOD(Console, cmdSuffixes));
-	DCmd_Register("words",				WRAP_METHOD(Console, cmdWords));
+	DCmd_Register("kernelwords",		WRAP_METHOD(Console, cmdKernelWords));
 	DCmd_Register("man",				WRAP_METHOD(Console, cmdMan));
 }
 
@@ -173,7 +173,7 @@
 	return true;
 }
 
-bool Console::cmdWords(int argc, const char **argv) {
+bool Console::cmdKernelWords(int argc, const char **argv) {
 	WordMap words;
 
 	vocab_get_words(_vm->getResMgr(), words);

Modified: scummvm/trunk/engines/sci/console.h
===================================================================
--- scummvm/trunk/engines/sci/console.h	2009-05-12 08:14:24 UTC (rev 40473)
+++ scummvm/trunk/engines/sci/console.h	2009-05-12 08:22:20 UTC (rev 40474)
@@ -47,7 +47,7 @@
 	bool cmdSelectors(int argc, const char **argv);
 	bool cmdKernelNames(int argc, const char **argv);
 	bool cmdSuffixes(int argc, const char **argv);
-	bool cmdWords(int argc, const char **argv);
+	bool cmdKernelWords(int argc, const char **argv);
 	bool cmdMan(int argc, const char **argv);
 
 private:

Modified: scummvm/trunk/engines/sci/engine/scriptdebug.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/scriptdebug.cpp	2009-05-12 08:14:24 UTC (rev 40473)
+++ scummvm/trunk/engines/sci/engine/scriptdebug.cpp	2009-05-12 08:22:20 UTC (rev 40474)
@@ -201,42 +201,48 @@
 	}
 }
 
-#define SONGDATA(x) data[offset + (x)]
-#define CHECK_FOR_END_ABSOLUTE(off) if ((off) >= size) return;
+int c_sfx_01_header_dump(EngineState *s, const Common::Array<cmd_param_t> &cmdParams) {
+	Resource *song = s->resmgr->findResource(kResourceTypeSound, cmdParams[0].val, 0);
 
-static void sci01_song_header_dump(byte *data, int size) {
-	int offset = 0;
-	int smallest_start = 10000;
+	if (!song) {
+		sciprintf("Doesn't exist\n");
+		return 1;
+	}
 
+	uint32 offset = 0;
+
 	sciprintf("SCI01 song track mappings:\n");
 
-	if (*data == 0xf0) // SCI1 priority spec
+	if (*song->data == 0xf0) // SCI1 priority spec
 		offset = 8;
 
-	CHECK_FOR_END_ABSOLUTE(0);
-	while (SONGDATA(0) != 0xff) {
-		byte device_id = data[offset];
+	if (song->size <= 0)
+		return 1;
+
+	while (song->data[offset] != 0xff) {
+		byte device_id = song->data[offset];
 		sciprintf("* Device %02x:\n", device_id);
 		offset++;
-		CHECK_FOR_END_ABSOLUTE(offset + 1);
-		while (SONGDATA(0) != 0xff) {
+
+		if (offset + 1 >= song->size)
+			return 1;
+
+		while (song->data[offset] != 0xff) {
 			int track_offset;
 			int end;
 			byte header1, header2;
 
-			CHECK_FOR_END_ABSOLUTE(offset + 7);
+			if (offset + 7 >= song->size)
+				return 1;
 
 			offset += 2;
 
-			track_offset = READ_LE_UINT16(data + offset);
-			header1 = data[track_offset];
-			header2 = data[track_offset+1];
+			track_offset = READ_LE_UINT16(song->data + offset);
+			header1 = song->data[track_offset];
+			header2 = song->data[track_offset+1];
 			track_offset += 2;
 
-			if (track_offset < smallest_start)
-				smallest_start = track_offset;
-
-			end = READ_LE_UINT16(data + offset + 2);
+			end = READ_LE_UINT16(song->data + offset + 2);
 			sciprintf("  - %04x -- %04x", track_offset, track_offset + end);
 
 			if (track_offset == 0xfe)
@@ -248,20 +254,7 @@
 		}
 		offset++;
 	}
-}
-#undef CHECK_FOR_END_ABSOLUTE
-#undef SONGDATA
 
-int c_sfx_01_header(EngineState *s, const Common::Array<cmd_param_t> &cmdParams) {
-	Resource *song = s->resmgr->findResource(kResourceTypeSound, cmdParams[0].val, 0);
-
-	if (!song) {
-		sciprintf("Doesn't exist\n");
-		return 1;
-	}
-
-	sci01_song_header_dump(song->data, song->size);
-
 	return 0;
 }
 
@@ -3153,7 +3146,7 @@
 			                 "Tests whether a given sound resource\n"
 			                 "  is a PCM sample, and displays infor-\n"
 			                 "  mation on it if it is.\n\n");
-			con_hook_command(c_sfx_01_header, "sfx-01-header", "i",
+			con_hook_command(c_sfx_01_header_dump, "sfx-01-header", "i",
 			                 "Dumps the header of an SCI01 song\n\n"
 			                 "SEE ALSO\n\n"
 			                 "  sfx-01-track.1\n\n");


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