sounds.h 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306
  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. #ifndef __SOUNDS__
  35. #define __SOUNDS__
  36. //
  37. // SoundFX struct.
  38. //
  39. struct sfxinfo_struct;
  40. typedef struct sfxinfo_struct sfxinfo_t;
  41. struct sfxinfo_struct {
  42. // up to 6-character name
  43. const char *name; // CPhipps - const
  44. // Sfx singularity (only one at a time)
  45. int singularity;
  46. // Sfx priority
  47. int priority;
  48. // referenced sound if a link
  49. sfxinfo_t *link;
  50. // pitch if a link
  51. int pitch;
  52. // volume if a link
  53. int volume;
  54. // sound data
  55. void *data;
  56. // this is checked every second to see if sound
  57. // can be thrown out (if 0, then decrement, if -1,
  58. // then throw out, if > 0, then it is in use)
  59. int usefulness;
  60. // lump number of sfx
  61. int lumpnum;
  62. };
  63. //
  64. // MusicInfo struct.
  65. //
  66. typedef struct {
  67. // up to 6-character name
  68. const char *name; // CPhipps - const
  69. // lump number of music
  70. int lumpnum;
  71. /* music data - cphipps 4/11 made const void* */
  72. const void *data;
  73. // music handle once registered
  74. int handle;
  75. } musicinfo_t;
  76. // the complete set of sound effects
  77. extern sfxinfo_t S_sfx[];
  78. // the complete set of music
  79. extern musicinfo_t S_music[];
  80. //
  81. // Identifiers for all music in game.
  82. //
  83. typedef enum {
  84. mus_None,
  85. mus_e1m1,
  86. mus_e1m2,
  87. mus_e1m3,
  88. mus_e1m4,
  89. mus_e1m5,
  90. mus_e1m6,
  91. mus_e1m7,
  92. mus_e1m8,
  93. mus_e1m9,
  94. mus_e2m1,
  95. mus_e2m2,
  96. mus_e2m3,
  97. mus_e2m4,
  98. mus_e2m5,
  99. mus_e2m6,
  100. mus_e2m7,
  101. mus_e2m8,
  102. mus_e2m9,
  103. mus_e3m1,
  104. mus_e3m2,
  105. mus_e3m3,
  106. mus_e3m4,
  107. mus_e3m5,
  108. mus_e3m6,
  109. mus_e3m7,
  110. mus_e3m8,
  111. mus_e3m9,
  112. mus_inter,
  113. mus_intro,
  114. mus_bunny,
  115. mus_victor,
  116. mus_introa,
  117. mus_runnin,
  118. mus_stalks,
  119. mus_countd,
  120. mus_betwee,
  121. mus_doom,
  122. mus_the_da,
  123. mus_shawn,
  124. mus_ddtblu,
  125. mus_in_cit,
  126. mus_dead,
  127. mus_stlks2,
  128. mus_theda2,
  129. mus_doom2,
  130. mus_ddtbl2,
  131. mus_runni2,
  132. mus_dead2,
  133. mus_stlks3,
  134. mus_romero,
  135. mus_shawn2,
  136. mus_messag,
  137. mus_count2,
  138. mus_ddtbl3,
  139. mus_ampie,
  140. mus_theda3,
  141. mus_adrian,
  142. mus_messg2,
  143. mus_romer2,
  144. mus_tense,
  145. mus_shawn3,
  146. mus_openin,
  147. mus_evil,
  148. mus_ultima,
  149. mus_read_m,
  150. mus_dm2ttl,
  151. mus_dm2int,
  152. NUMMUSIC
  153. } musicenum_t;
  154. //
  155. // Identifiers for all sfx in game.
  156. //
  157. typedef enum {
  158. sfx_None,
  159. sfx_pistol,
  160. sfx_shotgn,
  161. sfx_sgcock,
  162. sfx_dshtgn,
  163. sfx_dbopn,
  164. sfx_dbcls,
  165. sfx_dbload,
  166. sfx_plasma,
  167. sfx_bfg,
  168. sfx_sawup,
  169. sfx_sawidl,
  170. sfx_sawful,
  171. sfx_sawhit,
  172. sfx_rlaunc,
  173. sfx_rxplod,
  174. sfx_firsht,
  175. sfx_firxpl,
  176. sfx_pstart,
  177. sfx_pstop,
  178. sfx_doropn,
  179. sfx_dorcls,
  180. sfx_stnmov,
  181. sfx_swtchn,
  182. sfx_swtchx,
  183. sfx_plpain,
  184. sfx_dmpain,
  185. sfx_popain,
  186. sfx_vipain,
  187. sfx_mnpain,
  188. sfx_pepain,
  189. sfx_slop,
  190. sfx_itemup,
  191. sfx_wpnup,
  192. sfx_oof,
  193. sfx_telept,
  194. sfx_posit1,
  195. sfx_posit2,
  196. sfx_posit3,
  197. sfx_bgsit1,
  198. sfx_bgsit2,
  199. sfx_sgtsit,
  200. sfx_cacsit,
  201. sfx_brssit,
  202. sfx_cybsit,
  203. sfx_spisit,
  204. sfx_bspsit,
  205. sfx_kntsit,
  206. sfx_vilsit,
  207. sfx_mansit,
  208. sfx_pesit,
  209. sfx_sklatk,
  210. sfx_sgtatk,
  211. sfx_skepch,
  212. sfx_vilatk,
  213. sfx_claw,
  214. sfx_skeswg,
  215. sfx_pldeth,
  216. sfx_pdiehi,
  217. sfx_podth1,
  218. sfx_podth2,
  219. sfx_podth3,
  220. sfx_bgdth1,
  221. sfx_bgdth2,
  222. sfx_sgtdth,
  223. sfx_cacdth,
  224. sfx_skldth,
  225. sfx_brsdth,
  226. sfx_cybdth,
  227. sfx_spidth,
  228. sfx_bspdth,
  229. sfx_vildth,
  230. sfx_kntdth,
  231. sfx_pedth,
  232. sfx_skedth,
  233. sfx_posact,
  234. sfx_bgact,
  235. sfx_dmact,
  236. sfx_bspact,
  237. sfx_bspwlk,
  238. sfx_vilact,
  239. sfx_noway,
  240. sfx_barexp,
  241. sfx_punch,
  242. sfx_hoof,
  243. sfx_metal,
  244. sfx_chgun,
  245. sfx_tink,
  246. sfx_bdopn,
  247. sfx_bdcls,
  248. sfx_itmbk,
  249. sfx_flame,
  250. sfx_flamst,
  251. sfx_getpow,
  252. sfx_bospit,
  253. sfx_boscub,
  254. sfx_bossit,
  255. sfx_bospn,
  256. sfx_bosdth,
  257. sfx_manatk,
  258. sfx_mandth,
  259. sfx_sssit,
  260. sfx_ssdth,
  261. sfx_keenpn,
  262. sfx_keendt,
  263. sfx_skeact,
  264. sfx_skesit,
  265. sfx_skeatk,
  266. sfx_radio,
  267. #ifdef DOGS
  268. /* killough 11/98: dog sounds */
  269. sfx_dgsit,
  270. sfx_dgatk,
  271. sfx_dgact,
  272. sfx_dgdth,
  273. sfx_dgpain,
  274. #endif
  275. NUMSFX
  276. } sfxenum_t;
  277. #endif