@@ -72,7 +72,10 @@ inline const char* erScriptsMenuKeyName = GetKeyName(cfg->erScriptsMenuBind);
7272inline bool erScriptsMenuButtonState = false ;
7373inline const char * erScriptsExitKeyName = GetKeyName(cfg->erScriptsExitBind);
7474inline bool erScriptsExitButtonState = false ;
75+ inline const char * chatSpammerKeyName = GetKeyName(cfg->chatSpammerBind);
76+ inline bool chatSpammerButtonState = false ;
7577inline char killSayText[256 ]{};
78+ inline char chatSpammerText[256 ]{};
7679inline char killSoundFileName[256 ]{};
7780inline char roundStartAlertFileName[256 ]{};
7881
@@ -140,6 +143,7 @@ void Overlay::Menu() noexcept {
140143 // TriggerMenu();
141144 BombTimerMenu ();
142145 SniperCrosshairMenu ();
146+ RecoilCrosshairMenu ();
143147 RGBCrosshairMenu ();
144148 KeystrokesMenu ();
145149 KnifeSwitchMenu ();
@@ -150,6 +154,7 @@ void Overlay::Menu() noexcept {
150154 KillSoundMenu ();
151155 RoundStartAlertMenu ();
152156 AutoStopMenu ();
157+ ChatSpammerMenu ();
153158 GradientManagerMenu ();
154159 WatermarkMenu ();
155160 FPSLimitMenu ();
@@ -175,6 +180,7 @@ void Overlay::Menu() noexcept {
175180 autoStopKeyName = GetKeyName (cfg->autoStopBind );
176181 erScriptsMenuKeyName = GetKeyName (cfg->erScriptsMenuBind );
177182 erScriptsExitKeyName = GetKeyName (cfg->erScriptsExitBind );
183+ chatSpammerKeyName = GetKeyName (cfg->chatSpammerBind );
178184
179185 if (ImGui::FindWindowByName (" Bomb Timer" ))
180186 ImGui::SetWindowPos (" Bomb Timer" , { cfg->bombTimerPos [0 ], cfg->bombTimerPos [1 ] });
@@ -183,6 +189,7 @@ void Overlay::Menu() noexcept {
183189 ImGui::SetWindowPos (" Keystrokes" , { cfg->keystrokesPos [0 ], cfg->keystrokesPos [1 ] });
184190
185191 strncpy_s (killSayText, cfg->killSayText .c_str (), sizeof (killSayText) - 1 );
192+ strncpy_s (chatSpammerText, cfg->chatSpammerText .c_str (), sizeof (chatSpammerText) - 1 );
186193 strncpy_s (killSoundFileName, cfg->killSoundFileName .c_str (), sizeof (killSoundFileName) - 1 );
187194 strncpy_s (roundStartAlertFileName, cfg->roundStartAlertFileName .c_str (), sizeof (roundStartAlertFileName) - 1 );
188195 }
@@ -332,6 +339,16 @@ void Overlay::SniperCrosshairMenu() noexcept {
332339 }
333340}
334341
342+ void Overlay::RecoilCrosshairMenu () noexcept {
343+ ImGui::TableNextRow ();
344+ ImGui::TableSetColumnIndex (0 );
345+ ImGui::Checkbox (" Recoil Crosshair" , &cfg->recoilCrosshairState );
346+ ImGui::TableSetColumnIndex (1 );
347+ if (ImageButton (" ##RecoilCrosshairReloader" , (ImTextureID)reloadTexture, { 22 , 22 })) {
348+ globals::crosshairUpdaterState = true ;
349+ }
350+ }
351+
335352void Overlay::RGBCrosshairMenu () noexcept {
336353 ImGui::TableNextRow ();
337354 ImGui::TableSetColumnIndex (0 );
@@ -706,6 +723,53 @@ void Overlay::AutoStopMenu() noexcept {
706723 }
707724}
708725
726+ void Overlay::ChatSpammerMenu () noexcept {
727+ static bool firstRun = true ;
728+ if (firstRun) {
729+ strncpy_s (chatSpammerText, cfg->chatSpammerText .c_str (), sizeof (chatSpammerText) - 1 );
730+ firstRun = false ;
731+ }
732+
733+ ImGui::TableNextRow ();
734+ ImGui::TableSetColumnIndex (0 );
735+ ImGui::Checkbox (" Chat Spammer" , &cfg->chatSpammerState );
736+ ImGui::TableSetColumnIndex (1 );
737+
738+ if (ImageButton (" ##ChatSpammer" , (ImTextureID)settingsTexture, { 22 , 22 })) {
739+ ImGui::OpenPopup (" Chat Spammer Settings" );
740+ }
741+
742+ if (ImGui::BeginPopup (" Chat Spammer Settings" )) {
743+ if (ImGui::BeginTable (" Chat Spammer Settings Table" , 2 , ImGuiTableFlags_SizingFixedFit | ImGuiTableFlags_NoPadInnerX)) {
744+ ImGui::TableNextRow ();
745+ ImGui::TableSetColumnIndex (0 );
746+ ImGui::Text (" Chat Message " );
747+ ImGui::TableSetColumnIndex (1 );
748+
749+ ImGui::PushItemWidth (150 );
750+
751+ ImGui::InputText (" ##ChatSpammerText" , chatSpammerText, sizeof (chatSpammerText), ImGuiInputTextFlags_EnterReturnsTrue);
752+ cfg->chatSpammerText = chatSpammerText;
753+
754+ ImGui::PopItemWidth ();
755+
756+ ImGui::TableNextRow ();
757+ ImGui::TableSetColumnIndex (0 );
758+ ImGui::Text (" Hotkey " );
759+ ImGui::TableSetColumnIndex (1 );
760+ chatSpammerKeyName = GetKeyName (cfg->chatSpammerBind );
761+ if (ImGui::Button (std::format (" {}##ChatSpammerBind" , chatSpammerKeyName).c_str (), ImVec2 (80 .0f , 22 .0f ))) {
762+ chatSpammerButtonState = !chatSpammerButtonState;
763+ }
764+ Hotkey (&chatSpammerButtonState, &chatSpammerKeyName, &cfg->chatSpammerBind );
765+
766+ ImGui::EndTable ();
767+ }
768+
769+ ImGui::EndPopup ();
770+ }
771+ }
772+
709773void Overlay::FPSLimitMenu () noexcept {
710774 ImGui::TableNextRow ();
711775 ImGui::TableSetColumnIndex (0 );
0 commit comments