[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