summaryrefslogtreecommitdiff
path: root/soh/src/code
diff options
context:
space:
mode:
Diffstat (limited to 'soh/src/code')
-rw-r--r--soh/src/code/z_inventory.c30
-rw-r--r--soh/src/code/z_parameter.c6
-rw-r--r--soh/src/code/z_play.c4
3 files changed, 40 insertions, 0 deletions
diff --git a/soh/src/code/z_inventory.c b/soh/src/code/z_inventory.c
index 4141ffe1f..5f317672d 100644
--- a/soh/src/code/z_inventory.c
+++ b/soh/src/code/z_inventory.c
@@ -3,6 +3,7 @@
#include "textures/icon_item_static/icon_item_static.h"
#include "textures/icon_item_24_static/icon_item_24_static.h"
#include "textures/parameter_static/parameter_static.h"
+#include <soh_assets.h>
// Bit Flag array in which gBitFlags[n] is literally (1 << n)
u32 gBitFlags[] = {
@@ -168,6 +169,35 @@ void* gItemIcons[] = {
gOcarinaBtnIconCLeftTex,
gOcarinaBtnIconCRightTex,
gOcarinaBtnIconATex,
+ // Push down array to reach newly added item IDs
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ // Start custom items
+ gRocsFeatherTex,
};
// Used to map item IDs to inventory slots
diff --git a/soh/src/code/z_parameter.c b/soh/src/code/z_parameter.c
index a9dfdd01f..86a72456f 100644
--- a/soh/src/code/z_parameter.c
+++ b/soh/src/code/z_parameter.c
@@ -2464,6 +2464,12 @@ u8 Item_Give(PlayState* play, u8 item) {
}
return Return_Item(item, MOD_NONE, ITEM_NONE);
+ } else if (item == ITEM_NAYRUS_LOVE && Randomizer_GetSettingValue(RSK_ROCS_FEATHER)) {
+ Flags_SetRandomizerInf(RAND_INF_OBTAINED_NAYRUS_LOVE);
+ if (INV_CONTENT(ITEM_NAYRUS_LOVE) == ITEM_NONE) {
+ INV_CONTENT(ITEM_NAYRUS_LOVE) = ITEM_NAYRUS_LOVE;
+ }
+ return Return_Item(item, MOD_NONE, ITEM_NONE);
}
returnItem = gSaveContext.inventory.items[slot];
osSyncPrintf("Item_Register(%d)=%d %d\n", slot, item, returnItem);
diff --git a/soh/src/code/z_play.c b/soh/src/code/z_play.c
index 4890fa2a4..aa51915c1 100644
--- a/soh/src/code/z_play.c
+++ b/soh/src/code/z_play.c
@@ -594,6 +594,10 @@ void Play_Init(GameState* thisx) {
gSlotAgeReqs[SLOT_TRADE_CHILD] = AGE_REQ_CHILD;
}
+ // Handle Rocs Feather requiement
+ gItemAgeReqs[ITEM_ROCS_FEATHER] = AGE_REQ_NONE;
+ gSlotAgeReqs[SLOT_NAYRUS_LOVE] = AGE_REQ_NONE;
+
func_800304DC(play, &play->actorCtx, play->linkActorEntry);
while (!func_800973FC(play, &play->roomCtx)) {