diff options
author | Paul Gilbert | 2014-05-15 12:35:08 -0400 |
---|---|---|
committer | Paul Gilbert | 2014-05-15 12:35:08 -0400 |
commit | c1663ab6cc6c0b898c8de6b2c30dee1ec596ad56 (patch) | |
tree | c6a5fe1aeecc804d0a3887f29145033b11606ee3 /engines/mads/nebular/sound_nebular.h | |
parent | 1a7e586a6737474875e3f8dfc7bb20938f05fbe3 (diff) | |
download | scummvm-rg350-c1663ab6cc6c0b898c8de6b2c30dee1ec596ad56.tar.gz scummvm-rg350-c1663ab6cc6c0b898c8de6b2c30dee1ec596ad56.tar.bz2 scummvm-rg350-c1663ab6cc6c0b898c8de6b2c30dee1ec596ad56.zip |
MADS: Implemented sound player for scene group 3
Diffstat (limited to 'engines/mads/nebular/sound_nebular.h')
-rw-r--r-- | engines/mads/nebular/sound_nebular.h | 72 |
1 files changed, 70 insertions, 2 deletions
diff --git a/engines/mads/nebular/sound_nebular.h b/engines/mads/nebular/sound_nebular.h index 3c69c0c852..289c3b910c 100644 --- a/engines/mads/nebular/sound_nebular.h +++ b/engines/mads/nebular/sound_nebular.h @@ -67,6 +67,11 @@ public: int _field1D; int _field1E; int _field1F; + + // TODO: Only used by asound.003. Figure out usage + byte _field20; +public: + static bool _channelsEnabled; public: AdlibChannel(); @@ -180,6 +185,8 @@ private: void updateFNumber(); protected: + int _commandParam; + /** * Queue a byte for an Adlib register */ @@ -245,7 +252,7 @@ protected: */ int getRandomNumber(); - int command0(); + virtual int command0(); int command1(); int command2(); int command3(); @@ -361,7 +368,6 @@ private: typedef int (ASound1::*CommandPtr)(); static const CommandPtr _commandList[42]; bool _cmd23Toggle; - int _commandParam; int command9(); int command10(); @@ -412,6 +418,7 @@ private: typedef int (ASound2::*CommandPtr)(); static const CommandPtr _commandList[44]; + virtual int command0(); int command9(); int command10(); int command11(); @@ -456,6 +463,67 @@ public: virtual int command(int commandId, int param); }; +class ASound3 : public ASound { +private: + bool _command39Flag; + + typedef int (ASound3::*CommandPtr)(); + static const CommandPtr _commandList[61]; + + int command9(); + int command10(); + int command11(); + int command13(); + int command14(); + int command15(); + int command16(); + int command17(); + int command18(); + int command19(); + int command20(); + int command21(); + int command22(); + int command23(); + int command24(); + int command25(); + int command26(); + int command27(); + int command28(); + int command29(); + int command30(); + int command31(); + int command32(); + int command33(); + int command34(); + int command35(); + int command36(); + int command37(); + int command38(); + int command39(); + int command40(); + int command41(); + int command42(); + int command43(); + int command44(); + int command45(); + int command46(); + int command47(); + int command49(); + int command50(); + int command51(); + int command57(); + int command59(); + int command60(); + int nullCommand() { return 0; } + + void command9Randomize(); + void command9Apply(byte *data, int val, int incr); +public: + ASound3(Audio::Mixer *mixer); + + virtual int command(int commandId, int param); +}; + } // End of namespace Nebular } // End of namespace MADS |