mirror of
https://github.com/EricPlayZ/EGameTools.git
synced 2025-07-18 17:37:53 +08:00
- Added "Unlimited Stamina" (Player)
- Added tooltips when hovering over buttons inside the mod menu
This commit is contained in:
@ -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);
|
||||
}
|
||||
}
|
@ -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));
|
||||
|
@ -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)" }
|
||||
};
|
||||
}
|
@ -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 },
|
||||
|
@ -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");
|
||||
}
|
||||
}
|
||||
}
|
@ -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");
|
||||
}
|
||||
|
@ -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();
|
||||
|
@ -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;
|
||||
|
@ -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();
|
||||
}
|
||||
|
Reference in New Issue
Block a user