diff --git a/game/sounds.c b/game/sounds.c index 6b64355..289c2b8 100644 --- a/game/sounds.c +++ b/game/sounds.c @@ -27,7 +27,7 @@ bool soundsPlay(SoundState *sounds, SoundType type) { i32 freeSlot = -1; for (i32 i = 0; i < SOUND_MAX_PLAYING; i++) { - if (IsSoundPlaying(sounds->playing[i])) { + if (!IsSoundPlaying(sounds->playing[i])) { freeSlot = i; break; } @@ -36,6 +36,7 @@ bool soundsPlay(SoundState *sounds, SoundType type) { return false; } + sounds->playing[freeSlot] = sounds->sounds[type]; PlaySound(sounds->playing[freeSlot]); SetSoundVolume(sounds->playing[freeSlot], sounds->soundVolume); sounds->soundLastPlayed[type] = time; diff --git a/game/systems/s_event.c b/game/systems/s_event.c index 4ced63f..11441d1 100644 --- a/game/systems/s_event.c +++ b/game/systems/s_event.c @@ -22,6 +22,9 @@ void damageEvent(ecs_entity_t entity, DamageEvent event) { bloodEmitter.targetParticles = ecs_id(ParticleLayer1); ecs_set_ptr(ECS, bloodEmitterEntity, ParticleEmitter, &bloodEmitter); + SoundState *sounds = ecs_singleton_get_mut(ECS, SoundState); + bool status = soundsPosPlay(sounds, center, getRandomSoundType(SOUND_HURT_1, SOUND_HURT_3)); + Vector2 pos = { event.hitbox.x + event.hitbox.width * 0.5f + randFloatRange(-2, 2), event.hitbox.y + randFloatRange(2, 4)