Open
Consolidate interpreter window access and replace WheelHandler singleton with ControlDeck-owned dependency#1099
Conversation
…ous stop/start functions on the component
…mponent, and more const correctness on Component
Agent-Logs-Url: https://github.com/Kenix3/libultraship/sessions/b4695fb9-0536-49fa-8127-a7bf8601c161 Co-authored-by: Kenix3 <18299654+Kenix3@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Kenix3/libultraship/sessions/b4695fb9-0536-49fa-8127-a7bf8601c161 Co-authored-by: Kenix3 <18299654+Kenix3@users.noreply.github.com>
…on and Tickable Agent-Logs-Url: https://github.com/Kenix3/libultraship/sessions/e1f25802-7e77-4e57-9816-721cd967f252 Co-authored-by: Kenix3 <18299654+Kenix3@users.noreply.github.com>
…n, follow header/cpp convention Agent-Logs-Url: https://github.com/Kenix3/libultraship/sessions/6e90e1a4-728a-444d-92d4-72d5a92fec6a Co-authored-by: Kenix3 <18299654+Kenix3@users.noreply.github.com>
… remove HasParent/HasChild from Component Agent-Logs-Url: https://github.com/Kenix3/libultraship/sessions/24ec6af5-909d-4cd3-af8d-076796aa6397 Co-authored-by: Kenix3 <18299654+Kenix3@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Kenix3/libultraship/sessions/80579ca8-e4d2-4e10-a487-222998ecdcca Co-authored-by: Kenix3 <18299654+Kenix3@users.noreply.github.com>
…ponent Agent-Logs-Url: https://github.com/Kenix3/libultraship/sessions/cc8bd86d-fa85-4f01-ae3b-e4987edff7c3 Co-authored-by: Kenix3 <18299654+Kenix3@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Kenix3/libultraship/sessions/f4d5fa12-709f-4925-be34-d81c2a4c4cbf Co-authored-by: Kenix3 <18299654+Kenix3@users.noreply.github.com>
… inheritance Agent-Logs-Url: https://github.com/Kenix3/libultraship/sessions/62f8bf75-9815-47f8-93b4-a54c20f7bfe5 Co-authored-by: Kenix3 <18299654+Kenix3@users.noreply.github.com>
…ashHandler ctor, TickableComponent shared_from_this, add Component::GetChild<T>() Agent-Logs-Url: https://github.com/Kenix3/libultraship/sessions/229a7c8a-e77b-48d9-b998-36f65cce7d44 Co-authored-by: Kenix3 <18299654+Kenix3@users.noreply.github.com>
…attern instead Agent-Logs-Url: https://github.com/Kenix3/libultraship/sessions/229a7c8a-e77b-48d9-b998-36f65cce7d44 Co-authored-by: Kenix3 <18299654+Kenix3@users.noreply.github.com>
…ThreadPoolComponent Agent-Logs-Url: https://github.com/Kenix3/libultraship/sessions/229a7c8a-e77b-48d9-b998-36f65cce7d44 Co-authored-by: Kenix3 <18299654+Kenix3@users.noreply.github.com>
…ods from Context, add LoggerComponent and ThreadPoolComponent, move thread pool from ResourceManager to Context, fix tests Agent-Logs-Url: https://github.com/Kenix3/libultraship/sessions/229a7c8a-e77b-48d9-b998-36f65cce7d44 Co-authored-by: Kenix3 <18299654+Kenix3@users.noreply.github.com>
…e empty PartList.cpp Agent-Logs-Url: https://github.com/Kenix3/libultraship/sessions/229a7c8a-e77b-48d9-b998-36f65cce7d44 Co-authored-by: Kenix3 <18299654+Kenix3@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Kenix3/libultraship/sessions/d91a49a0-15d0-4146-8b9a-fed34b66fa28 Co-authored-by: Kenix3 <18299654+Kenix3@users.noreply.github.com>
Resolve merge conflicts keeping component system accessor patterns (GetChildren().GetFirst<T>()) while integrating new features from main: - EventSystem, ScriptLoader, Keystore infrastructure - MouseStateManager refactor - Shader name lookup support - Archive validation with crypto signing - Configurable log levels - Address filtering in interpreter - DLL loader and scripting build options - Test suite from main (lus_tests) Co-authored-by: Kenix3 <18299654+Kenix3@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Kenix3/libultraship/sessions/9fe3ac5c-d9ac-4f69-b277-e9d2c6ba042e Co-authored-by: Kenix3 <18299654+Kenix3@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Kenix3/libultraship/sessions/376d0806-f474-434d-bdfd-53e89a35f8cb Co-authored-by: Kenix3 <18299654+Kenix3@users.noreply.github.com>
Add documentation comments to 7 header files that were modified when converting classes to the Component hierarchy. Comments follow the existing codebase style using @brief, @param, and @return tags. Files documented: - ArchiveManager.h: Full javadoc restored for all public/protected methods - Window.h: Class, enums, structs, and all methods documented - GuiElement.h: Class and lifecycle methods documented - GuiWindow.h: Class and all constructor overloads documented - GfxDebugger.h: Class and all public methods documented - classes.h: File-level umbrella header comment added - FileDropMgr.h: Class, typedef, and all methods documented Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Kenix3 <18299654+Kenix3@users.noreply.github.com>
Document all 13 new header files in the component system with Javadoc-style comments using @brief, @param, @return, and @tparam tags: - Part.h: Base identifiable class with auto-assigned IDs - PartList.h: Templated ordered list with ListReturnCode enum - Component.h: Named Part with parent/child hierarchy - ComponentList.h: Name- and type-based Component lookups - Action.h: Discrete operation with ClockType/ActionType enums - ActionList.h: Action-type-based lookup helpers - Tickable.h: Action manager with type-sorted execution - TickableComponent.h: Combined Tickable+Component with Context registration - DrawAction.h, DrawDebugMenuAction.h, TickAction.h: Concrete Actions - LoggerComponent.h: spdlog::logger wrapper - ThreadPoolComponent.h: BS::thread_pool wrapper Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Kenix3 <18299654+Kenix3@users.noreply.github.com>
…ormat-14 - Fix gfx_opengl.cpp: restore missing shader processing code (result variable) - Fix Archive.cpp: remove duplicate LoadFile(uint64_t) definition - Add Doxygen documentation to all PR-changed headers - Add Doxygen documentation to all new component system headers - Apply clang-format-14 to all modified files Co-authored-by: Kenix3 <18299654+Kenix3@users.noreply.github.com>
…GetFirst, Logger init in component, Part context ref, ComponentList propagates context, Component::Tick, GameOverlay extends Component, Gui/Fast3dGui use GetContext, Context sets itself Agent-Logs-Url: https://github.com/Kenix3/libultraship/sessions/11e0fb9d-19f7-489a-92b0-bae87b9f5808 Co-authored-by: Kenix3 <18299654+Kenix3@users.noreply.github.com>
…remove Component::Tick, add Context::Tick, remove Context::GetInstance symbol Agent-Logs-Url: https://github.com/Kenix3/libultraship/sessions/36a862eb-2701-40b4-99e1-25d08c8555b3 Co-authored-by: Kenix3 <18299654+Kenix3@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Kenix3/libultraship/sessions/36a862eb-2701-40b4-99e1-25d08c8555b3 Co-authored-by: Kenix3 <18299654+Kenix3@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Kenix3/libultraship/sessions/4f8a1c12-9a3e-4617-bfcd-28f39e812f39 Co-authored-by: Kenix3 <18299654+Kenix3@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Kenix3/libultraship/sessions/faf17b3a-2453-4f3f-9b9c-37916ebc2eb0 Co-authored-by: Kenix3 <18299654+Kenix3@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Kenix3/libultraship/sessions/faf17b3a-2453-4f3f-9b9c-37916ebc2eb0 Co-authored-by: Kenix3 <18299654+Kenix3@users.noreply.github.com>
…HierarchyWindow, fix ConsoleWindow commands Agent-Logs-Url: https://github.com/Kenix3/libultraship/sessions/e7cdd90b-99a3-4dc2-8e71-9ca945f90e97 Co-authored-by: Kenix3 <18299654+Kenix3@users.noreply.github.com>
- ComponentHierarchyWindow: remove mContext, use Part::GetContext() instead - ConsoleWindow: remove Console param from private command methods, use mConsole - Fast3dWindow: remove sCurrentWindow; cache Fast3dWindow in Interpreter.mFast3dWindow, use Interpreter::GetCurrentWindow() in static callbacks - ResourceManager: add template LoadResource<T> overloads; update GameOverlay.cpp to use them - Run clang-format-14 across all src/include files
Copilot
AI
changed the title
Fix Windows CI failures branched from PR #1094
Refactor: ComponentHierarchyWindow context, ConsoleWindow command methods, sCurrentWindow, and ResourceManager typed loads
May 30, 2026
Copilot
AI
changed the title
Refactor: ComponentHierarchyWindow context, ConsoleWindow command methods, sCurrentWindow, and ResourceManager typed loads
Fix Windows CI build failures and clang-tidy errors from transitive include removal
May 30, 2026
Copilot
AI
changed the title
Fix Windows CI build failures and clang-tidy errors from transitive include removal
Consolidate interpreter window access and replace WheelHandler singleton with ControlDeck-owned dependency
May 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This addresses two review points: removing redundant Interpreter window accessors and eliminating
WheelHandler::GetInstance()in favor of explicit ownership. Wheel input state is now sourced throughControlDeck, which already sits on the controller/mapping path.Interpreter window access cleanup
Interpreter::GetFast3dWindow()and kept a single access path viaInterpreter::GetCurrentWindow().GetCurrentWindow()now resolves the cached weak window pointer directly from the live interpreter instance.WheelHandler lifecycle/ownership
WheelHandler::GetInstance(...).ControlDecknow creates/caches aWheelHandlerduringInit(...)and exposes it withGetWheelHandler().Wheel input call-site migration
ControlDeck::GetWheelHandler().