From d1720a0a50e4296e6dcae42f9e44870535b7aa3b Mon Sep 17 00:00:00 2001 From: Zsolt Tasnadi Date: Tue, 17 Feb 2026 20:56:06 +0100 Subject: [PATCH] named desition handler functions --- inc/init/init.context.lua | 27 ++++++++++++++++----------- inc/system/system.desitions.lua | 24 +++++++++++++++++++++++- 2 files changed, 39 insertions(+), 12 deletions(-) diff --git a/inc/init/init.context.lua b/inc/init/init.context.lua index 1922361..f15ac9a 100644 --- a/inc/init/init.context.lua +++ b/inc/init/init.context.lua @@ -47,82 +47,87 @@ local function get_initial_data() game_in_progress = false, -- New flag screens = clone_table({ { + id = "home", name = "Home", decisions = { Util.create_decision( "go_to_toilet", "Go to Toilet", - function() Context.current_screen = 2; Context.selected_desition_index = 1 end + Desitions.go_to_toilet ), Util.create_decision( "go_to_walking_to_office", "Go to Walking to office", - function() Context.current_screen = 3; Context.selected_desition_index = 1 end + Desitions.go_to_walking_to_office ), } }, { + id = "toilet", name = "Toilet", decisions = { Util.create_decision( "go_to_home", "Go to Home", - function() Context.current_screen = 1; Context.selected_desition_index = 1 end + Desitions.go_to_home ), } }, { + id = "walking_to_office", name = "Walking to office", decisions = { Util.create_decision( "go_to_home", "Go to Home", - function() Context.current_screen = 1; Context.selected_desition_index = 1 end + Desitions.go_to_home ), Util.create_decision( "go_to_office", "Go to Office", - function() Context.current_screen = 4; Context.selected_desition_index = 1 end + Desitions.go_to_office ), } }, { + id = "office", name = "Office", decisions = { Util.create_decision( "play_button_mash", "Play Button Mash", - function() Desitions.start_minigame_mash() end + Desitions.start_minigame_mash ), Util.create_decision( "play_rhythm", "Play Rhythm Game", - function() Desitions.start_minigame_rhythm() end + Desitions.start_minigame_rhythm ), Util.create_decision( "play_ddr", "Play DDR (Random)", - function() Desitions.start_minigame_ddr(nil) end + Desitions.start_minigame_ddr ), Util.create_decision( "go_to_walking_to_home", "Go to Walking to home", - function() Context.current_screen = 5; Context.selected_desition_index = 1 end + Desitions.go_to_walking_to_home ), } }, { + id = "walking_to_home", name = "Walking to home", decisions = { Util.create_decision( "go_to_home", "Go to Home", - function() Context.current_screen = 1; Context.selected_desition_index = 1 end + Desitions.go_to_home ), Util.create_decision( "go_to_office", "Go to Office", - function() Context.current_screen = 4; Context.selected_desition_index = 1 end + Desitions.go_to_office ), } } diff --git a/inc/system/system.desitions.lua b/inc/system/system.desitions.lua index 2d311ea..c5c5f6a 100644 --- a/inc/system/system.desitions.lua +++ b/inc/system/system.desitions.lua @@ -1,3 +1,25 @@ +Desitions = {} + +function Desitions.go_to_screen(screen_id) + for i, screen_data in ipairs(Context.screens) do + if screen_data.id == screen_id then + Context.current_screen = i + Context.selected_desition_index = 1 -- Reset selected decision on new screen + return + end + end + -- Handle error: screen_id not found, perhaps show a debug message or a popup + PopupWindow.show({"Error: Screen '" .. screen_id .. "' not found!"}) +end + +-- Specific navigation helpers +function Desitions.go_to_home() Desitions.go_to_screen("home") end +function Desitions.go_to_toilet() Desitions.go_to_screen("toilet") end +function Desitions.go_to_walking_to_office() Desitions.go_to_screen("walking_to_office") end +function Desitions.go_to_office() Desitions.go_to_screen("office") end +function Desitions.go_to_walking_to_home() Desitions.go_to_screen("walking_to_home") end + +-- Minigame functions function Desitions.start_minigame_mash() MinigameButtonMashWindow.start(WINDOW_GAME) end @@ -8,4 +30,4 @@ end function Desitions.start_minigame_ddr(song_key) MinigameDDRWindow.start(WINDOW_GAME, song_key) -end +end \ No newline at end of file