diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/neverhood/module1100.cpp | 16 | ||||
-rw-r--r-- | engines/neverhood/module1300.cpp | 46 | ||||
-rw-r--r-- | engines/neverhood/module1600.cpp | 13 | ||||
-rw-r--r-- | engines/neverhood/module1700.cpp | 21 | ||||
-rw-r--r-- | engines/neverhood/module1800.cpp | 16 | ||||
-rw-r--r-- | engines/neverhood/module1900.cpp | 11 | ||||
-rw-r--r-- | engines/neverhood/module2300.cpp | 14 | ||||
-rw-r--r-- | engines/neverhood/module2600.cpp | 13 | ||||
-rw-r--r-- | engines/neverhood/module3000.cpp | 23 | ||||
-rw-r--r-- | engines/neverhood/sound.cpp | 4 | ||||
-rw-r--r-- | engines/neverhood/sound.h | 4 |
11 files changed, 134 insertions, 47 deletions
diff --git a/engines/neverhood/module1100.cpp b/engines/neverhood/module1100.cpp index e948c2b045..e5cca2667d 100644 --- a/engines/neverhood/module1100.cpp +++ b/engines/neverhood/module1100.cpp @@ -26,6 +26,18 @@ namespace Neverhood { +static const uint32 kModule1100SoundList[] = { + 0x90805C50, + 0xB288D450, + 0x98C05840, + 0x98A01500, + 0xB4005E50, + 0x92025040, + 0x90035066, + 0x74E01054, + 0 +}; + Module1100::Module1100(NeverhoodEngine *vm, Module *parentModule, int which) : Module(vm, parentModule) { @@ -37,8 +49,8 @@ Module1100::Module1100(NeverhoodEngine *vm, Module *parentModule, int which) createScene(9, 3); } - // TODO SoundMan_addSoundList(0x0002C818, dword_4B85B0, true); - // TODO SoundMan_setSoundListParams(dword_4B85B0, true, 50, 600, 20, 250); + _vm->_soundMan->addSoundList(0x0002C818, kModule1100SoundList); + _vm->_soundMan->setSoundListParams(kModule1100SoundList, true, 50, 600, 20, 250); _vm->_soundMan->setSoundParams(0x74E01054, false, 100, 200, 10, 20); _vm->_soundMan->setSoundVolume(0x74E01054, 60); _vm->_soundMan->playTwoSounds(0x0002C818, 0x41861371, 0x43A2507F, 0); diff --git a/engines/neverhood/module1300.cpp b/engines/neverhood/module1300.cpp index ee4dc7a42c..45c68421eb 100644 --- a/engines/neverhood/module1300.cpp +++ b/engines/neverhood/module1300.cpp @@ -32,12 +32,22 @@ namespace Neverhood { +static const uint32 kModule1300SoundList[] = { + 0x16805648, + 0x16805C48, + 0xB4964448, + 0x96A05481, + 0xD0E14441, + 0x90815450, + 0 +}; + Module1300::Module1300(NeverhoodEngine *vm, Module *parentModule, int which) : Module(vm, parentModule) { _vm->_soundMan->addMusic(0x61C090, 0x203197); - // TODO SoundMan_addSoundList(0x61C090, dword_4B2868, true); - // TODO SoundMan_setSoundListParams(dword_4B2868, false, 50, 600, 20, 150); + _vm->_soundMan->addSoundList(0x61C090, kModule1300SoundList); + _vm->_soundMan->setSoundListParams(kModule1300SoundList, false, 50, 600, 20, 150); _vm->_soundMan->playTwoSounds(0x61C090, 0x48498E46, 0x50399F64, 0); _vm->_soundMan->setSoundVolume(0x48498E46, 70); _vm->_soundMan->setSoundVolume(0x50399F64, 70); @@ -102,82 +112,82 @@ void Module1300::createScene(int sceneNum, int which) { _vm->gameState().sceneNum = sceneNum; switch (_vm->gameState().sceneNum) { case 1: - // TODO SoundMan_setSoundListParams(dword_4B2868, false, 0, 0, 0, 0); + _vm->_soundMan->setSoundListParams(kModule1300SoundList, false, 0, 0, 0, 0); _vm->_soundMan->startMusic(0x203197, 0, 2); _childObject = new Scene1302(_vm, this, which); break; case 2: - // TODO SoundMan_setSoundListParams(dword_4B2868, false, 0, 0, 0, 0); + _vm->_soundMan->setSoundListParams(kModule1300SoundList, false, 0, 0, 0, 0); _vm->_soundMan->stopMusic(0x203197, 0, 2); _childObject = new Scene1303(_vm, this, which); break; case 3: - // TODO SoundMan_setSoundListParams(dword_4B2868, false, 0, 0, 0, 0); + _vm->_soundMan->setSoundListParams(kModule1300SoundList, false, 0, 0, 0, 0); _vm->_soundMan->stopMusic(0x203197, 0, 2); _childObject = new Scene1304(_vm, this, which); break; case 4: - // TODO SoundMan_setSoundListParams(dword_4B2868, false, 0, 0, 0, 0); + _vm->_soundMan->setSoundListParams(kModule1300SoundList, false, 0, 0, 0, 0); _vm->_soundMan->startMusic(0x203197, 0, 2); _childObject = new Scene1305(_vm, this, which); break; case 5: - // TODO SoundMan_setSoundListParams(dword_4B2868, false, 0, 0, 0, 0); + _vm->_soundMan->setSoundListParams(kModule1300SoundList, false, 0, 0, 0, 0); _vm->_soundMan->startMusic(0x203197, 0, 2); _childObject = new Scene1306(_vm, this, which); break; case 6: - // TODO SoundMan_setSoundListParams(dword_4B2868, false, 0, 0, 0, 0); + _vm->_soundMan->setSoundListParams(kModule1300SoundList, false, 0, 0, 0, 0); _vm->_soundMan->startMusic(0x203197, 0, 2); _childObject = new Scene1307(_vm, this, which); break; case 7: - // TODO SoundMan_setSoundListParams(dword_4B2868, false, 0, 0, 0, 0); + _vm->_soundMan->setSoundListParams(kModule1300SoundList, false, 0, 0, 0, 0); _vm->_soundMan->startMusic(0x203197, 0, 2); _childObject = new Scene1308(_vm, this, which); break; case 8: - // TODO SoundMan_setSoundListParams(dword_4B2868, false, 0, 0, 0, 0); + _vm->_soundMan->setSoundListParams(kModule1300SoundList, false, 0, 0, 0, 0); _vm->_soundMan->stopMusic(0x203197, 0, 2); _childObject = new DiskplayerScene(_vm, this, 1); break; case 9: - // TODO SoundMan_setSoundListParams(dword_4B2868, false, 0, 0, 0, 0); + _vm->_soundMan->setSoundListParams(kModule1300SoundList, false, 0, 0, 0, 0); _vm->_soundMan->stopMusic(0x203197, 0, 2); createSmackerScene(0x20082818, true, true, false); break; case 10: - // TODO SoundMan_setSoundListParams(dword_4B2868, false, 0, 0, 0, 0); + _vm->_soundMan->setSoundListParams(kModule1300SoundList, false, 0, 0, 0, 0); _vm->_soundMan->stopMusic(0x203197, 0, 2); createSmackerScene(0x20082828, true, true, false); break; case 11: - // TODO SoundMan_setSoundListParams(0xdword_4B2868, true, 0, 0, 0, 0); + _vm->_soundMan->setSoundListParams(kModule1300SoundList, true, 0, 0, 0, 0); _vm->_soundMan->stopMusic(0x203197, 0, 2); createNavigationScene(0x004B27A8, which); break; case 12: - // TODO SoundMan_setSoundListParams(0xdword_4B2868, true, 0, 0, 0, 0); + _vm->_soundMan->setSoundListParams(kModule1300SoundList, true, 0, 0, 0, 0); _vm->_soundMan->stopMusic(0x203197, 0, 2); createNavigationScene(0x004B2718, which); break; case 13: - // TODO SoundMan_setSoundListParams(0xdword_4B2868, true, 0, 0, 0, 0); + _vm->_soundMan->setSoundListParams(kModule1300SoundList, true, 0, 0, 0, 0); _vm->_soundMan->stopMusic(0x203197, 0, 2); createNavigationScene(0x004B27D8, which); break; case 14: - // TODO SoundMan_setSoundListParams(0xdword_4B2868, true, 0, 0, 0, 0); + _vm->_soundMan->setSoundListParams(kModule1300SoundList, true, 0, 0, 0, 0); _vm->_soundMan->stopMusic(0x203197, 0, 2); createNavigationScene(0x004B2808, which); break; case 15: - // TODO SoundMan_setSoundListParams(0xdword_4B2868, true, 0, 0, 0, 0); + _vm->_soundMan->setSoundListParams(kModule1300SoundList, true, 0, 0, 0, 0); _vm->_soundMan->stopMusic(0x203197, 0, 2); createNavigationScene(0x004B2838, which); break; case 16: - // TODO SoundMan_setSoundListParams(dword_4B2868, false, 0, 0, 0, 0); + _vm->_soundMan->setSoundListParams(kModule1300SoundList, false, 0, 0, 0, 0); _vm->_soundMan->stopMusic(0x203197, 0, 2); _childObject = new Scene1317(_vm, this, which); break; diff --git a/engines/neverhood/module1600.cpp b/engines/neverhood/module1600.cpp index 5ff6cd017e..864e4a6fed 100644 --- a/engines/neverhood/module1600.cpp +++ b/engines/neverhood/module1600.cpp @@ -27,6 +27,15 @@ namespace Neverhood { +static const uint32 kModule1600SoundList[] = { + 0x90805C50, + 0x90804450, + 0xB4005E60, + 0x91835066, + 0x90E14440, + 0 +}; + Module1600::Module1600(NeverhoodEngine *vm, Module *parentModule, int which) : Module(vm, parentModule) { @@ -44,8 +53,8 @@ Module1600::Module1600(NeverhoodEngine *vm, Module *parentModule, int which) createScene(0, 0); } - // TODO SoundMan_addSoundList(0x1A008D8, dword_4B3BB0, true); - // TODO SoundMan_setSoundListParams(dword_4B3BB0, true, 50, 600, 5, 150); + _vm->_soundMan->addSoundList(0x1A008D8, kModule1600SoundList); + _vm->_soundMan->setSoundListParams(kModule1600SoundList, true, 50, 600, 5, 150); _vm->_soundMan->playTwoSounds(0x1A008D8, 0x41861371, 0x43A2507F, 0); } diff --git a/engines/neverhood/module1700.cpp b/engines/neverhood/module1700.cpp index 005792679c..13d0f35198 100644 --- a/engines/neverhood/module1700.cpp +++ b/engines/neverhood/module1700.cpp @@ -24,12 +24,21 @@ namespace Neverhood { +static const uint32 kModule1700SoundList[] = { + 0xB288D450, + 0x90804450, + 0x99801500, + 0xB288D455, + 0x93825040, + 0 +}; + Module1700::Module1700(NeverhoodEngine *vm, Module *parentModule, int which) : Module(vm, parentModule), _soundResource(vm) { _vm->_soundMan->addMusic(0x04212331, 0x31114225); - // TODO SoundMan_addSoundList(0x04212331, dword_4AE930, true); - // TODO SoundMan_setSoundListParams(dword_4AE930, true, 50, 600, 5, 150); + _vm->_soundMan->addSoundList(0x04212331, kModule1700SoundList); + _vm->_soundMan->setSoundListParams(kModule1700SoundList, true, 50, 600, 5, 150); _vm->_soundMan->playTwoSounds(0x04212331, 0x41861371, 0x43A2507F, 0); if (which < 0) { @@ -53,7 +62,7 @@ void Module1700::createScene(int sceneNum, int which) { _vm->gameState().sceneNum = sceneNum; switch (_vm->gameState().sceneNum) { case 0: - // TODO SoundMan_setSoundListParams(dword_4AE930, false, 0, 0, 0, 0); + _vm->_soundMan->setSoundListParams(kModule1700SoundList, false, 0, 0, 0, 0); createSmackerScene(0x3028A005, true, true, false); break; case 1: @@ -63,11 +72,11 @@ void Module1700::createScene(int sceneNum, int which) { createNavigationScene(0x004AE8E8, which); break; case 3: - // TODO SoundMan_setSoundListParams(dword_4AE930, false, 0, 0, 0, 0); + _vm->_soundMan->setSoundListParams(kModule1700SoundList, false, 0, 0, 0, 0); createSmackerScene(0x01190041, true, true, false); break; case 4: - // TODO SoundMan_setSoundListParams(dword_4AE930, false, 0, 0, 0, 0); + _vm->_soundMan->setSoundListParams(kModule1700SoundList, false, 0, 0, 0, 0); _vm->_soundMan->startMusic(0x31114225, 0, 2); _childObject = new Scene1705(_vm, this, which); break; @@ -80,7 +89,7 @@ void Module1700::updateScene() { if (!updateChild()) { switch (_vm->gameState().sceneNum) { case 0: - // TODO SoundMan_setSoundListParams(dword_4AE930, false, 0, 0, 0); + _vm->_soundMan->setSoundListParams(kModule1700SoundList, true, 0, 0, 0, 0); createScene(1, 0); break; case 1: diff --git a/engines/neverhood/module1800.cpp b/engines/neverhood/module1800.cpp index fc31b2d0c5..14c48681fe 100644 --- a/engines/neverhood/module1800.cpp +++ b/engines/neverhood/module1800.cpp @@ -25,11 +25,21 @@ namespace Neverhood { +static const uint32 kModule1800SoundList[] = { + 0x16805548, + 0x16805048, + 0xD0E14441, + 0x90E090C2, + 0x90E1D0C2, + 0x90E2D0C2, + 0 +}; + Module1800::Module1800(NeverhoodEngine *vm, Module *parentModule, int which) : Module(vm, parentModule) { - // TODO SoundMan_addSoundList(0x04A14718, dword_4AFE70); - // TODO SoundMan_setSoundListParams(dword_4AFE70, true, 50, 600, 10, 150); + _vm->_soundMan->addSoundList(0x04A14718, kModule1800SoundList); + _vm->_soundMan->setSoundListParams(kModule1800SoundList, true, 50, 600, 10, 150); _vm->_soundMan->playTwoSounds(0x04A14718, 0x8A382B55, 0x0C242F1D, 0); if (which < 0) { @@ -77,7 +87,7 @@ void Module1800::createScene(int sceneNum, int which) { createSmackerScene(0x08D84010, true, true, false); break; case 7: - // TODO SoundMan_setSoundListParams(dword_4AFE70, false, 0, 0, 0, 0); + _vm->_soundMan->setSoundListParams(kModule1800SoundList, false, 0, 0, 0, 0); createSmackerScene(0x0168B121, true, true, false); break; case 8: diff --git a/engines/neverhood/module1900.cpp b/engines/neverhood/module1900.cpp index d432bcb6e8..c6ce15c461 100644 --- a/engines/neverhood/module1900.cpp +++ b/engines/neverhood/module1900.cpp @@ -25,6 +25,13 @@ namespace Neverhood { +static const uint32 kModule1900SoundList[] = { + 0xB4005E60, + 0x91835066, + 0x90E14440, + 0 +}; + Module1900::Module1900(NeverhoodEngine *vm, Module *parentModule, int which) : Module(vm, parentModule) { @@ -36,8 +43,8 @@ Module1900::Module1900(NeverhoodEngine *vm, Module *parentModule, int which) createScene(0, 0); } - // TODO SoundMan_addSoundList(0x04E1C09C, dword_4B8800, true); - // TODO SoundMan_setSoundListParams(dword_4B8800, true, 50, 600, 5, 150); + _vm->_soundMan->addSoundList(0x04E1C09C, kModule1900SoundList); + _vm->_soundMan->setSoundListParams(kModule1900SoundList, true, 50, 600, 5, 150); } diff --git a/engines/neverhood/module2300.cpp b/engines/neverhood/module2300.cpp index 3f7c5e6616..4f35122eb2 100644 --- a/engines/neverhood/module2300.cpp +++ b/engines/neverhood/module2300.cpp @@ -24,11 +24,21 @@ namespace Neverhood { +static const uint32 kModule2300SoundList[] = { + 0x90805C50, + 0x90804450, + 0xB4005E60, + 0x91835066, + 0x90E14440, + 0x90F0D1C3, + 0 +}; + Module2300::Module2300(NeverhoodEngine *vm, Module *parentModule, int which) : Module(vm, parentModule), _volume(0) { - // TODO SoundMan_addSoundList(0x1A214010, dword_4B6938, true); - // TODO SoundMan_setSoundListParams(dword_4B6938, true, 50, 600, 10, 10, 150); + _vm->_soundMan->addSoundList(0x1A214010, kModule2300SoundList); + _vm->_soundMan->setSoundListParams(kModule2300SoundList, true, 50, 600, 10, 150); _flag = getGlobalVar(0x10938830) == 0; diff --git a/engines/neverhood/module2600.cpp b/engines/neverhood/module2600.cpp index 9106eeb8b6..7cdfb69ed8 100644 --- a/engines/neverhood/module2600.cpp +++ b/engines/neverhood/module2600.cpp @@ -24,6 +24,15 @@ namespace Neverhood { +static const uint32 kModule2600SoundList[] = { + 0xB288D450, + 0x90804450, + 0x99801500, + 0xB288D455, + 0x93825040, + 0 +}; + Module2600::Module2600(NeverhoodEngine *vm, Module *parentModule, int which) : Module(vm, parentModule) { @@ -35,8 +44,8 @@ Module2600::Module2600(NeverhoodEngine *vm, Module *parentModule, int which) createScene(0, 1); } - // TODO SoundMan_addSoundList(0x40271018, dword_4B87E8, true); - // TODO SoundMan_setSoundListParams(dword_4B87E8, true, 50, 600, 5, 150); + _vm->_soundMan->addSoundList(0x40271018, kModule2600SoundList); + _vm->_soundMan->setSoundListParams(kModule2600SoundList, true, 50, 600, 5, 150); _vm->_soundMan->playTwoSounds(0x40271018, 0x41861371, 0x43A2507F, 0); } diff --git a/engines/neverhood/module3000.cpp b/engines/neverhood/module3000.cpp index b76f9c7c60..3a6209e76a 100644 --- a/engines/neverhood/module3000.cpp +++ b/engines/neverhood/module3000.cpp @@ -26,11 +26,22 @@ namespace Neverhood { +static const uint32 kModule3000SoundList[] = { + 0x92025040, + 0x90035066, + 0x90815450, + 0x99801500, + 0x90E14440, + 0x16805048, + 0x90F0D1C3, + 0 +}; + Module3000::Module3000(NeverhoodEngine *vm, Module *parentModule, int which) : Module(vm, parentModule), _soundVolume(0) { - // TODO SoundMan_addSoundList(0x81293110, dword_4B7FC8, true); - // TODO SoundMan_setSoundListParams(dword_4B7FC8, true, 50, 600, 5, 150); + _vm->_soundMan->addSoundList(0x81293110, kModule3000SoundList); + _vm->_soundMan->setSoundListParams(kModule3000SoundList, true, 50, 600, 5, 150); _vm->_soundMan->setSoundParams(0x90F0D1C3, false, 20000, 30000, 20000, 30000); _vm->_soundMan->playTwoSounds(0x81293110, 0x48498E46, 0x50399F64, 0); _vm->_soundMan->playTwoSounds(0x81293110, 0x40030A51, 0xC862CA15, 0); @@ -109,7 +120,7 @@ void Module3000::createScene(int sceneNum, int which) { createNavigationScene(0x004B7FB0, which, kNavigationTypes06); break; case 7: - // TODO SoundMan_setSoundListParams(dword_4B7FC8, false, 0, 0, 0, 0); + _vm->_soundMan->setSoundListParams(kModule3000SoundList, false, 0, 0, 0, 0); if (!getSubVar(0x40050052, 0x089809C2)) { setSubVar(0x40050052, 0x089809C2, 1); createSmackerScene(0x90022001, true, true, false); @@ -126,7 +137,7 @@ void Module3000::createScene(int sceneNum, int which) { _childObject = new Scene3011(_vm, this, 0); break; case 11: - // TODO SoundMan_setSoundListParams(dword_4B7FC8, false, 0, 0, 0, 0); + _vm->_soundMan->setSoundListParams(kModule3000SoundList, false, 0, 0, 0, 0); if (!getSubVar(0x40050052, 0x10130993)) { setSubVar(0x40050052, 0x10130993, 1); createSmackerScene(0x31093019, true, true, false); @@ -229,12 +240,12 @@ void Module3000::updateScene() { case 8: _flag = getGlobalVar(0x10938830); // CHECKME if (_moduleResult != 1) { - // TODO: SoundMan_setSoundListParams(dword_4B7FC8, true, 0, 0, 0, 0): + // TODO: SoundMan_setSoundListParams(kModule3000SoundList, true, 0, 0, 0, 0): createScene(4, 1); } else if (getGlobalVar(0xF0402B0A)) { createScene(1008, -1); } else { - // TODO: SoundMan_setSoundListParams(dword_4B7FC8, true, 0, 0, 0, 0); + // TODO: SoundMan_setSoundListParams(kModule3000SoundList, true, 0, 0, 0, 0); createScene(4, 1); } break; diff --git a/engines/neverhood/sound.cpp b/engines/neverhood/sound.cpp index bd2f223998..df66c6b777 100644 --- a/engines/neverhood/sound.cpp +++ b/engines/neverhood/sound.cpp @@ -206,7 +206,7 @@ void SoundMan::addSound(uint32 nameHash, uint32 soundFileHash) { _soundItems.push_back(soundItem); } -void SoundMan::addSoundList(uint32 nameHash, uint32 *soundFileHashList) { +void SoundMan::addSoundList(uint32 nameHash, const uint32 *soundFileHashList) { while (*soundFileHashList) addSound(nameHash, *soundFileHashList++); } @@ -242,7 +242,7 @@ void SoundMan::setSoundParams(uint32 soundFileHash, bool playOnceAfterRandomCoun } } -void SoundMan::setSoundListParams(uint32 *soundFileHashList, bool playOnceAfterRandomCountdown, +void SoundMan::setSoundListParams(const uint32 *soundFileHashList, bool playOnceAfterRandomCountdown, int16 minCountdown, int16 maxCountdown, int16 firstMinCountdown, int16 firstMaxCountdown) { while (*soundFileHashList) diff --git a/engines/neverhood/sound.h b/engines/neverhood/sound.h index b724e898f0..1f0940c353 100644 --- a/engines/neverhood/sound.h +++ b/engines/neverhood/sound.h @@ -113,11 +113,11 @@ public: // Sound void addSound(uint32 nameHash, uint32 soundFileHash); - void addSoundList(uint32 nameHash, uint32 *soundFileHashList); + void addSoundList(uint32 nameHash, const uint32 *soundFileHashList); void deleteSound(uint32 soundFileHash); void setSoundParams(uint32 soundFileHash, bool playOnceAfterRandomCountdown, int16 minCountdown, int16 maxCountdown, int16 firstMinCountdown, int16 firstMaxCountdown); - void setSoundListParams(uint32 *soundFileHashList, bool playOnceAfterRandomCountdown, + void setSoundListParams(const uint32 *soundFileHashList, bool playOnceAfterRandomCountdown, int16 minCountdown, int16 maxCountdown, int16 firstMinCountdown, int16 firstMaxCountdown); void playSoundLooping(uint32 soundFileHash); void stopSound(uint32 soundFileHash); |