summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJake Edvenson <77412657+JakeEdvenson@users.noreply.github.com>2022-08-23 18:30:06 -0600
committerGitHub <noreply@github.com>2022-08-23 20:30:06 -0400
commit927ffd0b8b782cd3b4151ff1dc43dae98aeddabc (patch)
tree6b3a14b8652ce256acb3d9e504217a418e9be53b
parentd6ebce068daf16c780ab77409077d0df31da837e (diff)
Enhancement: Scarecrow song skip (#1183)
* Added Skip Scarecrow Song Added in the option for if the user has the time saver for Scarecrow song enabled and has their Ocarina pulled out in range of Pierre. Added Skip Scarecrow Song New enhancement under time-savers that allows the user to only pull out their ocarina to summon Pierre. * Added Default for Scarecrow summon The scarecrow summon option now defaults to 0 and can be turned on individually. I haven't included it in any other presets so people don't feel like they're cheating. * Checks if scarecrow song is in possession * Fixed positional Scarecrow logic * Fixed style
-rw-r--r--libultraship/libultraship/ImGuiImpl.cpp4
-rw-r--r--soh/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c7
2 files changed, 8 insertions, 3 deletions
diff --git a/libultraship/libultraship/ImGuiImpl.cpp b/libultraship/libultraship/ImGuiImpl.cpp
index 79dbef375..6b04209ba 100644
--- a/libultraship/libultraship/ImGuiImpl.cpp
+++ b/libultraship/libultraship/ImGuiImpl.cpp
@@ -1301,6 +1301,8 @@ namespace SohImGui {
Tooltip("The default response to Kaepora Gaebora is always that you understood what he said");
PaddedEnhancementCheckbox("Fast Ocarina Playback", "gFastOcarinaPlayback", true, false);
Tooltip("Skip the part where the Ocarina playback is called when you play a song");
+ PaddedEnhancementCheckbox("Skip Scarecrow Song", "gSkipScarecrow", true, false);
+ Tooltip("Pierre appears when Ocarina is pulled out. Requires learning scarecrow song.");
PaddedEnhancementCheckbox("Instant Putaway", "gInstantPutaway", true, false);
Tooltip("Allow Link to put items away without having to wait around");
PaddedEnhancementCheckbox("Instant Boomerang Recall", "gFastBoomerang", true, false);
@@ -2479,6 +2481,8 @@ namespace SohImGui {
CVar_SetS32("gVisualAgony", 1);
// Pull grave during the day
CVar_SetS32("gDayGravePull", 1);
+ // Pull out Ocarina to Summon Scarecrow
+ CVar_SetS32("gSkipScarecrow", 0);
// Pause link animation (0 to 16)
CVar_SetS32("gPauseLiveLink", 16);
diff --git a/soh/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c b/soh/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c
index 3469d4d6b..a7be7866d 100644
--- a/soh/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c
+++ b/soh/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c
@@ -118,9 +118,10 @@ void func_80A90264(EnKakasi2* this, GlobalContext* globalCtx) {
this->unk_194++;
- if ((BREG(1) != 0) && (this->actor.xzDistToPlayer < this->maxSpawnDistance.x) &&
- (fabsf(player->actor.world.pos.y - this->actor.world.pos.y) < this->maxSpawnDistance.y)) {
-
+ if (((BREG(1) != 0) || ((CVar_GetS32("gSkipScarecrow", 0) != 0) &&
+ (globalCtx->msgCtx.ocarinaAction == OCARINA_ACTION_FREE_PLAY) && gSaveContext.scarecrowSpawnSongSet)) &&
+ (this->actor.xzDistToPlayer < this->maxSpawnDistance.x) &&
+ (fabsf(player->actor.world.pos.y - this->actor.world.pos.y) < this->maxSpawnDistance.y)){
this->actor.draw = func_80A90948;
Collider_InitCylinder(globalCtx, &this->collider);
Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);