summaryrefslogtreecommitdiff
path: root/soh/src
diff options
context:
space:
mode:
authorbriaguya <briaguya@alice>2022-12-06 21:29:27 -0500
committerbriaguya <briaguya@alice>2022-12-06 21:29:27 -0500
commit4f109178ffdebbf4824a32ff9b8b9fa0159cf3ce (patch)
treee1d17ce453354147e1fc6cbc60cd62e9f78b699c /soh/src
parentd9f3844b2db80f74fc233391164981cf0b59f1f7 (diff)
parent00cbd347b2ae8c50dfca1336e9eb7ff45a506784 (diff)
Merge branch 'develop-flynn' into flynn-to-dev
Diffstat (limited to 'soh/src')
-rw-r--r--soh/src/code/z_parameter.c9
-rw-r--r--soh/src/code/z_play.c2
-rw-r--r--soh/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c7
-rw-r--r--soh/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c10
-rw-r--r--soh/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c2
-rw-r--r--soh/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL.c2
6 files changed, 22 insertions, 10 deletions
diff --git a/soh/src/code/z_parameter.c b/soh/src/code/z_parameter.c
index 1d4e59f07..537d185bd 100644
--- a/soh/src/code/z_parameter.c
+++ b/soh/src/code/z_parameter.c
@@ -2704,7 +2704,7 @@ u8 Item_CheckObtainability(u8 item) {
}
void PerformAutosave(PlayState* play, u8 item) {
- if (CVar_GetS32("gAutosave", 0)) {
+ if (CVar_GetS32("gAutosave", 0) && (play->sceneNum != SCENE_KENJYANOMA)) {
if (CVar_GetS32("gAutosaveAllItems", 0)) {
Play_PerformSave(play);
} else if (CVar_GetS32("gAutosaveMajorItems", 1)) {
@@ -2745,6 +2745,13 @@ void PerformAutosave(PlayState* play, u8 item) {
if (play->sceneNum == SCENE_GANON_DEMO) {
break;
}
+ case ITEM_BOMBCHU:
+ case ITEM_BOMBCHUS_5:
+ case ITEM_BOMBCHUS_20:
+ if (!CVar_GetS32("gBombchuDrops", 0)) {
+ Play_PerformSave(play);
+ }
+ break;
default:
Play_PerformSave(play);
break;
diff --git a/soh/src/code/z_play.c b/soh/src/code/z_play.c
index b08f9cee4..dab5411b9 100644
--- a/soh/src/code/z_play.c
+++ b/soh/src/code/z_play.c
@@ -870,7 +870,7 @@ void Play_Update(PlayState* play) {
// Don't autosave in grottos or cutscenes
// Also don't save when you first load a file
if (CVar_GetS32("gAutosave", 0) && (gSaveContext.cutsceneIndex == 0) && (play->gameplayFrames > 60) &&
- (play->sceneNum != SCENE_YOUSEI_IZUMI_TATE) && (play->sceneNum != SCENE_KAKUSIANA)) {
+ (play->sceneNum != SCENE_YOUSEI_IZUMI_TATE) && (play->sceneNum != SCENE_KAKUSIANA) && (play->sceneNum != SCENE_KENJYANOMA)) {
Play_PerformSave(play);
}
}
diff --git a/soh/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c b/soh/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c
index 0bbbe58c5..b1774251b 100644
--- a/soh/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c
+++ b/soh/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c
@@ -257,6 +257,10 @@ void ArmsHook_Shoot(ArmsHook* this, PlayState* play) {
sp60.x = this->unk_1F4.x - (this->unk_1E8.x - this->unk_1F4.x);
sp60.y = this->unk_1F4.y - (this->unk_1E8.y - this->unk_1F4.y);
sp60.z = this->unk_1F4.z - (this->unk_1E8.z - this->unk_1F4.z);
+ u16 buttonsToCheck = BTN_A | BTN_B | BTN_R | BTN_CUP | BTN_CLEFT | BTN_CRIGHT | BTN_CDOWN;
+ if (CVar_GetS32("gDpadEquips", 0) != 0) {
+ buttonsToCheck |= BTN_DUP | BTN_DDOWN | BTN_DLEFT | BTN_DRIGHT;
+ }
if (BgCheck_EntityLineTest1(&play->colCtx, &sp60, &this->unk_1E8, &sp78, &poly, true, true, true, true,
&bgId) &&
!func_8002F9EC(play, &this->actor, poly, bgId, &sp78)) {
@@ -281,8 +285,7 @@ void ArmsHook_Shoot(ArmsHook* this, PlayState* play) {
Audio_PlaySoundGeneral(NA_SE_IT_HOOKSHOT_REFLECT, &this->actor.projectedPos, 4, &D_801333E0,
&D_801333E0, &D_801333E8);
}
- } else if (CHECK_BTN_ANY(play->state.input[0].press.button,
- (BTN_A | BTN_B | BTN_R | BTN_CUP | BTN_CLEFT | BTN_CRIGHT | BTN_CDOWN))) {
+ } else if (CHECK_BTN_ANY(play->state.input[0].press.button, (buttonsToCheck))) {
this->timer = 0;
}
}
diff --git a/soh/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c b/soh/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c
index b85ec62c1..7e08cbb0f 100644
--- a/soh/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c
+++ b/soh/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c
@@ -1082,7 +1082,7 @@ void BossGanon_IntroCutscene(BossGanon* this, PlayState* play) {
if (!(gSaveContext.eventChkInf[7] & 0x100)) {
TitleCard_InitBossName(play, &play->actorCtx.titleCtx,
- SEGMENTED_TO_VIRTUAL(gGanondorfTitleCardTex), 160, 180, 128, 40, false);
+ SEGMENTED_TO_VIRTUAL(gGanondorfTitleCardTex), 160, 180, 128, 40, true);
}
gSaveContext.eventChkInf[7] |= 0x100;
@@ -1197,8 +1197,8 @@ void BossGanon_SetupTowerCutscene(BossGanon* this, PlayState* play) {
void BossGanon_ShatterWindows(u8 windowShatterState) {
s16 i;
- u8* tex1 = ResourceMgr_LoadTexByName(SEGMENTED_TO_VIRTUAL(ganon_boss_sceneTex_006C18));
- u8* tex2 = ResourceMgr_LoadTexByName(SEGMENTED_TO_VIRTUAL(ganon_boss_sceneTex_007418));
+ u8* tex1 = ResourceMgr_LoadTexByName(SEGMENTED_TO_VIRTUAL(ResourceMgr_GetName(ganon_boss_sceneTex_006C18)));
+ u8* tex2 = ResourceMgr_LoadTexByName(SEGMENTED_TO_VIRTUAL(ResourceMgr_GetName(ganon_boss_sceneTex_007418)));
u8* templateTex = ResourceMgr_LoadTexByName(SEGMENTED_TO_VIRTUAL(gGanondorfWindowShatterTemplateTex));
for (i = 0; i < 2048; i++) {
@@ -3820,8 +3820,8 @@ void BossGanon_Draw(Actor* thisx, PlayState* play) {
// Invalidate textures if they have changed
if (this->windowShatterState != GDF_WINDOW_SHATTER_OFF) {
- gSPInvalidateTexCache(POLY_OPA_DISP++, ganon_boss_sceneTex_006C18);
- gSPInvalidateTexCache(POLY_OPA_DISP++, ganon_boss_sceneTex_007418);
+ gSPInvalidateTexCache(POLY_OPA_DISP++, ResourceMgr_GetName(ganon_boss_sceneTex_006C18));
+ gSPInvalidateTexCache(POLY_OPA_DISP++, ResourceMgr_GetName(ganon_boss_sceneTex_007418));
}
Gfx_SetupDL_25Opa(play->state.gfxCtx);
diff --git a/soh/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c b/soh/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c
index c7ea77f38..599055594 100644
--- a/soh/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c
+++ b/soh/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c
@@ -843,6 +843,8 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, PlayState* play) {
if (gSaveContext.n64ddFlag) {
play->nextEntranceIndex = 0x60C;
gSaveContext.nextCutsceneIndex = 0;
+ // Set "raised lake hylia water" since we aren't warping to the cutscene
+ gSaveContext.eventChkInf[6] |= 0x200;
} else {
Item_Give(play, ITEM_MEDALLION_WATER);
play->nextEntranceIndex = 0x6B;
diff --git a/soh/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL.c b/soh/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL.c
index 7d6661696..fa0545977 100644
--- a/soh/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL.c
+++ b/soh/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL.c
@@ -1980,7 +1980,7 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) {
} else {//baguettes
PosX = 98;
}
- s16 PosY = 200; //General Pos of C button icon
+ s16 PosY = 200 - pauseCtx->infoPanelOffsetY; //General Pos of C button icon
s16 icon_w = 46; // Original texture size
s16 icon_h = 16;
s32 icon_x_offset;