1 /* Emacs style mode select   -*- C++ -*-
2  *-----------------------------------------------------------------------------
3  *
4  *
5  *  PrBoom: a Doom port merged with LxDoom and LSDLDoom
6  *  based on BOOM, a modified and improved DOOM engine
7  *  Copyright (C) 1999 by
8  *  id Software, Chi Hoang, Lee Killough, Jim Flynn, Rand Phares, Ty Halderman
9  *  Copyright (C) 1999-2000 by
10  *  Jess Haas, Nicolas Kalkhof, Colin Phipps, Florian Schulze
11  *  Copyright 2005, 2006 by
12  *  Florian Schulze, Colin Phipps, Neil Stevens, Andrey Budko
13  *
14  *  This program is free software; you can redistribute it and/or
15  *  modify it under the terms of the GNU General Public License
16  *  as published by the Free Software Foundation; either version 2
17  *  of the License, or (at your option) any later version.
18  *
19  *  This program is distributed in the hope that it will be useful,
20  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
21  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22  *  GNU General Public License for more details.
23  *
24  *  You should have received a copy of the GNU General Public License
25  *  along with this program; if not, write to the Free Software
26  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
27  *  02111-1307, USA.
28  *
29  * DESCRIPTION:
30  *      Created by the sound utility written by Dave Taylor.
31  *      Kept as a sample, DOOM2 sounds. Frozen.
32  *
33  *-----------------------------------------------------------------------------*/
34 
35 #ifndef __SOUNDS__
36 #define __SOUNDS__
37 
38 //
39 // SoundFX struct.
40 //
41 
42 struct sfxinfo_struct;
43 
44 typedef struct sfxinfo_struct sfxinfo_t;
45 
46 struct sfxinfo_struct {
47 
48   // up to 6-character name
49   const char *name; // CPhipps - const
50 
51   // Sfx singularity (only one at a time)
52   int singularity;
53 
54   // Sfx priority
55   int priority;
56 
57   // referenced sound if a link
58   sfxinfo_t *link;
59 
60   // pitch if a link
61   int pitch;
62 
63   // volume if a link
64   int volume;
65 
66   // sound data
67   void *data;
68 
69   // this is checked every second to see if sound
70   // can be thrown out (if 0, then decrement, if -1,
71   // then throw out, if > 0, then it is in use)
72   int usefulness;
73 
74   // lump number of sfx
75   int lumpnum;
76 };
77 
78 //
79 // MusicInfo struct.
80 //
81 
82 typedef struct {
83   // up to 6-character name
84   const char *name; // CPhipps - const
85 
86   // lump number of music
87   int lumpnum;
88 
89   /* music data - cphipps 4/11 made const void* */
90   const void *data;
91 
92   // music handle once registered
93   int handle;
94 } musicinfo_t;
95 
96 // the complete set of sound effects
97 extern sfxinfo_t    S_sfx[];
98 
99 // the complete set of music
100 extern musicinfo_t  S_music[];
101 
102 //
103 // Identifiers for all music in game.
104 //
105 
106 typedef enum {
107   mus_None,
108   mus_e1m1,
109   mus_e1m2,
110   mus_e1m3,
111   mus_e1m4,
112   mus_e1m5,
113   mus_e1m6,
114   mus_e1m7,
115   mus_e1m8,
116   mus_e1m9,
117   mus_e2m1,
118   mus_e2m2,
119   mus_e2m3,
120   mus_e2m4,
121   mus_e2m5,
122   mus_e2m6,
123   mus_e2m7,
124   mus_e2m8,
125   mus_e2m9,
126   mus_e3m1,
127   mus_e3m2,
128   mus_e3m3,
129   mus_e3m4,
130   mus_e3m5,
131   mus_e3m6,
132   mus_e3m7,
133   mus_e3m8,
134   mus_e3m9,
135   mus_inter,
136   mus_intro,
137   mus_bunny,
138   mus_victor,
139   mus_introa,
140   mus_runnin,
141   mus_stalks,
142   mus_countd,
143   mus_betwee,
144   mus_doom,
145   mus_the_da,
146   mus_shawn,
147   mus_ddtblu,
148   mus_in_cit,
149   mus_dead,
150   mus_stlks2,
151   mus_theda2,
152   mus_doom2,
153   mus_ddtbl2,
154   mus_runni2,
155   mus_dead2,
156   mus_stlks3,
157   mus_romero,
158   mus_shawn2,
159   mus_messag,
160   mus_count2,
161   mus_ddtbl3,
162   mus_ampie,
163   mus_theda3,
164   mus_adrian,
165   mus_messg2,
166   mus_romer2,
167   mus_tense,
168   mus_shawn3,
169   mus_openin,
170   mus_evil,
171   mus_ultima,
172   mus_read_m,
173   mus_dm2ttl,
174   mus_dm2int,
175   NUMMUSIC
176 } musicenum_t;
177 
178 //
179 // Identifiers for all sfx in game.
180 //
181 
182 typedef enum {
183   sfx_None,
184   sfx_pistol,
185   sfx_shotgn,
186   sfx_sgcock,
187   sfx_dshtgn,
188   sfx_dbopn,
189   sfx_dbcls,
190   sfx_dbload,
191   sfx_plasma,
192   sfx_bfg,
193   sfx_sawup,
194   sfx_sawidl,
195   sfx_sawful,
196   sfx_sawhit,
197   sfx_rlaunc,
198   sfx_rxplod,
199   sfx_firsht,
200   sfx_firxpl,
201   sfx_pstart,
202   sfx_pstop,
203   sfx_doropn,
204   sfx_dorcls,
205   sfx_stnmov,
206   sfx_swtchn,
207   sfx_swtchx,
208   sfx_plpain,
209   sfx_dmpain,
210   sfx_popain,
211   sfx_vipain,
212   sfx_mnpain,
213   sfx_pepain,
214   sfx_slop,
215   sfx_itemup,
216   sfx_wpnup,
217   sfx_oof,
218   sfx_telept,
219   sfx_posit1,
220   sfx_posit2,
221   sfx_posit3,
222   sfx_bgsit1,
223   sfx_bgsit2,
224   sfx_sgtsit,
225   sfx_cacsit,
226   sfx_brssit,
227   sfx_cybsit,
228   sfx_spisit,
229   sfx_bspsit,
230   sfx_kntsit,
231   sfx_vilsit,
232   sfx_mansit,
233   sfx_pesit,
234   sfx_sklatk,
235   sfx_sgtatk,
236   sfx_skepch,
237   sfx_vilatk,
238   sfx_claw,
239   sfx_skeswg,
240   sfx_pldeth,
241   sfx_pdiehi,
242   sfx_podth1,
243   sfx_podth2,
244   sfx_podth3,
245   sfx_bgdth1,
246   sfx_bgdth2,
247   sfx_sgtdth,
248   sfx_cacdth,
249   sfx_skldth,
250   sfx_brsdth,
251   sfx_cybdth,
252   sfx_spidth,
253   sfx_bspdth,
254   sfx_vildth,
255   sfx_kntdth,
256   sfx_pedth,
257   sfx_skedth,
258   sfx_posact,
259   sfx_bgact,
260   sfx_dmact,
261   sfx_bspact,
262   sfx_bspwlk,
263   sfx_vilact,
264   sfx_noway,
265   sfx_barexp,
266   sfx_punch,
267   sfx_hoof,
268   sfx_metal,
269   sfx_chgun,
270   sfx_tink,
271   sfx_bdopn,
272   sfx_bdcls,
273   sfx_itmbk,
274   sfx_flame,
275   sfx_flamst,
276   sfx_getpow,
277   sfx_bospit,
278   sfx_boscub,
279   sfx_bossit,
280   sfx_bospn,
281   sfx_bosdth,
282   sfx_manatk,
283   sfx_mandth,
284   sfx_sssit,
285   sfx_ssdth,
286   sfx_keenpn,
287   sfx_keendt,
288   sfx_skeact,
289   sfx_skesit,
290   sfx_skeatk,
291   sfx_radio,
292 
293 #ifdef DOGS
294   /* killough 11/98: dog sounds */
295   sfx_dgsit,
296   sfx_dgatk,
297   sfx_dgact,
298   sfx_dgdth,
299   sfx_dgpain,
300 #endif
301 
302   NUMSFX
303 } sfxenum_t;
304 
305 #endif
306