[Scummvm-cvs-logs] scummvm master -> 1ffb83266652cc952e006fa55c52b6b895cb45ef

eriktorbjorn eriktorbjorn at telia.com
Tue Nov 8 21:50:34 CET 2011


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
1ffb832666 SWORD1: Fix bug #3431552 ("Wrong background sound in Windows demo")


Commit: 1ffb83266652cc952e006fa55c52b6b895cb45ef
    https://github.com/scummvm/scummvm/commit/1ffb83266652cc952e006fa55c52b6b895cb45ef
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2011-11-08T12:46:10-08:00

Commit Message:
SWORD1: Fix bug #3431552 ("Wrong background sound in Windows demo")

This is a slightly updated version of the patch I attached to the
bug report. Apparently, the DOS/Windows demo has a slightly different
set of sound resources than the full game. (There were also some
other minor differences in the sound effects list, but I didn't think
them worth the trouble to implement.) I've played through the demo,
and I didn't notice any problems.

Changed paths:
    engines/sword1/sound.cpp
    engines/sword1/sound.h
    engines/sword1/staticres.cpp
    engines/sword1/swordres.h



diff --git a/engines/sword1/sound.cpp b/engines/sword1/sound.cpp
index b74cd8c..3574074 100644
--- a/engines/sword1/sound.cpp
+++ b/engines/sword1/sound.cpp
@@ -62,11 +62,22 @@ Sound::~Sound() {
 	_mixer->stopAll();
 	for (uint8 cnt = 0; cnt < _endOfQueue; cnt++)
 		if (_fxQueue[cnt].delay == 0)
-			_resMan->resClose(_fxList[_fxQueue[cnt].id].sampleId);
+			_resMan->resClose(getSampleId(_fxQueue[cnt].id));
 	_endOfQueue = 0;
 	closeCowSystem();
 }
 
+uint32 Sound::getSampleId(int32 fxNo) {
+	byte cluster = _fxList[fxNo].sampleId.cluster;
+	byte id;
+	if (SwordEngine::_systemVars.isDemo && SwordEngine::_systemVars.platform == Common::kPlatformWindows) {
+		id = _fxList[fxNo].sampleId.idWinDemo;
+	} else {
+		id = _fxList[fxNo].sampleId.idStd;
+	}
+	return (cluster << 24) | id;
+}
+
 void Sound::checkSpeechFileEndianness() {
 	// Some mac versions (not all of them) use big endian wav, although
 	// the wav header doesn't indicate it.
@@ -154,14 +165,18 @@ int Sound::addToQueue(int32 fxNo) {
 			warning("Sound queue overflow");
 			return 0;
 		}
-		_resMan->resOpen(_fxList[fxNo].sampleId);
-		_fxQueue[_endOfQueue].id = fxNo;
-		if (_fxList[fxNo].type == FX_SPOT)
-			_fxQueue[_endOfQueue].delay = _fxList[fxNo].delay + 1;
-		else
-			_fxQueue[_endOfQueue].delay = 1;
-		_endOfQueue++;
-		return 1;
+		uint32 sampleId = getSampleId(fxNo);
+		if ((sampleId & 0xFF) != 0xFF) {
+			_resMan->resOpen(sampleId);
+			_fxQueue[_endOfQueue].id = fxNo;
+			if (_fxList[fxNo].type == FX_SPOT)
+				_fxQueue[_endOfQueue].delay = _fxList[fxNo].delay + 1;
+			else
+				_fxQueue[_endOfQueue].delay = 1;
+			_endOfQueue++;
+			return 1;
+		}
+		return 0;
 	}
 	return 0;
 }
@@ -186,7 +201,7 @@ void Sound::engine() {
 				playSample(&_fxQueue[cnt2]);
 		} else {
 			if (!_mixer->isSoundHandleActive(_fxQueue[cnt2].handle)) { // sound finished
-				_resMan->resClose(_fxList[_fxQueue[cnt2].id].sampleId);
+				_resMan->resClose(getSampleId(_fxQueue[cnt2].id));
 				if (cnt2 != _endOfQueue - 1)
 					_fxQueue[cnt2] = _fxQueue[_endOfQueue - 1];
 				_endOfQueue--;
@@ -200,7 +215,7 @@ void Sound::fnStopFx(int32 fxNo) {
 	for (uint8 cnt = 0; cnt < _endOfQueue; cnt++)
 		if (_fxQueue[cnt].id == (uint32)fxNo) {
 			if (!_fxQueue[cnt].delay) // sound was started
-				_resMan->resClose(_fxList[_fxQueue[cnt].id].sampleId);
+				_resMan->resClose(getSampleId(_fxQueue[cnt].id));
 			if (cnt != _endOfQueue - 1)
 				_fxQueue[cnt] = _fxQueue[_endOfQueue - 1];
 			_endOfQueue--;
@@ -243,7 +258,7 @@ void Sound::quitScreen() {
 }
 
 void Sound::playSample(QueueElement *elem) {
-	uint8 *sampleData = (uint8 *)_resMan->fetchRes(_fxList[elem->id].sampleId);
+	uint8 *sampleData = (uint8 *)_resMan->fetchRes(getSampleId(elem->id));
 	for (uint16 cnt = 0; cnt < MAX_ROOMS_PER_FX; cnt++) {
 		if (_fxList[elem->id].roomVolList[cnt].roomNo) {
 			if ((_fxList[elem->id].roomVolList[cnt].roomNo == (int)Logic::_scriptVars[SCREEN]) ||
diff --git a/engines/sword1/sound.h b/engines/sword1/sound.h
index 112ae5b..4e1ac7b 100644
--- a/engines/sword1/sound.h
+++ b/engines/sword1/sound.h
@@ -53,8 +53,15 @@ struct RoomVol {
 	int32 roomNo, leftVol, rightVol;
 };
 
+struct SampleId {
+	byte cluster;
+	byte idStd;
+	byte idWinDemo;
+};
+
 struct FxDef {
-	uint32 sampleId, type, delay;
+	SampleId sampleId;
+	uint32 type, delay;
 	RoomVol roomVolList[MAX_ROOMS_PER_FX];
 };
 
@@ -100,6 +107,7 @@ private:
 	void playSample(QueueElement *elem);
 	void initCowSystem();
 
+	uint32 getSampleId(int32 fxNo);
 	int16 *uncompressSpeech(uint32 index, uint32 cSize, uint32 *size);
 	void calcWaveVolume(int16 *data, uint32 length);
 	bool _waveVolume[WAVE_VOL_TAB_LENGTH];
diff --git a/engines/sword1/staticres.cpp b/engines/sword1/staticres.cpp
index 60c6877..5dabce1 100644
--- a/engines/sword1/staticres.cpp
+++ b/engines/sword1/staticres.cpp
@@ -2894,7 +2894,7 @@ const char Music::_tuneList[TOTAL_TUNES][8] = {
 const FxDef Sound::_fxList[312] = {
 		// 0
 	{
-		0,						// sampleId
+		{0,0,0},						// sampleId
 		0,						// type				(FX_LOOP, FX_RANDOM or FX_SPOT)
 		0,						// delay			(random chance for FX_RANDOM sound fx)
 		{							// roomVolList
diff --git a/engines/sword1/swordres.h b/engines/sword1/swordres.h
index 384c240..b1fc206 100644
--- a/engines/sword1/swordres.h
+++ b/engines/sword1/swordres.h
@@ -1298,66 +1298,66 @@ namespace Sword1 {
 	// 2 entities in TXTs, 2 in datafiles.
 // paris_1
 	// sound_fx
-#define FX_CAMERA1				 0x06000000
-#define FX_CAMERA2				 0x06000001
-#define FX_CAMERA3				 0x06000002
-#define FX_CANDO				 0x06000003
-#define FX_CANUP				 0x06000004
-#define FX_CAW1					 0x06000005
-#define FX_DUST					 0x06000006
-#define FX_HORN1				 0x06000007
-#define FX_HORN2				 0x06000008
-#define FX_HORN3				 0x06000009
-#define FX_LVSFLY				 0x0600000A
-#define FX_PAP1					 0x0600000B
-#define FX_PAP2					 0x0600000C
-#define FX_PICK1				 0x0600000D
-#define FX_PICK2				 0x0600000E
-#define FX_PICK3				 0x0600000F
-#define FX_PICK4				 0x06000010
-#define FX_PICK5				 0x06000011
-#define FX_TRAFFIC2				 0x06000012
-#define FX_TWEET1				 0x06000013
-#define FX_TWEET2				 0x06000014
-#define FX_TWEET3				 0x06000015
-#define FX_TWEET4				 0x06000016
-#define FX_TWEET5				 0x06000017
-#define FX_BIN1					 0x06000018
-#define FX_BIN2					 0x06000019
-#define FX_BIN3					 0x0600001A
-#define FX_CAT					 0x0600001B
-#define FX_COVERON2				 0x0600001C
-#define FX_CRATE				 0x0600001D
-#define FX_DRAIN				 0x0600001E
-#define FX_HOLE					 0x0600001F
-#define FX_BODY					 0x06000020
-#define FX_BOTDN				 0x06000021
-#define FX_BOTUP				 0x06000022
-#define FX_GULP					 0x06000023
-#define FX_LIGHT				 0x06000024
-#define FX_PIKUP				 0x06000025
-#define FX_PAP3					 0x06000026
-#define FX_PAP4					 0x06000027
-#define FX_PAP5					 0x06000028
-#define FX_PISTOL				 0x06000029
-#define FX_TBOX					 0x0600002A
-#define FX_KNOKKNOK				 0x0600002B
-#define FX_ALBCLO				 0x0600002C
-#define FX_ALBOP				 0x0600002D
-#define FX_LADD1				 0x0600002E
-#define FX_LADD2				 0x0600002F
-#define FX_LADD3				 0x06000030
-#define FX_RAT1					 0x06000031
-#define FX_RAT2					 0x06000032
-#define FX_SEWSTEP1				 0x06000033
-#define FX_SEWSTEP2				 0x06000034
-#define FX_SWATER3				 0x06000035
-#define FX_DRIP1				 0x06000036
-#define FX_DRIP2				 0x06000037
-#define FX_DRIP3				 0x06000038
-#define FX_SWATER1				 0x06000039
-#define FX_SEWLADD7				 0x0600003A
-#define FX_SEWLADU7				 0x0600003B
+#define FX_CAMERA1				 {0x06,0x00,0x00}
+#define FX_CAMERA2				 {0x06,0x01,0x01}
+#define FX_CAMERA3				 {0x06,0x02,0x02}
+#define FX_CANDO				 {0x06,0x03,0x03}
+#define FX_CANUP				 {0x06,0x04,0x04}
+#define FX_CAW1					 {0x06,0x05,0x05}
+#define FX_DUST					 {0x06,0x06,0x06}
+#define FX_HORN1				 {0x06,0x07,0x07}
+#define FX_HORN2				 {0x06,0x08,0x08}
+#define FX_HORN3				 {0x06,0x09,0x09}
+#define FX_LVSFLY				 {0x06,0x0A,0xFF}
+#define FX_PAP1					 {0x06,0x0B,0x0A}
+#define FX_PAP2					 {0x06,0x0C,0x0B}
+#define FX_PICK1				 {0x06,0x0D,0x0C}
+#define FX_PICK2				 {0x06,0x0E,0x0D}
+#define FX_PICK3				 {0x06,0x0F,0x0E}
+#define FX_PICK4				 {0x06,0x10,0x0F}
+#define FX_PICK5				 {0x06,0x11,0x10}
+#define FX_TRAFFIC2				 {0x06,0x12,0x11}
+#define FX_TWEET1				 {0x06,0x13,0x12}
+#define FX_TWEET2				 {0x06,0x14,0x13}
+#define FX_TWEET3				 {0x06,0x15,0x14}
+#define FX_TWEET4				 {0x06,0x16,0x15}
+#define FX_TWEET5				 {0x06,0x17,0x16}
+#define FX_BIN1					 {0x06,0x18,0x17}
+#define FX_BIN2					 {0x06,0x19,0x18}
+#define FX_BIN3					 {0x06,0x1A,0x19}
+#define FX_CAT					 {0x06,0x1B,0x1A}
+#define FX_COVERON2				 {0x06,0x1C,0x1B}
+#define FX_CRATE				 {0x06,0x1D,0x1C}
+#define FX_DRAIN				 {0x06,0x1E,0x1D}
+#define FX_HOLE					 {0x06,0x1F,0x1E}
+#define FX_BODY					 {0x06,0x20,0x1F}
+#define FX_BOTDN				 {0x06,0x21,0x20}
+#define FX_BOTUP				 {0x06,0x22,0x21}
+#define FX_GULP					 {0x06,0x23,0x22}
+#define FX_LIGHT				 {0x06,0x24,0x23}
+#define FX_PIKUP				 {0x06,0x25,0x24}
+#define FX_PAP3					 {0x06,0x26,0x25}
+#define FX_PAP4					 {0x06,0x27,0x26}
+#define FX_PAP5					 {0x06,0x28,0x27}
+#define FX_PISTOL				 {0x06,0x29,0x28}
+#define FX_TBOX					 {0x06,0x2A,0x29}
+#define FX_KNOKKNOK				 {0x06,0x2B,0x2A}
+#define FX_ALBCLO				 {0x06,0x2C,0x2B}
+#define FX_ALBOP				 {0x06,0x2D,0x2C}
+#define FX_LADD1				 {0x06,0x2E,0x2D}
+#define FX_LADD2				 {0x06,0x2F,0x2E}
+#define FX_LADD3				 {0x06,0x30,0x2F}
+#define FX_RAT1					 {0x06,0x31,0x30}
+#define FX_RAT2					 {0x06,0x32,0x31}
+#define FX_SEWSTEP1				 {0x06,0x33,0x32}
+#define FX_SEWSTEP2				 {0x06,0x34,0x33}
+#define FX_SWATER3				 {0x06,0x35,0x34}
+#define FX_DRIP1				 {0x06,0x36,0x35}
+#define FX_DRIP2				 {0x06,0x37,0x36}
+#define FX_DRIP3				 {0x06,0x38,0x37}
+#define FX_SWATER1				 {0x06,0x39,0x38}
+#define FX_SEWLADD7				 {0x06,0x3A,0xFF}
+#define FX_SEWLADU7				 {0x06,0x3B,0x39}
 	// 60 entities in TXTs, 60 in datafiles.
 	// room1
 #define PARIS1_PAL				 0x06010000
@@ -1767,52 +1767,52 @@ namespace Sword1 {
 	// 8 entities in TXTs, 8 in datafiles.
 // paris_2
 	// sound_fx
-#define FX_BIRD					 0x07000000
-#define FX_BIRD2				 0x07000001
-#define FX_CARLTON				 0x07000002
-#define FX_CARS					 0x07000003
-#define FX_DOORTRY				 0x07000004
-#define FX_FIESTA				 0x07000005
-#define FX_FLATDOOR				 0x07000006
-#define FX_HVYVEHR				 0x07000007
-#define FX_HVYVEHL				 0x07000008
-#define FX_LITEVEHR				 0x07000009
-#define FX_LITEVEHL				 0x0700000A
-#define FX_FONEUP				 0x0700000B
-#define FX_FONEDN				 0x0700000C
-#define FX_GEOCCH				 0x0700000D
-#define FX_GEOCHAIR				 0x0700000E
-#define FX_GEOCHR9				 0x0700000F
-#define FX_NICOPEN				 0x07000010
-#define FX_NICLOSE				 0x07000011
-#define FX_PHONICO1				 0x07000012
-#define FX_GRAMOFON				 0x07000013
-#define FX_SHOCK1				 0x07000014
-#define FX_WINDUP11				 0x07000015
-#define FX_FRISK				 0x07000016
-#define FX_TRAFFIC3				 0x07000017
-#define FX_DESKBELL				 0x07000018
-#define FX_KEY13				 0x07000019
-#define FX_PAPER6				 0x0700001A
-#define FX_PHONEDN2				 0x0700001B
-#define FX_PHONEUP2				 0x0700001C
-#define FX_PIANO14				 0x0700001D
-#define FX_TRYDOR14				 0x0700001E
-#define FX_CABCLOSE				 0x0700001F
-#define FX_CABOPEN				 0x07000020
-#define FX_DORCLOSE				 0x07000021
-#define FX_WINDOPEN				 0x07000022
-#define FX_COO					 0x07000023
-#define FX_COO2					 0x07000024
-#define FX_LEDGE1				 0x07000025
-#define FX_LEDGE2				 0x07000026
-#define FX_BRIEFOFF				 0x07000027
-#define FX_BRIEFON				 0x07000028
-#define FX_JUMPIN				 0x07000029
-#define FX_WARDIN				 0x0700002A
-#define FX_WARDOUT				 0x0700002B
-#define FX_CLIMBIN				 0x0700002C
-#define FX_CLIMBOUT				 0x0700002D
+#define FX_BIRD					 {0x07,0x00,0x00}
+#define FX_BIRD2				 {0x07,0x01,0x01}
+#define FX_CARLTON				 {0x07,0x02,0x02}
+#define FX_CARS					 {0x07,0x03,0x03}
+#define FX_DOORTRY				 {0x07,0x04,0x04}
+#define FX_FIESTA				 {0x07,0x05,0x05}
+#define FX_FLATDOOR				 {0x07,0x06,0x06}
+#define FX_HVYVEHR				 {0x07,0x07,0xFF}
+#define FX_HVYVEHL				 {0x07,0x08,0xFF}
+#define FX_LITEVEHR				 {0x07,0x09,0xFF}
+#define FX_LITEVEHL				 {0x07,0x0A,0xFF}
+#define FX_FONEUP				 {0x07,0x0B,0x07}
+#define FX_FONEDN				 {0x07,0x0C,0x08}
+#define FX_GEOCCH				 {0x07,0x0D,0x09}
+#define FX_GEOCHAIR				 {0x07,0x0E,0x0A}
+#define FX_GEOCHR9				 {0x07,0x0F,0x0B}
+#define FX_NICOPEN				 {0x07,0x10,0x0D}
+#define FX_NICLOSE				 {0x07,0x11,0x0E}
+#define FX_PHONICO1				 {0x07,0x12,0x0F}
+#define FX_GRAMOFON				 {0x07,0x13,0x10}
+#define FX_SHOCK1				 {0x07,0x14,0x11}
+#define FX_WINDUP11				 {0x07,0x15,0x12}
+#define FX_FRISK				 {0x07,0x16,0x13}
+#define FX_TRAFFIC3				 {0x07,0x17,0x14}
+#define FX_DESKBELL				 {0x07,0x18,0x15}
+#define FX_KEY13				 {0x07,0x19,0xFF}
+#define FX_PAPER6				 {0x07,0x1A,0x16}
+#define FX_PHONEDN2				 {0x07,0x1B,0x17}
+#define FX_PHONEUP2				 {0x07,0x1C,0x18}
+#define FX_PIANO14				 {0x07,0x1D,0x19}
+#define FX_TRYDOR14				 {0x07,0x1E,0x1A}
+#define FX_CABCLOSE				 {0x07,0x1F,0x1B}
+#define FX_CABOPEN				 {0x07,0x20,0x1C}
+#define FX_DORCLOSE				 {0x07,0x21,0x1D}
+#define FX_WINDOPEN				 {0x07,0x22,0x1E}
+#define FX_COO					 {0x07,0x23,0x1F}
+#define FX_COO2					 {0x07,0x24,0x20}
+#define FX_LEDGE1				 {0x07,0x25,0x21}
+#define FX_LEDGE2				 {0x07,0x26,0x22}
+#define FX_BRIEFOFF				 {0x07,0x27,0x23}
+#define FX_BRIEFON				 {0x07,0x28,0x24}
+#define FX_JUMPIN				 {0x07,0x29,0x25}
+#define FX_WARDIN				 {0x07,0x2A,0x26}
+#define FX_WARDOUT				 {0x07,0x2B,0x27}
+#define FX_CLIMBIN				 {0x07,0x2C,0x28}
+#define FX_CLIMBOUT				 {0x07,0x2D,0x29}
 	// 46 entities in TXTs, 46 in datafiles.
 	// room9
 #define PARIS2_PAL				 0x07010000
@@ -2349,38 +2349,38 @@ namespace Sword1 {
 	// 9 entities in TXTs, 9 in datafiles.
 // paris_3
 	// sound_fx
-#define FX_MUESEXT				 0x08000000
-#define FX_AIRCON28				 0x08000001
-#define FX_SARCO28A				 0x08000002
-#define FX_SARCO28B				 0x08000003
-#define FX_SARCO28C				 0x08000004
-#define FX_TOTEM28A				 0x08000005
-#define FX_ALARM				 0x08000006
-#define FX_CARABINE				 0x08000007
-#define FX_DOOR29				 0x08000008
-#define FX_FISHFALL				 0x08000009
-#define FX_GDROP29				 0x0800000A
-#define FX_GUI_HIT				 0x0800000B
-#define FX_GUN1					 0x0800000C
-#define FX_ROPEDOWN				 0x0800000D
-#define FX_SARCO29				 0x0800000E
-#define FX_SMASHGLA				 0x0800000F
-#define FX_TOTEM29A				 0x08000010
-#define FX_TOTEM29B				 0x08000011
-#define FX_HOSPEXT				 0x08000012
-#define FX_GRAVEL1				 0x08000013
-#define FX_GRAVEL2				 0x08000014
-#define FX_HOSPNOIS				 0x08000015
-#define FX_CUPBOPEN				 0x08000016
-#define FX_CUPBCLOS				 0x08000017
-#define FX_KIKSHINY				 0x08000018
-#define FX_SHINY				 0x08000019
-#define FX_SHINYOFF				 0x0800001A
-#define FX_SHINYON				 0x0800001B
-#define FX_BLOODPRE				 0x0800001C
-#define FX_GUN34				 0x0800001D
-#define FX_PULSE2				 0x0800001E
-#define FX_PULSE3				 0x0800001F
+#define FX_MUESEXT				 {0x08,0x00,0x00}
+#define FX_AIRCON28				 {0x08,0x01,0x01}
+#define FX_SARCO28A				 {0x08,0x02,0x02}
+#define FX_SARCO28B				 {0x08,0x03,0x03}
+#define FX_SARCO28C				 {0x08,0x04,0x04}
+#define FX_TOTEM28A				 {0x08,0x05,0x05}
+#define FX_ALARM				 {0x08,0x06,0x06}
+#define FX_CARABINE				 {0x08,0x07,0x07}
+#define FX_DOOR29				 {0x08,0x08,0x08}
+#define FX_FISHFALL				 {0x08,0x09,0x09}
+#define FX_GDROP29				 {0x08,0x0A,0x0A}
+#define FX_GUI_HIT				 {0x08,0x0B,0x0B}
+#define FX_GUN1					 {0x08,0x0C,0x0C}
+#define FX_ROPEDOWN				 {0x08,0x0D,0x0D}
+#define FX_SARCO29				 {0x08,0x0E,0x0E}
+#define FX_SMASHGLA				 {0x08,0x0F,0x0F}
+#define FX_TOTEM29A				 {0x08,0x10,0x10}
+#define FX_TOTEM29B				 {0x08,0x11,0x11}
+#define FX_HOSPEXT				 {0x08,0x12,0x12}
+#define FX_GRAVEL1				 {0x08,0x13,0x13}
+#define FX_GRAVEL2				 {0x08,0x14,0x14}
+#define FX_HOSPNOIS				 {0x08,0x15,0x15}
+#define FX_CUPBOPEN				 {0x08,0x16,0x16}
+#define FX_CUPBCLOS				 {0x08,0x17,0x17}
+#define FX_KIKSHINY				 {0x08,0x18,0xFF}
+#define FX_SHINY				 {0x08,0x19,0x18}
+#define FX_SHINYOFF				 {0x08,0x1A,0x19}
+#define FX_SHINYON				 {0x08,0x1B,0x1A}
+#define FX_BLOODPRE				 {0x08,0x1C,0x1B}
+#define FX_GUN34				 {0x08,0x1D,0x1C}
+#define FX_PULSE2				 {0x08,0x1E,0x1D}
+#define FX_PULSE3				 {0x08,0x1F,0x1E}
 	// 32 entities in TXTs, 32 in datafiles.
 	// benoir
 #define MEGABEN					 0x08010000
@@ -2794,29 +2794,29 @@ namespace Sword1 {
 	// 30 entities in TXTs, 30 in datafiles.
 // paris_4
 	// sound_fx
-#define FX_COVDWN				 0x09000000
-#define FX_KEYIN				 0x09000001
-#define FX_MANOP36				 0x09000002
-#define FX_MONTAMB				 0x09000003
-#define FX_OOH					 0x09000004
-#define FX_PULLUP36				 0x09000005
-#define FX_REPLCE36				 0x09000006
-#define FX_AMBIEN37				 0x09000007
-#define FX_CHAIN37				 0x09000008
-#define FX_CHAIN37B				 0x09000009
-#define FX_DOOR37				 0x0900000A
-#define FX_HOLE37				 0x0900000B
-#define FX_KNOCK37				 0x0900000C
-#define FX_KNOCK37B				 0x0900000D
-#define FX_WINCH37				 0x0900000E
-#define FX_AIRCON41				 0x0900000F
-#define FX_FONEDN41				 0x09000010
-#define FX_FONEUP41				 0x09000011
-#define FX_PHONCALL				 0x09000012
-#define FX_THERMO1				 0x09000013
-#define FX_TAPDRIP				 0x09000014
-#define FX_DRIER1				 0x09000015
-#define FX_CHURCHFX				 0x09000016
+#define FX_COVDWN				 {0x09,0x00,0xFF}
+#define FX_KEYIN				 {0x09,0x01,0xFF}
+#define FX_MANOP36				 {0x09,0x02,0x00}
+#define FX_MONTAMB				 {0x09,0x03,0x01}
+#define FX_OOH					 {0x09,0x04,0x02}
+#define FX_PULLUP36				 {0x09,0x05,0x03}
+#define FX_REPLCE36				 {0x09,0x06,0x04}
+#define FX_AMBIEN37				 {0x09,0x07,0x05}
+#define FX_CHAIN37				 {0x09,0x08,0x06}
+#define FX_CHAIN37B				 {0x09,0x09,0x06}
+#define FX_DOOR37				 {0x09,0x0A,0x07}
+#define FX_HOLE37				 {0x09,0x0B,0x08}
+#define FX_KNOCK37				 {0x09,0x0C,0x09}
+#define FX_KNOCK37B				 {0x09,0x0D,0x0A}
+#define FX_WINCH37				 {0x09,0x0E,0x0B}
+#define FX_AIRCON41				 {0x09,0x0F,0x0C}
+#define FX_FONEDN41				 {0x09,0x10,0x0D}
+#define FX_FONEUP41				 {0x09,0x11,0x0E}
+#define FX_PHONCALL				 {0x09,0x12,0x0F}
+#define FX_THERMO1				 {0x09,0x13,0x10}
+#define FX_TAPDRIP				 {0x09,0x14,0xFF}
+#define FX_DRIER1				 {0x09,0x15,0x11}
+#define FX_CHURCHFX				 {0x09,0x16,0x12}
 	// 23 entities in TXTs, 23 in datafiles.
 	// room36
 #define R36SPRPAL				 0x09010000
@@ -3302,56 +3302,56 @@ namespace Sword1 {
 	// 39 entities in TXTs, 39 in datafiles.
 // ireland
 	// sound_fx
-#define FX_EIRBIRD3				 0x0A000000
-#define FX_SHOCK2				 0x0A000001
-#define FX_EIRBIRD1				 0x0A000002
-#define FX_EIRBIRD2				 0x0A000003
-#define FX_SWITCH19				 0x0A000004
-#define FX_TRAPOPEN				 0x0A000005
-#define FX_VIOLIN19				 0x0A000006
-#define FX_WHISTLE				 0x0A000007
-#define FX_BARFLAP				 0x0A000008
-#define FX_DORCLOSE20			 0x0A000009
-#define FX_DRINK				 0x0A00000A
-#define FX_FITZHIT				 0x0A00000B
-#define FX_FITZRUN				 0x0A00000C
-#define FX_FITZUP				 0x0A00000D
-#define FX_FUSE20				 0x0A00000E
-#define FX_PULLPINT				 0x0A00000F
-#define FX_SNEEZE1				 0x0A000010
-#define FX_SNEEZE2				 0x0A000011
-#define FX_WASHER				 0x0A000012
-#define FX_CELTAP				 0x0A000013
-#define FX_DRIPIRE				 0x0A000014
-#define FX_DRIPIRE2				 0x0A000015
-#define FX_TAP					 0x0A000016
-#define FX_TAP2					 0x0A000017
-#define FX_CLIMBHAY				 0x0A000018
-#define FX_FARMERGO				 0x0A000019
-#define FX_CASTLWAL				 0x0A00001A
-#define FX_CLIMBFAL				 0x0A00001B
-#define FX_KEYSTEP				 0x0A00001C
-#define FX_WIND					 0x0A00001D
-#define FX_GEOGOAT				 0x0A00001E
-#define FX_GOATBAA				 0x0A00001F
-#define FX_GOATCHEW				 0x0A000020
-#define FX_GOATDOH				 0x0A000021
-#define FX_PLOUGH				 0x0A000022
-#define FX_EIRDRIP1				 0x0A000023
-#define FX_EIRDRIP2				 0x0A000024
-#define FX_LADDWN25				 0x0A000025
-#define FX_LADDUP25				 0x0A000026
-#define FX_SECDOR25				 0x0A000027
-#define FX_SLABFALL				 0x0A000028
-#define FX_SLABUP				 0x0A000029
-#define FX_TRIGER25				 0x0A00002A
-#define FX_WRING				 0x0A00002B
-#define FX_LEVER				 0x0A00002C
-#define FX_LEVER2				 0x0A00002D
-#define FX_RAT3A				 0x0A00002E
-#define FX_RAT3B				 0x0A00002F
-#define FX_RAT3C				 0x0A000030
-#define FX_RAT3D				 0x0A000031
+#define FX_EIRBIRD3				 {0x0A,0x00,0x00}
+#define FX_SHOCK2				 {0x0A,0x01,0x01}
+#define FX_EIRBIRD1				 {0x0A,0x02,0x02}
+#define FX_EIRBIRD2				 {0x0A,0x03,0x03}
+#define FX_SWITCH19				 {0x0A,0x04,0x04}
+#define FX_TRAPOPEN				 {0x0A,0x05,0x05}
+#define FX_VIOLIN19				 {0x0A,0x06,0x06}
+#define FX_WHISTLE				 {0x0A,0x07,0x07}
+#define FX_BARFLAP				 {0x0A,0x08,0x08}
+#define FX_DORCLOSE20			 {0x0A,0x09,0x09}
+#define FX_DRINK				 {0x0A,0x0A,0x0A}
+#define FX_FITZHIT				 {0x0A,0x0B,0x0B}
+#define FX_FITZRUN				 {0x0A,0x0C,0x0C}
+#define FX_FITZUP				 {0x0A,0x0D,0x0D}
+#define FX_FUSE20				 {0x0A,0x0E,0x0E}
+#define FX_PULLPINT				 {0x0A,0x0F,0x0F}
+#define FX_SNEEZE1				 {0x0A,0x10,0xFF}
+#define FX_SNEEZE2				 {0x0A,0x11,0xFF}
+#define FX_WASHER				 {0x0A,0x12,0x10}
+#define FX_CELTAP				 {0x0A,0x13,0x11}
+#define FX_DRIPIRE				 {0x0A,0x14,0xFF}
+#define FX_DRIPIRE2				 {0x0A,0x15,0xFF}
+#define FX_TAP					 {0x0A,0x16,0x12}
+#define FX_TAP2					 {0x0A,0x17,0x13}
+#define FX_CLIMBHAY				 {0x0A,0x18,0x14}
+#define FX_FARMERGO				 {0x0A,0x19,0x15}
+#define FX_CASTLWAL				 {0x0A,0x1A,0x16}
+#define FX_CLIMBFAL				 {0x0A,0x1B,0x17}
+#define FX_KEYSTEP				 {0x0A,0x1C,0x18}
+#define FX_WIND					 {0x0A,0x1D,0x19}
+#define FX_GEOGOAT				 {0x0A,0x1E,0x1A}
+#define FX_GOATBAA				 {0x0A,0x1F,0x1B}
+#define FX_GOATCHEW				 {0x0A,0x20,0x1C}
+#define FX_GOATDOH				 {0x0A,0x21,0x1D}
+#define FX_PLOUGH				 {0x0A,0x22,0x1E}
+#define FX_EIRDRIP1				 {0x0A,0x23,0xFF}
+#define FX_EIRDRIP2				 {0x0A,0x24,0xFF}
+#define FX_LADDWN25				 {0x0A,0x25,0xFF}
+#define FX_LADDUP25				 {0x0A,0x26,0xFF}
+#define FX_SECDOR25				 {0x0A,0x27,0x21}
+#define FX_SLABFALL				 {0x0A,0x28,0x22}
+#define FX_SLABUP				 {0x0A,0x29,0x23}
+#define FX_TRIGER25				 {0x0A,0x2A,0x24}
+#define FX_WRING				 {0x0A,0x2B,0x25}
+#define FX_LEVER				 {0x0A,0x2C,0x26}
+#define FX_LEVER2				 {0x0A,0x2D,0x27}
+#define FX_RAT3A				 {0x0A,0x2E,0x28}
+#define FX_RAT3B				 {0x0A,0x2F,0x28}
+#define FX_RAT3C				 {0x0A,0x30,0x28}
+#define FX_RAT3D				 {0x0A,0x31,0x28}
 	// 50 entities in TXTs, 50 in datafiles.
 	// room19
 #define R19SPRPAL				 0x0A010000
@@ -3811,23 +3811,23 @@ namespace Sword1 {
 	// 16 entities in TXTs, 16 in datafiles.
 // spain
 	// sound_fx
-#define FX_SPNBIRD1				 0x0B000000
-#define FX_SPNBIRD2				 0x0B000001
-#define FX_AMBIEN56				 0x0B000002
-#define FX_DOGS56				 0x0B000003
-#define FX_PENDULUM				 0x0B000004
-#define FX_CANFALL				 0x0B000005
-#define FX_HOSE57				 0x0B000006
-#define FX_HOSE57B				 0x0B000007
-#define FX_SPAIN				 0x0B000008
-#define FX_CHESS				 0x0B000009
-#define FX_SECDOR59				 0x0B00000A
-#define FX_WINDOW59				 0x0B00000B
-#define FX_LIONFALL				 0x0B00000C
-#define FX_LIONFAL2				 0x0B00000D
-#define FX_TOOTHPUL				 0x0B00000E
-#define FX_SECDOR61				 0x0B00000F
-#define FX_WELLDRIP				 0x0B000010
+#define FX_SPNBIRD1				 {0x0B,0x00,0x00}
+#define FX_SPNBIRD2				 {0x0B,0x01,0x01}
+#define FX_AMBIEN56				 {0x0B,0x02,0x02}
+#define FX_DOGS56				 {0x0B,0x03,0x03}
+#define FX_PENDULUM				 {0x0B,0x04,0x04}
+#define FX_CANFALL				 {0x0B,0x05,0x05}
+#define FX_HOSE57				 {0x0B,0x06,0x06}
+#define FX_HOSE57B				 {0x0B,0x07,0x07}
+#define FX_SPAIN				 {0x0B,0x08,0x08}
+#define FX_CHESS				 {0x0B,0x09,0x09}
+#define FX_SECDOR59				 {0x0B,0x0A,0xFF}
+#define FX_WINDOW59				 {0x0B,0x0B,0xFF}
+#define FX_LIONFALL				 {0x0B,0x0C,0x0B}
+#define FX_LIONFAL2				 {0x0B,0x0D,0x0C}
+#define FX_TOOTHPUL				 {0x0B,0x0E,0x0D}
+#define FX_SECDOR61				 {0x0B,0x0F,0x0E}
+#define FX_WELLDRIP				 {0x0B,0x10,0x0F}
 	// 17 entities in TXTs, 17 in datafiles.
 	// room56
 #define SPAIN_PAL				 0x0B010000
@@ -4186,34 +4186,34 @@ namespace Sword1 {
 	// 8 entities in TXTs, 8 in datafiles.
 // syria
 	// sound_fx
-#define FX_CAMERA45				 0x0C000000
-#define FX_SHOCK3				 0x0C000001
-#define FX_STALLBEL				 0x0C000002
-#define FX_AYUBDOOR				 0x0C000003
-#define FX_BALLPLAY				 0x0C000004
-#define FX_CATHIT				 0x0C000005
-#define FX_MARIB				 0x0C000006
-#define FX_NEWTON				 0x0C000007
-#define FX_STALLCAT				 0x0C000008
-#define FX_STATBREK				 0x0C000009
-#define FX_KEYS49				 0x0C00000A
-#define FX_MANG1				 0x0C00000B
-#define FX_MANG2				 0x0C00000C
-#define FX_MANG3				 0x0C00000D
-#define FX_UNLOCK49				 0x0C00000E
-#define FX_WCCHAIN				 0x0C00000F
-#define FX_CUBDOR				 0x0C000010
-#define FX_BREKSTIK				 0x0C000011
-#define FX_CLIMBDWN				 0x0C000012
-#define FX_CRICKET				 0x0C000013
-#define FX_GEOFAL54				 0x0C000014
-#define FX_KHANDOWN				 0x0C000015
-#define FX_RINGPULL				 0x0C000016
-#define FX_SECDOR54				 0x0C000017
-#define FX_SHOTKHAN				 0x0C000018
-#define FX_SYRIWIND				 0x0C000019
-#define FX_THUMP1				 0x0C00001A
-#define FX_SECDOR55				 0x0C00001B
+#define FX_CAMERA45				 {0x0C,0x00,0xFF}
+#define FX_SHOCK3				 {0x0C,0x01,0x00}
+#define FX_STALLBEL				 {0x0C,0x02,0x01}
+#define FX_AYUBDOOR				 {0x0C,0x03,0x02}
+#define FX_BALLPLAY				 {0x0C,0x04,0x03}
+#define FX_CATHIT				 {0x0C,0x05,0x04}
+#define FX_MARIB				 {0x0C,0x06,0x05}
+#define FX_NEWTON				 {0x0C,0x07,0x06}
+#define FX_STALLCAT				 {0x0C,0x08,0x07}
+#define FX_STATBREK				 {0x0C,0x09,0x08}
+#define FX_KEYS49				 {0x0C,0x0A,0x09}
+#define FX_MANG1				 {0x0C,0x0B,0x0A}
+#define FX_MANG2				 {0x0C,0x0C,0x0B}
+#define FX_MANG3				 {0x0C,0x0D,0x0C}
+#define FX_UNLOCK49				 {0x0C,0x0E,0x0D}
+#define FX_WCCHAIN				 {0x0C,0x0F,0x0E}
+#define FX_CUBDOR				 {0x0C,0x10,0x0F}
+#define FX_BREKSTIK				 {0x0C,0x11,0x10}
+#define FX_CLIMBDWN				 {0x0C,0x12,0x11}
+#define FX_CRICKET				 {0x0C,0x13,0x12}
+#define FX_GEOFAL54				 {0x0C,0x14,0x13}
+#define FX_KHANDOWN				 {0x0C,0x15,0x14}
+#define FX_RINGPULL				 {0x0C,0x16,0x15}
+#define FX_SECDOR54				 {0x0C,0x17,0x16}
+#define FX_SHOTKHAN				 {0x0C,0x18,0x17}
+#define FX_SYRIWIND				 {0x0C,0x19,0x18}
+#define FX_THUMP1				 {0x0C,0x1A,0x19}
+#define FX_SECDOR55				 {0x0C,0x1B,0x1A}
 	// 28 entities in TXTs, 28 in datafiles.
 	// duane
 #define DUANE_MEGA				 0x0C010000
@@ -4578,19 +4578,19 @@ namespace Sword1 {
 	// 37 entities in TXTs, 37 in datafiles.
 // train
 	// sound_fx
-#define FX_SHOCK63				 0x0D000000
-#define FX_TRAINEXT				 0x0D000001
-#define FX_TRAININT				 0x0D000002
-#define FX_DOOR65				 0x0D000003
-#define FX_WIND66				 0x0D000004
-#define FX_WINDOW66				 0x0D000005
-#define FX_BRAKES				 0x0D000006
-#define FX_DOOR69				 0x0D000007
-#define FX_EKSHOOT				 0x0D000008
-#define FX_FIGHT69				 0x0D000009
-#define FX_PNEUMO69				 0x0D00000A
-#define FX_TICK69				 0x0D00000B
-#define FX_TRNPASS				 0x0D00000C
+#define FX_SHOCK63				 {0x0D,0x00,0x00}
+#define FX_TRAINEXT				 {0x0D,0x01,0x01}
+#define FX_TRAININT				 {0x0D,0x02,0x02}
+#define FX_DOOR65				 {0x0D,0x03,0x03}
+#define FX_WIND66				 {0x0D,0x04,0x04}
+#define FX_WINDOW66				 {0x0D,0x05,0x05}
+#define FX_BRAKES				 {0x0D,0x06,0x06}
+#define FX_DOOR69				 {0x0D,0x07,0x07}
+#define FX_EKSHOOT				 {0x0D,0x08,0x08}
+#define FX_FIGHT69				 {0x0D,0x09,0xFF}
+#define FX_PNEUMO69				 {0x0D,0x0A,0x09}
+#define FX_TICK69				 {0x0D,0x0B,0x0A}
+#define FX_TRNPASS				 {0x0D,0x0C,0x0B}
 	// 13 entities in TXTs, 13 in datafiles.
 	// room63
 #define TRAIN_PAL				 0x0D010000
@@ -4828,33 +4828,33 @@ namespace Sword1 {
 	// 57 entities in TXTs, 57 in datafiles.
 // scotland
 	// sound_fx
-#define FX_WIND71				 0x0E000000
-#define FX_GUST71				 0x0E000001
-#define FX_OWL71A				 0x0E000002
-#define FX_OWL71B				 0x0E000003
-#define FX_COG72A				 0x0E000004
-#define FX_PING					 0x0E000005
-#define FX_RUMMAGE1				 0x0E000006
-#define FX_RUMMAGE2				 0x0E000007
-#define FX_SECDOR72				 0x0E000008
-#define FX_CHANT				 0x0E000009
-#define FX_DAGGER1				 0x0E00000A
-#define FX_GDROP73				 0x0E00000B
-#define FX_GUNPOWDR				 0x0E00000C
-#define FX_STAFF				 0x0E00000D
-#define FX_TORCH73				 0x0E00000E
-#define FX_BAPHAMB				 0x0E00000F
-#define FX_FIGHT1				 0x0E000010
-#define FX_REFORGE2				 0x0E000011
-#define FX_ROSSODIE				 0x0E000012
-#define FX_GKSWORD				 0x0E000013
-#define FX_REFORGE1				 0x0E000014
-#define FX_REFORGE4				 0x0E000015
-#define FX_CHOKE1				 0x0E000016
-#define FX_CHOKE2				 0x0E000017
-#define FX_EKDIES				 0x0E000018
-#define FX_FIGHT2				 0x0E000019
-#define FX_GUN79				 0x0E00001A
+#define FX_WIND71				 {0x0E,0x00,0x00}
+#define FX_GUST71				 {0x0E,0x01,0x01}
+#define FX_OWL71A				 {0x0E,0x02,0x02}
+#define FX_OWL71B				 {0x0E,0x03,0x03}
+#define FX_COG72A				 {0x0E,0x04,0x04}
+#define FX_PING					 {0x0E,0x05,0x05}
+#define FX_RUMMAGE1				 {0x0E,0x06,0x06}
+#define FX_RUMMAGE2				 {0x0E,0x07,0x07}
+#define FX_SECDOR72				 {0x0E,0x08,0x08}
+#define FX_CHANT				 {0x0E,0x09,0xFF}
+#define FX_DAGGER1				 {0x0E,0x0A,0x09}
+#define FX_GDROP73				 {0x0E,0x0B,0xFF}
+#define FX_GUNPOWDR				 {0x0E,0x0C,0x0A}
+#define FX_STAFF				 {0x0E,0x0D,0xFF}
+#define FX_TORCH73				 {0x0E,0x0E,0x0B}
+#define FX_BAPHAMB				 {0x0E,0x0F,0xFF}
+#define FX_FIGHT1				 {0x0E,0x10,0xFF}
+#define FX_REFORGE2				 {0x0E,0x11,0xFF}
+#define FX_ROSSODIE				 {0x0E,0x12,0x0C}
+#define FX_GKSWORD				 {0x0E,0x13,0xFF}
+#define FX_REFORGE1				 {0x0E,0x14,0xFF}
+#define FX_REFORGE4				 {0x0E,0x15,0xFF}
+#define FX_CHOKE1				 {0x0E,0x16,0x0D}
+#define FX_CHOKE2				 {0x0E,0x17,0x0E}
+#define FX_EKDIES				 {0x0E,0x18,0xFF}
+#define FX_FIGHT2				 {0x0E,0x19,0x0F}
+#define FX_GUN79				 {0x0E,0x1A,0x10}
 	// 27 entities in TXTs, 27 in datafiles.
 	// room71
 #define R71L0					 0x0E010000






More information about the Scummvm-git-logs mailing list