[Scummvm-cvs-logs] CVS: scummvm/scumm midiparser_eup.cpp,1.1,1.2

Jamieson Christian jamieson630 at users.sourceforge.net
Tue Sep 16 14:29:07 CEST 2003


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

Modified Files:
	midiparser_eup.cpp 
Log Message:
Removed redundant presets storage.

Index: midiparser_eup.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/midiparser_eup.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- midiparser_eup.cpp	16 Sep 2003 11:42:35 -0000	1.1
+++ midiparser_eup.cpp	16 Sep 2003 21:28:46 -0000	1.2
@@ -34,11 +34,11 @@
 class MidiParser_EUP : public MidiParser {
 protected:
 	struct {
-		bool mute;
-		uint8 channel;
-		int8 volume;
-		int8 transpose;
-	} _presets[32];
+		byte *enable;
+		int8 *channel;
+		int8 *volume;
+		int8 *transpose;
+	} _presets;
 	bool _loop;
 	byte _presend; // Tracks which startup implied events have been sent.
 
@@ -84,15 +84,15 @@
 		byte cmd = *pos;
 		if ((cmd & 0xF0) == 0x90) {
 			byte preset = pos[1];
-			byte channel = _presets[preset].channel;
+			byte channel = _presets.channel[preset];
 			if (channel >= 16)
 				channel = cmd & 0x0F;
 			uint16 tick = pos[2] | ((uint16) pos[3] << 7);
-			int note = (int) pos[4] + _presets[preset].transpose;
-			int volume = (int) pos[5] + _presets[preset].volume;
+			int note = (int) pos[4] + _presets.transpose[preset];
+			int volume = (int) pos[5] + _presets.volume[preset];
 			pos += 6;
 			if ((*pos & 0xF0) == 0x80) {
-				if (!_presets[preset].mute) {
+				if (_presets.enable[preset]) {
 					uint16 duration = pos[1] | (pos[2] << 4) | (pos[3] << 8) | (pos[4] << 12);
 					info.start = pos;
 					uint32 last = _position._last_event_tick;
@@ -157,13 +157,16 @@
 	byte numInstruments = pos[16];
 	pos += (16 + 2 + numInstruments * 48);
 
-	for (int i = 0; i < 32; ++i) {
-		_presets[i].mute = ((int8) pos[i] == 0);
-		_presets[i].channel = pos[i+32];
-		_presets[i].volume = (int8) pos[i+64];
-		_presets[i].transpose = (int8) pos[i+96];
-	}
-	pos += 32 * 4; // Jump past presets
+	// Load the prest pointers
+	_presets.enable = pos;
+	pos += 32;
+	_presets.channel = (int8 *) pos;
+	pos += 32;
+	_presets.volume = (int8 *) pos;
+	pos += 32;
+	_presets.transpose = (int8 *) pos;
+	pos += 32;
+
 	pos += 8; // Unknown bytes
 	pos += 6; // Instrument-to-channel mapping (not supported yet)
 	pos += 4; // Skip the music size for now.





More information about the Scummvm-git-logs mailing list