Bugfix, grotto boulder block respawn from water voidout (#6854)

This commit is contained in:
djevangelia
2026-07-13 17:02:11 +02:00
committed by GitHub
parent 80fb8a8aa5
commit d1d6a564e5
2 changed files with 7 additions and 1 deletions
@@ -2790,7 +2790,8 @@ f32 triforcePieceScale;
void RandomizerOnPlayerUpdateHandler() {
if ((GET_PLAYER(gPlayState)->stateFlags1 & PLAYER_STATE1_IN_WATER) && !Flags_GetRandomizerInf(RAND_INF_CAN_SWIM) &&
CUR_EQUIP_VALUE(EQUIP_TYPE_BOOTS) != EQUIP_VALUE_BOOTS_IRON) {
CUR_EQUIP_VALUE(EQUIP_TYPE_BOOTS) != EQUIP_VALUE_BOOTS_IRON &&
gPlayState->transitionTrigger == TRANS_TRIGGER_OFF) {
// if you void out in water temple without swim you get instantly kicked out to prevent softlocks
if (gPlayState->sceneNum == SCENE_WATER_TEMPLE) {
GameInteractor::RawAction::TeleportPlayer(
@@ -2816,6 +2817,7 @@ void RandomizerOnPlayerUpdateHandler() {
gSaveContext.respawnFlag = 0;
} else {
Play_TriggerVoidOut(gPlayState);
Grotto_ForceGrottoReturnOnSpecialEntrance();
}
}
}
@@ -10677,6 +10677,10 @@ void Player_StartMode_Door(PlayState* play, Player* this) {
}
void Player_StartMode_Grotto(PlayState* play, Player* this) {
// If can respawn from water to grotto, need to set normal speed factor for the jump
if (IS_RANDO) {
sWaterSpeedFactor = 1.0f;
}
func_808389E8(this, &gPlayerAnim_link_normal_jump, 12.0f, play);
Player_SetupAction(play, this, Player_Action_8084F9C0, 0);
this->stateFlags1 |= PLAYER_STATE1_IN_CUTSCENE;