[Scummvm-cvs-logs] CVS: scummvm/scumm player_v2a.cpp,2.12,2.13

Max Horn fingolfin at users.sourceforge.net
Thu Oct 9 08:04:10 CEST 2003


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv7030

Modified Files:
	player_v2a.cpp 
Log Message:
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

Index: player_v2a.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/player_v2a.cpp,v
retrieving revision 2.12
retrieving revision 2.13
diff -u -d -r2.12 -r2.13
--- player_v2a.cpp	9 Oct 2003 05:27:52 -0000	2.12
+++ player_v2a.cpp	9 Oct 2003 15:03:01 -0000	2.13
@@ -57,7 +57,6 @@
 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 @@
 
 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 @@
 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 @@
 
 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 @@
 
 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 @@
 
 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 @@
 
 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 @@
 
 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 @@
 
 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 @@
 
 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 @@
 
 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 @@
 
 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 @@
 
 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 @@
 
 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 @@
 
 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 @@
 
 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 @@
 
 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 @@
 
 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 @@
 
 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 @@
 
 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 @@
 
 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 @@
 
 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 @@
 
 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 @@
 
 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 @@
 	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 @@
 	if (i == -1)
 		return;
 	_slot[i].id = nr;
-	_slot[i].sound = snd->copy();
+	_slot[i].sound = snd;
 	_slot[i].sound->start(_mod,nr,data);
 }
 





More information about the Scummvm-git-logs mailing list