diff --git a/Source/Features/Features.h b/Source/Features/Features.h index 5774fdfea9c..23bde5e4c96 100644 --- a/Source/Features/Features.h +++ b/Source/Features/Features.h @@ -10,6 +10,14 @@ template struct Features { + Features(FeaturesStates& states, FeatureHelpers& helpers, Hooks& hooks, HookContext& hookContext) noexcept + : states{states} + , helpers{helpers} + , hooks{hooks} + , hookContext{hookContext} + { + } + [[nodiscard]] auto hudFeatures() const noexcept { return HudFeatures{states.hudFeaturesStates, hookContext}; diff --git a/Source/Features/Hud/HudFeatures.h b/Source/Features/Hud/HudFeatures.h index 75691e040d6..f9f5a759109 100644 --- a/Source/Features/Hud/HudFeatures.h +++ b/Source/Features/Hud/HudFeatures.h @@ -19,6 +19,12 @@ template struct HudFeatures { + HudFeatures(HudFeaturesStates& states, HookContext& hookContext) noexcept + : states{states} + , hookContext{hookContext} + { + } + [[nodiscard]] auto bombTimerToggle() const noexcept { return BombTimerToggle{BombTimerContext{hookContext}}; diff --git a/Source/Features/Sound/SoundFeatures.h b/Source/Features/Sound/SoundFeatures.h index a8e7c253f2c..2e5c8a8c2d9 100644 --- a/Source/Features/Sound/SoundFeatures.h +++ b/Source/Features/Sound/SoundFeatures.h @@ -11,6 +11,14 @@ template struct SoundFeatures { + SoundFeatures(SoundFeaturesStates& states, FeatureHelpers& helpers, ViewRenderHook& viewRenderHook, HookContext& hookContext) noexcept + : states{states} + , helpers{helpers} + , viewRenderHook{viewRenderHook} + , hookContext{hookContext} + { + } + [[nodiscard]] auto footstepVisualizer() const noexcept { return soundVisualizationFeature(states.footstepVisualizerState); diff --git a/Source/Features/Visuals/VisualFeatures.h b/Source/Features/Visuals/VisualFeatures.h index db9af73fdd2..2ed03c42dfb 100644 --- a/Source/Features/Visuals/VisualFeatures.h +++ b/Source/Features/Visuals/VisualFeatures.h @@ -13,6 +13,13 @@ class LoopModeGameHook; template struct VisualFeatures { + VisualFeatures(HookContext& hookContext, VisualFeaturesStates& states, ViewRenderHook& viewRenderHook) noexcept + : hookContext{hookContext} + , states{states} + , viewRenderHook{viewRenderHook} + { + } + [[nodiscard]] auto playerInformationThroughWalls() const noexcept { return PlayerInformationThroughWallsToggle{states.playerInformationThroughWallsState, hookContext, viewRenderHook};