summaryrefslogtreecommitdiff
path: root/soh/src
diff options
context:
space:
mode:
authorbriaguya <70942617+briaguya-ai@users.noreply.github.com>2023-03-06 23:39:08 -0500
committerGitHub <noreply@github.com>2023-03-06 23:39:08 -0500
commiteb28d114cd1dc4418507f0ee75fa3861979b4d7f (patch)
treebe68d24649e20cd82984db81421864d5b2ed9bb8 /soh/src
parentdbcc6b4818c9c23791effd2787fa5b180a8d7542 (diff)
parent5d323439193f650b2c9b033fe4769706eb032ec8 (diff)
khan -> dev
Diffstat (limited to 'soh/src')
-rw-r--r--soh/src/code/z_play.c2
-rw-r--r--soh/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c8
-rw-r--r--soh/src/overlays/actors/ovl_player_actor/z_player.c3
3 files changed, 10 insertions, 3 deletions
diff --git a/soh/src/code/z_play.c b/soh/src/code/z_play.c
index 981f5b975..418eff501 100644
--- a/soh/src/code/z_play.c
+++ b/soh/src/code/z_play.c
@@ -874,7 +874,7 @@ void Play_Update(PlayState* play) {
// Also don't save when you first load a file to prevent consumables like magic from being lost
// Also don't save if there's a pending shop sale to prevent getting the item for a discount!
if ((CVarGetInteger("gAutosave", 0) >= 1) && (CVarGetInteger("gAutosave", 0) <= 3) &&
- (gSaveContext.cutsceneIndex == 0) && (play->gameplayFrames > 60) && (gSaveContext.pendingSale == ITEM_NONE) &&
+ (gSaveContext.cutsceneIndex < 0xFFF0) && (play->gameplayFrames > 60) && (gSaveContext.pendingSale == ITEM_NONE) &&
(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_En_Ossan/z_en_ossan.c b/soh/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c
index 1d9ea6608..1e55d073b 100644
--- a/soh/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c
+++ b/soh/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c
@@ -13,6 +13,7 @@
#include "objects/object_mastergolon/object_mastergolon.h"
#include "objects/object_masterzoora/object_masterzoora.h"
#include "objects/object_masterkokirihead/object_masterkokirihead.h"
+#include "soh/Enhancements/randomizer/randomizer_entrance.h"
#define FLAGS (ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_4)
@@ -934,7 +935,12 @@ void EnOssan_State_StartConversation(EnOssan* this, PlayState* play, Player* pla
EnOssan_TryPaybackMask(this, play);
return;
case OSSAN_HAPPY_STATE_ANGRY:
- play->nextEntranceIndex = 0x1D1;
+ // In ER, handle happy mask throwing link out with not enough rupees
+ if (gSaveContext.n64ddFlag && Randomizer_GetSettingValue(RSK_SHUFFLE_ENTRANCES)) {
+ play->nextEntranceIndex = Entrance_OverrideNextIndex(0x1D1);
+ } else {
+ play->nextEntranceIndex = 0x1D1;
+ }
play->sceneLoadFlag = 0x14;
play->fadeTransition = 0x2E;
return;
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 cd9d50e00..8196058f1 100644
--- a/soh/src/overlays/actors/ovl_player_actor/z_player.c
+++ b/soh/src/overlays/actors/ovl_player_actor/z_player.c
@@ -12604,7 +12604,8 @@ s32 func_8084DFF4(PlayState* play, Player* this) {
}
this->unk_84F = 1;
equipItem = giEntry.itemId;
- equipNow = CVarGetInteger("gAskToEquip", 0) && equipItem >= ITEM_SWORD_KOKIRI && equipItem <= ITEM_TUNIC_ZORA &&
+ equipNow = CVarGetInteger("gAskToEquip", 0) && giEntry.modIndex == MOD_NONE &&
+ equipItem >= ITEM_SWORD_KOKIRI && equipItem <= ITEM_TUNIC_ZORA &&
((gItemAgeReqs[equipItem] == 9 || gItemAgeReqs[equipItem] == gSaveContext.linkAge) ||
CVarGetInteger("gTimelessEquipment", 0));