aboutsummaryrefslogtreecommitdiff
path: root/engines/dm/dm.h
diff options
context:
space:
mode:
authorBendegúz Nagy2016-08-01 22:23:11 +0200
committerBendegúz Nagy2016-08-26 23:02:22 +0200
commit79c0a0adc99a53df663b469be8a05fa6825383c1 (patch)
treedc6748aa889b019e179215e4874f3ba38793cede /engines/dm/dm.h
parenta387f45d57241dbc8f96e214bb0b90a6069a75bb (diff)
downloadscummvm-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.h29
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;