diff --git a/soh/assets/custom/textures/icon_item_static/gArrowIconTex.rgba32.png b/soh/assets/custom/textures/icon_item_static/gArrowIconTex.rgba32.png new file mode 100644 index 00000000000..6e8affade3f Binary files /dev/null and b/soh/assets/custom/textures/icon_item_static/gArrowIconTex.rgba32.png differ diff --git a/soh/assets/custom/textures/icon_item_static/gFireArrowPower.rgba32.png b/soh/assets/custom/textures/icon_item_static/gFireArrowPower.rgba32.png new file mode 100644 index 00000000000..ed8e2600364 Binary files /dev/null and b/soh/assets/custom/textures/icon_item_static/gFireArrowPower.rgba32.png differ diff --git a/soh/assets/custom/textures/icon_item_static/gIceArrowPower.rgba32.png b/soh/assets/custom/textures/icon_item_static/gIceArrowPower.rgba32.png new file mode 100644 index 00000000000..713765372dc Binary files /dev/null and b/soh/assets/custom/textures/icon_item_static/gIceArrowPower.rgba32.png differ diff --git a/soh/assets/custom/textures/icon_item_static/gLightArrowPower.rgba32.png b/soh/assets/custom/textures/icon_item_static/gLightArrowPower.rgba32.png new file mode 100644 index 00000000000..79a3dd48423 Binary files /dev/null and b/soh/assets/custom/textures/icon_item_static/gLightArrowPower.rgba32.png differ diff --git a/soh/assets/soh_assets.h b/soh/assets/soh_assets.h index 2b193053c3b..c3d8216afbc 100644 --- a/soh/assets/soh_assets.h +++ b/soh/assets/soh_assets.h @@ -61,6 +61,18 @@ static const ALIGN_ASSET(2) char gTriforcePieceCompletedDL[] = dgTriforcePieceCo static const ALIGN_ASSET(2) char gOptionsDividerChangeLangVtx[] = dgOptionsDividerChangeLangVtx; // textures +#define dgArrowIconTex "__OTR__textures/icon_item_static/gArrowIconTex" +static const ALIGN_ASSET(2) char gArrowIconTex[] = dgArrowIconTex; + +#define dgFireArrowPower "__OTR__textures/icon_item_static/gFireArrowPower" +static const ALIGN_ASSET(2) char gFireArrowPowerTex[] = dgFireArrowPower; + +#define dgIceArrowPower "__OTR__textures/icon_item_static/gIceArrowPower" +static const ALIGN_ASSET(2) char gIceArrowPowerTex[] = dgIceArrowPower; + +#define dgLightArrowPower "__OTR__textures/icon_item_static/gLightArrowPower" +static const ALIGN_ASSET(2) char gLightArrowPowerTex[] = dgLightArrowPower; + #define dgDPad "__OTR__textures/parameter_static/gDPad" static const ALIGN_ASSET(2) char gDPadTex[] = dgDPad; diff --git a/soh/include/z64save.h b/soh/include/z64save.h index b3ff798ef81..2c31fe672e1 100644 --- a/soh/include/z64save.h +++ b/soh/include/z64save.h @@ -390,7 +390,6 @@ typedef enum { typedef enum { /* 0 */ LINK_AGE_ADULT, /* 1 */ LINK_AGE_CHILD, - /* 9 */ LINK_AGE_EITHER = 9 } LinkAge; diff --git a/soh/src/overlays/misc/ovl_kaleido_scope/z_kaleido_item.c b/soh/src/overlays/misc/ovl_kaleido_scope/z_kaleido_item.c index 1fdc9afadaa..23299f12f26 100644 --- a/soh/src/overlays/misc/ovl_kaleido_scope/z_kaleido_item.c +++ b/soh/src/overlays/misc/ovl_kaleido_scope/z_kaleido_item.c @@ -5,11 +5,25 @@ #include "soh/Enhancements/randomizer/randomizerTypes.h" #include "soh/Enhancements/enhancementTypes.h" #include "soh/Enhancements/cosmetics/cosmeticsTypes.h" +#include "soh_assets.h" u8 gAmmoItems[] = { - ITEM_NONE, ITEM_BOMB, ITEM_BOMBCHU, ITEM_NUT, ITEM_NONE, ITEM_BEAN, - ITEM_NONE, ITEM_SLINGSHOT, ITEM_NONE, ITEM_STICK, ITEM_NONE, ITEM_NONE, - ITEM_NONE, ITEM_BOW, ITEM_NONE, ITEM_NONE, + ITEM_NONE, // SLOT_DINS_FIRE + ITEM_BOMB, // SLOT_BOMB + ITEM_BOMBCHU, // SLOT_BOMBCHU + ITEM_NUT, // SLOT_NUT + ITEM_NONE, // SLOT_LENS + ITEM_BEAN, // SLOT_BEAN + ITEM_NONE, // SLOT_FARORES_WIND + ITEM_SLINGSHOT, // SLOT_SLINGSHOT + ITEM_NONE, // SLOT_BOOMERANG + ITEM_STICK, // SLOT_STICK + ITEM_NONE, // SLOT_BOOTS_HOVER + ITEM_NONE, // SLOT_TRADE_CHILD + ITEM_NONE, // SLOT_NAYRUS_LOVE + ITEM_BOW, // SLOT_BOW + ITEM_NONE, // SLOT_HOOKSHOT + ITEM_NONE, // SLOT_HAMMER }; static s16 sEquipState = 0; @@ -23,9 +37,21 @@ static s16 sArrowMenuTimer = 0; /* Maps an inventory slot to double the position of its ammo count in sAmmoVtxTableIdx */ static s16 sAmmoVtxOffset[] = { - 99, 0, 2, 4, 99, 6, - 99, 8, 99, 10, 99, 99, - 99, 12, 99 + 99, // SLOT_DINS_FIRE + 0, // SLOT_BOMB + 2, // SLOT_BOMBCHU + 4, // SLOT_NUT + 99, // SLOT_LENS + 6, // SLOT_BEAN + 99, // SLOT_FARORES_WIND + 8, // SLOT_SLINGSHOT + 99, // SLOT_BOOMERANG + 10, // SLOT_STICK + 99, // SLOT_BOOTS_HOVER + 99, // SLOT_TRADE_CHILD + 99, // SLOT_NAYRUS_LOVE + 12, // SLOT_BOW + 99 // SLOT_HOOKSHOT }; typedef enum { @@ -373,19 +399,19 @@ void KaleidoScope_DrawMagicArrowIcon(PlayState* play, s16 offset, u8 itemId) { xOffset = 0; yOffset = offset; vtx = 0; - source = "__OTR__textures/icon_item_static/gFireArrowPower"; + source = gFireArrowPowerTex; break; case ITEM_ARROW_ICE: xOffset = -offset; yOffset = 0; vtx = 4; - source = "__OTR__textures/icon_item_static/gIceArrowPower"; + source = gIceArrowPowerTex; break; case ITEM_ARROW_LIGHT: xOffset = offset; yOffset = 0; vtx = 8; - source = "__OTR__textures/icon_item_static/gLightArrowPower"; + source = gLightArrowPowerTex; break; default: return; @@ -421,7 +447,7 @@ void KaleidoScope_DrawSelectableArrow(PlayState* play, s16 offset, u8 itemId) { xOffset = 0; yOffset = -offset; vtx = 12; - tex = "__OTR__textures/icon_item_static/gArrowIconTex"; + tex = gArrowIconTex; break; default: return; 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 cd89a9cb414..36d6bc5f002 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 @@ -734,10 +734,30 @@ static u16 D_8082ABEC[] = { }; u8 gSlotAgeReqs[] = { - LINK_AGE_EITHER, LINK_AGE_EITHER, LINK_AGE_EITHER, LINK_AGE_EITHER, LINK_AGE_EITHER, LINK_AGE_CHILD, - LINK_AGE_EITHER, LINK_AGE_CHILD, LINK_AGE_CHILD, LINK_AGE_CHILD, LINK_AGE_ADULT, LINK_AGE_CHILD, - LINK_AGE_EITHER, LINK_AGE_ADULT, LINK_AGE_ADULT, LINK_AGE_ADULT, LINK_AGE_ADULT, LINK_AGE_ADULT, - LINK_AGE_EITHER, LINK_AGE_EITHER, LINK_AGE_EITHER, LINK_AGE_EITHER, LINK_AGE_EITHER, LINK_AGE_EITHER, + AGE_REQ_NONE, // SLOT_DINS_FIRE + AGE_REQ_NONE, // SLOT_BOMB + AGE_REQ_NONE, // SLOT_BOMBCHU + AGE_REQ_NONE, // SLOT_NUT + AGE_REQ_NONE, // SLOT_LENS + AGE_REQ_CHILD, // SLOT_BEAN + AGE_REQ_NONE, // SLOT_FARORES_WIND + AGE_REQ_CHILD, // SLOT_SLINGSHOT + AGE_REQ_CHILD, // SLOT_BOOMERANG + AGE_REQ_CHILD, // SLOT_STICK + AGE_REQ_ADULT, // SLOT_BOOTS_HOVER + AGE_REQ_CHILD, // SLOT_TRADE_CHILD + AGE_REQ_NONE, // SLOT_NAYRUS_LOVE + AGE_REQ_ADULT, // SLOT_BOW + AGE_REQ_ADULT, // SLOT_HOOKSHOT + AGE_REQ_ADULT, // SLOT_HAMMER + AGE_REQ_ADULT, // SLOT_BOOTS_IRON + AGE_REQ_ADULT, // SLOT_TRADE_ADULT + AGE_REQ_NONE, // SLOT_EMPTY_LEFT + AGE_REQ_NONE, // SLOT_BOTTLE_1 + AGE_REQ_NONE, // SLOT_BOTTLE_2 + AGE_REQ_NONE, // SLOT_BOTTLE_3 + AGE_REQ_NONE, // SLOT_BOTTLE_4 + AGE_REQ_NONE, // SLOT_EMPTY_RIGHT }; u8 gEquipAgeReqs[][4] = {