@@ -134,80 +134,6 @@ struct SetCommandHandler {
134134 modelGlowToggle ().updateDefuseKitModelGlowToggle (parser.getChar ());
135135 } else if (feature == " grenade_proj_model_glow" ) {
136136 modelGlowToggle ().updateGrenadeProjectileModelGlowToggle (parser.getChar ());
137- } else if (feature == " player_model_glow_blue_hue_text" ) {
138- handleHueTextEntry<model_glow_vars::PlayerBlueHue>(" player_model_glow_blue_hue" );
139- } else if (feature == " player_model_glow_green_hue_text" ) {
140- handleHueTextEntry<model_glow_vars::PlayerGreenHue>(" player_model_glow_green_hue" );
141- } else if (feature == " player_model_glow_yellow_hue_text" ) {
142- handleHueTextEntry<model_glow_vars::PlayerYellowHue>(" player_model_glow_yellow_hue" );
143- } else if (feature == " player_model_glow_orange_hue_text" ) {
144- handleHueTextEntry<model_glow_vars::PlayerOrangeHue>(" player_model_glow_orange_hue" );
145- } else if (feature == " player_model_glow_purple_hue_text" ) {
146- handleHueTextEntry<model_glow_vars::PlayerPurpleHue>(" player_model_glow_purple_hue" );
147- } else if (feature == " player_model_glow_t_hue_text" ) {
148- handleHueTextEntry<model_glow_vars::TeamTHue>(" player_model_glow_t_hue" );
149- } else if (feature == " player_model_glow_ct_hue_text" ) {
150- handleHueTextEntry<model_glow_vars::TeamCTHue>(" player_model_glow_ct_hue" );
151- } else if (feature == " player_model_glow_low_hp_hue_text" ) {
152- handleHueTextEntry<model_glow_vars::LowHealthHue>(" player_model_glow_low_hp_hue" );
153- } else if (feature == " player_model_glow_high_hp_hue_text" ) {
154- handleHueTextEntry<model_glow_vars::HighHealthHue>(" player_model_glow_high_hp_hue" );
155- } else if (feature == " player_model_glow_enemy_hue_text" ) {
156- handleHueTextEntry<model_glow_vars::EnemyHue>(" player_model_glow_enemy_hue" );
157- } else if (feature == " player_model_glow_ally_hue_text" ) {
158- handleHueTextEntry<model_glow_vars::AllyHue>(" player_model_glow_ally_hue" );
159- } else if (feature == " model_glow_molotov_hue_text" ) {
160- handleHueTextEntry<model_glow_vars::MolotovHue>(" model_glow_molotov_hue" );
161- } else if (feature == " model_glow_flashbang_hue_text" ) {
162- handleHueTextEntry<model_glow_vars::FlashbangHue>(" model_glow_flashbang_hue" );
163- } else if (feature == " model_glow_hegrenade_hue_text" ) {
164- handleHueTextEntry<model_glow_vars::HEGrenadeHue>(" model_glow_hegrenade_hue" );
165- } else if (feature == " model_glow_smoke_hue_text" ) {
166- handleHueTextEntry<model_glow_vars::SmokeGrenadeHue>(" model_glow_smoke_hue" );
167- } else if (feature == " model_glow_dropped_bomb_hue_text" ) {
168- handleHueTextEntry<model_glow_vars::DroppedBombHue>(" model_glow_dropped_bomb_hue" );
169- } else if (feature == " model_glow_ticking_bomb_hue_text" ) {
170- handleHueTextEntry<model_glow_vars::TickingBombHue>(" model_glow_ticking_bomb_hue" );
171- } else if (feature == " model_glow_defuse_kit_hue_text" ) {
172- handleHueTextEntry<model_glow_vars::DefuseKitHue>(" model_glow_defuse_kit_hue" );
173- } else if (feature == " player_outline_glow_blue_hue_text" ) {
174- handleHueTextEntry<outline_glow_vars::PlayerBlueHue>(" player_outline_glow_blue_hue" );
175- } else if (feature == " player_outline_glow_green_hue_text" ) {
176- handleHueTextEntry<outline_glow_vars::PlayerGreenHue>(" player_outline_glow_green_hue" );
177- } else if (feature == " player_outline_glow_yellow_hue_text" ) {
178- handleHueTextEntry<outline_glow_vars::PlayerYellowHue>(" player_outline_glow_yellow_hue" );
179- } else if (feature == " player_outline_glow_orange_hue_text" ) {
180- handleHueTextEntry<outline_glow_vars::PlayerOrangeHue>(" player_outline_glow_orange_hue" );
181- } else if (feature == " player_outline_glow_purple_hue_text" ) {
182- handleHueTextEntry<outline_glow_vars::PlayerPurpleHue>(" player_outline_glow_purple_hue" );
183- } else if (feature == " player_outline_glow_t_hue_text" ) {
184- handleHueTextEntry<outline_glow_vars::TeamTHue>(" player_model_glow_t_hue" );
185- } else if (feature == " player_outline_glow_ct_hue_text" ) {
186- handleHueTextEntry<outline_glow_vars::TeamCTHue>(" player_outline_glow_ct_hue" );
187- } else if (feature == " player_outline_glow_low_hp_hue_text" ) {
188- handleHueTextEntry<outline_glow_vars::LowHealthHue>(" player_outline_glow_low_hp_hue" );
189- } else if (feature == " player_outline_glow_high_hp_hue_text" ) {
190- handleHueTextEntry<outline_glow_vars::HighHealthHue>(" player_outline_glow_high_hp_hue" );
191- } else if (feature == " player_outline_glow_enemy_hue_text" ) {
192- handleHueTextEntry<outline_glow_vars::EnemyHue>(" player_outline_glow_enemy_hue" );
193- } else if (feature == " player_outline_glow_ally_hue_text" ) {
194- handleHueTextEntry<outline_glow_vars::AllyHue>(" player_outline_glow_ally_hue" );
195- } else if (feature == " outline_glow_molotov_hue_text" ) {
196- handleHueTextEntry<outline_glow_vars::MolotovHue>(" outline_glow_molotov_hue" );
197- } else if (feature == " outline_glow_flashbang_hue_text" ) {
198- handleHueTextEntry<outline_glow_vars::FlashbangHue>(" outline_glow_flashbang_hue" );
199- } else if (feature == " outline_glow_hegrenade_hue_text" ) {
200- handleHueTextEntry<outline_glow_vars::HEGrenadeHue>(" outline_glow_hegrenade_hue" );
201- } else if (feature == " outline_glow_smoke_hue_text" ) {
202- handleHueTextEntry<outline_glow_vars::SmokeGrenadeHue>(" outline_glow_smoke_hue" );
203- } else if (feature == " outline_glow_dropped_bomb_hue_text" ) {
204- handleHueTextEntry<outline_glow_vars::DroppedBombHue>(" outline_glow_dropped_bomb_hue" );
205- } else if (feature == " outline_glow_ticking_bomb_hue_text" ) {
206- handleHueTextEntry<outline_glow_vars::TickingBombHue>(" outline_glow_ticking_bomb_hue" );
207- } else if (feature == " outline_glow_defuse_kit_hue_text" ) {
208- handleHueTextEntry<outline_glow_vars::DefuseKitHue>(" outline_glow_defuse_kit_hue" );
209- } else if (feature == " outline_glow_hostage_hue_text" ) {
210- handleHueTextEntry<outline_glow_vars::HostageHue>(" outline_glow_hostage_hue" );
211137 } else if (feature == " viewmodel_mod" ) {
212138 handleTogglableVariable<viewmodel_mod_vars::Enabled>();
213139 } else if (feature == " viewmodel_fov_mod" ) {
@@ -273,62 +199,13 @@ struct SetCommandHandler {
273199 return value;
274200 }
275201
276- template <typename ConfigVariable>
277- void handleHueTextEntry (const char * sliderId) const noexcept
278- {
279- const auto newVariableValue = handleHueTextEntry (sliderId, ConfigVariable::ValueType::kMin , ConfigVariable::ValueType::kMax , GET_CONFIG_VAR (ConfigVariable));
280- hookContext.config ().template setVariable <ConfigVariable>(typename ConfigVariable::ValueType{newVariableValue});
281- }
282-
283- [[nodiscard]] color::HueInteger handleHueTextEntry (const char * sliderId, color::HueInteger min, color::HueInteger max, color::HueInteger current) const noexcept
284- {
285- auto && hueSlider = getHueSlider (sliderId);
286- const auto hue = parseHueVariable (min, max);
287- if (!hue.has_value ()) {
288- hueSlider.updateTextEntry (current);
289- return current;
290- }
291-
292- if (*hue == current)
293- return current;
294-
295- hueSlider.updateSlider (*hue);
296- hueSlider.updateColorPreview (*hue);
297- return *hue;
298- }
299-
300- [[nodiscard]] decltype (auto ) getHueSlider(const char * sliderId) const noexcept
301- {
302- const auto mainMenuPointer = hookContext.patternSearchResults ().template get <MainMenuPanelPointer>();
303- auto && mainMenu = hookContext.template make <ClientPanel>(mainMenuPointer ? *mainMenuPointer : nullptr ).uiPanel ();
304- return hookContext.template make <HueSlider>(mainMenu.findChildInLayoutFile (sliderId));
305- }
306-
307202 [[nodiscard]] decltype (auto ) getIntSlider(const char * sliderId) const noexcept
308203 {
309204 const auto mainMenuPointer = hookContext.patternSearchResults ().template get <MainMenuPanelPointer>();
310205 auto && mainMenu = hookContext.template make <ClientPanel>(mainMenuPointer ? *mainMenuPointer : nullptr ).uiPanel ();
311206 return hookContext.template make <IntSlider>(mainMenu.findChildInLayoutFile (sliderId));
312207 }
313208
314- [[nodiscard]] [[NOINLINE]] std::optional<color::HueInteger> parseHueVariable (color::HueInteger min, color::HueInteger max) const noexcept
315- {
316- const auto hueInteger = parseHueInteger ();
317- if (!hueInteger.has_value ())
318- return {};
319-
320- if (*hueInteger >= min && *hueInteger <= max)
321- return *hueInteger;
322- return {};
323- }
324-
325- [[nodiscard]] std::optional<color::HueInteger> parseHueInteger () const noexcept
326- {
327- if (color::HueInteger::UnderlyingType underlying; parser.parseInt (underlying) && underlying >= color::HueInteger::kMin && underlying <= color::HueInteger::kMax )
328- return color::HueInteger{underlying};
329- return {};
330- }
331-
332209 [[nodiscard]] auto playerInfoInWorldToggle () const noexcept
333210 {
334211 return PlayerInfoInWorldToggle{hookContext};
0 commit comments