diff options
author | Bendegúz Nagy | 2016-08-01 22:23:11 +0200 |
---|---|---|
committer | Bendegúz Nagy | 2016-08-26 23:02:22 +0200 |
commit | 79c0a0adc99a53df663b469be8a05fa6825383c1 (patch) | |
tree | dc6748aa889b019e179215e4874f3ba38793cede /engines/dm/dm.h | |
parent | a387f45d57241dbc8f96e214bb0b90a6069a75bb (diff) | |
download | scummvm-rg350-79c0a0adc99a53df663b469be8a05fa6825383c1.tar.gz scummvm-rg350-79c0a0adc99a53df663b469be8a05fa6825383c1.tar.bz2 scummvm-rg350-79c0a0adc99a53df663b469be8a05fa6825383c1.zip |
DM: Add f064_SOUND_RequestPlay_CPSD, f65_playPendingSound, f505_soundGetVolume
Diffstat (limited to 'engines/dm/dm.h')
-rw-r--r-- | engines/dm/dm.h | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/engines/dm/dm.h b/engines/dm/dm.h index 02def018d1..1c187020f1 100644 --- a/engines/dm/dm.h +++ b/engines/dm/dm.h @@ -205,7 +205,25 @@ public: SoundData(): _byteCount(0), _firstSample(nullptr), _sampleCount(0) {} }; // @ SOUND_DATA - +class Sound { +public: + int16 _graphicIndex; + byte _period; + byte _priority; + byte _loudDistance; + byte _softDistance; + Sound(int16 index, byte period, byte priority, byte loudDist, byte softDist) : + _graphicIndex(index), _period(period), _priority(priority), _loudDistance(loudDist), _softDistance(softDist) {} +}; // @ Sound + +class PendingSound { +public: + uint8 _leftVolume; + uint8 _rightVolume; + int16 _soundIndex; + PendingSound(uint8 leftVolume, uint8 rightVolume, int16 soundIndex): + _leftVolume(leftVolume), _rightVolume(rightVolume), _soundIndex(soundIndex) {} +}; class DMEngine : public Engine { void f462_startGame(); // @ F0462_START_StartGame_CPSF @@ -236,9 +254,11 @@ public: void f441_processEntrance(); // @ F0441_STARTEND_ProcessEntrance void f444_endGame(bool doNotDrawCreditsOnly); // @ F0444_STARTEND_Endgame - void f064_SOUND_RequestPlay_CPSD(uint16 P0088_ui_SoundIndex, int16 P0089_i_MapX, int16 P0090_i_MapY, uint16 P0091_ui_Mode) { warning(true, "STUB: f064_SOUND_RequestPlay_CPSD"); } - void f060_SOUND_Play(uint16 P0921_ui_SoundIndex, uint16 P0085_i_Period, uint8 leftVol, uint8 rightVol); - void f438_STARTEND_OpenEntranceDoors() { warning(true, "STUB: f438_STARTEND_OpenEntranceDoors"); } + void f064_SOUND_RequestPlay_CPSD(uint16 P0088_ui_SoundIndex, int16 P0089_i_MapX, int16 P0090_i_MapY, uint16 P0091_ui_Mode); // @ F0064_SOUND_RequestPlay_CPSD + void f060_SOUND_Play(uint16 P0921_ui_SoundIndex, uint16 P0085_i_Period, uint8 leftVol, uint8 rightVol); // @ F0060_SOUND_Play + void f65_playPendingSound(); // @ F0065_SOUND_PlayPendingSound_CPSD + bool f505_soundGetVolume(int16 mapX, int16 mapY, uint8 *leftVolume, uint8 *rightVolume); // @ F0505_SOUND_GetVolume + void f438_STARTEND_OpenEntranceDoors() { warning(true, "STUB: f438_STARTEND_OpenEntranceDoors"); } // @ F0438_STARTEND_OpenEntranceDoors private: int16 _g528_saveFormat; // @ G0528_i_Format @@ -249,6 +269,7 @@ private: byte *_g564_interfaceCredits; // @ G0564_puc_Graphic5_InterfaceCredits Common::RandomSource *_rnd; SoundData _gK24_soundData[k34_D13_soundCount]; // @ K0024_as_SoundData + Common::Queue<PendingSound> _pendingSounds; public: DisplayMan *_displayMan; DungeonMan *_dungeonMan; |