- Added "Unlimited Stamina" (Player)

- Added tooltips when hovering over buttons inside the mod menu
This commit is contained in:
EricPlayZ
2024-05-06 21:15:31 +03:00
parent a580147272
commit 7d048316e9
9 changed files with 107 additions and 77 deletions

View File

@ -41,11 +41,21 @@ namespace ImGui {
const float oneTabWidthWithSpacing = width / tabs;
const float oneTabWidth = oneTabWidthWithSpacing - (tabIndex == tabs ? 0.0f : GImGui->Style.ItemSpacing.x / 2.0f);
ImGui::SetNextItemWidth(oneTabWidth);
SetNextItemWidth(oneTabWidth);
}
void EndTabBarEx() {
ImGui::EndTabBar();
EndTabBar();
tabIndex = 1;
}
bool Button(const char* label, const char* tooltip, const ImVec2& size_arg) {
bool btn = Button(label, size_arg);
SetItemTooltip(tooltip);
return btn;
}
bool Checkbox(const char* label, bool* v, const char* tooltip) {
bool checkbox = Checkbox(label, v);
SetItemTooltip(tooltip);
return checkbox;
}
bool Checkbox(const char* label, Option* v) {
ImGuiWindow* window = GetCurrentWindow();
@ -97,9 +107,16 @@ namespace ImGui {
IMGUI_TEST_ENGINE_ITEM_INFO(id, label, g.LastItemData.StatusFlags | ImGuiItemStatusFlags_Checkable | (v->GetValue() ? ImGuiItemStatusFlags_Checked : 0));
return pressed;
}
bool CheckboxHotkey(const char* label, KeyBindOption* v) {
const bool checkbox = ImGui::Checkbox(label, v);
ImGui::Hotkey(std::string(label + std::string("##ToggleKey")), v);
bool Checkbox(const char* label, Option* v, const char* tooltip) {
bool checkbox = Checkbox(label, v);
SetItemTooltip(tooltip);
return checkbox;
}
bool CheckboxHotkey(const char* label, KeyBindOption* v, const char* tooltip) {
const bool checkbox = Checkbox(label, v);
if (tooltip)
SetItemTooltip(tooltip);
Hotkey(std::string(label + std::string("##ToggleKey")), v);
return checkbox;
}
static const float CalculateIndentation(const float window_width, const float text_width, const float min_indentation) {
@ -108,7 +125,7 @@ namespace ImGui {
}
void TextCentered(const char* text, const bool calculateWithScrollbar) {
const float min_indentation = 20.0f;
const float window_width = ImGui::GetWindowSize().x - (calculateWithScrollbar ? GImGui->Style.ScrollbarSize : 0.0f) - (GImGui->Style.WindowPadding.x);
const float window_width = GetWindowSize().x - (calculateWithScrollbar ? GImGui->Style.ScrollbarSize : 0.0f) - (GImGui->Style.WindowPadding.x);
const float wrap_pos = window_width - min_indentation;
std::istringstream iss(text);
@ -117,26 +134,26 @@ namespace ImGui {
std::string line{};
for (const auto& word : words) {
std::string new_line = line.empty() ? word : line + " " + word;
if (ImGui::CalcTextSize(new_line.c_str()).x <= wrap_pos) {
if (CalcTextSize(new_line.c_str()).x <= wrap_pos) {
line = new_line;
continue;
}
ImGui::SameLine(CalculateIndentation(window_width, ImGui::CalcTextSize(line.c_str()).x, min_indentation));
ImGui::TextUnformatted(line.c_str());
ImGui::NewLine();
SameLine(CalculateIndentation(window_width, CalcTextSize(line.c_str()).x, min_indentation));
TextUnformatted(line.c_str());
NewLine();
line = word;
}
if (!line.empty()) {
ImGui::SameLine(CalculateIndentation(window_width, ImGui::CalcTextSize(line.c_str()).x, min_indentation));
ImGui::TextUnformatted(line.c_str());
ImGui::NewLine();
SameLine(CalculateIndentation(window_width, CalcTextSize(line.c_str()).x, min_indentation));
TextUnformatted(line.c_str());
NewLine();
}
}
void TextCenteredColored(const char* text, const ImU32 col, const bool calculateWithScrollbar) {
const float min_indentation = 20.0f;
const float window_width = ImGui::GetWindowSize().x - (calculateWithScrollbar ? GImGui->Style.ScrollbarSize : 0.0f) - (GImGui->Style.WindowPadding.x);
const float window_width = GetWindowSize().x - (calculateWithScrollbar ? GImGui->Style.ScrollbarSize : 0.0f) - (GImGui->Style.WindowPadding.x);
const float wrap_pos = window_width - min_indentation;
std::istringstream iss(text);
@ -145,62 +162,62 @@ namespace ImGui {
std::string line{};
for (const auto& word : words) {
std::string new_line = line.empty() ? word : line + " " + word;
if (ImGui::CalcTextSize(new_line.c_str()).x <= wrap_pos) {
if (CalcTextSize(new_line.c_str()).x <= wrap_pos) {
line = new_line;
continue;
}
ImGui::SameLine(CalculateIndentation(window_width, ImGui::CalcTextSize(line.c_str()).x, min_indentation));
ImGui::PushStyleColor(ImGuiCol_Text, col);
ImGui::TextUnformatted(line.c_str());
ImGui::PopStyleColor();
ImGui::NewLine();
SameLine(CalculateIndentation(window_width, CalcTextSize(line.c_str()).x, min_indentation));
PushStyleColor(ImGuiCol_Text, col);
TextUnformatted(line.c_str());
PopStyleColor();
NewLine();
line = word;
}
if (!line.empty()) {
ImGui::SameLine(CalculateIndentation(window_width, ImGui::CalcTextSize(line.c_str()).x, min_indentation));
ImGui::PushStyleColor(ImGuiCol_Text, col);
ImGui::TextUnformatted(line.c_str());
ImGui::PopStyleColor();
ImGui::NewLine();
SameLine(CalculateIndentation(window_width, CalcTextSize(line.c_str()).x, min_indentation));
PushStyleColor(ImGuiCol_Text, col);
TextUnformatted(line.c_str());
PopStyleColor();
NewLine();
}
}
bool ButtonCentered(const char* label, const ImVec2 size) {
ImGuiStyle& style = ImGui::GetStyle();
const float window_width = ImGui::GetContentRegionAvail().x;
const float button_width = ImGui::CalcTextSize(label).x + style.FramePadding.x * 2.0f;
ImGuiStyle& style = GetStyle();
const float window_width = GetContentRegionAvail().x;
const float button_width = CalcTextSize(label).x + style.FramePadding.x * 2.0f;
float button_indentation = (window_width - button_width) * 0.5f;
const float min_indentation = 20.0f;
if (button_indentation <= min_indentation)
button_indentation = min_indentation;
ImGui::SameLine(button_indentation);
return ImGui::Button(label, size);
ImGui::NewLine();
SameLine(button_indentation);
return Button(label, size);
NewLine();
}
void SeparatorTextColored(const char* label, const ImU32 col) {
ImGui::PushStyleColor(ImGuiCol_Text, col);
ImGui::SeparatorText(label);
ImGui::PopStyleColor();
PushStyleColor(ImGuiCol_Text, col);
SeparatorText(label);
PopStyleColor();
}
void Spacing(const ImVec2 size, const bool customPosOffset) {
ImGuiWindow* window = ImGui::GetCurrentWindow();
ImGuiWindow* window = GetCurrentWindow();
if (window->SkipItems)
return;
if (!customPosOffset) {
ImGui::ItemSize(size);
ItemSize(size);
return;
}
const ImVec2 currentCursorPos = ImGui::GetCursorPos();
const ImVec2 currentCursorPos = GetCursorPos();
if (size.y == 0.0f)
ImGui::SetCursorPosX(currentCursorPos.x + size.x);
SetCursorPosX(currentCursorPos.x + size.x);
else if (size.x == 0.0f)
ImGui::SetCursorPosY(currentCursorPos.y + size.y);
SetCursorPosY(currentCursorPos.y + size.y);
else
ImGui::SetCursorPos(currentCursorPos + size);
SetCursorPos(currentCursorPos + size);
}
}

View File

@ -5,8 +5,11 @@ namespace ImGui {
extern void StyleScaleAllSizes(ImGuiStyle* style, const float scale_factor, ImGuiStyle* defStyle = nullptr);
extern void SpanNextTabAcrossWidth(const float width, const size_t tabs = 1);
extern void EndTabBarEx();
extern bool Button(const char* label, const char* tooltip, const ImVec2& size_arg = ImVec2(0, 0));
extern bool Checkbox(const char* label, bool* v, const char* tooltip);
extern bool Checkbox(const char* label, Option* v);
extern bool CheckboxHotkey(const char* label, KeyBindOption* v);
extern bool Checkbox(const char* label, Option* v, const char* tooltip);
extern bool CheckboxHotkey(const char* label, KeyBindOption* v, const char* tooltip = nullptr);
extern void TextCentered(const char* text, const bool calculateWithScrollbar = true);
extern void TextCenteredColored(const char* text, const ImU32 col, const bool calculateWithScrollbar = true);
extern bool ButtonCentered(const char* label, const ImVec2 size = ImVec2(0.0f, 0.0f));

View File

@ -54,10 +54,12 @@ Thank you everyone for the support <3)" },
R"(- Added compatibility with v1.16.1 hotfix update
- Added "Player Immunity" slider (Player)
- Added "Unlimited Immunity" (Player)
- Added "Unlimited Stamina" (Player)
- Added "Invisible to Enemies" (Player)
- Added "Increase Data PAKs Limit" (Misc; requires game restart to apply) - you can now add more than 8 data PAKs, e.g. data8.pak, data9.pak, data10.pak, etc, up to 200 PAKs in total
- Added "Disable Data PAKs CRC Check" (Misc; requires game restart to apply) - stops the game from detecting data PAKs, which allows you to use data PAK mods in multiplayer as well
- Added "Disable Data PAKs CRC Check" (Misc; requires game restart to apply) - stops the game from scanning data PAKs, which allows you to use data PAK mods in multiplayer as well
- Added "Disable Savegame CRC Check" (Misc; requires game restart to apply) - stops the game from falsely saying your savegame is corrupt whenever you modify it
- Added tooltips when hovering over buttons inside the mod menu
- Fixed "God Mode" (Player) staying enabled after toggling FreeCam off
- Fixed player variables saving and loading using old version of player_variables.scr (which made Max Health drop to negative infinite)
@ -65,7 +67,7 @@ Thank you everyone for the support <3)" },
- Fixed "God Mode" (Player) not working properly or at all in multiplayer
- Fixed volatiles still being able to kill you when they jump on top of you while "God Mode" (Player) is enabled
- Fixed "Disable Out of Bounds Timer" (Player) not working in missions
- Fixed immunity drastically being lowered while rapidly changing the time forward with the "Time" slider (World) at night
- Fixed immunity drastically being lowered while rapidly changing the time forward with the "Time" slider (World) at night or while in a dark zone
- Changed the config system to only write to the config file whenever there's a change in the mod menu)" }
};
}

View File

@ -4344,6 +4344,7 @@ namespace Config {
{ "Menu:Keybinds", "MenuToggleKey", std::string("VK_F5"), &Menu::menuToggle, String},
{ "Menu:Keybinds", "GodModeToggleKey", std::string("VK_F6"), &Menu::Player::godMode, String},
{ "Menu:Keybinds", "UnlimitedImmunityToggleKey", std::string("VK_NONE"), &Menu::Player::unlimitedImmunity, String},
{ "Menu:Keybinds", "UnlimitedStaminaToggleKey", std::string("VK_NONE"), &Menu::Player::unlimitedStamina, String},
{ "Menu:Keybinds", "FreezePlayerToggleKey", std::string("VK_F7"), &Menu::Player::freezePlayer, String},
{ "Menu:Keybinds", "DisableOutOfBoundsTimerToggleKey", std::string("VK_NONE"), &Menu::Player::disableOutOfBoundsTimer, String},
{ "Menu:Keybinds", "NightrunnerModeToggleKey", std::string("VK_F9"), &Menu::Player::nightrunnerMode, String},
@ -4360,6 +4361,7 @@ namespace Config {
{ "Menu:Keybinds", "SlowMotionToggleKey", std::string("VK_4"), &Menu::World::slowMotion, String},
{ "Player:Misc", "GodMode", false, &Menu::Player::godMode, OPTION },
{ "Player:Misc", "UnlimitedImmunity", false, &Menu::Player::unlimitedImmunity, OPTION },
{ "Player:Misc", "UnlimitedStamina", false, &Menu::Player::unlimitedStamina, OPTION },
{ "Player:Misc", "InvisibleToEnemies", true, &Menu::Player::invisibleToEnemies, OPTION },
{ "Player:Misc", "DisableOutOfBoundsTimer", true, &Menu::Player::disableOutOfBoundsTimer, OPTION },
{ "Player:Misc", "NightrunnerMode", false, &Menu::Player::nightrunnerMode, OPTION },

View File

@ -159,24 +159,24 @@ namespace Menu {
void Tab::Render() {
ImGui::SeparatorText("Free Camera");
ImGui::BeginDisabled(freeCam.GetChangesAreDisabled() || photoMode.GetValue()); {
ImGui::CheckboxHotkey("Enabled##FreeCam", &freeCam);
ImGui::CheckboxHotkey("Enabled##FreeCam", &freeCam, "Enables free camera which allows you to travel anywhere with the camera");
ImGui::EndDisabled();
}
ImGui::SameLine();
ImGui::BeginDisabled(teleportPlayerToCamera.GetChangesAreDisabled()); {
ImGui::CheckboxHotkey("Teleport Player to Camera", &teleportPlayerToCamera);
ImGui::CheckboxHotkey("Teleport Player to Camera", &teleportPlayerToCamera, "Teleports the player to the camera while Free Camera is activated");
ImGui::EndDisabled();
}
ImGui::SliderFloat("Speed##FreeCam", &freeCamSpeed, 0.1f, 200.0f, "%.2fx", ImGuiSliderFlags_AlwaysClamp);
ImGui::SeparatorText("Third Person Camera");
ImGui::BeginDisabled(thirdPersonCamera.GetChangesAreDisabled()); {
ImGui::CheckboxHotkey("Enabled##ThirdPerson", &thirdPersonCamera);
ImGui::CheckboxHotkey("Enabled##ThirdPerson", &thirdPersonCamera, "Enables the third person camera");
ImGui::EndDisabled();
}
ImGui::SameLine();
ImGui::BeginDisabled(tpUseTPPModel.GetChangesAreDisabled()); {
ImGui::CheckboxHotkey("Use Third Person Player (TPP) Model", &tpUseTPPModel);
ImGui::CheckboxHotkey("Use Third Person Player (TPP) Model", &tpUseTPPModel, "Uses Aiden's TPP (Third Person Player) model while the third person camera is enabled");
ImGui::EndDisabled();
}
ImGui::SliderFloat("Distance behind player", &tpDistanceBehindPlayer, 1.0f, 10.0f, "%.2fm");
@ -192,8 +192,8 @@ namespace Menu {
FOV = static_cast<int>(pCVideoSettings->extraFOV) + baseFOV;
ImGui::EndDisabled();
}
ImGui::CheckboxHotkey("Disable Photo Mode Limits", &disablePhotoModeLimits);
ImGui::CheckboxHotkey("Disable Safezone FOV Reduction", &disableSafezoneFOVReduction);
ImGui::CheckboxHotkey("Disable Photo Mode Limits", &disablePhotoModeLimits, "Disables the invisible box while in Photo Mode");
ImGui::CheckboxHotkey("Disable Safezone FOV Reduction", &disableSafezoneFOVReduction, "Disables the FOV reduction that happens while you're in a safezone");
}
}
}

View File

@ -46,15 +46,15 @@ namespace Menu {
}
void Tab::Render() {
ImGui::SeparatorText("Misc##Misc");
ImGui::CheckboxHotkey("Disable Game Pause While AFK", &disableGamePauseWhileAFK);
ImGui::CheckboxHotkey("Disable Game Pause While AFK", &disableGamePauseWhileAFK, "Prevents the game from pausing while you're afk");
ImGui::BeginDisabled(disableHUD.GetChangesAreDisabled()); {
ImGui::CheckboxHotkey("Disable HUD", &disableHUD);
ImGui::CheckboxHotkey("Disable HUD", &disableHUD, "Disables the entire HUD, including any sort of menus like the pause menu");
ImGui::EndDisabled();
}
if (ImGui::Checkbox("Disable Savegame CRC Check *", &disableSavegameCRCCheck))
if (ImGui::Checkbox("Disable Savegame CRC Check *", &disableSavegameCRCCheck, "Stops the game from falsely saying your savegame is corrupt whenever you modify it outside of the game using a save editor"))
GamePH::Hooks::SaveGameCRCBoolCheckHook.Toggle();
ImGui::Checkbox("Disable Data PAKs CRC Check *", &disableDataPAKsCRCCheck);
ImGui::Checkbox("Increase Data PAKs Limit *", &increaseDataPAKsLimit);
ImGui::Checkbox("Disable Data PAKs CRC Check *", &disableDataPAKsCRCCheck, "Stops the game from scanning data PAKs, which allows you to use data PAK mods in multiplayer as well");
ImGui::Checkbox("Increase Data PAKs Limit *", &increaseDataPAKsLimit, "Allows you to add more than 8 data PAKs, e.g. data8.pak, data9.pak, data10.pak, etc, up to 200 PAKs in total");
ImGui::Separator();
ImGui::TextColored(ImGui::ColorConvertU32ToFloat4(IM_COL32(200, 0, 0, 255)), "* Option requires game restart to apply");
}

View File

@ -6437,6 +6437,7 @@ namespace Menu {
float playerMaxImmunity = 80.0f;
KeyBindOption godMode{ VK_F6 };
KeyBindOption unlimitedImmunity{ VK_NONE };
KeyBindOption unlimitedStamina{ VK_NONE };
KeyBindOption freezePlayer{ VK_F7 };
KeyBindOption invisibleToEnemies{ VK_NONE };
KeyBindOption disableOutOfBoundsTimer{ VK_NONE };
@ -6575,15 +6576,17 @@ namespace Menu {
if (!GamePH::PlayerVariables::gotPlayerVars)
return;
GamePH::PlayerVariables::ManagePlayerVarOption("NightRunnerItemForced", nightrunnerMode.GetValue(), !nightrunnerMode.GetValue(), &nightrunnerMode);
GamePH::PlayerVariables::ManagePlayerVarOption("NightRunnerFurySmashEnabled", nightrunnerMode.GetValue(), !nightrunnerMode.GetValue(), &nightrunnerMode);
GamePH::PlayerVariables::ManagePlayerVarOption("NightRunnerFuryGroundPoundEnabled", nightrunnerMode.GetValue(), !nightrunnerMode.GetValue(), &nightrunnerMode);
GamePH::PlayerVariables::ManagePlayerVarOption("NightRunnerItemForced", true, false, &nightrunnerMode);
GamePH::PlayerVariables::ManagePlayerVarOption("NightRunnerFurySmashEnabled", true, false, &nightrunnerMode);
GamePH::PlayerVariables::ManagePlayerVarOption("NightRunnerFuryGroundPoundEnabled", true, false, &nightrunnerMode);
GamePH::PlayerVariables::ManagePlayerVarOption("AntizinDrainBlocked", unlimitedImmunity.GetValue(), !unlimitedImmunity.GetValue(), &unlimitedImmunity);
GamePH::PlayerVariables::ManagePlayerVarOption("AntizinDrainBlocked", true, false, &unlimitedImmunity);
GamePH::PlayerVariables::ManagePlayerVarOption("InVisibleToEnemies", invisibleToEnemies.GetValue(), !invisibleToEnemies.GetValue(), &invisibleToEnemies);
GamePH::PlayerVariables::ManagePlayerVarOption("InfiniteStamina", true, false, &unlimitedStamina);
GamePH::PlayerVariables::ManagePlayerVarOption("LeftHandDisabled", oneHandedMode.GetValue(), !oneHandedMode.GetValue(), &oneHandedMode);
GamePH::PlayerVariables::ManagePlayerVarOption("InVisibleToEnemies", true, false, &invisibleToEnemies);
GamePH::PlayerVariables::ManagePlayerVarOption("LeftHandDisabled", true, false, &oneHandedMode);
}
static void UpdateDisabledOptions() {
freezePlayer.SetChangesAreDisabled(!Engine::CBulletPhysicsCharacter::Get());
@ -6729,19 +6732,19 @@ namespace Menu {
{
if (ImGui::CollapsingHeader("Player variables list", ImGuiTreeNodeFlags_None)) {
ImGui::Indent();
if (ImGui::Button("Save variables to file"))
if (ImGui::Button("Save variables to file", "Saves current player variables to chosen file inside the file dialog"))
ImGuiFileDialog::Instance()->OpenDialog("ChooseSCRPath", "Choose Folder", nullptr, saveSCRPath.empty() ? "." : saveSCRPath);
ImGui::SameLine();
if (ImGui::Button("Load variables from file"))
if (ImGui::Button("Load variables from file", "Loads player variables from chosen file inside the file dialog"))
ImGuiFileDialog::Instance()->OpenDialog("ChooseSCRLoadPath", "Choose File", ".scr", loadSCRFilePath.empty() ? "." : loadSCRFilePath);
ImGui::Checkbox("Restore variables to saved variables", &restoreVarsToSavedVarsEnabled);
ImGui::Checkbox("Debug (show memory addresses)", &debugEnabled);
ImGui::Checkbox("Restore variables to saved variables", &restoreVarsToSavedVarsEnabled, "Sets whether or not \"Restore variables to default\" should restore variables to the ones saved by \"Save current variables as default\"");
ImGui::Checkbox("Debug Mode", &debugEnabled, "Shows text boxes alongside player variables, which will show the address in memory of each variable");
if (ImGui::Button("Restore variables to default"))
RestoreVariablesToDefault();
ImGui::SameLine();
if (ImGui::Button("Save current variables as default"))
if (ImGui::Button("Save current variables as default", "Saves the current player variables as default for whenever you use \"Restore variables to default\""))
SaveVariablesAsDefault();
ImGui::Separator();
@ -6782,7 +6785,7 @@ namespace Menu {
ImGui::SameLine();
restoreBtnName = std::string("Restore##") + std::string(key);
if (ImGui::Button(restoreBtnName.c_str()))
if (ImGui::Button(restoreBtnName.c_str(), "Restores player variable to default"))
RestoreVariableToDefault(key);
if (debugEnabled) {
const float maxInputTextWidth = ImGui::CalcTextSize("0x0000000000000000").x;
@ -6899,22 +6902,24 @@ namespace Menu {
playerImmunity = playerInfectionModule->immunity * 100.0f;
ImGui::EndDisabled();
}
ImGui::CheckboxHotkey("God Mode", &godMode);
ImGui::CheckboxHotkey("God Mode", &godMode, "Makes the player invincible");
ImGui::SameLine();
ImGui::CheckboxHotkey("Unlimited Immunity", &unlimitedImmunity, "Stops immunity from draining");
ImGui::CheckboxHotkey("Unlimited Stamina", &unlimitedStamina, "Stops stamina from draining");
ImGui::SameLine();
ImGui::CheckboxHotkey("Unlimited Immunity", &unlimitedImmunity);
ImGui::BeginDisabled(freezePlayer.GetChangesAreDisabled()); {
ImGui::CheckboxHotkey("Freeze Player", &freezePlayer);
ImGui::CheckboxHotkey("Freeze Player", &freezePlayer, "Freezes player position");
ImGui::EndDisabled();
}
ImGui::CheckboxHotkey("Invisible to Enemies", &invisibleToEnemies, "Makes the player invisible to the enemies");
ImGui::SameLine();
ImGui::CheckboxHotkey("Invisible to Enemies", &invisibleToEnemies);
ImGui::CheckboxHotkey("Disable Out of Bounds Timer", &disableOutOfBoundsTimer);
ImGui::CheckboxHotkey("Nightrunner Mode", &nightrunnerMode);
ImGui::CheckboxHotkey("Disable Out of Bounds Timer", &disableOutOfBoundsTimer, "Disables the timer that runs when out of map bounds or mission bounds");
ImGui::CheckboxHotkey("Nightrunner Mode", &nightrunnerMode, "Makes Aiden super-human/infected");
ImGui::SameLine();
ImGui::CheckboxHotkey("One-handed Mode", &oneHandedMode);
ImGui::CheckboxHotkey("One-handed Mode", &oneHandedMode, "Removes Aiden's left hand");
ImGui::SeparatorText("Player Jump Parameters");
if (ImGui::Button("Reload Jump Params")) {
if (ImGui::Button("Reload Jump Params", "Reloads jump_parameters.scr from any mod located inside EGameTools\\UserModFiles")) {
if (Utils::Files::FileExistsInDir("jump_parameters.scr", "EGameTools\\UserModFiles")) {
GamePH::ReloadJumps();
ImGui::OpenPopup("Reloaded player jump parameters!");
@ -6923,7 +6928,7 @@ namespace Menu {
}
ImGui::SeparatorText("Player Variables");
ImGui::Checkbox("Enabled##PlayerVars", &playerVariables);
ImGui::Checkbox("Enabled##PlayerVars", &playerVariables, "Shows the list of player variables");
HandlePlayerVariablesList();
HandleDialogs();

View File

@ -10,6 +10,7 @@ namespace Menu {
extern float playerMaxImmunity;
extern KeyBindOption godMode;
extern KeyBindOption unlimitedImmunity;
extern KeyBindOption unlimitedStamina;
extern KeyBindOption freezePlayer;
extern KeyBindOption invisibleToEnemies;
extern KeyBindOption disableOutOfBoundsTimer;

View File

@ -133,9 +133,9 @@ namespace Menu {
ImGui::EndDisabled();
}
ImGui::CheckboxHotkey("Freeze Time", &freezeTime);
ImGui::CheckboxHotkey("Freeze Time", &freezeTime, "Freezes time");
ImGui::SameLine();
ImGui::CheckboxHotkey("Slow Motion", &slowMotion);
ImGui::CheckboxHotkey("Slow Motion", &slowMotion, "Slows the game down to the speed specified on the \"Slow Motion Speed\" slider");
ImGui::EndDisabled();
}