]> icculus.org git repositories - theoddone33/hheretic.git/blob - include/sounds.h
Initial revision
[theoddone33/hheretic.git] / include / sounds.h
1
2 // sounds.h
3
4 #ifndef __SOUNDSH__
5 #define __SOUNDSH__
6
7 #define MAX_SND_DIST    1600
8 #define MAX_CHANNELS    16
9
10 // Music identifiers
11
12 typedef enum
13 {
14         mus_e1m1,
15         mus_e1m2,
16         mus_e1m3,
17         mus_e1m4,
18         mus_e1m5,
19         mus_e1m6,
20         mus_e1m7,
21         mus_e1m8,
22         mus_e1m9,
23
24         mus_e2m1,
25         mus_e2m2,
26         mus_e2m3,
27         mus_e2m4,
28         mus_e2m5,
29         mus_e2m6,
30         mus_e2m7,
31         mus_e2m8,
32         mus_e2m9,
33
34         mus_e3m1,
35         mus_e3m2,
36         mus_e3m3,
37         mus_e3m4,
38         mus_e3m5,
39         mus_e3m6,
40         mus_e3m7,
41         mus_e3m8,
42         mus_e3m9,
43
44         mus_e4m1,
45         mus_e4m2,
46         mus_e4m3,
47         mus_e4m4,
48         mus_e4m5,
49         mus_e4m6,
50         mus_e4m7,
51         mus_e4m8,
52         mus_e4m9,
53
54         mus_e5m1,
55         mus_e5m2,
56         mus_e5m3,
57         mus_e5m4,
58         mus_e5m5,
59         mus_e5m6,
60         mus_e5m7,
61         mus_e5m8,
62         mus_e5m9,
63
64         mus_e6m1,
65         mus_e6m2,
66         mus_e6m3,
67
68         mus_titl,
69         mus_intr,
70         mus_cptd,
71         NUMMUSIC
72 } musicenum_t;
73
74 typedef struct
75 {
76         char name[8];
77         int p1;
78 } musicinfo_t;
79
80 typedef struct sfxinfo_s
81 {
82         char name[8];
83         struct sfxinfo_s *link; // Make alias for another sound
84         unsigned short priority; // Higher priority takes precendence
85         int usefulness; // Determines when a sound should be cached out
86         void *snd_ptr;
87         int lumpnum;
88         int numchannels; // total number of channels a sound type may occupy
89 } sfxinfo_t;
90
91 typedef struct
92 {
93         mobj_t *mo;
94         long sound_id;
95         long handle;
96         long pitch;
97         int priority;
98 } channel_t;
99
100 typedef struct
101 {
102         long id;
103         unsigned short priority;
104         char *name;
105         mobj_t *mo;
106         int distance;
107 } ChanInfo_t;
108
109 typedef struct
110 {
111         int channelCount;
112         int musicVolume;
113         int soundVolume;
114         ChanInfo_t chan[8];
115 } SoundInfo_t;
116
117 // Sound identifiers
118
119 typedef enum
120 {
121         sfx_None,
122         sfx_gldhit,
123         sfx_gntful,
124         sfx_gnthit,
125         sfx_gntpow,
126         sfx_gntact,
127         sfx_gntuse,
128         sfx_phosht,
129         sfx_phohit,
130         sfx_phopow,
131         sfx_lobsht,
132         sfx_lobhit,
133         sfx_lobpow,
134         sfx_hrnsht,
135         sfx_hrnhit,
136         sfx_hrnpow,
137         sfx_ramphit,
138         sfx_ramrain,
139         sfx_bowsht,
140         sfx_stfhit,
141         sfx_stfpow,
142         sfx_stfcrk,
143         sfx_impsit,
144         sfx_impat1,
145         sfx_impat2,
146         sfx_impdth,
147         sfx_impact,
148         sfx_imppai,
149         sfx_mumsit,
150         sfx_mumat1,
151         sfx_mumat2,
152         sfx_mumdth,
153         sfx_mumact,
154         sfx_mumpai,
155         sfx_mumhed,
156         sfx_bstsit,
157         sfx_bstatk,
158         sfx_bstdth,
159         sfx_bstact,
160         sfx_bstpai,
161         sfx_clksit,
162         sfx_clkatk,
163         sfx_clkdth,
164         sfx_clkact,
165         sfx_clkpai,
166         sfx_snksit,
167         sfx_snkatk,
168         sfx_snkdth,
169         sfx_snkact,
170         sfx_snkpai,
171         sfx_kgtsit,
172         sfx_kgtatk,
173         sfx_kgtat2,
174         sfx_kgtdth,
175         sfx_kgtact,
176         sfx_kgtpai,
177         sfx_wizsit,
178         sfx_wizatk,
179         sfx_wizdth,
180         sfx_wizact,
181         sfx_wizpai,
182         sfx_minsit,
183         sfx_minat1,
184         sfx_minat2,
185         sfx_minat3,
186         sfx_mindth,
187         sfx_minact,
188         sfx_minpai,
189         sfx_hedsit,
190         sfx_hedat1,
191         sfx_hedat2,
192         sfx_hedat3,
193         sfx_heddth,
194         sfx_hedact,
195         sfx_hedpai,
196         sfx_sorzap,
197         sfx_sorrise,
198         sfx_sorsit,
199         sfx_soratk,
200         sfx_soract,
201         sfx_sorpai,
202         sfx_sordsph,
203         sfx_sordexp,
204         sfx_sordbon,
205         sfx_sbtsit,
206         sfx_sbtatk,
207         sfx_sbtdth,
208         sfx_sbtact,
209         sfx_sbtpai,
210         sfx_plroof,
211         sfx_plrpai,
212         sfx_plrdth,             // Normal
213         sfx_gibdth,             // Extreme
214         sfx_plrwdth,    // Wimpy
215         sfx_plrcdth,    // Crazy
216         sfx_itemup,
217         sfx_wpnup,
218         sfx_telept,
219         sfx_doropn,
220         sfx_dorcls,
221         sfx_dormov,
222         sfx_artiup,
223         sfx_switch,
224         sfx_pstart,
225         sfx_pstop,
226         sfx_stnmov,
227         sfx_chicpai,
228         sfx_chicatk,
229         sfx_chicdth,
230         sfx_chicact,
231         sfx_chicpk1,
232         sfx_chicpk2,
233         sfx_chicpk3,
234         sfx_keyup,
235         sfx_ripslop,
236         sfx_newpod,
237         sfx_podexp,
238         sfx_bounce,
239         sfx_volsht,
240         sfx_volhit,
241         sfx_burn,
242         sfx_splash,
243         sfx_gloop,
244         sfx_respawn,
245         sfx_blssht,
246         sfx_blshit,
247         sfx_chat,
248         sfx_artiuse,
249         sfx_gfrag,
250         sfx_waterfl,
251
252         // Monophonic sounds
253
254         sfx_wind,
255         sfx_amb1,
256         sfx_amb2,
257         sfx_amb3,
258         sfx_amb4,
259         sfx_amb5,
260         sfx_amb6,
261         sfx_amb7,
262         sfx_amb8,
263         sfx_amb9,
264         sfx_amb10,
265         sfx_amb11,
266         NUMSFX
267 } sfxenum_t;
268
269 #endif