Skip to content

Commit

Permalink
fix: Hotkey not registered after load
Browse files Browse the repository at this point in the history
  • Loading branch information
Taiga74164 committed Apr 25, 2024
1 parent 7dcd02e commit 8c9c9ef
Show file tree
Hide file tree
Showing 8 changed files with 129 additions and 115 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,5 +33,5 @@ jobs:
uses: actions/[email protected]
with:
name: build-artifact
path: .cheat/bin/Release-x64/SLA_Cheeto.dll
path: ./cheat/bin/Release-x64/SLA_Cheeto.dll
if-no-files-found: error
2 changes: 1 addition & 1 deletion cheat/SoloLevelling.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@
<ClInclude Include="src\global.h" />
<ClInclude Include="src\HookManager.h" />
<ClInclude Include="src\Hotkey.h" />
<ClInclude Include="src\HotkeyManager.h" />
<ClInclude Include="src\HotkeyManager.hpp" />
<ClInclude Include="src\main.h" />
<ClInclude Include="src\Memory.h" />
<ClInclude Include="src\Module.h" />
Expand Down
9 changes: 9 additions & 0 deletions cheat/src/ConfigEntry.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ class ConfigEntry
{
value_ = ConfigManager::GetInstance().Get<T>(name, defaultValue, true);
hotkey_ = ConfigManager::GetInstance().GetHotkey(name + "Hotkey", defaultHotkey);

if constexpr (std::is_same_v<T, bool>)
RegisterHotkey();
}

T& value()
Expand Down Expand Up @@ -56,6 +59,12 @@ class ConfigEntry
ConfigManager::GetInstance().SetHotkey(name_ + "Hotkey", hotkey_);
}

void RegisterHotkey()
{
if constexpr (std::is_same_v<T, bool>)
HotkeyManager::GetInstance().RegisterKey(hotkey_, &value_);
}

ConfigEntry& operator=(const T& newValue)
{
SetValue(newValue);
Expand Down
2 changes: 1 addition & 1 deletion cheat/src/ConfigManager.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

#include "Singleton.h"
#include "Hotkey.h"
#include "HotkeyManager.h"
#include "HotkeyManager.hpp"
#include "Utils.h"

using json = nlohmann::json;
Expand Down
225 changes: 115 additions & 110 deletions cheat/src/Hotkey.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -524,117 +524,122 @@ std::string Trim(const std::string& str)
// Temporary. IDK why magic_enum::enum_cast is returning 0
ImGuiKey StringToImGuiKey_1(const std::string& keyName)
{
switch (hash(keyName.c_str()))
static std::unordered_map<std::string, ImGuiKey> keyMap =
{
case hash("ImGuiKey_Tab"): return ImGuiKey_Tab;
case hash("ImGuiKey_LeftArrow"): return ImGuiKey_LeftArrow;
case hash("ImGuiKey_RightArrow"): return ImGuiKey_RightArrow;
case hash("ImGuiKey_UpArrow"): return ImGuiKey_UpArrow;
case hash("ImGuiKey_DownArrow"): return ImGuiKey_DownArrow;
case hash("ImGuiKey_PageUp"): return ImGuiKey_PageUp;
case hash("ImGuiKey_PageDown"): return ImGuiKey_PageDown;
case hash("ImGuiKey_Home"): return ImGuiKey_Home;
case hash("ImGuiKey_End"): return ImGuiKey_End;
case hash("ImGuiKey_Insert"): return ImGuiKey_Insert;
case hash("ImGuiKey_Delete"): return ImGuiKey_Delete;
case hash("ImGuiKey_Backspace"): return ImGuiKey_Backspace;
case hash("ImGuiKey_Space"): return ImGuiKey_Space;
case hash("ImGuiKey_Enter"): return ImGuiKey_Enter;
case hash("ImGuiKey_Escape"): return ImGuiKey_Escape;
case hash("ImGuiKey_Apostrophe"): return ImGuiKey_Apostrophe;
case hash("ImGuiKey_Comma"): return ImGuiKey_Comma;
case hash("ImGuiKey_Minus"): return ImGuiKey_Minus;
case hash("ImGuiKey_Period"): return ImGuiKey_Period;
case hash("ImGuiKey_Slash"): return ImGuiKey_Slash;
case hash("ImGuiKey_Semicolon"): return ImGuiKey_Semicolon;
case hash("ImGuiKey_Equal"): return ImGuiKey_Equal;
case hash("ImGuiKey_LeftBracket"): return ImGuiKey_LeftBracket;
case hash("ImGuiKey_Backslash"): return ImGuiKey_Backslash;
case hash("ImGuiKey_RightBracket"): return ImGuiKey_RightBracket;
case hash("ImGuiKey_GraveAccent"): return ImGuiKey_GraveAccent;
case hash("ImGuiKey_CapsLock"): return ImGuiKey_CapsLock;
case hash("ImGuiKey_ScrollLock"): return ImGuiKey_ScrollLock;
case hash("ImGuiKey_NumLock"): return ImGuiKey_NumLock;
case hash("ImGuiKey_PrintScreen"): return ImGuiKey_PrintScreen;
case hash("ImGuiKey_Pause"): return ImGuiKey_Pause;
case hash("ImGuiKey_Keypad0"): return ImGuiKey_Keypad0;
case hash("ImGuiKey_Keypad1"): return ImGuiKey_Keypad1;
case hash("ImGuiKey_Keypad2"): return ImGuiKey_Keypad2;
case hash("ImGuiKey_Keypad3"): return ImGuiKey_Keypad3;
case hash("ImGuiKey_Keypad4"): return ImGuiKey_Keypad4;
case hash("ImGuiKey_Keypad5"): return ImGuiKey_Keypad5;
case hash("ImGuiKey_Keypad6"): return ImGuiKey_Keypad6;
case hash("ImGuiKey_Keypad7"): return ImGuiKey_Keypad7;
case hash("ImGuiKey_Keypad8"): return ImGuiKey_Keypad8;
case hash("ImGuiKey_Keypad9"): return ImGuiKey_Keypad9;
case hash("ImGuiKey_KeypadDecimal"): return ImGuiKey_KeypadDecimal;
case hash("ImGuiKey_KeypadDivide"): return ImGuiKey_KeypadDivide;
case hash("ImGuiKey_KeypadMultiply"): return ImGuiKey_KeypadMultiply;
case hash("ImGuiKey_KeypadSubtract"): return ImGuiKey_KeypadSubtract;
case hash("ImGuiKey_KeypadAdd"): return ImGuiKey_KeypadAdd;
case hash("ImGuiKey_KeypadEnter"): return ImGuiKey_KeypadEnter;
case hash("ImGuiKey_LeftShift"): return ImGuiKey_LeftShift;
case hash("ImGuiKey_LeftCtrl"): return ImGuiKey_LeftCtrl;
case hash("ImGuiKey_LeftAlt"): return ImGuiKey_LeftAlt;
case hash("ImGuiKey_LeftSuper"): return ImGuiKey_LeftSuper;
case hash("ImGuiKey_RightShift"): return ImGuiKey_RightShift;
case hash("ImGuiKey_RightCtrl"): return ImGuiKey_RightCtrl;
case hash("ImGuiKey_RightAlt"): return ImGuiKey_RightAlt;
case hash("ImGuiKey_RightSuper"): return ImGuiKey_RightSuper;
case hash("ImGuiKey_Menu"): return ImGuiKey_Menu;
case hash("ImGuiKey_0"): return ImGuiKey_0;
case hash("ImGuiKey_1"): return ImGuiKey_1;
case hash("ImGuiKey_2"): return ImGuiKey_2;
case hash("ImGuiKey_3"): return ImGuiKey_3;
case hash("ImGuiKey_4"): return ImGuiKey_4;
case hash("ImGuiKey_5"): return ImGuiKey_5;
case hash("ImGuiKey_6"): return ImGuiKey_6;
case hash("ImGuiKey_7"): return ImGuiKey_7;
case hash("ImGuiKey_8"): return ImGuiKey_8;
case hash("ImGuiKey_9"): return ImGuiKey_9;
case hash("ImGuiKey_A"): return ImGuiKey_A;
case hash("ImGuiKey_B"): return ImGuiKey_B;
case hash("ImGuiKey_C"): return ImGuiKey_C;
case hash("ImGuiKey_D"): return ImGuiKey_D;
case hash("ImGuiKey_E"): return ImGuiKey_E;
case hash("ImGuiKey_F"): return ImGuiKey_F;
case hash("ImGuiKey_G"): return ImGuiKey_G;
case hash("ImGuiKey_H"): return ImGuiKey_H;
case hash("ImGuiKey_I"): return ImGuiKey_I;
case hash("ImGuiKey_J"): return ImGuiKey_J;
case hash("ImGuiKey_K"): return ImGuiKey_K;
case hash("ImGuiKey_L"): return ImGuiKey_L;
case hash("ImGuiKey_M"): return ImGuiKey_M;
case hash("ImGuiKey_N"): return ImGuiKey_N;
case hash("ImGuiKey_O"): return ImGuiKey_O;
case hash("ImGuiKey_P"): return ImGuiKey_P;
case hash("ImGuiKey_Q"): return ImGuiKey_Q;
case hash("ImGuiKey_R"): return ImGuiKey_R;
case hash("ImGuiKey_S"): return ImGuiKey_S;
case hash("ImGuiKey_T"): return ImGuiKey_T;
case hash("ImGuiKey_U"): return ImGuiKey_U;
case hash("ImGuiKey_V"): return ImGuiKey_V;
case hash("ImGuiKey_W"): return ImGuiKey_W;
case hash("ImGuiKey_X"): return ImGuiKey_X;
case hash("ImGuiKey_Y"): return ImGuiKey_Y;
case hash("ImGuiKey_Z"): return ImGuiKey_Z;
case hash("ImGuiKey_F1"): return ImGuiKey_F1;
case hash("ImGuiKey_F2"): return ImGuiKey_F2;
case hash("ImGuiKey_F3"): return ImGuiKey_F3;
case hash("ImGuiKey_F4"): return ImGuiKey_F4;
case hash("ImGuiKey_F5"): return ImGuiKey_F5;
case hash("ImGuiKey_F6"): return ImGuiKey_F6;
case hash("ImGuiKey_F7"): return ImGuiKey_F7;
case hash("ImGuiKey_F8"): return ImGuiKey_F8;
case hash("ImGuiKey_F9"): return ImGuiKey_F9;
case hash("ImGuiKey_F10"): return ImGuiKey_F10;
case hash("ImGuiKey_F11"): return ImGuiKey_F11;
case hash("ImGuiKey_F12"): return ImGuiKey_F12;
case hash("ImGuiMouseButton_Left"): return ImGuiMouseButton_Left;
case hash("ImGuiMouseButton_Right"): return ImGuiMouseButton_Right;
case hash("ImGuiMouseButton_Middle"): return ImGuiMouseButton_Middle;
default: return ImGuiKey_None;
}
{ "ImGuiKey_Tab", ImGuiKey_Tab },
{ "ImGuiKey_LeftArrow", ImGuiKey_LeftArrow },
{ "ImGuiKey_RightArrow", ImGuiKey_RightArrow },
{ "ImGuiKey_UpArrow", ImGuiKey_UpArrow },
{ "ImGuiKey_DownArrow", ImGuiKey_DownArrow },
{ "ImGuiKey_PageUp", ImGuiKey_PageUp },
{ "ImGuiKey_PageDown", ImGuiKey_PageDown },
{ "ImGuiKey_Home", ImGuiKey_Home },
{ "ImGuiKey_End", ImGuiKey_End },
{ "ImGuiKey_Insert", ImGuiKey_Insert },
{ "ImGuiKey_Delete", ImGuiKey_Delete },
{ "ImGuiKey_Backspace", ImGuiKey_Backspace },
{ "ImGuiKey_Space", ImGuiKey_Space },
{ "ImGuiKey_Enter", ImGuiKey_Enter },
{ "ImGuiKey_Escape", ImGuiKey_Escape },
{ "ImGuiKey_Apostrophe", ImGuiKey_Apostrophe },
{ "ImGuiKey_Comma", ImGuiKey_Comma },
{ "ImGuiKey_Minus", ImGuiKey_Minus },
{ "ImGuiKey_Period", ImGuiKey_Period },
{ "ImGuiKey_Slash", ImGuiKey_Slash },
{ "ImGuiKey_Semicolon", ImGuiKey_Semicolon },
{ "ImGuiKey_Equal", ImGuiKey_Equal },
{ "ImGuiKey_LeftBracket", ImGuiKey_LeftBracket },
{ "ImGuiKey_Backslash", ImGuiKey_Backslash },
{ "ImGuiKey_RightBracket", ImGuiKey_RightBracket },
{ "ImGuiKey_GraveAccent", ImGuiKey_GraveAccent },
{ "ImGuiKey_CapsLock", ImGuiKey_CapsLock },
{ "ImGuiKey_ScrollLock", ImGuiKey_ScrollLock },
{ "ImGuiKey_NumLock", ImGuiKey_NumLock },
{ "ImGuiKey_PrintScreen", ImGuiKey_PrintScreen },
{ "ImGuiKey_Pause", ImGuiKey_Pause },
{ "ImGuiKey_Keypad0", ImGuiKey_Keypad0 },
{ "ImGuiKey_Keypad1", ImGuiKey_Keypad1 },
{ "ImGuiKey_Keypad2", ImGuiKey_Keypad2 },
{ "ImGuiKey_Keypad3", ImGuiKey_Keypad3 },
{ "ImGuiKey_Keypad4", ImGuiKey_Keypad4 },
{ "ImGuiKey_Keypad5", ImGuiKey_Keypad5 },
{ "ImGuiKey_Keypad6", ImGuiKey_Keypad6 },
{ "ImGuiKey_Keypad7", ImGuiKey_Keypad7 },
{ "ImGuiKey_Keypad8", ImGuiKey_Keypad8 },
{ "ImGuiKey_Keypad9", ImGuiKey_Keypad9 },
{ "ImGuiKey_KeypadDecimal", ImGuiKey_KeypadDecimal },
{ "ImGuiKey_KeypadDivide", ImGuiKey_KeypadDivide },
{ "ImGuiKey_KeypadMultiply", ImGuiKey_KeypadMultiply },
{ "ImGuiKey_KeypadSubtract", ImGuiKey_KeypadSubtract },
{ "ImGuiKey_KeypadAdd", ImGuiKey_KeypadAdd },
{ "ImGuiKey_KeypadEnter", ImGuiKey_KeypadEnter },
{ "ImGuiKey_LeftShift", ImGuiKey_LeftShift },
{ "ImGuiKey_LeftCtrl", ImGuiKey_LeftCtrl },
{ "ImGuiKey_LeftAlt", ImGuiKey_LeftAlt },
{ "ImGuiKey_LeftSuper", ImGuiKey_LeftSuper },
{ "ImGuiKey_RightShift", ImGuiKey_RightShift },
{ "ImGuiKey_RightCtrl", ImGuiKey_RightCtrl },
{ "ImGuiKey_RightAlt", ImGuiKey_RightAlt },
{ "ImGuiKey_RightSuper", ImGuiKey_RightSuper },
{ "ImGuiKey_Menu", ImGuiKey_Menu },
{ "ImGuiKey_0", ImGuiKey_0 },
{ "ImGuiKey_1", ImGuiKey_1 },
{ "ImGuiKey_2", ImGuiKey_2 },
{ "ImGuiKey_3", ImGuiKey_3 },
{ "ImGuiKey_4", ImGuiKey_4 },
{ "ImGuiKey_5", ImGuiKey_5 },
{ "ImGuiKey_6", ImGuiKey_6 },
{ "ImGuiKey_7", ImGuiKey_7 },
{ "ImGuiKey_8", ImGuiKey_8 },
{ "ImGuiKey_9", ImGuiKey_9 },
{ "ImGuiKey_A", ImGuiKey_A },
{ "ImGuiKey_B", ImGuiKey_B },
{ "ImGuiKey_C", ImGuiKey_C },
{ "ImGuiKey_D", ImGuiKey_D },
{ "ImGuiKey_E", ImGuiKey_E },
{ "ImGuiKey_F", ImGuiKey_F },
{ "ImGuiKey_G", ImGuiKey_G },
{ "ImGuiKey_H", ImGuiKey_H },
{ "ImGuiKey_I", ImGuiKey_I },
{ "ImGuiKey_J", ImGuiKey_J },
{ "ImGuiKey_K", ImGuiKey_K },
{ "ImGuiKey_L", ImGuiKey_L },
{ "ImGuiKey_M", ImGuiKey_M },
{ "ImGuiKey_N", ImGuiKey_N },
{ "ImGuiKey_O", ImGuiKey_O },
{ "ImGuiKey_P", ImGuiKey_P },
{ "ImGuiKey_Q", ImGuiKey_Q },
{ "ImGuiKey_R", ImGuiKey_R },
{ "ImGuiKey_S", ImGuiKey_S },
{ "ImGuiKey_T", ImGuiKey_T },
{ "ImGuiKey_U", ImGuiKey_U },
{ "ImGuiKey_V", ImGuiKey_V },
{ "ImGuiKey_W", ImGuiKey_W },
{ "ImGuiKey_X", ImGuiKey_X },
{ "ImGuiKey_Y", ImGuiKey_Y },
{ "ImGuiKey_Z", ImGuiKey_Z },
{ "ImGuiKey_F1", ImGuiKey_F1 },
{ "ImGuiKey_F2", ImGuiKey_F2 },
{ "ImGuiKey_F3", ImGuiKey_F3 },
{ "ImGuiKey_F4", ImGuiKey_F4 },
{ "ImGuiKey_F5", ImGuiKey_F5 },
{ "ImGuiKey_F6", ImGuiKey_F6 },
{ "ImGuiKey_F7", ImGuiKey_F7 },
{ "ImGuiKey_F8", ImGuiKey_F8 },
{ "ImGuiKey_F9", ImGuiKey_F9 },
{ "ImGuiKey_F10", ImGuiKey_F10 },
{ "ImGuiKey_F11", ImGuiKey_F11 },
{ "ImGuiKey_F12", ImGuiKey_F12 },
{ "ImGuiMouseButton_Left", ImGuiMouseButton_Left },
{ "ImGuiMouseButton_Right", ImGuiMouseButton_Right },
{ "ImGuiMouseButton_Middle", ImGuiMouseButton_Middle },
};

auto it = keyMap.find(keyName);
if (it != keyMap.end())
return it->second;

return ImGuiKey_None;
}

ImGuiKey StringToImGuiKey(const std::string& keyName)
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion cheat/src/Render/Gui/utils/gui-util.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
#include "color.hpp"
#include "ConfigEntry.hpp"
#include "Hotkey.h"
#include "HotkeyManager.h"
#include "HotkeyManager.hpp"

#pragma warning(disable: 26812 26815)

Expand Down
2 changes: 1 addition & 1 deletion cheat/src/cheat/cheat.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
#include "global.h"
#include "HookManager.h"
#include "events.h"
#include "HotkeyManager.h"
#include "HotkeyManager.hpp"

#include "features/PlayerSpeed.h"
#include "features/NoCooldown.h"
Expand Down

0 comments on commit 8c9c9ef

Please sign in to comment.