Rev 11 | Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1 | pmbaty | 1 | // audio.cpp |
2 | |||
3 | #include "common.h" |
||
4 | |||
5 | |||
6 | // global variables used in this module only |
||
7 | static int queued_sound = 0; |
||
8 | |||
9 | |||
10 | void Audio_Think (void) |
||
11 | { |
||
12 | // this function plays the queued sounds on the right time |
||
13 | |||
14 | int sound_index; |
||
15 | |||
16 | // do we have a sound to play ? if so, play it |
||
17 | if (queued_sound != 0) |
||
18 | { |
||
19 | // given the type of sound we want, enqueue the right one |
||
20 | if (queued_sound == SOUNDTYPE_CLICK) |
||
21 | PlaySound (L"data/sounds/click.wav", NULL, SND_ASYNC | SND_FILENAME | SND_NODEFAULT); |
||
22 | else if (queued_sound == SOUNDTYPE_ILLEGALMOVE) |
||
23 | PlaySound (L"data/sounds/illegal.wav", NULL, SND_ASYNC | SND_FILENAME | SND_NODEFAULT); |
||
24 | else if (queued_sound == SOUNDTYPE_VICTORY) |
||
25 | PlaySound (L"data/sounds/win.wav", NULL, SND_ASYNC | SND_FILENAME | SND_NODEFAULT); |
||
26 | else if (queued_sound == SOUNDTYPE_DEFEAT) |
||
27 | PlaySound (L"data/sounds/lose.wav", NULL, SND_ASYNC | SND_FILENAME | SND_NODEFAULT); |
||
28 | else if (queued_sound == SOUNDTYPE_CHECK) |
||
29 | PlaySound (L"data/sounds/check.wav", NULL, SND_ASYNC | SND_FILENAME | SND_NODEFAULT); |
||
30 | else if (queued_sound == SOUNDTYPE_PIECETAKEN) |
||
31 | PlaySound (L"data/sounds/take.wav", NULL, SND_ASYNC | SND_FILENAME | SND_NODEFAULT); |
||
32 | else if (queued_sound == SOUNDTYPE_MOVE) |
||
33 | { |
||
34 | sound_index = rand () % 6; // there are several movement sounds, pick one at random |
||
35 | if (sound_index == 0) |
||
36 | PlaySound (L"data/sounds/move1.wav", NULL, SND_ASYNC | SND_FILENAME | SND_NODEFAULT); |
||
37 | else if (sound_index == 1) |
||
38 | PlaySound (L"data/sounds/move2.wav", NULL, SND_ASYNC | SND_FILENAME | SND_NODEFAULT); |
||
39 | else if (sound_index == 2) |
||
40 | PlaySound (L"data/sounds/move3.wav", NULL, SND_ASYNC | SND_FILENAME | SND_NODEFAULT); |
||
41 | else if (sound_index == 3) |
||
42 | PlaySound (L"data/sounds/move4.wav", NULL, SND_ASYNC | SND_FILENAME | SND_NODEFAULT); |
||
43 | else if (sound_index == 4) |
||
44 | PlaySound (L"data/sounds/move5.wav", NULL, SND_ASYNC | SND_FILENAME | SND_NODEFAULT); |
||
45 | else |
||
46 | PlaySound (L"data/sounds/move6.wav", NULL, SND_ASYNC | SND_FILENAME | SND_NODEFAULT); |
||
47 | } |
||
48 | |||
49 | queued_sound = 0; // play this sound then forget it |
||
50 | } |
||
51 | |||
52 | return; // finished, audio has been handled |
||
53 | } |
||
54 | |||
55 | |||
56 | void Audio_PlaySound (int sound_type) |
||
57 | { |
||
58 | // helper function to play a sound |
||
59 | |||
60 | if (!options.want_sounds) |
||
61 | return; // if we want no sound, don't play anything |
||
62 | |||
63 | queued_sound = sound_type; // enqueue the desired sound for playing |
||
64 | return; // finished |
||
65 | } |