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 
11 typedef enum
12 {
13   mus_None,
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 
75 /*
76  * SoundFX struct.
77  */
78 
79 typedef struct sfxinfo_struct	sfxinfo_t;
80 
81 struct sfxinfo_struct
82 {
83   /* up to 6-character name */
84   char*         name;
85 
86   /* referenced sound if a link */
87   sfxinfo_t	*link;
88 
89   /* Sfx priority */
90   int        	priority;
91 
92   /* sound data */
93   void          *data;
94 
95   /* pitch if a link */
96   int	        pitch;
97 
98   /* volume if a link */
99   int	        volume;
100 
101   /* Sfx singularity (only one at a time) */
102   int		singularity;
103 
104 
105   /*
106    * this is checked every second to see if sound
107    * can be thrown out (if 0, then decrement, if -1,
108    * then throw out, if > 0, then it is in use)
109    */
110   int		usefulness;
111 
112   /* lump number of sfx */
113   int		lumpnum;
114 
115   /* total number of channels a sound type may occupy  */
116   int           numchannels;
117 };
118 
119 
120 /*
121  * MusicInfo struct.
122  */
123 typedef struct
124 {
125   /* up to 6-character name */
126   char*	   name;
127 
128   /* lump number of music */
129   int	   lumpnum;
130 
131   /* music data */
132   void*	   data;
133 
134   /* music handle once registered */
135   int      handle;
136 
137 } musicinfo_t;
138 
139 
140 /* the complete set of sound effects */
141 extern sfxinfo_t	S_sfx[];
142 
143 /* the complete set of music */
144 extern musicinfo_t	S_music[];
145 
146 typedef struct
147 {
148   /* sound information (if null, channel avail.) */
149   sfxinfo_t*	sfxinfo;
150 
151   /* origin of sound */
152   void*	origin;
153 
154   /* handle of the sound being played */
155   int		handle;
156 
157 } channel_t;
158 
159 
160 
161 /* Sound identifiers */
162 
163 typedef enum
164 {
165   sfx_None,
166   sfx_gldhit,
167   sfx_gntful,
168   sfx_gnthit,
169   sfx_gntpow,
170   sfx_gntact,
171   sfx_gntuse,
172   sfx_phosht,
173   sfx_phohit,
174   sfx_phopow,
175   sfx_lobsht,
176   sfx_lobhit,
177   sfx_lobpow,
178   sfx_hrnsht,
179   sfx_hrnhit,
180   sfx_hrnpow,
181   sfx_ramphit,
182   sfx_ramrain,
183   sfx_bowsht,
184   sfx_stfhit,
185   sfx_stfpow,
186   sfx_stfcrk,
187   sfx_impsit,
188   sfx_impat1,
189   sfx_impat2,
190   sfx_impdth,
191   sfx_impact,
192   sfx_imppai,
193   sfx_mumsit,
194   sfx_mumat1,
195   sfx_mumat2,
196   sfx_mumdth,
197   sfx_mumact,
198   sfx_mumpai,
199   sfx_mumhed,
200   sfx_bstsit,
201   sfx_bstatk,
202   sfx_bstdth,
203   sfx_bstact,
204   sfx_bstpai,
205   sfx_clksit,
206   sfx_clkatk,
207   sfx_clkdth,
208   sfx_clkact,
209   sfx_clkpai,
210   sfx_snksit,
211   sfx_snkatk,
212   sfx_snkdth,
213   sfx_snkact,
214   sfx_snkpai,
215   sfx_kgtsit,
216   sfx_kgtatk,
217   sfx_kgtat2,
218   sfx_kgtdth,
219   sfx_kgtact,
220   sfx_kgtpai,
221   sfx_wizsit,
222   sfx_wizatk,
223   sfx_wizdth,
224   sfx_wizact,
225   sfx_wizpai,
226   sfx_minsit,
227   sfx_minat1,
228   sfx_minat2,
229   sfx_minat3,
230   sfx_mindth,
231   sfx_minact,
232   sfx_minpai,
233   sfx_hedsit,
234   sfx_hedat1,
235   sfx_hedat2,
236   sfx_hedat3,
237   sfx_heddth,
238   sfx_hedact,
239   sfx_hedpai,
240   sfx_sorzap,
241   sfx_sorrise,
242   sfx_sorsit,
243   sfx_soratk,
244   sfx_soract,
245   sfx_sorpai,
246   sfx_sordsph,
247   sfx_sordexp,
248   sfx_sordbon,
249   sfx_sbtsit,
250   sfx_sbtatk,
251   sfx_sbtdth,
252   sfx_sbtact,
253   sfx_sbtpai,
254   sfx_plroof,
255   sfx_plrpai,
256   sfx_plrdth,		/* Normal */
257   sfx_gibdth,		/* Extreme */
258   sfx_plrwdth,	        /* Wimpy */
259   sfx_plrcdth,	        /* Crazy */
260   sfx_itemup,
261   sfx_wpnup,
262   sfx_telept,
263   sfx_doropn,
264   sfx_dorcls,
265   sfx_dormov,
266   sfx_artiup,
267   sfx_switch,
268   sfx_pstart,
269   sfx_pstop,
270   sfx_stnmov,
271   sfx_chicpai,
272   sfx_chicatk,
273   sfx_chicdth,
274   sfx_chicact,
275   sfx_chicpk1,
276   sfx_chicpk2,
277   sfx_chicpk3,
278   sfx_keyup,
279   sfx_ripslop,
280   sfx_newpod,
281   sfx_podexp,
282   sfx_bounce,
283   sfx_volsht,
284   sfx_volhit,
285   sfx_burn,
286   sfx_splash,
287   sfx_gloop,
288   sfx_respawn,
289   sfx_blssht,
290   sfx_blshit,
291   sfx_chat,
292   sfx_artiuse,
293   sfx_gfrag,
294   sfx_waterfl,
295 
296   /* Monophonic sounds */
297 
298   sfx_wind,
299   sfx_amb1,
300   sfx_amb2,
301   sfx_amb3,
302   sfx_amb4,
303   sfx_amb5,
304   sfx_amb6,
305   sfx_amb7,
306   sfx_amb8,
307   sfx_amb9,
308   sfx_amb10,
309   sfx_amb11,
310   NUMSFX
311 } sfxenum_t;
312 
313 #endif   /* __SOUNDSH__ */
314