LOL: add support for pc speaker sfx

svn-id: r45992
This commit is contained in:
Florian Kagerer 2009-11-19 22:17:27 +00:00
parent 34dd625228
commit 1a984d8e7d
10 changed files with 23 additions and 11 deletions

Binary file not shown.

View File

@ -106,7 +106,7 @@ LoLEngine::LoLEngine(OSystem *system, const GameFlags &flags) : KyraEngine_v1(sy
_healOverlay = 0;
_swarmSpellStatus = 0;
_ingameMT32SoundIndex = _ingameGMSoundIndex = /*_ingameADLSoundIndex =*/ 0;
_ingameMT32SoundIndex = _ingameGMSoundIndex = _ingamePCSpeakerSoundIndex = 0;
_charSelection = -1;
_characters = 0;

View File

@ -503,6 +503,8 @@ private:
int _ingameGMSoundIndexSize;
const uint8 *_ingameMT32SoundIndex;
int _ingameMT32SoundIndexSize;
const uint8 *_ingamePCSpeakerSoundIndex;
int _ingamePCSpeakerSoundIndexSize;
AudioDataStruct _soundData[3];

View File

@ -226,7 +226,7 @@ enum KyraResources {
kLolMusicTrackMap,
kLolIngameGMSfxIndex,
kLolIngameMT32SfxIndex,
//kLolIngameADLSfxIndex,
kLolIngamePcSpkSfxIndex,
kLolSpellProperties,
kLolGameShapeMap,
kLolSceneItemOffs,
@ -235,7 +235,6 @@ enum KyraResources {
kLolCharDefsMan,
kLolCharDefsWoman,
kLolCharDefsKieran,
//kLolCharDefsUnk,
kLolCharDefsAkshel,
kLolExpRequirements,
kLolMonsterModifiers,
@ -293,7 +292,6 @@ enum KyraResources {
kLolLegendData,
kLolMapCursorOvl,
kLolMapStringId,
//kLolMapPal,
kLolSpellbookAnim,
kLolSpellbookCoords,

View File

@ -189,6 +189,8 @@ void LoLEngine::snd_playSoundEffect(int track, int volume) {
track = (track < _ingameMT32SoundIndexSize) ? (_ingameMT32SoundIndex[track] - 1) : -1;
else if (_sound->getSfxType() == Sound::kMidiGM)
track = (track < _ingameGMSoundIndexSize) ? (_ingameGMSoundIndex[track] - 1) : -1;
else if (_sound->getSfxType() == Sound::kPCSpkr)
track = (track < _ingamePCSpeakerSoundIndexSize) ? (_ingamePCSpeakerSoundIndex[track] - 1) : -1;
if (track == 168)
track = 167;

View File

@ -45,7 +45,7 @@
namespace Kyra {
#define RESFILE_VERSION 62
#define RESFILE_VERSION 63
namespace {
bool checkKyraDat(Common::SeekableReadStream *file) {
@ -397,6 +397,7 @@ bool StaticResource::init() {
{ kLolMusicTrackMap, kRawData, "MUSIC.MAP" },
{ kLolIngameGMSfxIndex, kRawData, "SFX_GM.MAP" },
{ kLolIngameMT32SfxIndex, kRawData, "SFX_MT32.MAP" },
{ kLolIngamePcSpkSfxIndex, kRawData, "SFX_PCS.MAP" },
{ kLolSpellProperties, kLolSpellData, "SPELLS.DEF" },
{ kLolGameShapeMap, kRawData, "GAMESHP.MAP" },
{ kLolSceneItemOffs, kRawData, "ITEMOFFS.DEF" },
@ -1867,7 +1868,7 @@ void LoLEngine::initStaticResource() {
_musicTrackMap = _staticres->loadRawData(kLolMusicTrackMap, _musicTrackMapSize);
_ingameGMSoundIndex = _staticres->loadRawData(kLolIngameGMSfxIndex, _ingameGMSoundIndexSize);
_ingameMT32SoundIndex = _staticres->loadRawData(kLolIngameMT32SfxIndex, _ingameMT32SoundIndexSize);
//_ingameADLSoundIndex = _staticres->loadRawData(kLolIngameADLSfxIndex, _ingameADLSoundIndexSize);
_ingamePCSpeakerSoundIndex = _staticres->loadRawData(kLolIngamePcSpkSfxIndex, _ingamePCSpeakerSoundIndexSize);
_spellProperties = _staticres->loadSpellData(kLolSpellProperties, _spellPropertiesSize);
_gameShapeMap = (const int8 *)_staticres->loadRawData(kLolGameShapeMap, _gameShapeMapSize);
_sceneItemOffs = (const int8 *)_staticres->loadRawData(kLolSceneItemOffs, _sceneItemOffsSize);

View File

@ -37,7 +37,7 @@
#include "md5.h"
enum {
kKyraDatVersion = 62,
kKyraDatVersion = 63,
kIndexSize = 12
};
@ -218,7 +218,7 @@ const ExtractFilename extractFilenames[] = {
{ kLolMusicTrackMap, kTypeRawData, "MUSIC.MAP" },
{ kLolGMSfxIndex, kTypeRawData, "SFX_GM.MAP" },
{ kLolMT32SfxIndex, kTypeRawData, "SFX_MT32.MAP" },
//{ kLolADLSfxIndex, kTypeRawData, "SFX_ADL.MAP" },
{ kLolPcSpkSfxIndex, kTypeRawData, "SFX_PCS.MAP" },
{ kLolSpellProperties, kTypeRawData, "SPELLS.DEF" },
{ kLolGameShapeMap, kTypeRawData, "GAMESHP.MAP" },
{ kLolSceneItemOffs, kTypeRawData, "ITEMOFFS.DEF" },
@ -881,6 +881,8 @@ const char *getIdString(const int id) {
return "kLolGMSfxIndex";
case kLolMT32SfxIndex:
return "kLolMT32SfxIndex";
case kLolPcSpkSfxIndex:
return "kLolPcSpkSfxIndex";
case kLolSpellProperties:
return "kLolSpellProperties";
case kLolGameShapeMap:

View File

@ -197,7 +197,7 @@ enum kExtractID {
kLolMusicTrackMap,
kLolGMSfxIndex,
kLolMT32SfxIndex,
//lolADLSfxIndex,
kLolPcSpkSfxIndex,
kLolSpellProperties,
kLolGameShapeMap,
kLolSceneItemOffs,
@ -206,7 +206,6 @@ enum kExtractID {
kLolCharDefsMan,
kLolCharDefsWoman,
kLolCharDefsKieran,
//lolCharDefsUnk,
kLolCharDefsAkshel,
kLolExpRequirements,
kLolMonsterModifiers,
@ -264,7 +263,6 @@ enum kExtractID {
kLolLegendData,
kLolMapCursorOvl,
kLolMapStringId,
//lolMapPal,
kLolSpellbookAnim,
kLolSpellbookCoords,

View File

@ -683,6 +683,7 @@ const int lolFloppyNeed[] = {
kLolMusicTrackMap,
kLolGMSfxIndex,
kLolMT32SfxIndex,
kLolPcSpkSfxIndex,
kLolSpellProperties,
kLolGameShapeMap,
kLolSceneItemOffs,
@ -854,6 +855,7 @@ const int lolCDFile2Need[] = {
kLolMusicTrackMap,
kLolGMSfxIndex,
kLolMT32SfxIndex,
kLolPcSpkSfxIndex,
kLolSpellProperties,
kLolGameShapeMap,
kLolSceneItemOffs,

View File

@ -1308,6 +1308,12 @@ const ExtractEntrySearchData kLolMT32SfxIndexProvider[] = {
EXTRACT_END_ENTRY
};
const ExtractEntrySearchData kLolPcSpkSfxIndexProvider[] = {
{ UNK_LANG, kPlatformPC, { 0x000000FA, 0x00005EFC, { { 0xA3, 0x5C, 0x69, 0xED, 0x13, 0xEC, 0x08, 0x0E, 0xFA, 0x72, 0x83, 0x0D, 0xD7, 0x8D, 0x9C, 0x70 } } } },
EXTRACT_END_ENTRY
};
const ExtractEntrySearchData kLolSpellPropertiesProvider[] = {
{ UNK_LANG, kPlatformPC, { 0x00000118, 0x00000B06, { { 0x27, 0x69, 0x53, 0x01, 0xA0, 0xE3, 0x76, 0xAA, 0x33, 0xA4, 0x52, 0x11, 0x52, 0xB1, 0x0E, 0xDA } } } },
@ -1857,6 +1863,7 @@ const ExtractEntry extractProviders[] = {
{ kLolMusicTrackMap, kLolMusicTrackMapProvider },
{ kLolGMSfxIndex, kLolGMSfxIndexProvider },
{ kLolMT32SfxIndex, kLolMT32SfxIndexProvider },
{ kLolPcSpkSfxIndex, kLolPcSpkSfxIndexProvider },
{ kLolSpellProperties, kLolSpellPropertiesProvider },
{ kLolGameShapeMap, kLolGameShapeMapProvider },
{ kLolSceneItemOffs, kLolSceneItemOffsProvider },