Skip to content

settings

Anthony Samms edited this page Jun 2, 2026 · 1 revision

The settings screen lets players configure game options across six categories — General, Nameplate, Keybinds, Controller, Audio, and Video — before returning to the entry screen. Navigation uses the Taiko drum inputs, and any changes are saved to the config on exit.

The screen is constructed with the name "settings", which the base Screen class uses to load the correct textures and sounds from the active skin. The layout of all setting boxes and their options is driven by settings_template.json in the active skin's Graphics folder.

SettingsScreen

Inherits from Screen. Constructed with the screen name "settings".

Members

Member Type Description
box_manager SettingsBoxManager Owns all setting boxes and their options
indicator Indicator Animated "SELECT" state indicator
coin_overlay CoinOverlay Global coin display
allnet_icon AllNetIcon Online connectivity indicator

Lifecycle

void on_screen_start() override;

Calls Screen::on_screen_start() to load skin assets, starts background music, and constructs the SettingsBoxManager from settings_template.json. The Indicator, CoinOverlay, and AllNetIcon overlays are also initialized here.

Screens on_screen_end(Screens next_screen) override;

Saves all modified settings to the config file and reinitializes the audio device with any new audio settings. Then delegates to Screen::on_screen_end() to unload all sounds, music, and textures.

Update

std::optional<Screens> update() override;

Each frame it:

  1. Calls Screen::update() for first-frame initialization.
  2. Advances the indicator, coin_overlay, and allnet_icon animations.
  3. Calls handle_input().
  4. Updates the box_manager.
  5. If the box_manager has queued a screen change (e.g., opening audio calibration), returns that screen.

Returns std::nullopt while the screen is still active.

Input Handling

void handle_input();
Input Action
F1 Transition to INPUT_CALI (input calibration)
F2 Transition to SKIN_VIEWER
Left Kat Move left — navigate to the previous box, or move left within the active box's options
Right Kat Move right — navigate to the next box, or move right within the active box's options
Left Don / Right Don Confirm — enter the selected box or confirm the current option value

Draw

void draw() override;

Renders in the following order:

  1. BACKGROUND::BACKGROUND — full-screen background texture.
  2. box_manager->draw() — all setting boxes and their options.
  3. BACKGROUND::FOOTER — bottom bar overlay.
  4. indicator->draw(), coin_overlay->draw(), allnet_icon->draw().

Clone this wiki locally