aboutsummaryrefslogtreecommitdiff
path: root/queen/sound.cpp
diff options
context:
space:
mode:
authorJoost Peters2003-11-14 00:45:44 +0000
committerJoost Peters2003-11-14 00:45:44 +0000
commit2d3f4ef8311946af98db30d61c785611466ff311 (patch)
treebaed97a6c971f0fae8a2f55b6d921e0e624c98e7 /queen/sound.cpp
parentef1595b2a9e6bab5e2f5caeacd1264b1bca07a6d (diff)
downloadscummvm-rg350-2d3f4ef8311946af98db30d61c785611466ff311.tar.gz
scummvm-rg350-2d3f4ef8311946af98db30d61c785611466ff311.tar.bz2
scummvm-rg350-2d3f4ef8311946af98db30d61c785611466ff311.zip
Play all sfx now, instead of only amiga ones + some music preparation
svn-id: r11288
Diffstat (limited to 'queen/sound.cpp')
-rw-r--r--queen/sound.cpp465
1 files changed, 3 insertions, 462 deletions
diff --git a/queen/sound.cpp b/queen/sound.cpp
index 766659c78a..04a6cae124 100644
--- a/queen/sound.cpp
+++ b/queen/sound.cpp
@@ -135,469 +135,10 @@ void Sound::waitSfxFinished() {
}
void Sound::playSong(int16 songNum) {
- if (songNum == STOP_MUSIC) {
- //stop the music
- //_fanfareCount = _fluteCount = 0;
- //_oldName[0] = 0;
- return;
- }
-
- // Remap some songs because there is less amiga music
- // and we want lastoverride to work properly
- switch(songNum) {
- case 1:
- case 2:
- songNum = 39;
- break;
-
- case 37:
- case 52:
- case 196:
- songNum = 90;
- break;
-
- case 38:
- case 89:
- songNum = 3;
- break;
-
- case 24:
- case 158:
- songNum = 117;
- break;
-
- case 71:
- case 72:
- case 73:
- case 75:
- songNum = 133;
- break;
-
- case 203:
- songNum = 67;
- break;
-
- case 145:
- songNum = 140;
- break;
-
- case 53:
- case 204:
- songNum = 44;
- break;
-
- case 136:
- case 142:
- case 179:
- songNum = 86;
- break;
-
- case 101:
- case 102:
- case 143:
- songNum = 188;
- break;
-
- case 65:
- case 62:
- songNum = 69;
- break;
-
- case 118:
- case 119:
- songNum = 137;
- break;
-
- case 130:
- case 131:
- songNum = 59;
- break;
-
- case 174:
- case 175:
- songNum = 57;
- break;
-
- case 171:
- case 121:
- songNum = 137;
- break;
-
- case 138:
- case 170:
- case 149:
- songNum = 28;
- break;
-
- case 122:
- case 180:
- case 83:
- case 98:
- songNum = 83;
- break;
-
- case 20:
- case 33:
- songNum = 34;
- break;
-
- case 29:
- case 35:
- songNum = 36;
- break;
-
- case 7:
- case 9:
- case 10:
- songNum = 11;
- break;
-
- case 110:
- songNum = 94;
- break;
-
- case 111:
- songNum = 95;
- break;
-
- case 30:
- songNum = 43;
- break;
-
- case 76:
- songNum = 27;
- break;
-
- case 194:
- case 195:
- songNum = 32;
- break;
- }
-
- // Sound effects and volume changes exit before setting lastoverride
- // 04-19-95 01:31pm Fix sfx bug
- if(_lastOverride != 32 && _lastOverride != 44) {
- switch(songNum) {
- // Volume normal
- case 5:
- warning("Sound::playSong() -> alter_current_volume() not implemented yet");
- //alter_current_volume();
- return;
-
- // Volume soft
- case 15:
- //volumecontrol(-1,(20*VOLUME)/100);
- return;
-
- // Volume medium
- case 14:
- //volumecontrol(-1,(32*VOLUME)/100);
- return;
-
- // Open door
- case 25:
- sfxPlay("116BSSSS");
- return;
-
- // Close door
- case 26:
- sfxPlay("105ASSSS");
- return;
-
- // Light switch
- case 56:
- sfxPlay("27SSSSSS");
- return;
-
- // Hydraulic doors open
- case 57:
- sfxPlay("96SSSSSS");
- return;
-
- // Hydraulic doors close
- case 58:
- sfxPlay("97SSSSSS");
- return;
-
- // Metallic door slams
- case 59:
- sfxPlay("105SSSSS");
- return;
-
- // Oracle rezzes in
- case 63:
- sfxPlay("132SSSSS");
- return;
-
- // Cloth slide 1
- case 27:
- sfxPlay("135SSSSS");
- return;
-
- // Splash
- case 83:
- sfxPlay("18SSSSSS");
- return;
-
- // Agression enhancer
- case 85:
- sfxPlay("138BSSSS");
- return;
-
- // Dino Ray
- case 68:
- sfxPlay("138SSSSS");
- return;
-
- // Dino transformation
- case 140:
- sfxPlay("55BSSSSS");
- return;
-
- // Experimental laser
- case 141:
- sfxPlay("55SSSSSS");
- return;
-
- // Plane hatch open
- case 94:
- sfxPlay("3SSSSSSS");
- return;
-
- // Plane hatch close
- case 95:
- sfxPlay("4SSSSSSS");
- return;
-
- // Oracle rezzes out
- case 117:
- sfxPlay("70SSSSSS");
- return;
-
- // Dino horn
- case 124:
- sfxPlay("103SSSSS");
- return;
-
- // Punch
- case 127:
- sfxPlay("128SSSSS");
- return;
-
- // Body hits ground
- case 128:
- sfxPlay("129SSSSS");
- return;
-
- // Explosion
- case 137:
- sfxPlay("88SSSSSS");
- return;
-
- // Stone door grind 1
- case 86:
- sfxPlay("1001SSSS");
- return;
-
- // Stone door grind 2
- case 188:
- sfxPlay("1002SSSS");
- return;
-
- // Cloth slide 2
- case 28:
- sfxPlay("1005SSSS");
- return;
-
- // Rattle bars
- case 151:
- sfxPlay("115SSSSS");
- return;
-
- // Door dissolves
- case 152:
- sfxPlay("56SSSSSS");
- return;
-
- // Altar slides
- case 153:
- sfxPlay("85SSSSSS");
- return;
-
- // Pull lever
- case 166:
- sfxPlay("1008SSSS");
- return;
-
- // Zap Frank
- case 182:
- sfxPlay("1023SSSS");
- return;
-
- // Splorch
- case 69:
- sfxPlay("137ASSSS");
- return;
-
- // Robot laser
- case 70:
- sfxPlay("61SSSSSS");
- return;
-
- // Pick hits stone
- case 133:
- sfxPlay("71SSSSSS");
- return;
-
- // Press button
- case 165:
- sfxPlay("1007SSSS");
- return;
- }
- }
-
-
- // Exit if trying to play a song that's already playing
- // and instruments are already loaded i.e. last song wasn't -1
- if (songNum == _lastOverride /* && oldName[0] != 0 */ )
-
- // Play songs
- switch(songNum) {
- // Hotel
- case 39:
- //goSong("hotel",1);
- break;
-
- case 19:
- //goSong("hotel",3);
- break;
-
- case 34:
- //goSong("hotel",2);
- break;
-
- case 36:
- //goSong("hotel",4);
- //fanfarerestore=lastoverride;
- //fanfarecount=60;
- break;
-
- // Jungle
- case 40:
- //goSong("jung",1);
- //fanfarerestore=lastoverride;
- //fanfarecount=80;
- //flutecount=100;
- break;
-
- case 3:
- //goSong("jung",2);
- //flutecount=100;
- break;
-
- // Temple
- case 54:
- //goSong("temple",1);
- break;
-
- case 12:
- //goSong("temple",2);
- break;
-
- case 11:
- //goSong("temple",3);
- break;
-
- case 31:
- //goSong("temple",4);
- //fanfarerestore=lastoverride;
- //fanfarecount=80;
- break;
-
- // Floda
- case 41:
- //goSong("floda",4);
- //fanfarerestore=lastoverride;
- //fanfarecount=60;
- break;
-
- case 13:
- //goSong("floda",3);
- break;
-
- case 16:
- //goSong("floda",1);
- break;
-
- case 17:
- //goSong("floda",2);
- break;
-
- case 43:
- //goSong("floda",5);
- break;
-
- // Prequel (End credits)
- case 67:
- //goSong("title",1);
- // 05-19-95 03:24pm Removed to fix A500 Bug
- //fanfarerestore=90;
- //fanfarecount=550;
- break;
-
- // Title (Intro credits)
- case 88:
- //goSong("title",1);
- break;
-
- // Valley
- case 90:
- //goSong("awestruk",1);
- break;
-
- // Confrontation
- case 91:
- //goSong("'jungle'",1);
- break;
-
- // Frank
- case 46:
- //goSong("frank",1);
- break;
-
- // Trader Bob
- case 6:
- //goSong("bob",1);
- break;
-
- // Azura
- case 44:
- //goSong("azura",1);
- break;
-
- // Amazon Fortress
- case 21:
- //goSong("fort",1);
- break;
-
- // Rocket
- case 32:
- //goSong("rocket",1);
- break;
-
- // Robot
- case 92:
- //goSong("robot",1);
- break;
-
- // Song not handled by amiga
- default:
- return;
- }
-
-
- _lastOverride = _currentSong = songNum;
+ int16 newTune = _song[songNum - 1].tuneList[0];
+ if (_tune[newTune - 1].sfx[0] /* && _sfxToggle */ )
+ sfxPlay(_sfxName[_tune[newTune - 1].sfx[0] - 1]);
}