Skip to content

Milestone 21: Implement Global UI SFX Layer & Decouple Settings

Closed
Due by July 18, 2026
Closed Jul 18, 2026

Overview

This milestone focuses on completing the global UI audio layer integration, centralizing focus and navigation SFX across all menu elements, and decoupling configuration parsing to improve codebase architectural clean lines. The primary objectives include refactoring the UI settings framework, establishing input guards to eliminate multi-trigger audio bugs, and hardening the entire audio and navigation pipeline with comprehensive automated test suites using GUT.

🎯 Key Deliverables

  • Global UI Audio Layer & SFX Hooking: Centralize UI SFX mapping within the AudioManager, route menu UI presentational elements correctly, and implement a robust tree node observation loop to automate sound triggers on button focus and navigation.
  • Settings Parsing Decoupling: Extract an in-memory parsing helper (ConfigFile) for system configurations, refactoring load_input_mappings and related initialization scripts to isolate serialization pathways.
  • Input Guard & Bug Mitigation: Resolve critical audio bugs, including duplicate ui_accept triggers during keyboard/gamepad navigation, focus sound fires on volume sliders, and silent main menu button states.
  • Comprehensive GUT Test Validation: Audit, expand, and harden the automated unit testing suites to ensure 100% deterministic validation for UI audio logic, confirmation/cancellation triggers, volume/mute integration, and button hooks.

🚫 Out of Scope for this Milestone

  • Implementing gameplay HUD overlays or real-time engine performance metrics (e.g., FPS counter tracking).
  • Executing deep mixing, asset re-compression, or structural overhauls to the core ambient/combat audio buses.
  • Modifying input map boundaries or visual UI design layouts outside of the focused focus/navigation audio architecture.
100% complete

List view

    There are no open issues in this milestone

    Add issues to milestones to help organize your work for a particular release or project. Find and add issues with no milestones in this repo.