1 // ----------------------------------------------------------------------------
3 // ----------------------------------------------------------------------------
7 static char *VB_Name = "modSound";
13 DirectSoundBuffer ZonkFX[1 + 1];
14 DirectSoundBuffer InfotronFX[1 + 1];
15 DirectSoundBuffer BugFX[1 + 1];
16 DirectSoundBuffer ExplosionFX[1 + 1];
17 DirectSoundBuffer PushFX;
18 DirectSoundBuffer ExitFX;
19 DirectSoundBuffer BaseFX;
25 DSBUFFERDESC bufferDesc;
26 WAVEFORMATEX waveFormat;
30 bufferDesc.lFlags = DSBCAPS_CTRLFREQUENCY | DSBCAPS_CTRLPAN | DSBCAPS_CTRLVOLUME | DSBCAPS_STATIC;
31 waveFormat.nFormatTag = WAVE_FORMAT_PCM;
32 waveFormat.nChannels = 1;
33 waveFormat.lSamplesPerSec = 8000;
34 waveFormat.nBitsPerSample = 8;
35 waveFormat.nBlockAlign = waveFormat.nBitsPerSample / 8 * waveFormat.nChannels;
36 waveFormat.lAvgBytesPerSec = waveFormat.lSamplesPerSec * waveFormat.nBlockAlign;
37 FName = CAT(App.Path, "/Sound/");
38 for (i = 0; i <= 1; i++)
40 ZonkFX[i] = DSound.CreateSoundBufferFromFile(CAT(FName, "Zonk.wav"), bufferDesc, waveFormat);
41 InfotronFX[i] = DSound.CreateSoundBufferFromFile(CAT(FName, "Infotron.wav"), bufferDesc, waveFormat);
42 BugFX[i] = DSound.CreateSoundBufferFromFile(CAT(FName, "Bug.wav"), bufferDesc, waveFormat);
43 ExplosionFX[i] = DSound.CreateSoundBufferFromFile(CAT(FName, "Explosion.wav"), bufferDesc, waveFormat);
46 BaseFX = DSound.CreateSoundBufferFromFile(CAT(FName, "Base.wav"), bufferDesc, waveFormat);
47 ExitFX = DSound.CreateSoundBufferFromFile(CAT(FName, "Exit.wav"), bufferDesc, waveFormat);
48 PushFX = DSound.CreateSoundBufferFromFile(CAT(FName, "Push.wav"), bufferDesc, waveFormat);
61 for (i = 0; i <= 1; i++)
63 if (! IS_NOTHING(&ZonkFX[i], sizeof(ZonkFX[i])))
65 if (ZonkFX[i].GetStatus() != DSBSTATUS_PLAYING)
67 ZonkFX[i].Play DSBPLAY_DEFAULT;
81 for (i = 0; i <= 1; i++)
83 if (! IS_NOTHING(&BugFX[i], sizeof(BugFX[i])))
85 if (BugFX[i].GetStatus() != DSBSTATUS_PLAYING)
87 BugFX[i].Play DSBPLAY_DEFAULT;
94 void subSoundFXInfotron()
101 for (i = 0; i <= 1; i++)
103 if (! IS_NOTHING(&InfotronFX[i], sizeof(InfotronFX[i])))
105 if (InfotronFX[i].GetStatus() != DSBSTATUS_PLAYING)
107 InfotronFX[i].Play DSBPLAY_DEFAULT;
114 void subSoundFXExplosion()
121 for (i = 0; i <= 1; i++)
123 if (! IS_NOTHING(&ExplosionFX[i], sizeof(ExplosionFX[i])))
125 if (ExplosionFX[i].GetStatus() != DSBSTATUS_PLAYING)
127 ExplosionFX[i].Play DSBPLAY_DEFAULT;
134 void subSoundFXBase()
139 if (IS_NOTHING(&BaseFX, sizeof(BaseFX)))
142 if (BaseFX.GetStatus() != DSBSTATUS_PLAYING)
144 BaseFX.Play DSBPLAY_DEFAULT;
148 void subSoundFXPush()
153 if (IS_NOTHING(&PushFX, sizeof(PushFX)))
156 if (PushFX.GetStatus() != DSBSTATUS_PLAYING)
158 PushFX.Play DSBPLAY_DEFAULT;
162 void subSoundFXExit()
167 if (IS_NOTHING(&ExitFX, sizeof(ExitFX)))
170 if (ExitFX.GetStatus() != DSBSTATUS_PLAYING)
172 ExitFX.Play DSBPLAY_DEFAULT;