[Scummvm-cvs-logs] CVS: scummvm/scumm/imuse_digi dimuse_music.cpp,NONE,1.1 dimuse.cpp,1.25,1.26 dimuse.h,1.15,1.16 dimuse_tables.cpp,1.5,1.6

Pawel Kolodziejski aquadran at users.sourceforge.net
Mon Jan 12 11:16:07 CET 2004


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

Modified Files:
	dimuse.cpp dimuse.h dimuse_tables.cpp 
Added Files:
	dimuse_music.cpp 
Log Message:
- added delay at stopAllsounds
- changes some struct names
- improved hadling FT music tables(seqence, cue point, ...)
- moved some music part into seperate file
- added fadeOut music for FT

--- NEW FILE: dimuse_music.cpp ---
/* ScummVM - Scumm Interpreter
 * Copyright (C) 2001-2004 The ScummVM project
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 *
 * $Header: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse_music.cpp,v 1.1 2004/01/12 19:15:07 aquadran Exp $
 */

#include "stdafx.h"
#include "common/scummsys.h"
#include "scumm/scumm.h"
#include "scumm/imuse_digi/dimuse.h"

namespace Scumm {

void IMuseDigital::setFtMusicState(int stateId) {
	if (stateId > 48)
		return;

	debug(5, "State music: %s, %s", _ftStateMusicTable[stateId].name, _ftStateMusicTable[stateId].audioName);

	if (_curMusicState == stateId)
		return;

	if (_curMusicSeq != 0) {
		_curMusicState = stateId;
		return;
	}

	if (stateId == 0)
		playFtMusic(NULL, 0, 0);
	else
		playFtMusic(_ftStateMusicTable[stateId].audioName, _ftStateMusicTable[stateId].opcode, _ftStateMusicTable[stateId].volume);

	_curMusicState = stateId;
}

void IMuseDigital::setFtMusicSequence(int seqId) {
	if (seqId > 53)
		return;

	debug(5, "Sequence music: %s, %s", _ftSeqNames[seqId].name);

	if (_curMusicSeq == seqId)
		return;

	if (seqId == 0) {
		if (_curMusicState == 0)
			playFtMusic(NULL, 0, 0);
		else
			playFtMusic(_ftStateMusicTable[seqId].audioName, _ftStateMusicTable[seqId].opcode, _ftStateMusicTable[seqId].volume);
	} else {
		int seq = (seqId - 1) * 4;
		playFtMusic(_ftSeqMusicTable[seq].audioName, _ftSeqMusicTable[seq].opcode, _ftSeqMusicTable[seq].volume);
	}

	_curMusicSeq = seqId;
	_curMusicCue = 0;
}

void IMuseDigital::setFtMusicCuePoint(int cueId) {
	if (cueId > 3)
		return;

	debug(5, "Cue point sequence: %d", cueId);

	if (_curMusicSeq == 0)
		return;

	if (_curMusicCue == cueId)
		return;

	if (cueId == 0)
		playFtMusic(NULL, 0, 0);
	else {
		int seq = ((_curMusicSeq - 1) + cueId) * 4;
		playFtMusic(_ftSeqMusicTable[seq].audioName, _ftSeqMusicTable[seq].opcode, _ftSeqMusicTable[seq].volume);
	}

	_curMusicCue = cueId;
}

int IMuseDigital::getSoundIdByName(const char *soundName) {
	if (soundName && soundName[0] != 0) {
		for (int r = 0; r < _vm->_numAudioNames; r++) {
			if (strcmp(soundName, &_vm->_audioNames[r * 9]) == 0) {
				return r;
			}
		}
	}

	return -1;
}

void IMuseDigital::fadeOutMusic() {
	debug(5, "IMuseDigital::fadeOutMusic");
	for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) {
		_track[l].locked = true;
		if (_track[l].used) {
			parseScriptCmds(14, _track[l].soundId, 0x600, 0, 0x200, 0, 0, 0);
		}
		_track[l].locked = false;
	}
}

void IMuseDigital::playFtMusic(const char *songName, int opcode, int volume) {
	fadeOutMusic();

	switch(opcode) {
		case 0:
		case 4:
			break;
		case 1:
		case 2:
		case 3:
			{
			int soundId = getSoundIdByName(songName);
			if (soundId != -1) {
				startMusic(soundId);
				parseScriptCmds(12, soundId, 0x600, volume, 0, 0, 0, 0);
			}
			}
			break;
	}
}


} // End of namespace Scumm

Index: dimuse.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse.cpp,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -d -r1.25 -r1.26
--- dimuse.cpp	12 Jan 2004 07:48:39 -0000	1.25
+++ dimuse.cpp	12 Jan 2004 19:15:07 -0000	1.26
@@ -33,7 +33,7 @@
 namespace Scumm {
 
 IMuseDigital::Track::Track()
-	: idSound(-1), used(false), stream(NULL) {
+	: soundId(-1), used(false), stream(NULL) {
 }
 
 void IMuseDigital::timer_handler(void *refCon) {
@@ -46,12 +46,16 @@
 	_pause = false;
 	_sound = new ImuseDigiSndMgr(_vm);
 	_vm->_timer->installTimerProc(timer_handler, 1000000 / 25, this);
-	_curMusicId = -1;
+	_curMusicState = 0;
+	_curMusicSeq = 0;
+	_curMusicCue = 0;
+
+	_curMusicSoundId = -1;
 }
 
 IMuseDigital::~IMuseDigital() {
 	_vm->_timer->removeTimerProc(timer_handler);
-	stopAllSounds();
+	stopAllSounds(true);
 	delete _sound;
 }
 
@@ -65,7 +69,7 @@
 		if (_track[l].used) {
 			if (_track[l].stream2) {
 				if (!_track[l].handle.isActive() && _track[l].started) {
-					debug(5, "IMuseDigital::callback(): stoped sound: %d", _track[l].idSound);
+					debug(5, "IMuseDigital::callback(): stoped sound: %d", _track[l].soundId);
 					delete _track[l].stream2;
 					_track[l].stream2 = NULL;
 					_track[l].used = false;
@@ -73,7 +77,7 @@
 				}
 			} else if (_track[l].stream) {
 				if ((!_track[l].locked) && (_track[l].toBeRemoved)) {
-					debug(5, "IMuseDigital::callback(): stoped sound: %d", _track[l].idSound);
+					debug(5, "IMuseDigital::callback(): stoped sound: %d", _track[l].soundId);
 					if (_track[l].stream)
 						_track[l].stream->finish();
 					_track[l].stream = NULL;
@@ -104,7 +108,7 @@
 						}
 					}
 				}
-				debug(5, "Fade: sound(%d), Vol(%d)", _track[l].idSound, _track[l].vol / 1000);
+				debug(5, "Fade: sound(%d), Vol(%d)", _track[l].soundId, _track[l].vol / 1000);
 			}
 
 			int pan = (_track[l].pan != 64) ? 2 * _track[l].pan - 127 : 0;
@@ -217,11 +221,11 @@
 		if (region != -1) {
 			_track[track].curRegion = region;
 			_track[track].curHookId = 0;
-			debug(5, "switchToNextRegion-sound(%d) jump to %d region", _track[track].idSound, _track[track].curRegion);
+			debug(5, "switchToNextRegion-sound(%d) jump to %d region", _track[track].soundId, _track[track].curRegion);
 		}
 	}
 
-	debug(5, "switchToNextRegion-sound(%d) select %d region", _track[track].idSound, _track[track].curRegion);
+	debug(5, "switchToNextRegion-sound(%d) select %d region", _track[track].soundId, _track[track].curRegion);
 	_track[track].regionOffset = 0;
 }
 
@@ -237,7 +241,7 @@
 			_track[l].volFadeStep = 0;
 			_track[l].volFadeDelay = 0;
 			_track[l].volFadeUsed = false;
-			_track[l].idSound = soundId;
+			_track[l].soundId = soundId;
 			_track[l].started = false;
 			_track[l].soundGroup = soundGroup;
 			_track[l].curHookId = 0;
@@ -292,10 +296,8 @@
 				_vm->_mixer->playInputStream(&_track[l].handle, _track[l].stream, true, _track[l].vol / 1000, _track[l].pan, -1);
 			}
 
-			if (soundGroup == IMUSE_MUSIC) {
-				stopMusic();
-				_curMusicId = soundId;
-			}
+			if ((_track[l].soundGroup == IMUSE_MUSIC) && (_vm->_gameId != GID_FT))
+				_curMusicSoundId = soundId;
 
 			_track[l].locked = false;
 			_track[l].used = true;
@@ -309,21 +311,20 @@
 	debug(5, "IMuseDigital::stopMusic()");
 	for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) {
 		_track[l].locked = true;
-		if ((_track[l].idSound == _curMusicId) && _track[l].used) {
+		if ((_track[l].soundId == _curMusicSoundId) && _track[l].used) {
 			if (_track[l].stream) {
 				_track[l].toBeRemoved = true;
 			}
 		}
 		_track[l].locked = false;
 	}
-	_curMusicId = -1;
 }
 
 void IMuseDigital::stopSound(int soundId) {
 	debug(5, "IMuseDigital::stopSound(%d)", soundId);
 	for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) {
 		_track[l].locked = true;
-		if ((_track[l].idSound == soundId) && _track[l].used) {
+		if ((_track[l].soundId == soundId) && _track[l].used) {
 			if (_track[l].stream) {
 				_track[l].toBeRemoved = true;
 			}
@@ -346,7 +347,8 @@
 		}
 		_track[l].locked = false;
 	}
-	_curMusicId = -1;
+
+	_curMusicSoundId = -1;
 
 	if (waitForStop) {
 		bool used;
@@ -356,6 +358,7 @@
 				if (_track[l].used)
 					used = true;
 			}
+			g_system->delay_msecs(10);
 		} while (used);
 	}
 }
@@ -376,7 +379,7 @@
 	int sample = b;
 	int sub_cmd = c;
 	int chan = -1;
-	int l, r;
+	int l;
 
 	if (!cmd)
 		return;
@@ -397,7 +400,7 @@
 			debug(5, "ImuseSetParam (0x600), sample(%d), volume(%d)", sample, d);
 			for (l = 0; l < MAX_DIGITAL_TRACKS; l++) {
 				_track[l].locked = true;
-				if ((_track[l].idSound == sample) && _track[l].used) {
+				if ((_track[l].soundId == sample) && _track[l].used) {
 					_track[l].vol = d * 1000;
 //					if (_track[l].volFadeUsed)
 //						_track[l].volFadeStep = (_track[l].volFadeDest - _track[l].vol) * 60 * 40 / (1000 * _track[chan].volFadeDelay);
@@ -413,7 +416,7 @@
 			debug(5, "ImuseSetParam (0x700), sample(%d), pan(%d)", sample, d);
 			for (l = 0; l < MAX_DIGITAL_TRACKS; l++) {
 				_track[l].locked = true;
-				if ((_track[l].idSound == sample) && _track[l].used) {
+				if ((_track[l].soundId == sample) && _track[l].used) {
 					_track[l].pan = d;
 				}
 				_track[l].locked = false;
@@ -438,7 +441,7 @@
 			}
 			for (l = 0; l < MAX_DIGITAL_TRACKS; l++) {
 				_track[l].locked = true;
-				if ((_track[l].idSound == sample) && _track[l].used) {
+				if ((_track[l].soundId == sample) && _track[l].used) {
 					_track[l].volFadeDelay = e;
 					_track[l].volFadeDest = d * 1000;
 					_track[l].volFadeStep = (_track[l].volFadeDest - _track[l].vol) * 60 * 40 / (1000 * e);
@@ -516,18 +519,7 @@
 				}
 			}
 		} else if (_vm->_gameId == GID_FT) {
-			if (b > 48)
-				return;
-			b--;
-			debug(5, "Play imuse music: %s, %s", _ftStateMusicTable[b].name, _ftStateMusicTable[b].audioname);
-			if (_ftStateMusicTable[b].audioname[0] != 0) {
-				for (r = 0; r < _vm->_numAudioNames; r++) {
-					if (strcmp(_ftStateMusicTable[b].audioname, &_vm->_audioNames[r * 9]) == 0) {
-						startMusic(r);
-						parseScriptCmds(12, r, 0x600, _ftStateMusicTable[b].volume, 0, 0, 0, 0);
-					}
-				}
-			}
+			setFtMusicState(b);
 		}
 		break;
 	case 0x1001: // ImuseSetSequence
@@ -553,23 +545,14 @@
 				}
 			}
 		} else if (_vm->_gameId == GID_FT) {
-			if (b > 53)
-				return;
-			b--;
-			debug(5, "Play imuse sequence: %s, %s", _ftSeqMusicTable[b * 4].name, _ftSeqMusicTable[b * 4].audioname);
-			if (_ftSeqMusicTable[b * 4].audioname[0] != 0) {
-				for (r = 0; r < _vm->_numAudioNames; r++) {
-					if (strcmp(_ftStateMusicTable[b * 4].audioname, &_vm->_audioNames[r * 9]) == 0) {
-						startMusic(r);
-						parseScriptCmds(12, r, 0x600, _ftStateMusicTable[b * 4].volume, 0, 0, 0, 0);
-					}
-				}
-			}
+			setFtMusicSequence(b);
 		}
 		break;
 	case 0x1002: // ImuseSetCuePoint
 		debug(5, "ImuseSetCuePoint (%d)", b);
-		// TODO
+		if (_vm->_gameId == GID_FT) {
+			setFtMusicCuePoint(b);
+		}
 		break;
 	case 0x1003: // ImuseSetAttribute
 		debug(5, "ImuseSetAttribute (%d, %d)", b, c);
@@ -595,7 +578,7 @@
 int IMuseDigital::getSoundStatus(int sound) const {
 	debug(5, "IMuseDigital::getSoundStatus(%d)", sound);
 	for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) {
-		if ((_track[l].idSound == sound) && _track[l].used) {
+		if ((_track[l].soundId == sound) && _track[l].used) {
 			return 1;
 		}
 	}
@@ -611,7 +594,7 @@
 	if (msPos < 65536) {
 		for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) {
 			_track[l].locked = true;
-			if ((_track[l].idSound == soundId) && _track[l].used) {
+			if ((_track[l].soundId == soundId) && _track[l].used) {
 				_sound->getSyncSizeAndPtrById(_track[l].soundHandle, syncId, sync_size, &sync_ptr);
 				if ((sync_size != 0) && (sync_ptr != NULL)) {
 					sync_size /= 4;
@@ -640,7 +623,7 @@
 int32 IMuseDigital::getPosInMs(int soundId) {
 	for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) {
 		_track[l].locked = true;
-		if ((_track[l].idSound == soundId) && _track[l].used) {
+		if ((_track[l].soundId == soundId) && _track[l].used) {
 			int32 pos = 1000 * _track[l].trackOffset / _track[l].iteration;
 			_track[l].locked = false;
 			return pos;
@@ -652,8 +635,8 @@
 }
 
 int32 IMuseDigital::getCurMusicPosInMs() {
-	debug(5, "IMuseDigital::getCurMusicPosInMs(%d)", _curMusicId);
-	return getPosInMs(_curMusicId);
+	debug(5, "IMuseDigital::getCurMusicPosInMs(%d)", _curMusicSoundId);
+	return getPosInMs(_curMusicSoundId);
 }
 
 int32 IMuseDigital::getCurVoiceLipSyncWidth() {
@@ -673,18 +656,18 @@
 }
 
 int32 IMuseDigital::getCurMusicLipSyncWidth(int syncId) {
-	int32 msPos = getPosInMs(_curMusicId) + _vm->VAR(_vm->VAR_SYNC) + 50;
+	int32 msPos = getPosInMs(_curMusicSoundId) + _vm->VAR(_vm->VAR_SYNC) + 50;
 	int32 width = 0, height = 0;
 
-	getLipSync(_curMusicId, syncId, msPos, width, height);
+	getLipSync(_curMusicSoundId, syncId, msPos, width, height);
 	return width;
 }
 
 int32 IMuseDigital::getCurMusicLipSyncHeight(int syncId) {
-	int32 msPos = getPosInMs(_curMusicId) + _vm->VAR(_vm->VAR_SYNC) + 50;
+	int32 msPos = getPosInMs(_curMusicSoundId) + _vm->VAR(_vm->VAR_SYNC) + 50;
 	int32 width = 0, height = 0;
 
-	getLipSync(_curMusicId, syncId, msPos, width, height);
+	getLipSync(_curMusicSoundId, syncId, msPos, width, height);
 	return height;
 }
 

Index: dimuse.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse.h,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- dimuse.h	12 Jan 2004 07:48:39 -0000	1.15
+++ dimuse.h	12 Jan 2004 19:15:07 -0000	1.16
@@ -46,7 +46,7 @@
 		int32 volFadeDelay;	//
 		bool volFadeUsed;	//
 
-		int idSound;
+		int soundId;
 		bool used;
 		bool toBeRemoved;
 		bool started;
@@ -72,13 +72,29 @@
 	ScummEngine *_vm;
 	ImuseDigiSndMgr *_sound;
 	bool _pause;
-	int _curMusicId;
+	int _curMusicState;
+	int _curMusicSeq;
+	int _curMusicCue;
+	
+	int _curMusicSoundId;
 
 	static void timer_handler(void *refConf);
 	void callback();
 	void switchToNextRegion(int track);
 	void startSound(int soundId, const char *soundName, int soundType, int soundGroup, AudioStream *input);
 
+	int32 getPosInMs(int soundId);
+	void getLipSync(int soundId, int syncId, int32 msPos, int32 &width, int32 &height);
+
+	void stopMusic();
+
+	int getSoundIdByName(const char *soundName);
+	void fadeOutMusic();
+	void setFtMusicState(int stateId);
+	void setFtMusicSequence(int seqId);
+	void setFtMusicCuePoint(int cueId);
+	void playFtMusic(const char *songName, int opcode, int volume);
+
 public:
 	IMuseDigital(ScummEngine *scumm);
 	~IMuseDigital();
@@ -99,15 +115,12 @@
 		{ error("MusicEngine::startSound() Should be never called"); }
 
 	void setMasterVolume(int vol) {}
-	void stopMusic();
 	void stopSound(int soundId);
-	void stopAllSounds(bool waitForStop);
 	void stopAllSounds() { stopAllSounds(false); }
+	void stopAllSounds(bool waitForStop);
 	void pause(bool pause);
 	void parseScriptCmds(int a, int b, int c, int d, int e, int f, int g, int h);
 	int getSoundStatus(int sound) const;
-	int32 getPosInMs(int soundId);
-	void getLipSync(int soundId, int syncId, int32 msPos, int32 &width, int32 &height);
 	int32 getCurMusicPosInMs();
 	int32 getCurVoiceLipSyncWidth();
 	int32 getCurVoiceLipSyncHeight();
@@ -136,11 +149,21 @@
 	int unk4;
 };
 
-struct imuse_ft_music_table {
-	char audioname[15];
+struct imuseFtNames {
+	char name[20];
+};
+
+struct imuseFtStateTable {
+	char audioName[9];
+	int8 opcode;
+	int8 volume;
+	char name[21];
+};
+
+struct imuseFtSeqTable {
+	char audioName[9];
 	int8 opcode;
 	int8 volume;
-	char name[30];
 };
 
 #ifdef __PALM_OS__
@@ -149,16 +172,18 @@
 extern const imuse_music_table *_comiStateMusicTable;
 extern const imuse_music_table *_comiSeqMusicTable;
 extern const imuse_music_table *_digSeqMusicTable;
-extern const imuse_ft_music_table *_ftStateMusicTable;
-extern const imuse_ft_music_table *_ftSeqMusicTable;
+extern const imuseFtStateTable *_ftStateMusicTable;
+extern const imuseFtSeqTable *_ftSeqMusicTable;
+extern const imuseFtNames *_ftSeqNames;
 #else
 extern imuse_music_map _digStateMusicMap[];
 extern const imuse_music_table _digStateMusicTable[];
 extern const imuse_music_table _digSeqMusicTable[];
 extern const imuse_music_table _comiStateMusicTable[];
 extern const imuse_music_table _comiSeqMusicTable[];
-extern const imuse_ft_music_table _ftStateMusicTable[];
-extern const imuse_ft_music_table _ftSeqMusicTable[];
+extern const imuseFtStateTable _ftStateMusicTable[];
+extern const imuseFtSeqTable _ftSeqMusicTable[];
+extern const imuseFtNames _ftSeqNames[];
 #endif
 
 } // End of namespace Scumm

Index: dimuse_tables.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse_tables.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- dimuse_tables.cpp	12 Jan 2004 07:51:34 -0000	1.5
+++ dimuse_tables.cpp	12 Jan 2004 19:15:07 -0000	1.6
@@ -479,7 +479,7 @@
 	{-1, -1,  0, 0, 0, 0,  "",                  "",                       ""}
 };
 
-const imuse_ft_music_table _ftStateMusicTable[] = {
+const imuseFtStateTable _ftStateMusicTable[] = {
 	{"",         0,  0,    "STATE_NULL"          },
 	{"",         4,  127,  "stateKstandOutside"  },
 	{"kinside",  2,  127,  "stateKstandInside"   },
@@ -531,266 +531,321 @@
 	{"",         4,  0,    "stateCliffHanger2"   },
 };
 
-const imuse_ft_music_table _ftSeqMusicTable[] = {
-	{"",         2,  127,  "SEQ_NULL"            },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
+const imuseFtNames _ftSeqNames[] = {
+	{"SEQ_NULL"           },
+	{"seqLogo"            },
+	{"seqOpenFlick"       },
+	{"seqBartender"       },
+	{"seqBenWakes"        },
+	{"seqPhotoScram"      },
+	{"seqClimbChain"      },
+	{"seqDogChase"        },
+	{"seqDogSquish"       },
+	{"seqDogHoist"        },
+	{"seqCopsArrive"      },
+	{"seqCopsLand"        },
+	{"seqCopsLeave"       },
+	{"seqCopterFlyby"     },
+	{"seqCopterCrash"     },
+	{"seqMoGetsParts"     },
+	{"seqMoFixesBike"     },
+	{"seqFirstGoodbye"    },
+	{"seqCopRoadblock"    },
+	{"seqDivertCops"      },
+	{"seqMurder"          },
+	{"seqCorleyDies"      },
+	{"seqTooLateAtMoes"   },
+	{"seqPicture"         },
+	{"seqNewsReel"        },
+	{"seqCopsInspect"     },
+	{"seqHijack"          },
+	{"seqNestolusAtRanch" },
+	{"seqRipLimo"         },
+	{"seqGorgeTurn"       },
+	{"seqCavefishTalk"    },
+	{"seqArriveCorville"  },
+	{"seqSingleBunny"     },
+	{"seqBunnyArmy"       },
+	{"seqArriveAtMines"   },
+	{"seqArriveAtVultures"},
+	{"seqMakePlan"        },
+	{"seqShowPlan"        },
+	{"seqDerbyStart"      },
+	{"seqLightBales"      },
+	{"seqNestolusBBQ"     },
+	{"seqCallSecurity"    },
+	{"seqFilmFail"        },
+	{"seqFilmBurn"        },
+	{"seqRipSpeech"       },
+	{"seqExposeRip"       },
+	{"seqRipEscape"       },
+	{"seqRareMoment"      },
+	{"seqFanBunnies"      },
+	{"seqRipDead"         },
+	{"seqFuneral"         },
+	{"seqCredits"         }
+};
 
-	{"opening",  2,  127,  "seqOpenFlick"        },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
+const imuseFtSeqTable _ftSeqMusicTable[] = {
+	{"",         2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"barbeat",  2,  127,  "seqBartender"        },
-	{"barwarn",  2,  127,  ""		             },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
+	{"opening",  2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"benwakes", 2,  127,  "seqBenWakes"         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""		             },
+	{"barbeat",  2,  127},
+	{"barwarn",  2,  127},
+	{"",         0,  0  },
+	{"",         0,  0, },
 
-	{"barwarn",  2,  127,  "seqPhotoScram"       },
-	{"",         0,  0,	   ""		             },
-	{"",         0,  0,	   ""		             },
-	{"",         0,  0,	   ""		             },
+	{"benwakes", 2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"swatben",  2,  127,  "seqClimbChain"       },
-	{"",         0,  0,	   ""                    },
-	{"",         0,  0,	   ""                    },
-	{"",         0,  0,	   ""                    },
+	{"barwarn",  2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"dogattak", 2,  127,  "seqDogChase"         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""	                 },
+	{"swatben",  2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"",         4,  0,	   "seqDogSquish"		 },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""	                 },
+	{"dogattak", 2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"",         4,  0,	   "seqDogHoist"	     },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
+	{"",         4,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"cops2",    2,  127,  "seqCopsArrive"       },
-	{"",         0,  0,	   ""				     },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
+	{"",         4,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"cops2",    2,  127,  "seqCopsLand"         },
-	{"",         0,  0,	   ""				     },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
+	{"cops2",    2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"cops2",    2,  127,  "seqCopsLeave"        },
-	{"",         0,  0,	   ""				     },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
+	{"cops2",    2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"",         0,  0,	   "seqCopterFlyby"	     },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""				     },
+	{"cops2",    2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"bunymrch", 2,  127,  "seqCopterCrash"      },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""				     },
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"",         4,  0,	   "seqMoGetsParts"		 },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,    ""				     },
+	{"bunymrch", 2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"",         0,  0,    "seqMoFixesBike"      },
-	{"melcut",   2,  127,  ""                    },
-	{"tada",     2,  127,  ""                    },
-	{"",         0,  0,    ""                    },
+	{"",         4,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"",         4,  0,    "seqFirstGoodbye"     },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,    ""				     },
+	{"",         0,  0  },
+	{"melcut",   2,  127},
+	{"tada",     2,  127},
+	{"",         0,  0  },
 
-	{"trucker",  2,  127,  "seqCopRoadblock"     },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,    ""				     },
+	{"",         4,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"cops2",    2,  127,  "seqDivertCops"       },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,    ""				     },
+	{"trucker",  2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"barwarn",  2,  127,  "seqMurder"           },
-	{"murder",   2,  127,  ""                    },
-	{"murder2",  2,  127,  ""                    },
-	{"",         0,  0,    ""				     },
+	{"cops2",    2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"corldie",  2,  127,  "seqCorleyDies"       },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,    ""				     },
+	{"barwarn",  2,  127},
+	{"murder",   2,  127},
+	{"murder2",  2,  127},
+	{"",         0,  0  },
 
-	{"barwarn",  2,  127,  "seqTooLateAtMoes"    },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,    ""				     },
+	{"corldie",  2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"picture",  2,  127,  "seqPicture"          },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,    ""				     },
+	{"barwarn",  2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"ripintro", 2,  127,  "seqNewsReel"         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,    ""				     },
+	{"picture",  2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"trucker",  2,  127,  "seqCopsInspect"      },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"hosed",    2,  127,  ""                    },
+	{"ripintro", 2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"ripdead",  2,  127,  "seqHijack"           },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,    ""				     },
+	{"trucker",  2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"hosed",    2,  127},
 
-	{"nesranch", 2,  127,  "seqNestolusAtRanch"  },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,    ""				     },
+	{"ripdead",  2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"scolding", 2,  127,  "seqRipLimo"          },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,    ""				     },
+	{"nesranch", 2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"desert",   2,  127,  "seqGorgeTurn"        },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,    ""				     },
+	{"scolding", 2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"cavecut1", 2,  127,  "seqStealRamp"        },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,    ""				     },
+	{"desert",   2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"caveamb",  2,  80,   "seqCavefishTalk"     },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,    ""				     },
+	{"cavecut1", 2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"castle",   2,  127,  "seqArriveCorville"   },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,    ""				     },
+	{"caveamb",  2,  80 },
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"bunymrch", 2,  105,  "seqSingleBunny"      },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,    ""				     },
+	{"castle",   2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"valkyrs",  2,  127,  "seqBunnyArmy"        },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,    ""				     },
+	{"bunymrch", 2,  105},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"melcut",   2,  127,  "seqArriveAtMines"    },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,    ""				     },
+	{"valkyrs",  2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"veltures", 2,  127,  "seqArriveAtVultures" },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,    ""			         },
+	{"melcut",   2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"sorry",    2,  127,  "seqMakePlan"         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,    ""		             },
+	{"veltures", 2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"makeplan", 2,  127,  "seqShowPlan"         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,    ""				     },
+	{"sorry",    2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"castle",   2,  127,  "seqDerbyStart"       },
-	{"derby",    2,  127,  ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,    ""				     },
+	{"makeplan", 2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"fire",     3,  127,  "seqLightBales"       },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,    ""				     },
+	{"castle",   2,  127},
+	{"derby",    2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"saveme",   3,  127,  "seqNestolusBBQ"      },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"scolding", 2,  127,  ""				     },
+	{"fire",     3,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"cops2",    2,  127,  "seqCallSecurity"     },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,    ""				     },
+	{"saveme",   3,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"scolding", 2,  127},
 
-	{"sorry",    2,  127,  "seqFilmFail"         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,    ""				     },
+	{"cops2",    2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"sorry",    2,  127,  "seqFilmBurn"         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,    ""				     },
+	{"sorry",    2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"caveamb",  2,  85,   "seqRipSpeech"        },
-	{"tada",     2,  127,  ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,    ""				     },
+	{"sorry",    2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"expose",   2,  127,  "seqExposeRip"		 },
-	{"",         4,  0,	   ""			         },
-	{"",         0,  0,    ""				     },
-	{"mocoup",   2,  127,  ""                    },
+	{"caveamb",  2,  85 },
+	{"tada",     2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"ripscram", 2,  127,  "seqRipEscape"		 },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,    ""				     },
-	{"",         0,  0,    ""				     },
+	{"expose",   2,  127},
+	{"",         4,  0  },
+	{"",         0,  0  },
+	{"mocoup",   2,  127},
 
-	{"",         2,  127,  "seqRareMoment"       },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,    ""				     },
+	{"ripscram", 2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"valkyrs",  2,  127,  "seqFanBunnies"       },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,    ""				     },
+	{"",         2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"ripdead",  2,  127,  "seqRipDead"          },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,	   ""			         },
-	{"",         0,  0,    ""				     },
+	{"valkyrs",  2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"funeral",  2,  127,  "seqFuneral"          },
-	{"",         2,  127,  ""			         },
-	{"moshop",   3,  64,   ""			         },
-	{"",         0,  0,    ""				     },
+	{"ripdead",  2,  127},
+	{"",         0,  0  },
+	{"",         0,  0  },
+	{"",         0,  0  },
 
-	{"bornbad",  2,  127,  "seqCredits"          },
-	{"hammvox",  2,  127,  ""			         },
-	{"legavox",  2,  127,  ""			         },
-	{"chances",  2,  90,   ""			         },
+	{"funeral",  2,  127},
+	{"",         2,  127},
+	{"moshop",   3,  64 },
+	{"",         0,  0  },
+
+	{"bornbad",  2,  127},
+	{"hammvox",  2,  127},
+	{"legavox",  2,  127},
+	{"chances",  2,  90 },
 };
 #endif
 





More information about the Scummvm-git-logs mailing list