diff options
| author | Aldrik Ramaekers <aldrik@amftech.nl> | 2023-10-29 09:06:10 +0100 |
|---|---|---|
| committer | Aldrik Ramaekers <aldrik@amftech.nl> | 2023-10-29 09:06:10 +0100 |
| commit | 2bcffc7def20dd1e660d742f54bd97307b9f193d (patch) | |
| tree | 84443fceb1b067549874b4f14e0d4aa36b0630db /src/audio.c | |
| parent | d2c3f612b3d7b0071e98e589777d495ba45eafe4 (diff) | |
grenade work
Diffstat (limited to 'src/audio.c')
| -rw-r--r-- | src/audio.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/audio.c b/src/audio.c index c6f69b9..734bec6 100644 --- a/src/audio.c +++ b/src/audio.c @@ -1,10 +1,19 @@ #include "../include/audio.h" +void add_throwable_audio_event_to_queue(audio_event_type event, throwable_type throwable, u32 playerid, vec3f position) { + for (int i = 0; i < max_audio_events; i++) { + if (audio_events[i].active) continue; + + audio_events[i] = (audio_event){.active = true, .throwable = throwable, .obj = OBJECT_NONE, .zombie = ZOMBIE_TYPE_NONE, .playerid = playerid, .position = position, .type = event}; + return; + } +} + void add_zombie_audio_event_to_queue(audio_event_type event, zombie_type zombie, u32 playerid, vec3f position) { for (int i = 0; i < max_audio_events; i++) { if (audio_events[i].active) continue; - audio_events[i] = (audio_event){.active = true, .obj = OBJECT_NONE, .zombie = zombie, .playerid = playerid, .position = position, .type = event}; + audio_events[i] = (audio_event){.active = true, .throwable = THROWABLE_NONE, .obj = OBJECT_NONE, .zombie = zombie, .playerid = playerid, .position = position, .type = event}; return; } } @@ -13,7 +22,7 @@ void add_object_audio_event_to_queue(audio_event_type event, object_type obj, u3 for (int i = 0; i < max_audio_events; i++) { if (audio_events[i].active) continue; - audio_events[i] = (audio_event){.active = true, .obj = obj, .zombie = ZOMBIE_TYPE_NONE, .playerid = playerid, .position = position, .type = event}; + audio_events[i] = (audio_event){.active = true, .throwable = THROWABLE_NONE, .obj = obj, .zombie = ZOMBIE_TYPE_NONE, .playerid = playerid, .position = position, .type = event}; return; } } @@ -29,6 +38,7 @@ static int get_channel_from_audio_event_type(audio_event_type event) { case EVENT_SHOOT: return CHANNEL_SHOOTING; case EVENT_RELOAD: return CHANNEL_RELOAD; case EVENT_IMPACT: return CHANNEL_IMPACT; + case EVENT_EXPLODE_THROWABLE: return CHANNEL_EXPLODE; default: return 0; } @@ -41,6 +51,12 @@ static Mix_Chunk* get_sample_from_audio_event(audio_event event, u32 playerid) { switch (event.type) { case EVENT_BOUNCE_THROWABLE: return wav_throwable_bounce; + case EVENT_EXPLODE_THROWABLE: { + switch(event.throwable) { + case THROWABLE_GRENADE: return wav_grenade_explode; + default: return wav_error; + } + } case EVENT_SHOOT: { switch (p->guntype) { |
