# Changelog All notable changes to Frame of Mind since commit `c75348845a5136379ce9ab09d2ff64b7bec90f12`. ## [Unreleased] ### Features - New interactable system with action prompts that can play scenes - Added new interactables to youth room with repositioned layout - Interactable prompts now update dynamically based on collected state (shows \"read again\" after collection) - Type-safe interactive handling for player - Room loading system implementation - Basic room start logic - Room play functionality ### Fixes #### Interactables & Positioning - Small improvements to positioning - Sorting function was not according to spec #### Save System - Save game parsing failure no longer crashes the game - Save game directory creation on first load - Fixed race condition with settings initialization - New save game only creates once (reduced from multiple duplicates) - Save game picker layout improvements #### UI & Menus - Fixed markdown not loading nonexistent resources - Markdown now uses application theme - Fixed masking on loading indicator - Fixed loading spinner animation states - Fixed screenshot size (was 261, corrected to 216 height) - Nav UI in accessibility settings is now accessible again - Card picker input propagation fixed - Card picker now closes properly - Cards now derived from prefab scene - Text updates now forced to deferred - Skip buttons work via mouse - Cardboard can now be clicked and opened #### Player & Controls - Player crouching on leaving bed fixed - Line renderer errors due to zero magnitude axis fixed - Climb volume now automatically crouches the player - Player raising and crouching stabilized - Removed annoying half-second wait - Player controller cleanup #### Rooms & Scenes - Theme files reconstructed - Regenerated missing UIDs in theme files - Resaved various scenes to fix UIDs - Removed forced preload of all 3 base rooms - Fixed various path and hierarchy issues in youth room - Viewport children no longer break - Found and fixed many broken/orphaned viewports in youth room - Main scene is no longer a Control (fixed input issues) - Removed broken LightmapGI node that was causing scene to be dirtied on every load #### Story & Playables - Story playables no longer destroy their own serialized text - Reinstated accidentally deleted paragraph length data - Fixed Draven/Draeven naming inconsistencies - Manual scroll enable on Draven and Voice fixed - Story playables now control their own canvas layer visibility - Board now correctly identifies itself #### Code Quality - Fixed hardcoded localization load (en) removed from scene player - Fixed settings panel refactoring path - Fixed shadowing issues in card-board - Fixed syntax errors - Removed all warnings - Fixed untyped variables throughout codebase - Fixed unknown fields issues ### Refactored - New interactable system replaces old interactive_sprite.gd system - Interactable now has separate `_update_caption()` and `_update_prompt()` methods - Renamed `collectable.gd` to `interactive_sprite.gd` - Moved various embedded scripts to their own `.gd` files - Focus system refactored - Removed deprecated sequencing calls - Removed deprecated signals and `is_board` - Stage system refactored, dead code cleared - Collectable logic refactored - Renamed `SaveGameHandle` to `SaveGameList` - Renamed `scnees` folder to `scenes` - Menu animations moved to tweens/subscenes - Better inheritance and render order for mementos - New direct interactable system ### Changed - Replaced all bare `print()` statements with `print_debug()` - Game window set to 1600x900 for better testing/debugging - Explicit search index layout - Main scene changed from Control to different node type ### Tests - Added player tests for crouching and raiser functionality - Raiser now uses AnimatableBody3D ### Chores - Generated missing .import files - Added IDE configuration files - Fixed button/Button filename case issues - Cleaned up project structure - Updated .gitignore files