1 // ----------------------------------------------------------------------------
3 // ----------------------------------------------------------------------------
7 // static char *VB_Name = "modSound";
14 DirectSoundBuffer ZonkFX[1 + 1];
15 DirectSoundBuffer InfotronFX[1 + 1];
16 DirectSoundBuffer BugFX[1 + 1];
17 DirectSoundBuffer ExplosionFX[1 + 1];
18 DirectSoundBuffer PushFX;
19 DirectSoundBuffer ExitFX;
20 DirectSoundBuffer BaseFX;
26 DSBUFFERDESC bufferDesc;
27 WAVEFORMATEX waveFormat;
31 bufferDesc.lFlags = DSBCAPS_CTRLFREQUENCY | DSBCAPS_CTRLPAN | DSBCAPS_CTRLVOLUME | DSBCAPS_STATIC;
32 waveFormat.nFormatTag = WAVE_FORMAT_PCM;
33 waveFormat.nChannels = 1;
34 waveFormat.lSamplesPerSec = 8000;
35 waveFormat.nBitsPerSample = 8;
36 waveFormat.nBlockAlign = waveFormat.nBitsPerSample / 8 * waveFormat.nChannels;
37 waveFormat.lAvgBytesPerSec = waveFormat.lSamplesPerSec * waveFormat.nBlockAlign;
38 FName = CAT(App.Path, "/Sound/");
39 for (i = 0; i <= 1; i++)
41 ZonkFX[i] = DSound.CreateSoundBufferFromFile(CAT(FName, "Zonk.wav"), bufferDesc, waveFormat);
42 InfotronFX[i] = DSound.CreateSoundBufferFromFile(CAT(FName, "Infotron.wav"), bufferDesc, waveFormat);
43 BugFX[i] = DSound.CreateSoundBufferFromFile(CAT(FName, "Bug.wav"), bufferDesc, waveFormat);
44 ExplosionFX[i] = DSound.CreateSoundBufferFromFile(CAT(FName, "Explosion.wav"), bufferDesc, waveFormat);
47 BaseFX = DSound.CreateSoundBufferFromFile(CAT(FName, "Base.wav"), bufferDesc, waveFormat);
48 ExitFX = DSound.CreateSoundBufferFromFile(CAT(FName, "Exit.wav"), bufferDesc, waveFormat);
49 PushFX = DSound.CreateSoundBufferFromFile(CAT(FName, "Push.wav"), bufferDesc, waveFormat);
62 for (i = 0; i <= 1; i++)
64 if (! IS_NOTHING(&ZonkFX[i], sizeof(ZonkFX[i])))
66 if (ZonkFX[i].GetStatus() != DSBSTATUS_PLAYING)
68 ZonkFX[i].Play DSBPLAY_DEFAULT;
82 for (i = 0; i <= 1; i++)
84 if (! IS_NOTHING(&BugFX[i], sizeof(BugFX[i])))
86 if (BugFX[i].GetStatus() != DSBSTATUS_PLAYING)
88 BugFX[i].Play DSBPLAY_DEFAULT;
95 void subSoundFXInfotron()
102 for (i = 0; i <= 1; i++)
104 if (! IS_NOTHING(&InfotronFX[i], sizeof(InfotronFX[i])))
106 if (InfotronFX[i].GetStatus() != DSBSTATUS_PLAYING)
108 InfotronFX[i].Play DSBPLAY_DEFAULT;
115 void subSoundFXExplosion()
122 for (i = 0; i <= 1; i++)
124 if (! IS_NOTHING(&ExplosionFX[i], sizeof(ExplosionFX[i])))
126 if (ExplosionFX[i].GetStatus() != DSBSTATUS_PLAYING)
128 ExplosionFX[i].Play DSBPLAY_DEFAULT;
135 void subSoundFXBase()
140 if (IS_NOTHING(&BaseFX, sizeof(BaseFX)))
143 if (BaseFX.GetStatus() != DSBSTATUS_PLAYING)
145 BaseFX.Play DSBPLAY_DEFAULT;
149 void subSoundFXPush()
154 if (IS_NOTHING(&PushFX, sizeof(PushFX)))
157 if (PushFX.GetStatus() != DSBSTATUS_PLAYING)
159 PushFX.Play DSBPLAY_DEFAULT;
163 void subSoundFXExit()
168 if (IS_NOTHING(&ExitFX, sizeof(ExitFX)))
171 if (ExitFX.GetStatus() != DSBSTATUS_PLAYING)
173 ExitFX.Play DSBPLAY_DEFAULT;