From 3b9c61329b04cbd891e85f83839315bda24dd342 Mon Sep 17 00:00:00 2001 From: Nyeogmi Date: Sun, 11 Feb 2024 20:18:01 -0800 Subject: [PATCH] Add music manager --- completion_tracker.lua | 9 +++++++++ main.lua | 1 - main.p8 | 1 + music_manager.lua | 10 ++++++++++ state_menu.lua | 8 ++++++-- 5 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 music_manager.lua diff --git a/completion_tracker.lua b/completion_tracker.lua index 7cc4ffc..ca4c109 100644 --- a/completion_tracker.lua +++ b/completion_tracker.lua @@ -33,6 +33,15 @@ end function completion_tracker:advance_completion_level(clevel) dset(0,max(dget(0), clevel)) end + +function completion_tracker:get_music_preference() + return dget(59)==0 +end +function completion_tracker:set_music_preference() + if (dget(59)==0) dset(59,1) return + dset(59,0) +end + -- TODO: Bitfield instead function completion_tracker:mark_seen(text_id) local ix,bit=self:_unpack_text_id(text_id) diff --git a/main.lua b/main.lua index 67801a7..801e69e 100644 --- a/main.lua +++ b/main.lua @@ -2,7 +2,6 @@ main={} add(modules,main) function main:init() - music(0) extcmd("rec") self.state_manager=state_manager:new() -- instantiate one global self.state_manager:push(state_menu:new()) diff --git a/main.p8 b/main.p8 index b786ef1..2f199ed 100644 --- a/main.p8 +++ b/main.p8 @@ -14,6 +14,7 @@ __lua__ #include layout.lua #include layout_hint.lua #include liturgy.lua +#include music_manager.lua #include ruleset.lua #include palette.lua #include progression.lua diff --git a/music_manager.lua b/music_manager.lua new file mode 100644 index 0000000..07a036a --- /dev/null +++ b/music_manager.lua @@ -0,0 +1,10 @@ +music_manager={} +add(modules,music_manager) +function music_manager:init() +end +function music_manager:update() + local is_playing = stat(54) != -1 + local should_be_playing = completion_tracker:get_music_preference() + if (is_playing and not should_be_playing) music(-1,500) + if (not is_playing and should_be_playing) music(0) +end \ No newline at end of file diff --git a/state_menu.lua b/state_menu.lua index 98111ab..a0aaa66 100644 --- a/state_menu.lua +++ b/state_menu.lua @@ -10,8 +10,12 @@ function state_menu:init() main.state_manager:push(state_archaeology:new()) end), menu_option:new(), - menu_option:new(function() return "music" end,function() - -- todo: music manager + menu_option:new(function() + local pref=completion_tracker:get_music_preference() + if (pref) return "stop music" + return "start music" + end,function() + completion_tracker:set_music_preference(not completion_tracker:get_music_preference()) end), menu_option:new(function() return "reset data" end,function() main.state_manager:push(state_reset_menu:new(self))