aboutsummaryrefslogtreecommitdiff
path: root/engines/mads/nebular/sound_nebular.h
diff options
context:
space:
mode:
authorPaul Gilbert2014-05-15 12:35:08 -0400
committerPaul Gilbert2014-05-15 12:35:08 -0400
commitc1663ab6cc6c0b898c8de6b2c30dee1ec596ad56 (patch)
treec6a5fe1aeecc804d0a3887f29145033b11606ee3 /engines/mads/nebular/sound_nebular.h
parent1a7e586a6737474875e3f8dfc7bb20938f05fbe3 (diff)
downloadscummvm-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.h72
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