diff --git a/libultraship/libultraship/ImGuiImpl.cpp b/libultraship/libultraship/ImGuiImpl.cpp index 7e78b17182..c43b5337e4 100644 --- a/libultraship/libultraship/ImGuiImpl.cpp +++ b/libultraship/libultraship/ImGuiImpl.cpp @@ -2017,10 +2017,13 @@ namespace SohImGui { "Play unique fanfares when obtaining quest items " "(medallions/stones/songs). Note that these fanfares are longer than usual." ); - PaddedEnhancementCheckbox("Enhanced Magic Arrows", "gEnhancedMagicArrows", true, false); + PaddedEnhancementCheckbox("Blue Fire Arrows", "gBlueFireArrows", true, false); Tooltip( - "Allows Ice Arrows to melt red ice and allows Light Arrows " - "to activate Sun Switches." + "Allows Ice Arrows to melt red ice and break mud walls" + ); + PaddedEnhancementCheckbox("Sunlight Arrows", "gSunLightArrows", true, false); + Tooltip( + "Allows Light Arrows to activate Sun Switches" ); ImGui::EndMenu(); } diff --git a/soh/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c b/soh/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c index eec0c067b5..bead453d10 100644 --- a/soh/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c +++ b/soh/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c @@ -94,7 +94,7 @@ static InitChainEntry sInitChain[] = { ICHAIN_F32(uncullZoneDownward, 400, ICHAIN_STOP), }; -bool enhancedIceArrowDC = false; +bool blueFireArrowsDC = false; void BgBreakwall_SetupAction(BgBreakwall* this, BgBreakwallActionFunc actionFunc) { this->actionFunc = actionFunc; @@ -105,7 +105,7 @@ void BgBreakwall_Init(Actor* thisx, GlobalContext* globalCtx) { s32 pad; s32 wallType = ((this->dyna.actor.params >> 13) & 3) & 0xFF; - enhancedIceArrowDC = (gSaveContext.n64ddFlag && (CVar_GetS32("gEnhancedMagicArrows", 0) != 0)); + blueFireArrowsDC = (gSaveContext.n64ddFlag && (CVar_GetS32("gBlueFireArrows", 0) != 0)); Actor_ProcessInitChain(&this->dyna.actor, sInitChain); DynaPolyActor_Init(&this->dyna, DPM_UNK); @@ -126,7 +126,7 @@ void BgBreakwall_Init(Actor* thisx, GlobalContext* globalCtx) { Collider_InitQuad(globalCtx, &this->collider); Collider_SetQuad(globalCtx, &this->collider, &this->dyna.actor, &sQuadInit); // If "Blue Fire Arrows" are enabled, set up this collider for them - if (enhancedIceArrowDC) { + if (blueFireArrowsDC) { Collider_InitQuad(globalCtx, &this->colliderIceArrow); Collider_SetQuad(globalCtx, &this->colliderIceArrow, &this->dyna.actor, &sIceArrowQuadInit); } @@ -259,7 +259,7 @@ void BgBreakwall_WaitForObject(BgBreakwall* this, GlobalContext* globalCtx) { void BgBreakwall_Wait(BgBreakwall* this, GlobalContext* globalCtx) { bool blueFireArrowHit = false; // If "Blue Fire Arrows" enabled, check this collider for a hit - if (enhancedIceArrowDC) { + if (blueFireArrowsDC) { if (this->colliderIceArrow.base.acFlags & AC_HIT) { this->colliderIceArrow.base.acFlags &= ~AC_HIT; if ((this->colliderIceArrow.base.ac != NULL) && (this->colliderIceArrow.base.ac->id == ACTOR_EN_ARROW)) { @@ -358,7 +358,7 @@ void BgBreakwall_Draw(Actor* thisx, GlobalContext* globalCtx) { Collider_SetQuadVertices(&this->collider, &colQuad[0], &colQuad[1], &colQuad[2], &colQuad[3]); CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->collider.base); - if (enhancedIceArrowDC) { + if (blueFireArrowsDC) { Collider_SetQuadVertices(&this->colliderIceArrow, &colQuad[0], &colQuad[1], &colQuad[2], &colQuad[3]); CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->colliderIceArrow.base); } diff --git a/soh/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c b/soh/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c index 709f8e1bae..52200ac3ed 100644 --- a/soh/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c +++ b/soh/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c @@ -95,7 +95,7 @@ static ColliderCylinderInit sIceArrowCylinderInit = { { 0, 0, 0, { 0, 0, 0 } }, }; -bool enhancedIceArrow = false; +bool blueFireArrows = false; void func_80890740(BgIceShelter* this, GlobalContext* globalCtx) { static s16 cylinderRadii[] = { 47, 33, 44, 41, 100 }; @@ -103,11 +103,11 @@ void func_80890740(BgIceShelter* this, GlobalContext* globalCtx) { s32 pad; s32 type = (this->dyna.actor.params >> 8) & 7; - enhancedIceArrow = (gSaveContext.n64ddFlag && (CVar_GetS32("gEnhancedMagicArrows", 0) != 0)); + blueFireArrows = (gSaveContext.n64ddFlag && (CVar_GetS32("gBlueFireArrows", 0) != 0)); Collider_InitCylinder(globalCtx, &this->cylinder1); // If "Blue Fire Arrows" is enabled, set up a collider on the red ice that responds to them - if (enhancedIceArrow) { + if (blueFireArrows) { Collider_SetCylinder(globalCtx, &this->cylinder1, &this->dyna.actor, &sIceArrowCylinderInit); } else { Collider_SetCylinder(globalCtx, &this->cylinder1, &this->dyna.actor, &sCylinder1Init); @@ -325,7 +325,7 @@ void func_8089107C(BgIceShelter* this, GlobalContext* globalCtx) { } } // If we have "Blue Fire Arrows" enabled, check both cylinders for a hit - if (enhancedIceArrow) { + if (blueFireArrows) { CheckIceArrowHit(this, this->cylinder1, type, globalCtx); CheckIceArrowHit(this, this->cylinder2, type, globalCtx); } diff --git a/soh/src/overlays/actors/ovl_Bg_Jya_Lift/z_bg_jya_lift.c b/soh/src/overlays/actors/ovl_Bg_Jya_Lift/z_bg_jya_lift.c index 9476a02a21..c7db6751e5 100644 --- a/soh/src/overlays/actors/ovl_Bg_Jya_Lift/z_bg_jya_lift.c +++ b/soh/src/overlays/actors/ovl_Bg_Jya_Lift/z_bg_jya_lift.c @@ -98,7 +98,7 @@ void BgJyaLift_DelayMove(BgJyaLift* this, GlobalContext* globalCtx) { if (this->moveDelay >= 20) { // Skip this cutscene if using Enhanced Arrows, since activating the switch while // not standing on the platform will cause the cutscene to show the unloaded room - if (!(gSaveContext.n64ddFlag && CVar_GetS32("gEnhancedMagicArrows", 0) != 0)) { + if (!(gSaveContext.n64ddFlag && CVar_GetS32("gSunLightArrows", 0) != 0)) { OnePointCutscene_Init(globalCtx, 3430, -99, &this->dyna.actor, MAIN_CAM); } BgJyaLift_SetupMove(this); diff --git a/soh/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c b/soh/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c index 65c39a54ef..4791f186d8 100644 --- a/soh/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c +++ b/soh/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c @@ -73,7 +73,7 @@ static ColliderJntSphInit sColliderJntSphInit = { 1, sColliderJntSphElementInit, }; -// Collider info used for "Enhanced Arrows" +// Collider info used for "Sunlight Arrows" static ColliderJntSphElementInit sColliderLightArrowElementInit[] = { { { @@ -87,7 +87,7 @@ static ColliderJntSphElementInit sColliderLightArrowElementInit[] = { { 0, { { 0, 0, 0 }, 19 }, 100 }, }, }; -// Sphere collider used for "Enhanced Arrows" +// Sphere collider used for "Sunlight Arrows" static ColliderJntSphInit sColliderLightArrowInit = { { COLTYPE_NONE, @@ -102,7 +102,7 @@ static ColliderJntSphInit sColliderLightArrowInit = { }; bool activatedByLightArrow = false; -bool enhancedLightArrow = false; +bool sunLightArrows = false; static CollisionCheckInfoInit sColChkInfoInit = { 0, 12, 60, MASS_IMMOVABLE }; @@ -121,11 +121,11 @@ static InitChainEntry sInitChain[] = { void ObjLightswitch_InitCollider(ObjLightswitch* this, GlobalContext* globalCtx) { s32 pad; - enhancedLightArrow = (gSaveContext.n64ddFlag && (CVar_GetS32("gEnhancedMagicArrows", 0) != 0)); + sunLightArrows = (gSaveContext.n64ddFlag && (CVar_GetS32("gSunLightArrows", 0) != 0)); Collider_InitJntSph(globalCtx, &this->collider); - // If "Enhanced Arrows" is enabled, set up the collider to allow Light Arrow hits - if (enhancedLightArrow) { + // If "Sunlight Arrows" is enabled, set up the collider to allow Light Arrow hits + if (sunLightArrows) { Collider_SetJntSph(globalCtx, &this->collider, &this->actor, &sColliderLightArrowInit, this->colliderItems); } else { Collider_SetJntSph(globalCtx, &this->collider, &this->actor, &sColliderJntSphInit, this->colliderItems); @@ -251,7 +251,7 @@ void ObjLightswitch_Destroy(Actor* thisx, GlobalContext* globalCtx2) { // vanishing on its own after activating the sun switch by Light Arrow // Also prevents the cobra mirror from rotating to face the sun on its own // Makes sun switches temporary when activated by Light Arrows (will turn off on room exit) - if (activatedByLightArrow && enhancedLightArrow) { + if (activatedByLightArrow && sunLightArrows) { switch (this->actor.params >> 4 & 3) { case OBJLIGHTSWITCH_TYPE_STAY_ON: case OBJLIGHTSWITCH_TYPE_2: @@ -277,7 +277,7 @@ void ObjLightswitch_SetupOff(ObjLightswitch* this) { this->color[1] = 125 << 6; this->color[2] = 255 << 6; this->alpha = 255 << 6; - if (enhancedLightArrow) { + if (sunLightArrows) { activatedByLightArrow = false; } } @@ -291,7 +291,7 @@ void ObjLightswitch_Off(ObjLightswitch* this, GlobalContext* globalCtx) { ObjLightswitch_SetSwitchFlag(this, globalCtx); // Remember if we've been activated by a Light Arrow, so we can // prevent the switch from immediately turning back off - if (enhancedLightArrow) { + if (sunLightArrows) { if (this->collider.base.ac != NULL && this->collider.base.ac->id == ACTOR_EN_ARROW) { activatedByLightArrow = true; } @@ -363,7 +363,7 @@ void ObjLightswitch_On(ObjLightswitch* this, GlobalContext* globalCtx) { ObjLightswitch_SetupTurnOff(this); } // If hit by sunlight after already being turned on, then behave as if originally activated by sunlight - if (enhancedLightArrow && (this->collider.base.acFlags & AC_HIT)) { + if (sunLightArrows && (this->collider.base.acFlags & AC_HIT)) { if (this->collider.base.ac != NULL && this->collider.base.ac->id != ACTOR_EN_ARROW) { activatedByLightArrow = false; } @@ -377,7 +377,7 @@ void ObjLightswitch_On(ObjLightswitch* this, GlobalContext* globalCtx) { break; case OBJLIGHTSWITCH_TYPE_2: // If hit by sunlight after already being turned on, then behave as if originally activated by sunlight - if (enhancedLightArrow && (this->collider.base.acFlags & AC_HIT)) { + if (sunLightArrows && (this->collider.base.acFlags & AC_HIT)) { if (this->collider.base.ac != NULL && this->collider.base.ac->id != ACTOR_EN_ARROW) { activatedByLightArrow = false; }