local STATE_HANDLERS = { [WINDOW_SPLASH] = function() SplashWindow.update() SplashWindow.draw() end, [WINDOW_INTRO] = function() IntroWindow.update() IntroWindow.draw() end, [WINDOW_MENU] = function() MenuWindow.update() MenuWindow.draw() end, [WINDOW_GAME] = function() GameWindow.update() GameWindow.draw() end, [WINDOW_POPUP] = function() GameWindow.draw() PopupWindow.update() PopupWindow.draw() end, [WINDOW_CONFIGURATION] = function() ConfigurationWindow.update() ConfigurationWindow.draw() end, [WINDOW_AUDIOTEST] = function() AudioTestWindow.update() AudioTestWindow.draw() end, [WINDOW_MINIGAME_BUTTON_MASH] = function() MinigameButtonMashWindow.update() MinigameButtonMashWindow.draw() end, [WINDOW_MINIGAME_RHYTHM] = function() MinigameRhythmWindow.update() MinigameRhythmWindow.draw() end, [WINDOW_MINIGAME_DDR] = function() MinigameDDRWindow.update() MinigameDDRWindow.draw() end, } local initialized_game = false local function init_game() if initialized_game then return end MenuWindow.refresh_menu_items() initialized_game = true end function TIC() init_game() cls(Config.colors.black) local handler = STATE_HANDLERS[Context.active_window] if handler then handler() end Meters.update() if Context.game_in_progress then UI.draw_meters() end end