diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..623d73a --- /dev/null +++ b/.editorconfig @@ -0,0 +1,7 @@ +root = true +[*] +end_of_line = lf +insert_final_newline = true +[*.go] +indent_style = tab +indent_size = 4 diff --git a/engine/audio/manager.go b/engine/audio/manager.go index 11041f7..36fdd71 100644 --- a/engine/audio/manager.go +++ b/engine/audio/manager.go @@ -55,7 +55,9 @@ func (sm *Manager) Stop(id SoundID) { } func (sm Manager) IsPlaying(id SoundID) bool { - return rl.IsSoundPlaying(*sm.library.Get(id)) + return slices.ContainsFunc(sm.active, func(e audio) bool { + return e.id == id + }) } // Pause all active sounds diff --git a/game/state/handlers/gameover.go b/game/state/handlers/gameover.go index 9b35471..9c557ee 100644 --- a/game/state/handlers/gameover.go +++ b/game/state/handlers/gameover.go @@ -19,10 +19,12 @@ func (GameOver) Exit() { } func (GameOver GameOver) Update(fsm state.Transitioner, delta float32) { - if rl.IsKeyPressed(rl.KeyEnter) { - fsm.Switch("gameplay") - } else if rl.IsKeyPressed(rl.KeyQ) { - fsm.Switch("menu") + if !audio.IsPlaying(assets.SFX_GAME_OVER) { + if rl.IsKeyPressed(rl.KeyEnter) { + fsm.Switch("gameplay") + } else if rl.IsKeyPressed(rl.KeyQ) { + fsm.Switch("menu") + } } }