From 3a9dd95abcbfdb762833ea202b2ec5b272c48768 Mon Sep 17 00:00:00 2001 From: earthcrafterman Date: Thu, 21 Jul 2022 20:31:49 -0400 Subject: [PATCH] Added a time saver option to allow players to instantly put items away (#600) * Added a time saver option to allow players to instantly put items away Expanded the range of damage multiplication to 80 (20 hearts of damage for each quarter heart) so players can play a sudden death challenge * The damage sliders are now comboboxes Damage multiplication is now exponential instead of incremental The FPS slider is now a text input * Splitting into solely being a quick putaway PR * Removed some leftover code from the split --- libultraship/libultraship/ImGuiImpl.cpp | 12 +++++++++++- soh/src/overlays/actors/ovl_player_actor/z_player.c | 11 +++++++++-- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/libultraship/libultraship/ImGuiImpl.cpp b/libultraship/libultraship/ImGuiImpl.cpp index 31e2eeb0b..f4cd00053 100644 --- a/libultraship/libultraship/ImGuiImpl.cpp +++ b/libultraship/libultraship/ImGuiImpl.cpp @@ -975,7 +975,8 @@ namespace SohImGui { Tooltip("The default response to Kaepora Gaebora is\nalways that you understood what he said"); EnhancementCheckbox("Fast Ocarina Playback", "gFastOcarinaPlayback"); Tooltip("Skip the part where the Ocarina playback is called when you play\na song"); - + EnhancementCheckbox("Instant Putaway", "gInstantPutaway"); + Tooltip("Allow Link to put items away without having to wait around"); ImGui::EndMenu(); } @@ -1249,6 +1250,15 @@ namespace SohImGui { if (ImGui::SliderInt("##FPSInterpolation", &val, 20, 250, "", ImGuiSliderFlags_AlwaysClamp)) { + if (val > 250) + { + val = 250; + } + else if (val < 20) + { + val = 20; + } + CVar_SetS32(fps_cvar, val); needs_save = true; } diff --git a/soh/src/overlays/actors/ovl_player_actor/z_player.c b/soh/src/overlays/actors/ovl_player_actor/z_player.c index 93a219a9e..072f5c20c 100644 --- a/soh/src/overlays/actors/ovl_player_actor/z_player.c +++ b/soh/src/overlays/actors/ovl_player_actor/z_player.c @@ -9905,8 +9905,15 @@ void func_808473D4(GlobalContext* globalCtx, Player* this) { this->unk_837 = 20; } else if (this->unk_837 != 0) { - doAction = DO_ACTION_NONE; - this->unk_837--; + if (CVar_GetS32("gInstantPutaway", 0) != 0) + { + this->unk_837 = 0; + } + else + { + doAction = DO_ACTION_NONE; + this->unk_837--; + } } Interface_SetDoAction(globalCtx, doAction);