Skip to content

Global Settings Menu

NebSeniah edited this page Jul 22, 2026 · 2 revisions

System Summary

Global Settings Menu is where application-wide settings are changed, currently the only settings contained in the menu are Master Volume, SFX Volume, and Music Volume.


Connected Systems

List of connecting/parent/subsystems.

Connecting Systems:

Subsystems:

  • No Subsystems

Related Controls

List of related controls.

Key(s): (Esc)

  • Closes the menu

Bugs

List of known bugs. Be descriptive but keep it brief!

  • None

Feature List / Breakdown of Features

List of features and descriptions within system.

Feature Name:

  • Volume Control
    • Master, SFX, and Music sliders for controlling different sound volume
    • Plays a short demo of the sound / music to provide feedback when adjusting volume
    • Saves current settings into a Config File in the user's root directory
    • Reads saved settings in a Config File on application loading

Important Variables

  • musicPreviewing: bool = True when music is being previewed via the music volume slider.

Important Functions

Name of the most important functions, their parameters, and what they do.

  • func _on_dragging_SFX() -> void: Play a demo of SFX while dragging the SFX/Master volume slider.

  • func _on_dragging_start_music() -> void: When starting to drag the music slider, start playing the level music as a demo.

  • func _on_dragging_end_music() -> void: When releasing, tell the Audio Manager to stop after at least 1.5 seconds has passed.

  • func load_settings() -> void: Load the existing config file if the path exists and copy the values stored in it to the slider values.

  • func save_settings() -> void: Create a new config file for the volume slider values and save it.


Future Work / Risks

List and description of upcoming work/risks.

Future Work:

  1. Auto Saving
  2. Language
  3. Colourblind mode toggle
  4. Resolution
  5. Themes / Light and Dark Mode
  6. Unit of Measurement

Risks:

  • None currently, config file should be able to add more values easily.

Miscellaneous Notes

  • When adding a new setting, add the appropriate slider (if needed)
    • Future settings might need to use property menu dropdown/toggle.
  • Add the new setting to save/load as well.

Clone this wiki locally