[Scummvm-cvs-logs] CVS: scummvm/scumm/imuse_digi dimuse.cpp,1.33,1.34 dimuse.h,1.19,1.20 dimuse_music.cpp,1.4,1.5 dimuse_tables.cpp,1.7,1.8

Pawel Kolodziejski aquadran at users.sourceforge.net
Sat Jan 17 00:35:01 CET 2004


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

Modified Files:
	dimuse.cpp dimuse.h dimuse_music.cpp dimuse_tables.cpp 
Log Message:
added code for dig music

Index: dimuse.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse.cpp,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -d -r1.33 -r1.34
--- dimuse.cpp	15 Jan 2004 08:01:28 -0000	1.33
+++ dimuse.cpp	17 Jan 2004 08:34:54 -0000	1.34
@@ -52,9 +52,8 @@
 	_curMusicCue = 0;
 	memset(_attributesSeq, 0, sizeof(_attributesSeq));
 	memset(_attributesState, 0, sizeof(_attributesState));
+	memset(_attributesTable, 0, sizeof(_attributesTable));
 	_curSeqAtribPos = 0;
-
-	_curMusicSoundId = -1;
 }
 
 IMuseDigital::~IMuseDigital() {
@@ -303,11 +302,6 @@
 				_vm->_mixer->playInputStream(&_track[l].handle, _track[l].stream, true, _track[l].vol / 1000, _track[l].pan, -1);
 			}
 
-			if ((_track[l].soundGroup == IMUSE_MUSIC) && (_vm->_gameId != GID_FT) && !((_vm->_gameId == GID_CMI) && (_vm->_features != GF_DEMO))) {
-				fadeOutMusic(120);
-				_curMusicSoundId = soundId;
-			}
-
 			_track[l].locked = false;
 			_track[l].used = true;
 			return;
@@ -316,19 +310,6 @@
 	warning("IMuseDigital::startSound(): All slots are full");
 }
 
-void IMuseDigital::stopMusic() {
-	debug(5, "IMuseDigital::stopMusic()");
-	for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) {
-		_track[l].locked = true;
-		if ((_track[l].soundId == _curMusicSoundId) && _track[l].used) {
-			if (_track[l].stream) {
-				_track[l].toBeRemoved = true;
-			}
-		}
-		_track[l].locked = false;
-	}
-}
-
 void IMuseDigital::stopSound(int soundId) {
 	debug(5, "IMuseDigital::stopSound(%d)", soundId);
 	for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) {
@@ -357,8 +338,6 @@
 		_track[l].locked = false;
 	}
 
-	_curMusicSoundId = -1;
-
 	if (waitForStop) {
 		bool used;
 		do {
@@ -411,8 +390,6 @@
 				_track[l].locked = true;
 				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);
 				}
 				_track[l].locked = false;
 			}
@@ -469,16 +446,6 @@
 			break;
 		}
 		break;
-	case 15: // ImuseSetHook
-		debug(5, "ImuseSetHookId (%d, %d)", sample, c);
-		for (l = 0; l < MAX_DIGITAL_TRACKS; l++) {
-			_track[l].locked = true;
-			if ((_track[l].soundId == sample) && _track[l].used) {
-				_track[l].curHookId = c;
-			}
-			_track[l].locked = false;
-		}
-		break;
 	case 25: // ImuseStartStream
 		debug(5, "ImuseStartStream (%d, %d, %d)", sample, c, d);
 		break;
@@ -488,41 +455,36 @@
 	case 0x1000: // ImuseSetState
 		debug(5, "ImuseSetState (%d)", b);
 		if ((_vm->_gameId == GID_DIG) && (_vm->_features & GF_DEMO)) {
-			if (b == 1)
+			if (b == 1) {
+				fadeOutMusic(120);
 				startMusic(1, false);
-			else {
-				if (getSoundStatus(2) == 0)
+			} else {
+				if (getSoundStatus(2) == 0) {
+					fadeOutMusic(120);
 					startMusic(2, false);
-			}
-		} else if (_vm->_gameId == GID_DIG) {
-			if (b == 1000) {		// STATE_NULL
-				stopMusic();
-				return;
-			}
-			for (l = 0; _digStateMusicMap[l].room != -1; l++) {
-				if (_digStateMusicMap[l].room == b) {
-					int music = _digStateMusicMap[l].table_index;
-					debug(5, "Play imuse music: %s, %s, %s", _digStateMusicTable[music].name, _digStateMusicTable[music].title, _digStateMusicTable[music].filename);
-					if (_digStateMusicTable[music].filename[0] != 0) {
-						startMusic(_digStateMusicTable[music].filename, _digStateMusicTable[music].id, false, 0);
-					}
-					break;
 				}
 			}
 		} else if ((_vm->_gameId == GID_CMI) && (_vm->_features & GF_DEMO)) {
 			if (b == 2) {
+				fadeOutMusic(120);
 				startMusic("in1.imx", 2002, false, 0);
 			} else if (b == 4) {
+				fadeOutMusic(120);
 				startMusic("in2.imx", 2004, false, 0);
 			} else if (b == 8) {
+				fadeOutMusic(120);
 				startMusic("out1.imx", 2008, false, 0);
 			} else if (b == 9) {
+				fadeOutMusic(120);
 				startMusic("out2.imx", 2009, false, 0);
 			} else if (b == 16) {
+				fadeOutMusic(120);
 				startMusic("gun.imx", 2016, false, 0);
 			} else {
 				warning("imuse digital: set state unknown for cmi demo: %d, room: %d", b, this->_vm->_currentRoom);
 			}
+		} else if (_vm->_gameId == GID_DIG) {
+			setDigMusicState(b);
 		} else if (_vm->_gameId == GID_CMI) {
 			setComiMusicState(b);
 		} else if (_vm->_gameId == GID_FT) {
@@ -532,15 +494,7 @@
 	case 0x1001: // ImuseSetSequence
 		debug(5, "ImuseSetSequence (%d)", b);
 		if (_vm->_gameId == GID_DIG) {
-			for (l = 0; _digSeqMusicTable[l].room != -1; l++) {
-				if (_digSeqMusicTable[l].room == b) {
-					debug(5, "Play imuse music: %s, %s, %s", _digSeqMusicTable[l].name, _digSeqMusicTable[l].title, _digSeqMusicTable[l].filename);
-					if (_digSeqMusicTable[l].filename[0] != 0) {
-						startMusic(_digSeqMusicTable[l].filename, b, false, 0);
-					}
-					break;
-				}
-			}
+			setDigMusicSequence(b);
 		} else if (_vm->_gameId == GID_CMI) {
 			setComiMusicSequence(b);
 		} else if (_vm->_gameId == GID_FT) {
@@ -556,6 +510,8 @@
 	case 0x1003: // ImuseSetAttribute
 		debug(5, "ImuseSetAttribute (%d, %d)", b, c);
 		if (_vm->_gameId == GID_DIG) {
+			assert(b >= 0 && b < 11);
+			_attributesTable[b] = c;
 		}
 		break;
 	case 0x2000: // ImuseSetMasterSFXVolume

Index: dimuse.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse.h,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -d -r1.19 -r1.20
--- dimuse.h	15 Jan 2004 06:37:00 -0000	1.19
+++ dimuse.h	17 Jan 2004 08:34:54 -0000	1.20
@@ -35,6 +35,7 @@
 
 #define MAX_DIGITAL_TRACKS 16
 
+struct imuseDigTable;
 struct imuseComiTable;
 
 class IMuseDigital : public MusicEngine {
@@ -77,6 +78,7 @@
 	ImuseDigiSndMgr *_sound;
 	bool _pause;
 
+	int _attributesTable[11];
 	int _attributesState[97];
 	int _attributesSeq[91];
 	int _curSeqAtribPos;
@@ -85,8 +87,6 @@
 	int _curMusicSeq;
 	int _curMusicCue;
 
-	int _curMusicSoundId;
-
 	static void timer_handler(void *refConf);
 	void callback();
 	void switchToNextRegion(int track);
@@ -95,10 +95,9 @@
 	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(int fadeDelay);
+
 	void setFtMusicState(int stateId);
 	void setFtMusicSequence(int seqId);
 	void setFtMusicCuePoint(int cueId);
@@ -108,6 +107,10 @@
 	void setComiMusicSequence(int seqId);
 	void playComiMusic(const char *songName, const imuseComiTable *table, int atribPos, bool sequence);
 
+	void setDigMusicState(int stateId);
+	void setDigMusicSequence(int seqId);
+	void playDigMusic(const char *songName, const imuseDigTable *table, int atribPos, bool sequence);
+
 public:
 	IMuseDigital(ScummEngine *scumm);
 	virtual ~IMuseDigital();
@@ -141,24 +144,21 @@
 	int32 getCurMusicLipSyncHeight(int syncId);
 };
 
-struct imuse_music_map {
-	int room;
-	int table_index;
+struct imuseRoomMap {
+	int roomId;
+	int musicTableIndex;
 	int unk1;
 	int unk2;
 	int unk3;
 	int unk4;
 };
 
-struct imuseDigtable {
-	int room;
-	int id;
-	int unk1;
-	int unk2;
-	int unk3;
-	int unk4;
-	char name[30];
+struct imuseDigTable {
 	char title[30];
+	int opcode;
+	int soundId;
+	char name[30];
+	int param;
 	char filename[13];
 };
 
@@ -192,18 +192,18 @@
 };
 
 #ifdef __PALM_OS__
-extern imuse_music_map *_digStateMusicMap;
-extern const imuseDigtable *_digStateMusicTable;
-extern const imuseDigtable *_comiStateMusicTable;
+extern const imuseRoomMap *_digStateMusicMap;
+extern const imuseDigTable *_digStateMusicTable;
+extern const imuseDigTable *_comiStateMusicTable;
 extern const imuseComiTable *_comiSeqMusicTable;
 extern const imuseComiTable *_digSeqMusicTable;
 extern const imuseFtStateTable *_ftStateMusicTable;
 extern const imuseFtSeqTable *_ftSeqMusicTable;
 extern const imuseFtNames *_ftSeqNames;
 #else
-extern imuse_music_map _digStateMusicMap[];
-extern const imuseDigtable _digStateMusicTable[];
-extern const imuseDigtable _digSeqMusicTable[];
+extern const imuseRoomMap _digStateMusicMap[];
+extern const imuseDigTable _digStateMusicTable[];
+extern const imuseDigTable _digSeqMusicTable[];
 extern const imuseComiTable _comiStateMusicTable[];
 extern const imuseComiTable _comiSeqMusicTable[];
 extern const imuseFtStateTable _ftStateMusicTable[];

Index: dimuse_music.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse_music.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- dimuse_music.cpp	14 Jan 2004 22:07:24 -0000	1.4
+++ dimuse_music.cpp	17 Jan 2004 08:34:54 -0000	1.5
@@ -25,10 +25,164 @@
 
 namespace Scumm {
 
+void IMuseDigital::setDigMusicState(int stateId) {
+	int l, num = -1;
+
+	for (l = 0; _digStateMusicTable[l].soundId != -1; l++) {
+		if ((_digStateMusicTable[l].soundId == stateId)) {
+			debug(5, "Set music state: %s, %s, %s", _digStateMusicTable[l].name, _digStateMusicTable[l].title, _digStateMusicTable[l].filename);
+			num = l;
+			break;
+		}
+	}
+
+	if (num == -1) {
+		for (l = 0; _digStateMusicMap[l].roomId != -1; l++) {
+			if ((_digStateMusicMap[l].roomId == stateId)) {
+				break;
+			}
+		}
+		num = l;
+
+		int val2 = _attributesTable[_digStateMusicMap[num].unk1];
+		if (val2 == 0) {
+			if (_attributesTable[_digStateMusicMap[num].unk3] != 0) {
+				num = _digStateMusicMap[num].unk4;
+			} else {
+				num = _digStateMusicMap[num].musicTableIndex;
+			}
+		} else {
+			int val = _attributesTable[_digStateMusicMap[num].unk2];
+			if (val == 0) {
+				num = _digStateMusicMap[num].musicTableIndex + val2;
+			} else {
+				num = val;
+			}
+		}
+	}
+
+	debug(5, "Set music state: %s, %s, %s", _digStateMusicTable[num].name, _digStateMusicTable[num].title, _digStateMusicTable[num].filename);
+
+	if (_curMusicState == num)
+		return;
+
+	if (_curMusicSeq == 0) {
+		if (num == 0)
+			playDigMusic(NULL, &_digStateMusicTable[num], num, false);
+		else
+			playDigMusic(_digStateMusicTable[num].name, &_digStateMusicTable[num], num, false);
+	}
+
+	_curMusicState = num;
+}
+
+void IMuseDigital::setDigMusicSequence(int seqId) {
+	int l, num = -1;
+
+	if (seqId == 0)
+		seqId = 2000;
+
+	for (l = 0; _digSeqMusicTable[l].soundId != -1; l++) {
+		if ((_digSeqMusicTable[l].soundId == seqId)) {
+			debug(5, "Set music sequence: %s, %s, %s", _digSeqMusicTable[l].name, _digSeqMusicTable[l].title, _digSeqMusicTable[l].filename);
+			num = l;
+			break;
+		}
+	}
+	assert(num != -1);
+
+	if (_curMusicSeq == num)
+		return;
+
+	if (num != 0) {
+		if (_curMusicSeq == 0) {
+			playDigMusic(_digSeqMusicTable[num].name, &_digSeqMusicTable[num], 0, true);
+			_curSeqAtribPos = 0;
+			_attributesSeq[num] = 1;
+		} else {
+			if ((_digSeqMusicTable[_curMusicSeq].opcode == 4) && (_digSeqMusicTable[_curMusicSeq].opcode == 6)) {
+				_curSeqAtribPos = num;
+				return;
+			} else if (_digSeqMusicTable[_curMusicSeq].opcode == 6) {
+				playDigMusic(_digSeqMusicTable[num].name, &_digSeqMusicTable[num], 0, true);
+				_curSeqAtribPos = 0;
+				_attributesSeq[num] = 1;
+			}
+		}
+	} else {
+		if (_curSeqAtribPos != 0) {
+			playDigMusic(_digSeqMusicTable[_curSeqAtribPos].name, &_digSeqMusicTable[num], 0, true);
+			_attributesSeq[_curSeqAtribPos] = 1;
+			_curSeqAtribPos = 0;
+			num = _curSeqAtribPos;
+		} else {
+			if (_curMusicState != 0)
+				playDigMusic(_digStateMusicTable[_curMusicState].name, &_digSeqMusicTable[num], _curMusicState, false);
+			else
+				playDigMusic(NULL, &_digStateMusicTable[num], _curMusicState, false);
+			num = 0;
+		}
+	}
+
+	_curMusicSeq = num;
+}
+
+void IMuseDigital::playDigMusic(const char *songName, const imuseDigTable *table, int atribPos, bool sequence) {
+	int hookId = 0;
+
+	if (songName != NULL) {
+		if ((_attributesSeq[38] != 0) && (_attributesSeq[41] == _attributesSeq[38])) {
+			if ((atribPos == 43) || (atribPos == 44))
+				hookId = 3;
+		}
+
+		if ((_attributesSeq[46] != 0) && (_attributesSeq[48] == 0)) {
+			if ((atribPos == 38) || (atribPos == 39))
+				hookId = 3;
+		}
+
+		if ((_attributesSeq[53] != 0)) {
+			if ((atribPos == 50) || (atribPos == 51))
+				hookId = 3;
+		}
+
+		if ((atribPos != 0) && (hookId == 0)) {
+			if (table->param != 0)
+				atribPos = table->param;
+			hookId = _attributesSeq[atribPos];
+		}
+	}
+
+	if (table->filename[0] == 0) {
+		fadeOutMusic(120);
+		return;
+	}
+
+	fadeOutMusic(120);
+
+	switch(table->opcode) {
+		case 0:
+		case 5:
+		case 6:
+			break;
+		case 3:
+			if ((!sequence) && (table->param != 0)) {
+				if (table->param == _digStateMusicTable[_curMusicState].param) {
+					startMusic(table->filename, table->soundId, sequence, 0);
+				} 
+			} else {
+				startMusic(table->filename, table->soundId, sequence, hookId);
+			}
+		case 4:
+			startMusic(table->filename, table->soundId, sequence, 0);
+			break;
+	}
+}
+
 void IMuseDigital::setComiMusicState(int stateId) {
 	int l, num = -1;
 
-	if (stateId == 0)
+	if ((stateId == 0) && (stateId == 4))
 		stateId = 1000;
 
 	for (l = 0; _comiStateMusicTable[l].soundId != -1; l++) {

Index: dimuse_tables.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse_tables.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- dimuse_tables.cpp	14 Jan 2004 22:07:24 -0000	1.7
+++ dimuse_tables.cpp	17 Jan 2004 08:34:54 -0000	1.8
@@ -24,15 +24,16 @@
 namespace Scumm {
 
 #ifdef __PALM_OS__
-imuse_music_map *_digStateMusicMap;
-const imuse_music_table *_digStateMusicTable;
-const imuse_music_table *_comiStateMusicTable;
-const imuse_music_table *_comiSeqMusicTable;
-const imuse_music_table *_digSeqMusicTable;
-const imuse_ft_music_table *_ftStateMusicTable;
-const imuse_ft_music_table *_ftSeqMusicTable;
+const imuseRoomMap *_digStateMusicMap;
+const imuseDigTable *_digStateMusicTable;
+const imuseDigTable *_digSeqMusicTable;
+const imuseComiTable *_comiStateMusicTable;
+const imuseComiTable *_comiSeqMusicTable;
+const imuseFtStateTable *_ftStateMusicTable;
+const imuseFtSeqTable *_ftSeqMusicTable;
+const imuseFtNames *_ftSeqNames;
 #else
-imuse_music_map _digStateMusicMap[] = {
+const imuseRoomMap _digStateMusicMap[] = {
 	{0,   0,  0,  0,  0,  0 },
 	{1,   0,  0,  0,  0,  0 },
 	{2,   2,  0,  0,  0,  0 },
@@ -150,143 +151,143 @@
 	{-1,  1,  0,  0,  0,  0 }
 };
 
-const imuseDigtable _digStateMusicTable[] = {
-	{0,   1000, 0, 0, 0, 0, "STATE_NULL",           "",                     ""},
-	{1,   1001, 0, 0, 0, 0, "stateNoChange",        "",                     ""},
-	{2,   1100, 0, 3, 2, 0, "stateAstShip",         "Asteroid (amb-ship)",  "ASTERO~1.IMU"},
-	{3,   1120, 0, 3, 2, 0, "stateAstClose",        "Asteroid (amb-close)", "ASTERO~2.IMU"},
-	{4,   1140, 0, 3, 0, 0, "stateAstInside",       "Asteroid (inside)",    "ASTERO~3.IMU"},
-	{5,   1150, 0, 3, 0, 0, "stateAstCore",         "Asteroid (core)",      "ASTERO~4.IMU"},
-	{6,   1200, 0, 3, 0, 0, "stateCanyonClose",     "Canyon (close)",       "CANYON~1.IMU"},
-	{7,   1205, 0, 3, 0, 0, "stateCanyonClose_m",   "Canyon (close-m)",     "CANYON~2.IMU"},
-	{8,   1210, 0, 3, 0, 0, "stateCanyonOver",      "Canyon (over)",        "CANYON~3.IMU"},
-	{9,   1220, 0, 3, 0, 0, "stateCanyonWreck",     "Canyon (wreck)",       "CANYON~4.IMU"},
-	{10,  1300, 0, 3,10, 0, "stateNexusCanyon",     "Nexus (plan)",         "NEXUS(~1.IMU"},
-	{11,  1310, 0, 3,10, 0, "stateNexusPlan",       "Nexus (plan)",         "NEXUS(~1.IMU"},
-	{12,  1320, 0, 3,10, 0, "stateNexusRamp",       "Nexus (ramp)",         "NEXUS(~2.IMU"},
-	{13,  1330, 0, 3,10, 0, "stateNexusMuseum",     "Nexus (museum)",       "NEXUS(~3.IMU"},
-	{14,  1340, 0, 3,10, 0, "stateNexusMap",        "Nexus (map)",          "NEXUS(~4.IMU"},
-	{15,  1350, 0, 3,10, 0, "stateNexusTomb",       "Nexus (tomb)",         "NE3706~5.IMU"},
-	{16,  1360, 0, 3,10, 0, "stateNexusCath",       "Nexus (cath)",         "NE3305~5.IMU"},
-	{17,  1370, 0, 3, 0, 0, "stateNexusAirlock",    "Nexus (airlock)",      "NE2D3A~5.IMU"},
-	{18,  1380, 0, 3, 0, 0, "stateNexusPowerOff",   "Nexus (power)",        "NE8522~5.IMU"},
-	{19,  1400, 0, 3, 0, 0, "stateMuseumTramNear",  "Tram (mu-near)",       "TRAM(M~1.IMU"},
-	{20,  1410, 0, 3, 0, 0, "stateMuseumTramFar",   "Tram (mu-far)",        "TRAM(M~2.IMU"},
-	{21,  1420, 0, 3, 0, 0, "stateMuseumLockup",    "Museum (lockup)",      "MUSEUM~1.IMU"},
-	{22,  1433, 0, 3,22, 0, "stateMuseumPool",      "Museum (amb-pool)",    "MUSEUM~2.IMU"},
-	{23,  1436, 0, 3,22, 0, "stateMuseumSpire",     "Museum (amb-spire)",   "MUSEUM~3.IMU"},
-	{24,  1440, 0, 3,22, 0, "stateMuseumMuseum",    "Museum (amb-mu)",      "MUSEUM~4.IMU"},
-	{25,  1450, 0, 3, 0, 0, "stateMuseumLibrary",   "Museum (library)",     "MUB575~5.IMU"},
-	{26,  1460, 0, 3, 0, 0, "stateMuseumCavern",    "Museum (cavern)",      "MUF9BE~5.IMU"},
-	{27,  1500, 0, 3, 0, 0, "stateTombTramNear",    "Tram (tomb-near)",     "TRAM(T~1.IMU"},
-	{28,  1510, 0, 3,28, 0, "stateTombBase",        "Tomb (amb-base)",      "TOMB(A~1.IMU"},
-	{29,  1520, 0, 3,28, 0, "stateTombSpire",       "Tomb (amb-spire)",     "TOMB(A~2.IMU"},
-	{30,  1530, 0, 3,28, 0, "stateTombCave",        "Tomb (amb-cave)",      "TOMB(A~3.IMU"},
-	{31,  1540, 0, 3,31, 0, "stateTombCrypt",       "Tomb (crypt)",         "TOMB(C~1.IMU"},
-	{32,  1550, 0, 3,31, 0, "stateTombGuards",      "Tomb (crypt-guards)",  "TOMB(C~2.IMU"},
-	{33,  1560, 0, 3, 0, 0, "stateTombInner",       "Tomb (inner)",         "TOMB(I~1.IMU"},
-	{34,  1570, 0, 3, 0, 0, "stateTombCreator1",    "Tomb (creator 1)",     "TOMB(C~3.IMU"},
-	{35,  1580, 0, 3, 0, 0, "stateTombCreator2",    "Tomb (creator 2)",     "TOMB(C~4.IMU"},
-	{36,  1600, 0, 3, 0, 0, "statePlanTramNear",    "Tram (plan-near)",     "TRAM(P~1.IMU"},
-	{37,  1610, 0, 3, 0, 0, "statePlanTramFar",     "Tram (plan-far)",      "TRAM(P~2.IMU"},
-	{38,  1620, 0, 3,38, 0, "statePlanBase",        "Plan (amb-base)",      "PLAN(A~1.IMU"},
-	{39,  1630, 0, 3,38, 0, "statePlanSpire",       "Plan (amb-spire)",     "PLAN(A~2.IMU"},
-	{40,  1650, 0, 3, 0, 0, "statePlanDome",        "Plan (dome)",          "PLAN(D~1.IMU"},
-	{41,  1700, 0, 3, 0, 0, "stateMapTramNear",     "Tram (map-near)",      "TRAM(M~3.IMU"},
-	{42,  1710, 0, 3, 0, 0, "stateMapTramFar",      "Tram (map-far)",       "TRAM(M~4.IMU"},
-	{43,  1720, 0, 3,43, 0, "stateMapCanyon",       "Map (amb-canyon)",     "MAP(AM~1.IMU"},
-	{44,  1730, 0, 3,43, 0, "stateMapExposed",      "Map (amb-exposed)",    "MAP(AM~2.IMU"},
-	{45,  1750, 0, 3,43, 0, "stateMapNestEmpty",    "Map (amb-nest)",       "MAP(AM~4.IMU"},
-	{46,  1760, 0, 3, 0, 0, "stateMapNestMonster",  "Map (monster)",        "MAP(MO~1.IMU"},
-	{47,  1770, 0, 3, 0, 0, "stateMapKlein",        "Map (klein)",          "MAP(KL~1.IMU"},
-	{48,  1800, 0, 3, 0, 0, "stateCathTramNear",    "Tram (cath-near)",     "TRAM(C~1.IMU"},
-	{49,  1810, 0, 3, 0, 0, "stateCathTramFar",     "Tram (cath-far)",      "TRAM(C~2.IMU"},
-	{50,  1820, 0, 3,50, 0, "stateCathLab",         "Cath (amb-inside)",    "CATH(A~1.IMU"},
-	{51,  1830, 0, 3,50, 0, "stateCathOutside",     "Cath (amb-outside)",   "CATH(A~2.IMU"},
-	{52,  1900, 0, 3,52, 0, "stateWorldMuseum",     "World (museum)",       "WORLD(~1.IMU"},
-	{53,  1901, 0, 3,52, 0, "stateWorldPlan",       "World (plan)",         "WORLD(~2.IMU"},
-	{54,  1902, 0, 3,52, 0, "stateWorldTomb",       "World (tomb)",         "WORLD(~3.IMU"},
-	{55,  1903, 0, 3,52, 0, "stateWorldMap",        "World (map)",          "WORLD(~4.IMU"},
-	{56,  1904, 0, 3,52, 0, "stateWorldCath",       "World (cath)",         "WO3227~5.IMU"},
-	{57,  1910, 0, 3, 0, 0, "stateEye1",            "Eye 1",                "EYE1~1.IMU"},
-	{58,  1911, 0, 3, 0, 0, "stateEye2",            "Eye 2",                "EYE2~1.IMU"},
-	{59,  1912, 0, 3, 0, 0, "stateEye3",            "Eye 3",                "EYE3~1.IMU"},
-	{60,  1913, 0, 3, 0, 0, "stateEye4",            "Eye 4",                "EYE4~1.IMU"},
-	{61,  1914, 0, 3, 0, 0, "stateEye5",            "Eye 5",                "EYE5~1.IMU"},
-	{62,  1915, 0, 3, 0, 0, "stateEye6",            "Eye 6",                "EYE6~1.IMU"},
-	{63,  1916, 0, 3, 0, 0, "stateEye7",            "Eye 7",                "EYE7~1.IMU"},
-	{-1,  -1,   0, 0, 0, 0, "",                     "",                     ""}
+const imuseDigTable _digStateMusicTable[] = {
+	{"",                     0, 1000, "STATE_NULL",          0, ""},
+	{"",                     0, 1001, "stateNoChange",       0, ""},
+	{"Asteroid (amb-ship)",  3, 1100, "stateAstShip",        2, "ASTERO~1.IMU"},
+	{"Asteroid (amb-close)", 3, 1120, "stateAstClose",       2, "ASTERO~2.IMU"},
+	{"Asteroid (inside)",    3, 1140, "stateAstInside",      0, "ASTERO~3.IMU"},
+	{"Asteroid (core)",      3, 1150, "stateAstCore",        0, "ASTERO~4.IMU"},
+	{"Canyon (close)",       3, 1200, "stateCanyonClose",    0, "CANYON~1.IMU"},
+	{"Canyon (close-m)",     3, 1205, "stateCanyonClose_m",  0, "CANYON~2.IMU"},
+	{"Canyon (over)",        3, 1210, "stateCanyonOver",     0, "CANYON~3.IMU"},
+	{"Canyon (wreck)",       3, 1220, "stateCanyonWreck",    0, "CANYON~4.IMU"},
+	{"Nexus (plan)",         3, 1300, "stateNexusCanyon",   10, "NEXUS(~1.IMU"},
+	{"Nexus (plan)",         3, 1310, "stateNexusPlan",     10, "NEXUS(~1.IMU"},
+	{"Nexus (ramp)",         3, 1320, "stateNexusRamp",     10, "NEXUS(~2.IMU"},
+	{"Nexus (museum)",       3, 1330, "stateNexusMuseum",   10, "NEXUS(~3.IMU"},
+	{"Nexus (map)",          3, 1340, "stateNexusMap",      10, "NEXUS(~4.IMU"},
+	{"Nexus (tomb)",         3, 1350, "stateNexusTomb",     10, "NE3706~5.IMU"},
+	{"Nexus (cath)",         3, 1360, "stateNexusCath",     10, "NE3305~5.IMU"},
+	{"Nexus (airlock)",      3, 1370, "stateNexusAirlock",   0, "NE2D3A~5.IMU"},
+	{"Nexus (power)",        3, 1380, "stateNexusPowerOff",  0, "NE8522~5.IMU"},
+	{"Tram (mu-near)",       3, 1400, "stateMuseumTramNear", 0, "TRAM(M~1.IMU"},
+	{"Tram (mu-far)",        3, 1410, "stateMuseumTramFar",  0, "TRAM(M~2.IMU"},
+	{"Museum (lockup)",      3, 1420, "stateMuseumLockup",   0, "MUSEUM~1.IMU"},
+	{"Museum (amb-pool)",    3, 1433, "stateMuseumPool",    22, "MUSEUM~2.IMU"},
+	{"Museum (amb-spire)",   3, 1436, "stateMuseumSpire",   22, "MUSEUM~3.IMU"},
+	{"Museum (amb-mu)",      3, 1440, "stateMuseumMuseum",  22, "MUSEUM~4.IMU"},
+	{"Museum (library)",     3, 1450, "stateMuseumLibrary",  0, "MUB575~5.IMU"},
+	{"Museum (cavern)",      3, 1460, "stateMuseumCavern",   0, "MUF9BE~5.IMU"},
+	{"Tram (tomb-near)",     3, 1500, "stateTombTramNear",   0, "TRAM(T~1.IMU"},
+	{"Tomb (amb-base)",      3, 1510, "stateTombBase",      28, "TOMB(A~1.IMU"},
+	{"Tomb (amb-spire)",     3, 1520, "stateTombSpire",     28, "TOMB(A~2.IMU"},
+	{"Tomb (amb-cave)",      3, 1530, "stateTombCave",      28, "TOMB(A~3.IMU"},
+	{"Tomb (crypt)",         3, 1540, "stateTombCrypt",     31, "TOMB(C~1.IMU"},
+	{"Tomb (crypt-guards)",  3, 1550, "stateTombGuards",    31, "TOMB(C~2.IMU"},
+	{"Tomb (inner)",         3, 1560, "stateTombInner",      0, "TOMB(I~1.IMU"},
+	{"Tomb (creator 1)",     3, 1570, "stateTombCreator1",   0, "TOMB(C~3.IMU"},
+	{"Tomb (creator 2)",     3, 1580, "stateTombCreator2",   0, "TOMB(C~4.IMU"},
+	{"Tram (plan-near)",     3, 1600, "statePlanTramNear",   0, "TRAM(P~1.IMU"},
+	{"Tram (plan-far)",      3, 1610, "statePlanTramFar",    0, "TRAM(P~2.IMU"},
+	{"Plan (amb-base)",      3, 1620, "statePlanBase",      38, "PLAN(A~1.IMU"},
+	{"Plan (amb-spire)",     3, 1630, "statePlanSpire",     38, "PLAN(A~2.IMU"},
+	{"Plan (dome)",          3, 1650, "statePlanDome",       0, "PLAN(D~1.IMU"},
+	{"Tram (map-near)",      3, 1700, "stateMapTramNear",    0, "TRAM(M~3.IMU"},
+	{"Tram (map-far)",       3, 1710, "stateMapTramFar",     0, "TRAM(M~4.IMU"},
+	{"Map (amb-canyon)",     3, 1720, "stateMapCanyon",     43, "MAP(AM~1.IMU"},
+	{"Map (amb-exposed)",    3, 1730, "stateMapExposed",    43, "MAP(AM~2.IMU"},
+	{"Map (amb-nest)",       3, 1750, "stateMapNestEmpty",  43, "MAP(AM~4.IMU"},
+	{"Map (monster)",        3, 1760, "stateMapNestMonster", 0, "MAP(MO~1.IMU"},
+	{"Map (klein)",          3, 1770, "stateMapKlein",       0, "MAP(KL~1.IMU"},
+	{"Tram (cath-near)",     3, 1800, "stateCathTramNear",   0, "TRAM(C~1.IMU"},
+	{"Tram (cath-far)",      3, 1810, "stateCathTramFar",    0, "TRAM(C~2.IMU"},
+	{"Cath (amb-inside)",    3, 1820, "stateCathLab",       50, "CATH(A~1.IMU"},
+	{"Cath (amb-outside)",   3, 1830, "stateCathOutside",   50, "CATH(A~2.IMU"},
+	{"World (museum)",       3, 1900, "stateWorldMuseum",   52, "WORLD(~1.IMU"},
+	{"World (plan)",         3, 1901, "stateWorldPlan",     52, "WORLD(~2.IMU"},
+	{"World (tomb)",         3, 1902, "stateWorldTomb",     52, "WORLD(~3.IMU"},
+	{"World (map)",          3, 1903, "stateWorldMap",      52, "WORLD(~4.IMU"},
+	{"World (cath)",         3, 1904, "stateWorldCath",     52, "WO3227~5.IMU"},
+	{"Eye 1",                3, 1910, "stateEye1",           0, "EYE1~1.IMU"},
+	{"Eye 2",                3, 1911, "stateEye2",           0, "EYE2~1.IMU"},
+	{"Eye 3",                3, 1912, "stateEye3",           0, "EYE3~1.IMU"},
+	{"Eye 4",                3, 1913, "stateEye4",           0, "EYE4~1.IMU"},
+	{"Eye 5",                3, 1914, "stateEye5",           0, "EYE5~1.IMU"},
+	{"Eye 6",                3, 1915, "stateEye6",           0, "EYE6~1.IMU"},
+	{"Eye 7",                3, 1916, "stateEye7",           0, "EYE7~1.IMU"},
+	{"",                     0,   -1,  "",                   0, ""}
 };
 
-const imuseDigtable _digSeqMusicTable[] = {
-	{0, 2000, 0, 0, 0, 0, "SEQ_NULL",             "",                       ""            },
-	{0, 2005, 0, 0, 0, 0, "seqLogo",              "",                       ""            },
-	{0, 2010, 0, 0, 0, 0, "seqIntro",             "",                       ""            },
-	{0, 2020, 0, 6, 0, 0, "seqExplosion1b",       "",                       ""            },
-	{0, 2030, 0, 3, 0, 0, "seqAstTunnel1a",       "Seq (ast tunnel 1a)",    "SEQ(AS~1.IMU"},
-	{0, 2031, 0, 6, 0, 0, "seqAstTunnel2b",       "",                       ""            },
-	{0, 2032, 0, 4, 0, 0, "seqAstTunnel3a",       "Seq (ast tunnel 3a)",    "SEQ(AS~2.IMU"},
-	{0, 2040, 0, 5, 0, 0, "seqToPlanet1b",        "",                       ""            },
-	{0, 2045, 0, 4, 0, 0, "seqArgBegin",          "Seq (arg begin)",        "SEQ(AR~1.IMU"},
-	{0, 2046, 0, 4, 0, 0, "seqArgEnd",            "Seq (arg end)",          "SEQ(AR~2.IMU"},
-	{0, 2050, 0, 4, 0, 0, "seqWreckGhost",        "Seq (ghost-wreck)",      "SEQ(GH~1.IMU"},
-	{0, 2060, 0, 4, 0, 0, "seqCanyonGhost",       "Seq (ghost-canyon)",     "SEQ(GH~2.IMU"},
-	{0, 2070, 0, 0, 0, 0, "seqBrinkFall",         "",                       ""            },
-	{0, 2080, 0, 4, 0, 0, "seqPanUpCanyon",       "Seq (pan up canyon)",    "SEQ(PA~1.IMU"},
-	{0, 2091, 0, 6, 0, 0, "seqAirlockTunnel1b",   "",                       ""            },
-	{0, 2100, 0, 6, 0, 0, "seqTramToMu",          "",                       ""            },
-	{0, 2101, 0, 6, 0, 0, "seqTramFromMu",        "",                       ""            },
-	{0, 2102, 0, 6, 0, 0, "seqTramToTomb",        "",                       ""            },
-	{0, 2103, 0, 6, 0, 0, "seqTramFromTomb",      "",                       ""            },
-	{0, 2104, 0, 6, 0, 0, "seqTramToPlan",        "",                       ""            },
-	{0, 2105, 0, 6, 0, 0, "seqTramFromPlan",      "",                       ""            },
-	{0, 2106, 0, 6, 0, 0, "seqTramToMap",         "",                       ""            },
-	{0, 2107, 0, 6, 0, 0, "seqTramFromMap",       "",                       ""            },
-	{0, 2108, 0, 6, 0, 0, "seqTramToCath",        "",                       ""            },
-	{0, 2109, 0, 6, 0, 0, "seqTramFromCath",      "",                       ""            },
-	{0, 2110, 0, 0, 0, 0, "seqMuseumGhost",       "",                       ""            },
-	{0, 2120, 0, 0, 0, 0, "seqSerpentAppears",    "",                       ""            },
-	{0, 2130, 0, 0, 0, 0, "seqSerpentEats",       "",                       ""            },
-	{0, 2140, 0, 6, 0, 0, "seqBrinkRes1b",        "",                       ""            },
-	{0, 2141, 0, 4, 0, 0, "seqBrinkRes2a",        "Seq (brink's madness)",  "SEQ(BR~1.IMU"},
-	{0, 2150, 0, 3, 0, 0, "seqLockupEntry",       "Seq (brink's madness)",  "SEQ(BR~1.IMU"},
-	{0, 2160, 0, 0, 0, 0, "seqSerpentExplodes",   "",                       ""            },
-	{0, 2170, 0, 4, 0, 0, "seqSwimUnderwater",    "Seq (descent)",          "SEQ(DE~1.IMU"},
-	{0, 2175, 0, 4, 0, 0, "seqWavesPlunge",       "Seq (plunge)",           "SEQ(PL~1.IMU"},
-	{0, 2180, 0, 0, 0, 0, "seqCryptOpens",        "",                       ""            },
-	{0, 2190, 0, 0, 0, 0, "seqGuardsFight",       "",                       ""            },
-	{0, 2200, 0, 3, 0, 0, "seqCreatorRes1.1a",    "Seq (creator res 1.1a)", "SEQ(CR~1.IMU"},
-	{0, 2201, 0, 6, 0, 0, "seqCreatorRes1.2b",    "",                       ""            },
-	{0, 2210, 0, 6, 0, 0, "seqMaggieCapture1b",   "",                       ""            },
-	{0, 2220, 0, 3, 0, 0, "seqStealCrystals",     "Seq (brink's madness)",  "SEQ(BR~1.IMU"},
-	{0, 2230, 0, 0, 0, 0, "seqGetByMonster",      "",                       ""            },
-	{0, 2240, 0, 6, 0, 0, "seqKillMonster1b",     "",                       ""            },
-	{0, 2250, 0, 3, 0, 0, "seqCreatorRes2.1a",    "Seq (creator res 2.1a)", "SEQ(CR~2.IMU"},
-	{0, 2251, 0, 6, 0, 0, "seqCreatorRes2.2b",    "",                       ""            },
-	{0, 2252, 0, 4, 0, 0, "seqCreatorRes2.3a",    "Seq (creator res 2.3a)", "SEQ(CR~3.IMU"},
-	{0, 2260, 0, 0, 0, 0, "seqMaggieInsists",     "",                       ""            },
-	{0, 2270, 0, 0, 0, 0, "seqBrinkHelpCall",     "",                       ""            },
-	{0, 2280, 0, 3, 0, 0, "seqBrinkCrevice1a",    "Seq (brink crevice 1a)", "SEQ(BR~2.IMU"},
-	{0, 2281, 0, 3, 0, 0, "seqBrinkCrevice2a",    "Seq (brink crevice 2a)", "SEQ(BR~3.IMU"},
-	{0, 2290, 0, 6, 0, 0, "seqCathAccess1b",      "",                       ""            },
-	{0, 2291, 0, 4, 0, 0, "seqCathAccess2a",      "Seq (cath access 2a)",   "SEQ(CA~1.IMU"},
-	{0, 2300, 0, 3, 0, 0, "seqBrinkAtGenerator",  "Seq (brink's madness)",  "SEQ(BR~1.IMU"},
-	{0, 2320, 0, 6, 0, 0, "seqFightBrink1b",      "",                       ""            },
-	{0, 2340, 0, 6, 0, 0, "seqMaggieDies1b",      "",                       ""            },
-	{0, 2346, 0, 6, 0, 0, "seqMaggieRes1b",       "",                       ""            },
-	{0, 2347, 0, 4, 0, 0, "seqMaggieRes2a",       "Seq (maggie res 2a)",    "SEQ(MA~1.IMU"},
-	{0, 2350, 0, 0, 0, 0, "seqCreatureFalls",     "",                       ""            },
-	{0, 2360, 0, 5, 0, 0, "seqFinale1b",          "",                       ""            },
-	{0, 2370, 0, 3, 0, 0, "seqFinale2a",          "Seq (finale 2a)",        "SEQ(FI~1.IMU"},
-	{0, 2380, 0, 6, 0, 0, "seqFinale3b1",         "",                       ""            },
-	{0, 2390, 0, 6, 0, 0, "seqFinale3b2",         "",                       ""            },
-	{0, 2400, 0, 3, 0, 0, "seqFinale4a",          "Seq (finale 4a)",        "SEQ(FI~2.IMU"},
-	{0, 2410, 0, 3, 0, 0, "seqFinale5a",          "Seq (finale 5a)",        "SEQ(FI~3.IMU"},
-	{0, 2420, 0, 3, 0, 0, "seqFinale6a",          "Seq (finale 6a)",        "SEQ(FI~4.IMU"},
-	{0, 2430, 0, 3, 0, 0, "seqFinale7a",          "Seq (finale 7a)",        "SE3D2B~5.IMU"},
-	{0, 2440, 0, 6, 0, 0, "seqFinale8b",          "",                       ""            },
-	{0, 2450, 0, 4, 0, 0, "seqFinale9a",          "Seq (finale 9a)",        "SE313B~5.IMU"},
-	{-1,  -1, 0, 0, 0, 0, "",                     "",                       ""            }
+const imuseDigTable _digSeqMusicTable[] = {
+	{"",                       0, 2000, "SEQ_NULL",            0, ""},
+	{"",                       0, 2005, "seqLogo",             0, ""},
+	{"",                       0, 2010, "seqIntro",            0, ""},
+	{"",                       6, 2020, "seqExplosion1b",      0, ""},
+	{"Seq (ast tunnel 1a)",    3, 2030, "seqAstTunnel1a",      0, "SEQ(AS~1.IMU"},
+	{"",                       6, 2031, "seqAstTunnel2b",      0, ""},
+	{"Seq (ast tunnel 3a)",    4, 2032, "seqAstTunnel3a",      0, "SEQ(AS~2.IMU"},
+	{"",                       5, 2040, "seqToPlanet1b",       0, ""},
+	{"Seq (arg begin)",        4, 2045, "seqArgBegin",         0, "SEQ(AR~1.IMU"},
+	{"Seq (arg end)",          4, 2046, "seqArgEnd",           0, "SEQ(AR~2.IMU"},
+	{"Seq (ghost-wreck)",      4, 2050, "seqWreckGhost",       0, "SEQ(GH~1.IMU"},
+	{"Seq (ghost-canyon)",     4, 2060, "seqCanyonGhost",      0, "SEQ(GH~2.IMU"},
+	{"",                       0, 2070, "seqBrinkFall",        0, ""},
+	{"Seq (pan up canyon)",    4, 2080, "seqPanUpCanyon",      0, "SEQ(PA~1.IMU"},
+	{"",                       6, 2091, "seqAirlockTunnel1b",  0, ""},
+	{"",                       6, 2100, "seqTramToMu",         0, ""},
+	{"",                       6, 2101, "seqTramFromMu",       0, ""},
+	{"",                       6, 2102, "seqTramToTomb",       0, ""},
+	{"",                       6, 2103, "seqTramFromTomb",     0, ""},
+	{"",                       6, 2104, "seqTramToPlan",       0, ""},
+	{"",                       6, 2105, "seqTramFromPlan",     0, ""},
+	{"",                       6, 2106, "seqTramToMap",        0, ""},
+	{"",                       6, 2107, "seqTramFromMap",      0, ""},
+	{"",                       6, 2108, "seqTramToCath",       0, ""},
+	{"",                       6, 2109, "seqTramFromCath",     0, ""},
+	{"",                       0, 2110, "seqMuseumGhost",      0, ""},
+	{"",                       0, 2120, "seqSerpentAppears",   0, ""},
+	{"",                       0, 2130, "seqSerpentEats",      0, ""},
+	{"",                       6, 2140, "seqBrinkRes1b",       0, ""},
+	{"Seq (brink's madness)",  4, 2141, "seqBrinkRes2a",       0, "SEQ(BR~1.IMU"},
+	{"Seq (brink's madness)",  3, 2150, "seqLockupEntry",      0, "SEQ(BR~1.IMU"},
+	{"",                       0, 2160, "seqSerpentExplodes",  0, ""},
+	{"Seq (descent)",          4, 2170, "seqSwimUnderwater",   0, "SEQ(DE~1.IMU"},
+	{"Seq (plunge)",           4, 2175, "seqWavesPlunge",      0, "SEQ(PL~1.IMU"},
+	{"",                       0, 2180, "seqCryptOpens",       0, ""},
+	{"",                       0, 2190, "seqGuardsFight",      0, ""},
+	{"Seq (creator res 1.1a)", 3, 2200, "seqCreatorRes1.1a",   0, "SEQ(CR~1.IMU"},
+	{"",                       6, 2201, "seqCreatorRes1.2b",   0, ""},
+	{"",                       6, 2210, "seqMaggieCapture1b",  0, ""},
+	{"Seq (brink's madness)",  3, 2220, "seqStealCrystals",    0, "SEQ(BR~1.IMU"},
+	{"",                       0, 2230, "seqGetByMonster",     0, ""},
+	{"",                       6, 2240, "seqKillMonster1b",    0, ""},
+	{"Seq (creator res 2.1a)", 3, 2250, "seqCreatorRes2.1a",   0, "SEQ(CR~2.IMU"},
+	{"",                       6, 2251, "seqCreatorRes2.2b",   0, ""},
+	{"Seq (creator res 2.3a)", 4, 2252, "seqCreatorRes2.3a",   0, "SEQ(CR~3.IMU"},
+	{"",                       0, 2260, "seqMaggieInsists",    0, ""},
+	{"",                       0, 2270, "seqBrinkHelpCall",    0, ""},
+	{"Seq (brink crevice 1a)", 3, 2280, "seqBrinkCrevice1a",   0, "SEQ(BR~2.IMU"},
+	{"Seq (brink crevice 2a)", 3, 2281, "seqBrinkCrevice2a",   0, "SEQ(BR~3.IMU"},
+	{"",                       6, 2290, "seqCathAccess1b",     0, ""},
+	{"Seq (cath access 2a)",   4, 2291, "seqCathAccess2a",     0, "SEQ(CA~1.IMU"},
+	{"Seq (brink's madness)",  3, 2300, "seqBrinkAtGenerator", 0, "SEQ(BR~1.IMU"},
+	{"",                       6, 2320, "seqFightBrink1b",     0, ""},
+	{"",                       6, 2340, "seqMaggieDies1b",     0, ""},
+	{"",                       6, 2346, "seqMaggieRes1b",      0, ""},
+	{"Seq (maggie res 2a)",    4, 2347, "seqMaggieRes2a",      0, "SEQ(MA~1.IMU"},
+	{"",                       0, 2350, "seqCreatureFalls",    0, ""},
+	{"",                       5, 2360, "seqFinale1b",         0, ""},
+	{"Seq (finale 2a)",        3, 2370, "seqFinale2a",         0, "SEQ(FI~1.IMU"},
+	{"",                       6, 2380, "seqFinale3b1",        0, ""},
+	{"",                       6, 2390, "seqFinale3b2",        0, ""},
+	{"Seq (finale 4a)",        3, 2400, "seqFinale4a",         0, "SEQ(FI~2.IMU"},
+	{"Seq (finale 5a)",        3, 2410, "seqFinale5a",         0, "SEQ(FI~3.IMU"},
+	{"Seq (finale 6a)",        3, 2420, "seqFinale6a",         0, "SEQ(FI~4.IMU"},
+	{"Seq (finale 7a)",        3, 2430, "seqFinale7a",         0, "SE3D2B~5.IMU"},
+	{"",                       6, 2440, "seqFinale8b",         0, ""},
+	{"Seq (finale 9a)",        4, 2450, "seqFinale9a",         0, "SE313B~5.IMU"},
+	{"",                       0,   -1, "",                    0, ""}
 };
 
 const imuseComiTable _comiStateMusicTable[] = {





More information about the Scummvm-git-logs mailing list