aboutsummaryrefslogtreecommitdiff
path: root/scumm/player_v2a.cpp
diff options
context:
space:
mode:
authorMax Horn2003-10-09 15:03:01 +0000
committerMax Horn2003-10-09 15:03:01 +0000
commit768d4c3834d27e723e7a5d9b65d640e6abf73b0d (patch)
tree8c22c35a306eb3395301a75f981c6f2aa2c05e39 /scumm/player_v2a.cpp
parentbbb308c8cbef6184f2bc3ad64fbc929e2e55cec6 (diff)
downloadscummvm-rg350-768d4c3834d27e723e7a5d9b65d640e6abf73b0d.tar.gz
scummvm-rg350-768d4c3834d27e723e7a5d9b65d640e6abf73b0d.tar.bz2
scummvm-rg350-768d4c3834d27e723e7a5d9b65d640e6abf73b0d.zip
get rid of the copy method again, instead create the sound object on the fly in findSound(): this should avoid a compiler problem with gcc 2.95.2 (see bug #820641) and also reduce the number of unnecessary global objects for everybody
svn-id: r10705
Diffstat (limited to 'scumm/player_v2a.cpp')
-rw-r--r--scumm/player_v2a.cpp340
1 files changed, 109 insertions, 231 deletions
diff --git a/scumm/player_v2a.cpp b/scumm/player_v2a.cpp
index 87c4fc1dd8..8b0a823bd7 100644
--- a/scumm/player_v2a.cpp
+++ b/scumm/player_v2a.cpp
@@ -57,7 +57,6 @@ class V2A_Sound {
public:
V2A_Sound() : _id(0), _mod(NULL) { }
- virtual V2A_Sound *copy() = 0;
virtual void start(Player_MOD *mod, int id, const byte *data) = 0;
virtual bool update() = 0;
virtual void stop() = 0;
@@ -68,10 +67,6 @@ protected:
class V2A_Sound_Unsupported : public V2A_Sound {
public:
- V2A_Sound_Unsupported(V2A_Sound_Unsupported *other) { }
- virtual V2A_Sound *copy() {
- return new V2A_Sound_Unsupported(this);
- }
V2A_Sound_Unsupported() { }
virtual void start(Player_MOD *mod, int id, const byte *data) {
warning("player_v2a - sound %i not supported yet", id);
@@ -83,8 +78,6 @@ public:
template<int numChan>
class V2A_Sound_Base : public V2A_Sound {
public:
- V2A_Sound_Base (V2A_Sound_Base *other) :
- _offset(other->_offset), _size(other->_size), _data(0) { }
V2A_Sound_Base() : _offset(0), _size(0), _data(0) { }
V2A_Sound_Base(uint16 offset, uint16 size) : _offset(offset), _size(size), _data(0) { }
virtual void stop() {
@@ -104,11 +97,6 @@ protected:
class V2A_Sound_Music : public V2A_Sound {
public:
- V2A_Sound_Music (V2A_Sound_Music *other) :
- _instoff(other->_instoff), _voloff(other->_voloff), _chan1off(other->_chan1off), _chan2off(other->_chan2off), _chan3off(other->_chan3off), _chan4off(other->_chan4off), _sampoff(other->_sampoff), _looped(other->_looped) { }
- virtual V2A_Sound *copy() {
- return new V2A_Sound_Music(this);
- }
V2A_Sound_Music(uint16 instoff, uint16 voloff, uint16 chan1off, uint16 chan2off, uint16 chan3off, uint16 chan4off, uint16 sampoff, bool looped) :
_instoff(instoff), _voloff(voloff), _chan1off(chan1off), _chan2off(chan2off), _chan3off(chan3off), _chan4off(chan4off), _sampoff(sampoff), _looped(looped) { }
virtual void start(Player_MOD *mod, int id, const byte *data) {
@@ -236,11 +224,6 @@ private:
class V2A_Sound_Single : public V2A_Sound_Base<1> {
public:
- V2A_Sound_Single (V2A_Sound_Single *other) :
- V2A_Sound_Base<1>(other), _freq(other->_freq), _vol(other->_vol) { }
- virtual V2A_Sound *copy() {
- return new V2A_Sound_Single(this);
- }
V2A_Sound_Single(uint16 offset, uint16 size, uint16 freq, uint8 vol) :
V2A_Sound_Base<1>(offset, size), _freq(freq), _vol(vol) { }
virtual void start(Player_MOD *mod, int id, const byte *data) {
@@ -269,11 +252,6 @@ private:
class V2A_Sound_SingleLooped : public V2A_Sound_Base<1> {
public:
- V2A_Sound_SingleLooped (V2A_Sound_SingleLooped *other) :
- V2A_Sound_Base<1>(other), _loopoffset(other->_loopoffset), _loopsize(other->_loopsize), _freq(other->_freq), _vol(other->_vol) { }
- virtual V2A_Sound *copy() {
- return new V2A_Sound_SingleLooped(this);
- }
V2A_Sound_SingleLooped(uint16 offset, uint16 size, uint16 freq, uint8 vol, uint16 loopoffset, uint16 loopsize) :
V2A_Sound_Base<1>(offset, size), _loopoffset(loopoffset), _loopsize(loopsize), _freq(freq), _vol(vol) { }
V2A_Sound_SingleLooped(uint16 offset, uint16 size, uint16 freq, uint8 vol) :
@@ -299,11 +277,6 @@ private:
class V2A_Sound_MultiLooped : public V2A_Sound_Base<2> {
public:
- V2A_Sound_MultiLooped (V2A_Sound_MultiLooped *other) :
- V2A_Sound_Base<2>(other), _freq1(other->_freq1), _vol1(other->_vol1), _freq2(other->_freq2), _vol2(other->_vol2) { }
- virtual V2A_Sound *copy() {
- return new V2A_Sound_MultiLooped(this);
- }
V2A_Sound_MultiLooped(uint16 offset, uint16 size, uint16 freq1, uint8 vol1, uint16 freq2, uint8 vol2) :
V2A_Sound_Base<2>(offset, size), _freq1(freq1), _vol1(vol1), _freq2(freq2), _vol2(vol2) { }
virtual void start(Player_MOD *mod, int id, const byte *data) {
@@ -331,11 +304,6 @@ private:
class V2A_Sound_MultiLoopedDuration : public V2A_Sound_MultiLooped {
public:
- V2A_Sound_MultiLoopedDuration (V2A_Sound_MultiLoopedDuration *other) :
- V2A_Sound_MultiLooped(other), _duration(other->_duration) { }
- virtual V2A_Sound *copy() {
- return new V2A_Sound_MultiLoopedDuration(this);
- }
V2A_Sound_MultiLoopedDuration(uint16 offset, uint16 size, uint16 freq1, uint8 vol1, uint16 freq2, uint8 vol2, uint16 numframes) :
V2A_Sound_MultiLooped(offset, size, freq1, vol1, freq2, vol2), _duration(numframes) { }
virtual void start(Player_MOD *mod, int id, const byte *data) {
@@ -357,11 +325,6 @@ private:
class V2A_Sound_SingleLoopedPitchbend : public V2A_Sound_Base<1> {
public:
- V2A_Sound_SingleLoopedPitchbend(V2A_Sound_SingleLoopedPitchbend *other) :
- V2A_Sound_Base<1>(other), _freq1(other->_freq1), _freq2(other->_freq2), _vol(other->_vol), _step(other->_step) { }
- virtual V2A_Sound *copy() {
- return new V2A_Sound_SingleLoopedPitchbend(this);
- }
V2A_Sound_SingleLoopedPitchbend(uint16 offset, uint16 size, uint16 freq1, uint16 freq2, uint8 vol, uint8 step) :
V2A_Sound_Base<1>(offset, size), _freq1(freq1), _freq2(freq2), _vol(vol), _step(step) { }
virtual void start(Player_MOD *mod, int id, const byte *data) {
@@ -401,11 +364,6 @@ private:
class V2A_Sound_Special_FastPitchbendDownAndFadeout : public V2A_Sound_Base<1> {
public:
- V2A_Sound_Special_FastPitchbendDownAndFadeout(V2A_Sound_Special_FastPitchbendDownAndFadeout *other) :
- V2A_Sound_Base<1>(other), _freq(other->_freq), _vol(other->_vol) { }
- virtual V2A_Sound *copy() {
- return new V2A_Sound_Special_FastPitchbendDownAndFadeout(this);
- }
V2A_Sound_Special_FastPitchbendDownAndFadeout(uint16 offset, uint16 size, uint16 freq, uint8 vol) :
V2A_Sound_Base<1>(offset, size), _freq(freq), _vol(vol) { }
virtual void start(Player_MOD *mod, int id, const byte *data) {
@@ -437,11 +395,6 @@ private:
class V2A_Sound_Special_LoopedFadeinFadeout : public V2A_Sound_Base<1> {
public:
- V2A_Sound_Special_LoopedFadeinFadeout(V2A_Sound_Special_LoopedFadeinFadeout *other) :
- V2A_Sound_Base<1>(other), _freq(other->_freq), _fade1(other->_fade1), _fade2(other->_fade2) { }
- virtual V2A_Sound *copy() {
- return new V2A_Sound_Special_LoopedFadeinFadeout(this);
- }
V2A_Sound_Special_LoopedFadeinFadeout(uint16 offset, uint16 size, uint16 freq, uint8 fadeinrate, uint8 fadeoutrate) :
V2A_Sound_Base<1>(offset, size), _freq(freq), _fade1(fadeinrate), _fade2(fadeoutrate) { }
virtual void start(Player_MOD *mod, int id, const byte *data) {
@@ -480,11 +433,6 @@ private:
class V2A_Sound_Special_MultiLoopedFadeinFadeout : public V2A_Sound_Base<2> {
public:
- V2A_Sound_Special_MultiLoopedFadeinFadeout(V2A_Sound_Special_MultiLoopedFadeinFadeout *other) :
- V2A_Sound_Base<2>(other), _freq1(other->_freq1), _freq2(other->_freq2), _fade1(other->_fade1), _fade2(other->_fade2) { }
- virtual V2A_Sound *copy() {
- return new V2A_Sound_Special_MultiLoopedFadeinFadeout(this);
- }
V2A_Sound_Special_MultiLoopedFadeinFadeout(uint16 offset, uint16 size, uint16 freq1, uint16 freq2, uint8 fadeinrate, uint8 fadeoutrate) :
V2A_Sound_Base<2>(offset, size), _freq1(freq1), _freq2(freq2), _fade1(fadeinrate), _fade2(fadeoutrate) { }
virtual void start(Player_MOD *mod, int id, const byte *data) {
@@ -528,11 +476,6 @@ private:
class V2A_Sound_Special_PitchbendDownThenFadeout : public V2A_Sound_Base<1> {
public:
- V2A_Sound_Special_PitchbendDownThenFadeout(V2A_Sound_Special_PitchbendDownThenFadeout *other) :
- V2A_Sound_Base<1>(other), _freq1(other->_freq1), _freq2(other->_freq2), _step(other->_step) { }
- virtual V2A_Sound *copy() {
- return new V2A_Sound_Special_PitchbendDownThenFadeout(this);
- }
V2A_Sound_Special_PitchbendDownThenFadeout(uint16 offset, uint16 size, uint16 freq1, uint16 freq2, uint16 step) :
V2A_Sound_Base<1>(offset, size), _freq1(freq1), _freq2(freq2), _step(step) { }
virtual void start(Player_MOD *mod, int id, const byte *data) {
@@ -566,11 +509,6 @@ private:
class V2A_Sound_Special_PitchbendDownAndBackUp : public V2A_Sound_Base<1> {
public:
- V2A_Sound_Special_PitchbendDownAndBackUp(V2A_Sound_Special_PitchbendDownAndBackUp *other) :
- V2A_Sound_Base<1>(other), _freq1(other->_freq1), _freq2(other->_freq2), _step(other->_step), _vol(other->_vol) { }
- virtual V2A_Sound *copy() {
- return new V2A_Sound_Special_PitchbendDownAndBackUp(this);
- }
V2A_Sound_Special_PitchbendDownAndBackUp(uint16 offset, uint16 size, uint16 freq1, uint16 freq2, uint16 step, uint8 vol) :
V2A_Sound_Base<1>(offset, size), _freq1(freq1), _freq2(freq2), _step(step), _vol(vol) { }
virtual void start(Player_MOD *mod, int id, const byte *data) {
@@ -614,11 +552,6 @@ private:
class V2A_Sound_Special_SlowPitchbendDownAndFadeout : public V2A_Sound_Base<1> {
public:
- V2A_Sound_Special_SlowPitchbendDownAndFadeout(V2A_Sound_Special_SlowPitchbendDownAndFadeout *other) :
- V2A_Sound_Base<1>(other), _freq1(other->_freq1), _freq2(other->_freq2) { }
- virtual V2A_Sound *copy() {
- return new V2A_Sound_Special_SlowPitchbendDownAndFadeout(this);
- }
V2A_Sound_Special_SlowPitchbendDownAndFadeout(uint16 offset, uint16 size, uint16 freq1, uint16 freq2) :
V2A_Sound_Base<1>(offset, size), _freq1(freq1), _freq2(freq2) { }
virtual void start(Player_MOD *mod, int id, const byte *data) {
@@ -651,11 +584,6 @@ private:
class V2A_Sound_Special_MultiLoopedDurationMulti : public V2A_Sound_Base<2> {
public:
- V2A_Sound_Special_MultiLoopedDurationMulti(V2A_Sound_Special_MultiLoopedDurationMulti *other) :
- V2A_Sound_Base<2>(other), _freq1(other->_freq1), _vol1(other->_vol1), _freq2(other->_freq2), _vol2(other->_vol2), _duration(other->_duration), _playwidth(other->_playwidth), _loopwidth(other->_loopwidth) { }
- virtual V2A_Sound *copy() {
- return new V2A_Sound_Special_MultiLoopedDurationMulti(this);
- }
V2A_Sound_Special_MultiLoopedDurationMulti(uint16 offset, uint16 size, uint16 freq1, uint8 vol1, uint16 freq2, uint8 vol2, uint16 numframes, uint8 playwidth, uint8 loopwidth) :
V2A_Sound_Base<2>(offset, size), _freq1(freq1), _vol1(vol1), _freq2(freq2), _vol2(vol2), _duration(numframes), _playwidth(playwidth), _loopwidth(loopwidth) { }
virtual void start(Player_MOD *mod, int id, const byte *data) {
@@ -709,11 +637,6 @@ private:
class V2A_Sound_Special_SingleDurationMulti : public V2A_Sound_Base<1> {
public:
- V2A_Sound_Special_SingleDurationMulti(V2A_Sound_Special_SingleDurationMulti *other) :
- V2A_Sound_Base<1>(other), _freq(other->_freq), _vol(other->_vol), _loopwidth(other->_loopwidth), _numloops(other->_numloops) { }
- virtual V2A_Sound *copy() {
- return new V2A_Sound_Special_SingleDurationMulti(this);
- }
V2A_Sound_Special_SingleDurationMulti(uint16 offset, uint16 size, uint16 freq, uint8 vol, uint8 loopwidth, uint8 numloops) :
V2A_Sound_Base<1>(offset, size), _freq(freq), _vol(vol), _loopwidth(loopwidth), _numloops(numloops) { }
virtual void start(Player_MOD *mod, int id, const byte *data) {
@@ -756,11 +679,6 @@ private:
class V2A_Sound_Special_SingleDurationMultiDurations : public V2A_Sound_Base<1> {
public:
- V2A_Sound_Special_SingleDurationMultiDurations(V2A_Sound_Special_SingleDurationMultiDurations *other) :
- V2A_Sound_Base<1>(other), _freq(other->_freq), _vol(other->_vol), _numdurs(other->_numdurs), _durations(other->_durations), _looped(other->_looped) { }
- virtual V2A_Sound *copy() {
- return new V2A_Sound_Special_SingleDurationMultiDurations(this);
- }
V2A_Sound_Special_SingleDurationMultiDurations(uint16 offset, uint16 size, uint16 freq, uint8 vol, uint8 numdurs, const uint8 *durations, bool looped) :
V2A_Sound_Base<1>(offset, size), _freq(freq), _vol(vol), _numdurs(numdurs), _durations(durations), _looped(looped) { }
virtual void start(Player_MOD *mod, int id, const byte *data) {
@@ -807,11 +725,6 @@ private:
class V2A_Sound_Special_TwinSirenMulti : public V2A_Sound_Base<2> {
public:
- V2A_Sound_Special_TwinSirenMulti(V2A_Sound_Special_TwinSirenMulti *other) :
- _offset1(other->_offset1), _size1(other->_size1), _offset2(other->_offset2), _size2(other->_size2), _freq1(other->_freq1), _freq2(other->_freq2), _vol(other->_vol) { }
- virtual V2A_Sound *copy() {
- return new V2A_Sound_Special_TwinSirenMulti(this);
- }
V2A_Sound_Special_TwinSirenMulti(uint16 offset1, uint16 size1, uint16 offset2, uint16 size2, uint16 freq1, uint16 freq2, uint8 vol) :
_offset1(offset1), _size1(size1), _offset2(offset2), _size2(size2), _freq1(freq1), _freq2(freq2), _vol(vol) { }
virtual void start(Player_MOD *mod, int id, const byte *data) {
@@ -875,11 +788,6 @@ private:
class V2A_Sound_Special_QuadSiren : public V2A_Sound_Base<4> {
public:
- V2A_Sound_Special_QuadSiren(V2A_Sound_Special_QuadSiren *other) :
- _offset1(other->_offset1), _size1(other->_size1), _offset2(other->_offset2), _size2(other->_size2), _vol(other->_vol) { }
- virtual V2A_Sound *copy() {
- return new V2A_Sound_Special_QuadSiren(this);
- }
V2A_Sound_Special_QuadSiren(uint16 offset1, uint16 size1, uint16 offset2, uint16 size2, uint8 vol) :
_offset1(offset1), _size1(size1), _offset2(offset2), _size2(size2), _vol(vol) { }
virtual void start(Player_MOD *mod, int id, const byte *data) {
@@ -951,11 +859,6 @@ private:
class V2A_Sound_Special_QuadFreqLooped : public V2A_Sound_Base<4> {
public:
- V2A_Sound_Special_QuadFreqLooped(V2A_Sound_Special_QuadFreqLooped *other) :
- V2A_Sound_Base<4>(other), _freq1(other->_freq1), _freq2(other->_freq2), _freq3(other->_freq3), _freq4(other->_freq4), _vol(other->_vol) { }
- virtual V2A_Sound *copy() {
- return new V2A_Sound_Special_QuadFreqLooped(this);
- }
V2A_Sound_Special_QuadFreqLooped(uint16 offset, uint16 size, uint16 freq1, uint16 freq2, uint16 freq3, uint16 freq4, uint8 vol) :
V2A_Sound_Base<4>(offset, size), _freq1(freq1), _freq2(freq2), _freq3(freq3), _freq4(freq4), _vol(vol) { }
virtual void start(Player_MOD *mod, int id, const byte *data) {
@@ -989,11 +892,6 @@ protected:
class V2A_Sound_Special_QuadFreqFadeout : public V2A_Sound_Special_QuadFreqLooped {
public:
- V2A_Sound_Special_QuadFreqFadeout(V2A_Sound_Special_QuadFreqFadeout *other) :
- V2A_Sound_Special_QuadFreqLooped(other), _dur(other->_dur) { }
- virtual V2A_Sound *copy() {
- return new V2A_Sound_Special_QuadFreqFadeout(this);
- }
V2A_Sound_Special_QuadFreqFadeout(uint16 offset, uint16 size, uint16 freq1, uint16 freq2, uint16 freq3, uint16 freq4, uint8 vol, uint16 dur) :
V2A_Sound_Special_QuadFreqLooped(offset, size, freq1, freq2, freq3, freq4, vol), _dur(dur) { }
virtual void start(Player_MOD *mod, int id, const byte *data) {
@@ -1020,11 +918,6 @@ private:
class V2A_Sound_Special_SingleFadeout : public V2A_Sound_Base<1> {
public:
- V2A_Sound_Special_SingleFadeout(V2A_Sound_Special_SingleFadeout *other) :
- V2A_Sound_Base<1>(other), _freq(other->_freq), _vol(other->_vol) { }
- virtual V2A_Sound *copy() {
- return new V2A_Sound_Special_SingleFadeout(this);
- }
V2A_Sound_Special_SingleFadeout(uint16 offset, uint16 size, uint16 freq, uint8 vol) :
V2A_Sound_Base<1>(offset, size), _freq(freq), _vol(vol) { }
virtual void start(Player_MOD *mod, int id, const byte *data) {
@@ -1051,11 +944,6 @@ private:
class V2A_Sound_Special_SlowPitchbendThenSlowFadeout : public V2A_Sound_Base<1> {
public:
- V2A_Sound_Special_SlowPitchbendThenSlowFadeout(V2A_Sound_Special_SlowPitchbendThenSlowFadeout *other) :
- V2A_Sound_Base<1>(other), _freq1(other->_freq1), _freq2(other->_freq2) { }
- virtual V2A_Sound *copy() {
- return new V2A_Sound_Special_SlowPitchbendThenSlowFadeout(this);
- }
V2A_Sound_Special_SlowPitchbendThenSlowFadeout(uint16 offset, uint16 size, uint16 freq1, uint16 freq2) :
V2A_Sound_Base<1>(offset, size), _freq1(freq1), _freq2(freq2) { }
virtual void start(Player_MOD *mod, int id, const byte *data) {
@@ -1098,126 +986,116 @@ private:
int _ticks;
};
-struct soundObj {
- ~soundObj() { delete sound; }
- uint32 crc;
- V2A_Sound *sound;
-};
-static soundObj sndobjs[] = {
- {0x8FAB08C4,new V2A_Sound_SingleLooped(0x006C,0x2B58,0x016E,0x3F)}, // Maniac 17
- {0xB673160A,new V2A_Sound_SingleLooped(0x006C,0x1E78,0x01C2,0x1E)}, // Maniac 38
- {0x4DB1D0B2,new V2A_Sound_MultiLooped(0x0072,0x1BC8,0x023D,0x3F,0x0224,0x3F)}, // Maniac 20
- {0x754D75EF,new V2A_Sound_Single(0x0076,0x0738,0x01FC,0x3F)}, // Maniac 10
- {0x6E3454AF,new V2A_Sound_Single(0x0076,0x050A,0x017C,0x3F)}, // Maniac 12
- {0x92F0BBB6,new V2A_Sound_Single(0x0076,0x3288,0x012E,0x3F)}, // Maniac 41
- {0xE1B13982,new V2A_Sound_MultiLoopedDuration(0x0078,0x0040,0x007C,0x3F,0x007B,0x3F,0x001E)}, // Maniac 21
- {0x288B16CF,new V2A_Sound_MultiLoopedDuration(0x007A,0x0040,0x007C,0x3F,0x007B,0x3F,0x000A)}, // Maniac 11
- {0xA7565268,new V2A_Sound_MultiLoopedDuration(0x007A,0x0040,0x00F8,0x3F,0x00F7,0x3F,0x000A)}, // Maniac 19
- {0x7D419BFC,new V2A_Sound_MultiLoopedDuration(0x007E,0x0040,0x012C,0x3F,0x0149,0x3F,0x001E)}, // Maniac 22
- {0x1B52280C,new V2A_Sound_Single(0x0098,0x0A58,0x007F,0x32)}, // Maniac 6
- {0x38D4A810,new V2A_Sound_Single(0x0098,0x2F3C,0x0258,0x32)}, // Maniac 7
- {0x09F98FC2,new V2A_Sound_Single(0x0098,0x0A56,0x012C,0x32)}, // Maniac 16
- {0x90440A65,new V2A_Sound_Single(0x0098,0x0208,0x0078,0x28)}, // Maniac 28
- {0x985C76EF,new V2A_Sound_Single(0x0098,0x0D6E,0x00C8,0x32)}, // Maniac 30
- {0x76156137,new V2A_Sound_Single(0x0098,0x2610,0x017C,0x39)}, // Maniac 39
- {0x5D95F88C,new V2A_Sound_Single(0x0098,0x0A58,0x007F,0x1E)}, // Maniac 65
- {0x92D704EA,new V2A_Sound_SingleLooped(0x009C,0x29BC,0x012C,0x3F,0x1BD4,0x0DE8)}, // Maniac 15
- {0x92F5513C,new V2A_Sound_Single(0x009E,0x0DD4,0x01F4,0x3F)}, // Maniac 13
- {0xCC2F3B5A,new V2A_Sound_Single(0x009E,0x00DE,0x01AC,0x3F)}, // Maniac 43
- {0x153207D3,new V2A_Sound_Single(0x009E,0x0E06,0x02A8,0x3F)}, // Maniac 67
- {0xC4F370CE,new V2A_Sound_Single(0x00AE,0x0330,0x01AC,0x3F)}, // Maniac 8
- {0x928C4BAC,new V2A_Sound_Single(0x00AE,0x08D6,0x01AC,0x3F)}, // Maniac 9
- {0x62D5B11F,new V2A_Sound_Single(0x00AE,0x165C,0x01CB,0x3F)}, // Maniac 27
- {0x3AB22CB5,new V2A_Sound_Single(0x00AE,0x294E,0x012A,0x3F)}, // Maniac 62
- {0x2D70BBE9,new V2A_Sound_SingleLoopedPitchbend(0x00B4,0x1702,0x03E8,0x0190,0x3F,5)}, // Maniac 64
- {0xFA4C1B1C,new V2A_Sound_Special_FastPitchbendDownAndFadeout(0x00B2,0x1702,0x0190,0x3F)}, // Maniac 69
- {0x19D50D67,new V2A_Sound_Special_LoopedFadeinFadeout(0x00B6,0x0020,0x00C8,16,2)}, // Maniac 14
- {0x3E6FBE15,new V2A_Sound_Special_PitchbendDownThenFadeout(0x00B2,0x0010,0x007C,0x016D,1)}, // Maniac 25
- {0x5305753C,new V2A_Sound_Special_PitchbendDownThenFadeout(0x00B2,0x0010,0x007C,0x016D,7)}, // Maniac 36
- {0x28895106,new V2A_Sound_Special_PitchbendDownAndBackUp(0x00C0,0x00FE,0x00E9,0x0111,4,0x0A)}, // Maniac 59
- {0xB641ACF6,new V2A_Sound_Special_SlowPitchbendDownAndFadeout(0x00C8,0x0100,0x00C8,0x01C2)}, // Maniac 61
- {0xE1A91583,new V2A_Sound_Special_MultiLoopedDurationMulti(0x00D0,0x0040,0x007C,0x3F,0x007B,0x3F,0x3C,5,6)}, // Maniac 23
- {0x64816ED5,new V2A_Sound_Special_MultiLoopedDurationMulti(0x00D0,0x0040,0x00BE,0x37,0x00BD,0x37,0x3C,5,6)}, // Maniac 24
- {0x639D72C2,new V2A_Sound_Special_SingleDurationMulti(0x00D0,0x10A4,0x0080,0x3F,0x28,3)}, // Maniac 46
- {0xE8826D92,new V2A_Sound_Special_SingleDurationMultiDurations(0x00EC,0x025A,0x023C,0x3F,8,(const uint8 *)"\x20\x41\x04\x21\x08\x10\x13\x07", true)}, // Maniac 45
- {0xEDFF3D41,new V2A_Sound_Single(0x00F8,0x2ADE,0x01F8,0x3F)}, // Maniac 42 (this should echo, but it's barely noticeable and I don't feel like doing it)
- {0x15606D06,new V2A_Sound_Special_QuadSiren(0x0148,0x0020,0x0168,0x0020,0x3F)}, // Maniac 32
- {0x753EAFE3,new V2A_Sound_Special_TwinSirenMulti(0x017C,0x0010,0x018C,0x0020,0x00C8,0x0080,0x3F)}, // Maniac 44
- {0xB1AB065C,new V2A_Sound_Music(0x0032,0x00B2,0x08B2,0x1222,0x1A52,0x23C2,0x3074,false)}, // Maniac 50
- {0x091F5D9C,new V2A_Sound_Music(0x0032,0x0132,0x0932,0x1802,0x23D2,0x3EA2,0x4F04,false)}, // Maniac 58
-
- {0x8E2C8AB3,new V2A_Sound_SingleLooped(0x005C,0x0F26,0x0168,0x3C)}, // Zak 41
- {0x3792071F,new V2A_Sound_SingleLooped(0x0060,0x1A18,0x06A4,0x3F)}, // Zak 88
- {0xF192EDE9,new V2A_Sound_SingleLooped(0x0062,0x0054,0x01FC,0x1E)}, // Zak 68
- {0xC43B0245,new V2A_Sound_Special_QuadFreqLooped(0x006C,0x166E,0x00C8,0x0190,0x0320,0x0640,0x32)}, // Zak 70
- {0xCEB51670,new V2A_Sound_SingleLooped(0x00AC,0x26DC,0x012C,0x3F)}, // Zak 42
- {0x10347B51,new V2A_Sound_SingleLooped(0x006C,0x00E0,0x0594,0x3F)}, // Zak 18
- {0x9D2FADC0,new V2A_Sound_MultiLooped(0x0072,0x1FC8,0x016A,0x3F,0x01CE,0x3F)}, // Zak 80
- {0xFAD2C676,new V2A_Sound_MultiLooped(0x0076,0x0010,0x0080,0x3F,0x0090,0x3B)}, // Zak 40
- {0x01508B48,new V2A_Sound_Single(0x0076,0x0D8C,0x017C,0x3F)}, // Zak 90
- {0x9C18DC46,new V2A_Sound_Single(0x0076,0x0D8C,0x015E,0x3F)}, // Zak 91
- {0xF98F7EAC,new V2A_Sound_Single(0x0076,0x0D8C,0x0140,0x3F)}, // Zak 92
- {0xC925FBEF,new V2A_Sound_MultiLoopedDuration(0x0080,0x0010,0x0080,0x3F,0x0090,0x3B,0x0168)}, // Zak 53
- {0xCAB35257,new V2A_Sound_Special_QuadFreqFadeout(0x00DA,0x425C,0x023C,0x08F0,0x0640,0x0478,0x3F,0x012C)}, // Zak 101
- {0xA31FE4FD,new V2A_Sound_Single(0x0094,0x036A,0x00E1,0x3F)}, // Zak 97
- {0x0A1AE0F5,new V2A_Sound_Single(0x009E,0x0876,0x0168,0x3F)}, // Zak 5
- {0xD01A66CB,new V2A_Sound_Single(0x009E,0x04A8,0x0168,0x3F)}, // Zak 47
- {0x5497B912,new V2A_Sound_Single(0x009E,0x0198,0x01F4,0x3F)}, // Zak 39
- {0x2B50362F,new V2A_Sound_Single(0x009E,0x09B6,0x023D,0x3F)}, // Zak 67
- {0x7BFB6E72,new V2A_Sound_Single(0x009E,0x0D14,0x0078,0x3F)}, // Zak 69
- {0xB803A792,new V2A_Sound_Single(0x009E,0x2302,0x02BC,0x3F)}, // Zak 78
- {0x7AB82E39,new V2A_Sound_SingleLooped(0x00A0,0x2A3C,0x016E,0x3F,0x1018,0x1A24)}, // Zak 100
- {0x28057CEC,new V2A_Sound_Single(0x0098,0x0FEC,0x0140,0x32)}, // Zak 63
- {0x1180A2FC,new V2A_Sound_Single(0x0098,0x0F06,0x0190,0x32)}, // Zak 64
- {0x12616755,new V2A_Sound_Single(0x0098,0x14C8,0x023C,0x14)}, // Zak 9
- {0x642723AA,new V2A_Sound_Special_SingleFadeout(0x00A2,0x1702,0x01F4,0x3F)}, // Zak 37
- {0xDEE56848,new V2A_Sound_Single(0x009A,0x0F86,0x0100,0x3F)}, // Zak 93
- {0xF9BE27B8,new V2A_Sound_Special_SingleFadeout(0x011C,0x1704,0x0228,0x3F)}, // Zak 113
- {0xC73487B2,new V2A_Sound_Single(0x00B0,0x18BA,0x0478,0x3F)}, // Zak 81
- {0x32D8F925,new V2A_Sound_Single(0x00B0,0x2E46,0x00F0,0x3F)}, // Zak 94
- {0x988C83A5,new V2A_Sound_Single(0x00B0,0x0DE0,0x025B,0x3F)}, // Zak 106
- {0x8F1E3B3D,new V2A_Sound_Single(0x00B0,0x05FE,0x04E2,0x3F)}, // Zak 107
- {0x0A2A7646,new V2A_Sound_Single(0x00B0,0x36FE,0x016E,0x3F)}, // Zak 43
- {0x6F1FC435,new V2A_Sound_Single(0x00B0,0x2808,0x044C,0x3F)}, // Zak 108
- {0x870EFC29,new V2A_Sound_Unsupported()}, // Zak 55
- {0xED773699,new V2A_Sound_Special_LoopedFadeinFadeout(0x00B4,0x0020,0x012C,8,4)}, // Zak 3
- {0x0BF59774,new V2A_Sound_Special_MultiLoopedFadeinFadeout(0x00BE,0x0020,0x00F8,0x00F7,8,1)}, // Zak 72
- {0x656FFEDE,new V2A_Sound_Special_MultiLoopedFadeinFadeout(0x00BE,0x0020,0x00C4,0x00C3,8,1)}, // Zak 73
- {0xFC4D41E5,new V2A_Sound_Special_MultiLoopedFadeinFadeout(0x00BE,0x0020,0x00A5,0x00A4,8,1)}, // Zak 74
- {0xC0DD2089,new V2A_Sound_Special_MultiLoopedFadeinFadeout(0x00BE,0x0020,0x009C,0x009B,8,1)}, // Zak 75
- {0x627DFD92,new V2A_Sound_Special_MultiLoopedFadeinFadeout(0x00BE,0x0020,0x008B,0x008A,8,1)}, // Zak 76
- {0x703E05C1,new V2A_Sound_Special_MultiLoopedFadeinFadeout(0x00BE,0x0020,0x007C,0x007B,8,1)}, // Zak 77
- {0xB0F77006,new V2A_Sound_Unsupported()}, // Zak 52
- {0x5AE9D6A7,new V2A_Sound_Special_SlowPitchbendThenSlowFadeout(0x00CA,0x22A4,0x0113,0x0227)}, // Zak 109
- {0xABE0D3B0,new V2A_Sound_Special_SlowPitchbendThenSlowFadeout(0x00CE,0x22A4,0x0227,0x0113)}, // Zak 105
- {0x788CC749,new V2A_Sound_Unsupported()}, // Zak 71
- {0x2E2AB1FA,new V2A_Sound_Unsupported()}, // Zak 99
- {0x1304CF20,new V2A_Sound_Special_SingleDurationMultiDurations(0x00DC,0x0624,0x023C,0x3C,2,(const uint8 *)"\x14\x11",false)}, // Zak 79
- {0xAE68ED91,new V2A_Sound_Unsupported()}, // Zak 54
- {0xA4F40F97,new V2A_Sound_Unsupported()}, // Zak 61
- {0x348F85CE,new V2A_Sound_Unsupported()}, // Zak 62
- {0xD473AB86,new V2A_Sound_Special_SingleDurationMultiDurations(0x0122,0x03E8,0x00BE,0x3F,7,(const uint8 *)"\x0F\x0B\x04\x0F\x1E\x0F\x66",false)}, // Zak 46
- {0x84A0BA90,new V2A_Sound_Unsupported()}, // Zak 110
- {0x92680D9F,new V2A_Sound_Unsupported()}, // Zak 32
- {0xABFFDB02,new V2A_Sound_Unsupported()}, // Zak 86
- {0x41045447,new V2A_Sound_Unsupported()}, // Zak 98
- {0xC8EEBD34,new V2A_Sound_Unsupported()}, // Zak 82
- {0x42F9469F,new V2A_Sound_Music(0x05F6,0x0636,0x0456,0x0516,0x05D6,0x05E6,0x0A36,true)}, // Zak 96
- {0x038BBD78,new V2A_Sound_Music(0x054E,0x05CE,0x044E,0x04BE,0x052E,0x053E,0x0BCE,true)}, // Zak 85
- {0x06FFADC5,new V2A_Sound_Music(0x0626,0x0686,0x0446,0x04F6,0x0606,0x0616,0x0C86,true)}, // Zak 87
- {0xCE20ECF0,new V2A_Sound_Music(0x0636,0x0696,0x0446,0x0576,0x0616,0x0626,0x0E96,true)}, // Zak 114
- {0xBDA01BB6,new V2A_Sound_Music(0x0678,0x06B8,0x0458,0x0648,0x0658,0x0668,0x0EB8,false)}, // Zak 33
- {0x59976529,new V2A_Sound_Music(0x088E,0x092E,0x048E,0x05EE,0x074E,0x07EE,0x112E,true)}, // Zak 49
- {0xED1EED02,new V2A_Sound_Music(0x08D0,0x0950,0x0440,0x07E0,0x08B0,0x08C0,0x1350,false)}, // Zak 112
- {0x5A16C037,new V2A_Sound_Music(0x634A,0x64CA,0x049A,0x18FA,0x398A,0x511A,0x6CCA,false)}, // Zak 95
- {0x00000000,NULL}
-};
+#define CRCToSound(CRC, SOUND) \
+ if (crc == CRC) return new SOUND
static V2A_Sound *findSound (unsigned long crc) {
- for (int i = 0; sndobjs[i].crc != 0; i++) {
- if (sndobjs[i].crc == crc)
- return sndobjs[i].sound;
- }
+ CRCToSound(0x8FAB08C4, V2A_Sound_SingleLooped(0x006C,0x2B58,0x016E,0x3F)); // Maniac 17
+ CRCToSound(0xB673160A, V2A_Sound_SingleLooped(0x006C,0x1E78,0x01C2,0x1E)); // Maniac 38
+ CRCToSound(0x4DB1D0B2, V2A_Sound_MultiLooped(0x0072,0x1BC8,0x023D,0x3F,0x0224,0x3F)); // Maniac 20
+ CRCToSound(0x754D75EF, V2A_Sound_Single(0x0076,0x0738,0x01FC,0x3F)); // Maniac 10
+ CRCToSound(0x6E3454AF, V2A_Sound_Single(0x0076,0x050A,0x017C,0x3F)); // Maniac 12
+ CRCToSound(0x92F0BBB6, V2A_Sound_Single(0x0076,0x3288,0x012E,0x3F)); // Maniac 41
+ CRCToSound(0xE1B13982, V2A_Sound_MultiLoopedDuration(0x0078,0x0040,0x007C,0x3F,0x007B,0x3F,0x001E)); // Maniac 21
+ CRCToSound(0x288B16CF, V2A_Sound_MultiLoopedDuration(0x007A,0x0040,0x007C,0x3F,0x007B,0x3F,0x000A)); // Maniac 11
+ CRCToSound(0xA7565268, V2A_Sound_MultiLoopedDuration(0x007A,0x0040,0x00F8,0x3F,0x00F7,0x3F,0x000A)); // Maniac 19
+ CRCToSound(0x7D419BFC, V2A_Sound_MultiLoopedDuration(0x007E,0x0040,0x012C,0x3F,0x0149,0x3F,0x001E)); // Maniac 22
+ CRCToSound(0x1B52280C, V2A_Sound_Single(0x0098,0x0A58,0x007F,0x32)); // Maniac 6
+ CRCToSound(0x38D4A810, V2A_Sound_Single(0x0098,0x2F3C,0x0258,0x32)); // Maniac 7
+ CRCToSound(0x09F98FC2, V2A_Sound_Single(0x0098,0x0A56,0x012C,0x32)); // Maniac 16
+ CRCToSound(0x90440A65, V2A_Sound_Single(0x0098,0x0208,0x0078,0x28)); // Maniac 28
+ CRCToSound(0x985C76EF, V2A_Sound_Single(0x0098,0x0D6E,0x00C8,0x32)); // Maniac 30
+ CRCToSound(0x76156137, V2A_Sound_Single(0x0098,0x2610,0x017C,0x39)); // Maniac 39
+ CRCToSound(0x5D95F88C, V2A_Sound_Single(0x0098,0x0A58,0x007F,0x1E)); // Maniac 65
+ CRCToSound(0x92D704EA, V2A_Sound_SingleLooped(0x009C,0x29BC,0x012C,0x3F,0x1BD4,0x0DE8)); // Maniac 15
+ CRCToSound(0x92F5513C, V2A_Sound_Single(0x009E,0x0DD4,0x01F4,0x3F)); // Maniac 13
+ CRCToSound(0xCC2F3B5A, V2A_Sound_Single(0x009E,0x00DE,0x01AC,0x3F)); // Maniac 43
+ CRCToSound(0x153207D3, V2A_Sound_Single(0x009E,0x0E06,0x02A8,0x3F)); // Maniac 67
+ CRCToSound(0xC4F370CE, V2A_Sound_Single(0x00AE,0x0330,0x01AC,0x3F)); // Maniac 8
+ CRCToSound(0x928C4BAC, V2A_Sound_Single(0x00AE,0x08D6,0x01AC,0x3F)); // Maniac 9
+ CRCToSound(0x62D5B11F, V2A_Sound_Single(0x00AE,0x165C,0x01CB,0x3F)); // Maniac 27
+ CRCToSound(0x3AB22CB5, V2A_Sound_Single(0x00AE,0x294E,0x012A,0x3F)); // Maniac 62
+ CRCToSound(0x2D70BBE9, V2A_Sound_SingleLoopedPitchbend(0x00B4,0x1702,0x03E8,0x0190,0x3F,5)); // Maniac 64
+ CRCToSound(0xFA4C1B1C, V2A_Sound_Special_FastPitchbendDownAndFadeout(0x00B2,0x1702,0x0190,0x3F)); // Maniac 69
+ CRCToSound(0x19D50D67, V2A_Sound_Special_LoopedFadeinFadeout(0x00B6,0x0020,0x00C8,16,2)); // Maniac 14
+ CRCToSound(0x3E6FBE15, V2A_Sound_Special_PitchbendDownThenFadeout(0x00B2,0x0010,0x007C,0x016D,1)); // Maniac 25
+ CRCToSound(0x5305753C, V2A_Sound_Special_PitchbendDownThenFadeout(0x00B2,0x0010,0x007C,0x016D,7)); // Maniac 36
+ CRCToSound(0x28895106, V2A_Sound_Special_PitchbendDownAndBackUp(0x00C0,0x00FE,0x00E9,0x0111,4,0x0A)); // Maniac 59
+ CRCToSound(0xB641ACF6, V2A_Sound_Special_SlowPitchbendDownAndFadeout(0x00C8,0x0100,0x00C8,0x01C2)); // Maniac 61
+ CRCToSound(0xE1A91583, V2A_Sound_Special_MultiLoopedDurationMulti(0x00D0,0x0040,0x007C,0x3F,0x007B,0x3F,0x3C,5,6)); // Maniac 23
+ CRCToSound(0x64816ED5, V2A_Sound_Special_MultiLoopedDurationMulti(0x00D0,0x0040,0x00BE,0x37,0x00BD,0x37,0x3C,5,6)); // Maniac 24
+ CRCToSound(0x639D72C2, V2A_Sound_Special_SingleDurationMulti(0x00D0,0x10A4,0x0080,0x3F,0x28,3)); // Maniac 46
+ CRCToSound(0xE8826D92, V2A_Sound_Special_SingleDurationMultiDurations(0x00EC,0x025A,0x023C,0x3F,8,(const uint8 *)"\x20\x41\x04\x21\x08\x10\x13\x07", true)); // Maniac 45
+ CRCToSound(0xEDFF3D41, V2A_Sound_Single(0x00F8,0x2ADE,0x01F8,0x3F)); // Maniac 42 (this should echo, but it's barely noticeable and I don't feel like doing it)
+ CRCToSound(0x15606D06, V2A_Sound_Special_QuadSiren(0x0148,0x0020,0x0168,0x0020,0x3F)); // Maniac 32
+ CRCToSound(0x753EAFE3, V2A_Sound_Special_TwinSirenMulti(0x017C,0x0010,0x018C,0x0020,0x00C8,0x0080,0x3F)); // Maniac 44
+ CRCToSound(0xB1AB065C, V2A_Sound_Music(0x0032,0x00B2,0x08B2,0x1222,0x1A52,0x23C2,0x3074,false)); // Maniac 50
+ CRCToSound(0x091F5D9C, V2A_Sound_Music(0x0032,0x0132,0x0932,0x1802,0x23D2,0x3EA2,0x4F04,false)); // Maniac 58
+
+ CRCToSound(0x8E2C8AB3, V2A_Sound_SingleLooped(0x005C,0x0F26,0x0168,0x3C)); // Zak 41
+ CRCToSound(0x3792071F, V2A_Sound_SingleLooped(0x0060,0x1A18,0x06A4,0x3F)); // Zak 88
+ CRCToSound(0xF192EDE9, V2A_Sound_SingleLooped(0x0062,0x0054,0x01FC,0x1E)); // Zak 68
+ CRCToSound(0xC43B0245, V2A_Sound_Special_QuadFreqLooped(0x006C,0x166E,0x00C8,0x0190,0x0320,0x0640,0x32)); // Zak 70
+ CRCToSound(0xCEB51670, V2A_Sound_SingleLooped(0x00AC,0x26DC,0x012C,0x3F)); // Zak 42
+ CRCToSound(0x10347B51, V2A_Sound_SingleLooped(0x006C,0x00E0,0x0594,0x3F)); // Zak 18
+ CRCToSound(0x9D2FADC0, V2A_Sound_MultiLooped(0x0072,0x1FC8,0x016A,0x3F,0x01CE,0x3F)); // Zak 80
+ CRCToSound(0xFAD2C676, V2A_Sound_MultiLooped(0x0076,0x0010,0x0080,0x3F,0x0090,0x3B)); // Zak 40
+ CRCToSound(0x01508B48, V2A_Sound_Single(0x0076,0x0D8C,0x017C,0x3F)); // Zak 90
+ CRCToSound(0x9C18DC46, V2A_Sound_Single(0x0076,0x0D8C,0x015E,0x3F)); // Zak 91
+ CRCToSound(0xF98F7EAC, V2A_Sound_Single(0x0076,0x0D8C,0x0140,0x3F)); // Zak 92
+ CRCToSound(0xC925FBEF, V2A_Sound_MultiLoopedDuration(0x0080,0x0010,0x0080,0x3F,0x0090,0x3B,0x0168)); // Zak 53
+ CRCToSound(0xCAB35257, V2A_Sound_Special_QuadFreqFadeout(0x00DA,0x425C,0x023C,0x08F0,0x0640,0x0478,0x3F,0x012C)); // Zak 101
+ CRCToSound(0xA31FE4FD, V2A_Sound_Single(0x0094,0x036A,0x00E1,0x3F)); // Zak 97
+ CRCToSound(0x0A1AE0F5, V2A_Sound_Single(0x009E,0x0876,0x0168,0x3F)); // Zak 5
+ CRCToSound(0xD01A66CB, V2A_Sound_Single(0x009E,0x04A8,0x0168,0x3F)); // Zak 47
+ CRCToSound(0x5497B912, V2A_Sound_Single(0x009E,0x0198,0x01F4,0x3F)); // Zak 39
+ CRCToSound(0x2B50362F, V2A_Sound_Single(0x009E,0x09B6,0x023D,0x3F)); // Zak 67
+ CRCToSound(0x7BFB6E72, V2A_Sound_Single(0x009E,0x0D14,0x0078,0x3F)); // Zak 69
+ CRCToSound(0xB803A792, V2A_Sound_Single(0x009E,0x2302,0x02BC,0x3F)); // Zak 78
+ CRCToSound(0x7AB82E39, V2A_Sound_SingleLooped(0x00A0,0x2A3C,0x016E,0x3F,0x1018,0x1A24)); // Zak 100
+ CRCToSound(0x28057CEC, V2A_Sound_Single(0x0098,0x0FEC,0x0140,0x32)); // Zak 63
+ CRCToSound(0x1180A2FC, V2A_Sound_Single(0x0098,0x0F06,0x0190,0x32)); // Zak 64
+ CRCToSound(0x12616755, V2A_Sound_Single(0x0098,0x14C8,0x023C,0x14)); // Zak 9
+ CRCToSound(0x642723AA, V2A_Sound_Special_SingleFadeout(0x00A2,0x1702,0x01F4,0x3F)); // Zak 37
+ CRCToSound(0xDEE56848, V2A_Sound_Single(0x009A,0x0F86,0x0100,0x3F)); // Zak 93
+ CRCToSound(0xF9BE27B8, V2A_Sound_Special_SingleFadeout(0x011C,0x1704,0x0228,0x3F)); // Zak 113
+ CRCToSound(0xC73487B2, V2A_Sound_Single(0x00B0,0x18BA,0x0478,0x3F)); // Zak 81
+ CRCToSound(0x32D8F925, V2A_Sound_Single(0x00B0,0x2E46,0x00F0,0x3F)); // Zak 94
+ CRCToSound(0x988C83A5, V2A_Sound_Single(0x00B0,0x0DE0,0x025B,0x3F)); // Zak 106
+ CRCToSound(0x8F1E3B3D, V2A_Sound_Single(0x00B0,0x05FE,0x04E2,0x3F)); // Zak 107
+ CRCToSound(0x0A2A7646, V2A_Sound_Single(0x00B0,0x36FE,0x016E,0x3F)); // Zak 43
+ CRCToSound(0x6F1FC435, V2A_Sound_Single(0x00B0,0x2808,0x044C,0x3F)); // Zak 108
+ CRCToSound(0x870EFC29, V2A_Sound_Unsupported()); // Zak 55
+ CRCToSound(0xED773699, V2A_Sound_Special_LoopedFadeinFadeout(0x00B4,0x0020,0x012C,8,4)); // Zak 3
+ CRCToSound(0x0BF59774, V2A_Sound_Special_MultiLoopedFadeinFadeout(0x00BE,0x0020,0x00F8,0x00F7,8,1)); // Zak 72
+ CRCToSound(0x656FFEDE, V2A_Sound_Special_MultiLoopedFadeinFadeout(0x00BE,0x0020,0x00C4,0x00C3,8,1)); // Zak 73
+ CRCToSound(0xFC4D41E5, V2A_Sound_Special_MultiLoopedFadeinFadeout(0x00BE,0x0020,0x00A5,0x00A4,8,1)); // Zak 74
+ CRCToSound(0xC0DD2089, V2A_Sound_Special_MultiLoopedFadeinFadeout(0x00BE,0x0020,0x009C,0x009B,8,1)); // Zak 75
+ CRCToSound(0x627DFD92, V2A_Sound_Special_MultiLoopedFadeinFadeout(0x00BE,0x0020,0x008B,0x008A,8,1)); // Zak 76
+ CRCToSound(0x703E05C1, V2A_Sound_Special_MultiLoopedFadeinFadeout(0x00BE,0x0020,0x007C,0x007B,8,1)); // Zak 77
+ CRCToSound(0xB0F77006, V2A_Sound_Unsupported()); // Zak 52
+ CRCToSound(0x5AE9D6A7, V2A_Sound_Special_SlowPitchbendThenSlowFadeout(0x00CA,0x22A4,0x0113,0x0227)); // Zak 109
+ CRCToSound(0xABE0D3B0, V2A_Sound_Special_SlowPitchbendThenSlowFadeout(0x00CE,0x22A4,0x0227,0x0113)); // Zak 105
+ CRCToSound(0x788CC749, V2A_Sound_Unsupported()); // Zak 71
+ CRCToSound(0x2E2AB1FA, V2A_Sound_Unsupported()); // Zak 99
+ CRCToSound(0x1304CF20, V2A_Sound_Special_SingleDurationMultiDurations(0x00DC,0x0624,0x023C,0x3C,2,(const uint8 *)"\x14\x11",false)); // Zak 79
+ CRCToSound(0xAE68ED91, V2A_Sound_Unsupported()); // Zak 54
+ CRCToSound(0xA4F40F97, V2A_Sound_Unsupported()); // Zak 61
+ CRCToSound(0x348F85CE, V2A_Sound_Unsupported()); // Zak 62
+ CRCToSound(0xD473AB86, V2A_Sound_Special_SingleDurationMultiDurations(0x0122,0x03E8,0x00BE,0x3F,7,(const uint8 *)"\x0F\x0B\x04\x0F\x1E\x0F\x66",false)); // Zak 46
+ CRCToSound(0x84A0BA90, V2A_Sound_Unsupported()); // Zak 110
+ CRCToSound(0x92680D9F, V2A_Sound_Unsupported()); // Zak 32
+ CRCToSound(0xABFFDB02, V2A_Sound_Unsupported()); // Zak 86
+ CRCToSound(0x41045447, V2A_Sound_Unsupported()); // Zak 98
+ CRCToSound(0xC8EEBD34, V2A_Sound_Unsupported()); // Zak 82
+ CRCToSound(0x42F9469F, V2A_Sound_Music(0x05F6,0x0636,0x0456,0x0516,0x05D6,0x05E6,0x0A36,true)); // Zak 96
+ CRCToSound(0x038BBD78, V2A_Sound_Music(0x054E,0x05CE,0x044E,0x04BE,0x052E,0x053E,0x0BCE,true)); // Zak 85
+ CRCToSound(0x06FFADC5, V2A_Sound_Music(0x0626,0x0686,0x0446,0x04F6,0x0606,0x0616,0x0C86,true)); // Zak 87
+ CRCToSound(0xCE20ECF0, V2A_Sound_Music(0x0636,0x0696,0x0446,0x0576,0x0616,0x0626,0x0E96,true)); // Zak 114
+ CRCToSound(0xBDA01BB6, V2A_Sound_Music(0x0678,0x06B8,0x0458,0x0648,0x0658,0x0668,0x0EB8,false)); // Zak 33
+ CRCToSound(0x59976529, V2A_Sound_Music(0x088E,0x092E,0x048E,0x05EE,0x074E,0x07EE,0x112E,true)); // Zak 49
+ CRCToSound(0xED1EED02, V2A_Sound_Music(0x08D0,0x0950,0x0440,0x07E0,0x08B0,0x08C0,0x1350,false)); // Zak 112
+ CRCToSound(0x5A16C037, V2A_Sound_Music(0x634A,0x64CA,0x049A,0x18FA,0x398A,0x511A,0x6CCA,false)); // Zak 95
return NULL;
}
@@ -1298,7 +1176,7 @@ void Player_V2A::startSound(int nr) {
if (i == -1)
return;
_slot[i].id = nr;
- _slot[i].sound = snd->copy();
+ _slot[i].sound = snd;
_slot[i].sound->start(_mod,nr,data);
}