20130313
[gdash.git] / src / cave / helper / cavesound.hpp
blob7a2fde36a21f0334974017746a656a3d1d3ae059
1 /*
2 * Copyright (c) 2007-2013, Czirkos Zoltan http://code.google.com/p/gdash/
4 * Permission to use, copy, modify, and distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 #ifndef _GD_CAVESOUND
17 #define _GD_CAVESOUND
19 #include "config.h"
21 enum GdSound {
22 GD_S_NONE,
24 GD_S_STONE,
25 GD_S_DIRT_BALL,
26 GD_S_NITRO,
27 GD_S_FALLING_WALL,
28 GD_S_EXPANDING_WALL,
29 GD_S_WALL_REAPPEAR,
30 GD_S_DIAMOND_RANDOM, /* randomly select a diamond sound */
31 GD_S_DIAMOND_1,
32 GD_S_DIAMOND_2,
33 GD_S_DIAMOND_3,
34 GD_S_DIAMOND_4,
35 GD_S_DIAMOND_5,
36 GD_S_DIAMOND_6,
37 GD_S_DIAMOND_7,
38 GD_S_DIAMOND_8,
39 GD_S_DIAMOND_COLLECT,
40 GD_S_SKELETON_COLLECT,
41 GD_S_PNEUMATIC_COLLECT,
42 GD_S_BOMB_COLLECT,
43 GD_S_CLOCK_COLLECT,
44 GD_S_SWEET_COLLECT,
45 GD_S_KEY_COLLECT,
46 GD_S_DIAMOND_KEY_COLLECT,
47 GD_S_SLIME,
48 GD_S_LAVA,
49 GD_S_REPLICATOR,
50 GD_S_ACID_SPREAD,
51 GD_S_BLADDER_MOVE,
52 GD_S_BLADDER_CONVERT,
53 GD_S_BLADDER_SPENDER,
54 GD_S_BITER_EAT,
55 GD_S_NUT,
56 GD_S_NUT_CRACK,
58 GD_S_DOOR_OPEN,
59 GD_S_WALK_EARTH,
60 GD_S_WALK_EMPTY,
61 GD_S_STIRRING,
62 GD_S_BOX_PUSH,
63 GD_S_TELEPORTER,
64 GD_S_TIMEOUT_1,
65 GD_S_TIMEOUT_2,
66 GD_S_TIMEOUT_3,
67 GD_S_TIMEOUT_4,
68 GD_S_TIMEOUT_5,
69 GD_S_TIMEOUT_6,
70 GD_S_TIMEOUT_7,
71 GD_S_TIMEOUT_8,
72 GD_S_TIMEOUT_9,
73 GD_S_TIMEOUT,
74 GD_S_EXPLOSION,
75 GD_S_BOMB_EXPLOSION,
76 GD_S_GHOST_EXPLOSION,
77 GD_S_VOODOO_EXPLOSION,
78 GD_S_NITRO_EXPLOSION,
79 GD_S_BOMB_PLACE,
80 GD_S_FINISHED,
81 GD_S_SWITCH_BITER,
82 GD_S_SWITCH_CREATURES,
83 GD_S_SWITCH_GRAVITY,
84 GD_S_SWITCH_EXPANDING,
85 GD_S_SWITCH_CONVEYOR,
86 GD_S_SWITCH_REPLICATOR,
88 GD_S_AMOEBA, /* loop */
89 GD_S_MAGIC_WALL, /* loop */
90 GD_S_AMOEBA_MAGIC, /* loop */
91 GD_S_COVER, /* loop */
92 GD_S_PNEUMATIC_HAMMER, /* loop */
93 GD_S_WATER, /* loop */
94 GD_S_CRACK,
95 GD_S_GRAVITY_CHANGE,
96 GD_S_BONUS_LIFE,
98 GD_S_MAX,
101 struct SoundWithPos {
102 GdSound sound; ///< The sound
103 int dx, dy; ///< Position relative to the active player
104 SoundWithPos() {}
105 SoundWithPos(GdSound sound, int dx, int dy): sound(sound), dx(dx), dy(dy) {}
108 const char *gd_sound_get_filename(GdSound sound);
109 bool gd_sound_is_looped(GdSound sound);
110 bool gd_sound_is_fake(GdSound sound);
111 bool gd_sound_is_classic(GdSound sound);
112 bool gd_sound_force_start(GdSound sound);
113 int gd_sound_get_channel(GdSound sound);
114 int gd_sound_get_precedence(GdSound sound);
115 GdSound gd_sound_classic_equivalent(GdSound sound);
118 #endif /* CAVESOUND.H */