mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-08-19 13:00:11 -07:00
Age Requirement Docs (#3277)
* age req docs * move macros * use decomp names
This commit is contained in:
parent
35b4357776
commit
e6445e0ce3
7 changed files with 162 additions and 29 deletions
|
@ -292,11 +292,6 @@ extern GraphicsContext* __gfxCtx;
|
||||||
#define SEG_ADDR(seg, addr) (addr | (seg << 24) | 1)
|
#define SEG_ADDR(seg, addr) (addr | (seg << 24) | 1)
|
||||||
// #endregion
|
// #endregion
|
||||||
|
|
||||||
// #region SOH [Enhancements]
|
|
||||||
#define CHECK_EQUIPMENT_AGE(i, j) (CVarGetInteger("gTimelessEquipment", 0) || (gEquipAgeReqs[i][j] == 9) || (gEquipAgeReqs[i][j] == ((void)0, gSaveContext.linkAge)))
|
|
||||||
#define CHECK_SLOT_AGE(slotIndex) (CVarGetInteger("gTimelessEquipment", 0) || (gSlotAgeReqs[slotIndex] == 9) || gSlotAgeReqs[slotIndex] == ((void)0, gSaveContext.linkAge))
|
|
||||||
#define CHECK_ITEM_AGE(itemIndex) (CVarGetInteger("gTimelessEquipment", 0) || (gItemAgeReqs[itemIndex] == 9) || (gItemAgeReqs[itemIndex] == gSaveContext.linkAge))
|
|
||||||
|
|
||||||
#define DPAD_ITEM(button) ((gSaveContext.buttonStatus[(button) + 5] != BTN_DISABLED) \
|
#define DPAD_ITEM(button) ((gSaveContext.buttonStatus[(button) + 5] != BTN_DISABLED) \
|
||||||
? gSaveContext.equips.buttonItems[(button) + 4] \
|
? gSaveContext.equips.buttonItems[(button) + 4] \
|
||||||
: ITEM_NONE)
|
: ITEM_NONE)
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
#include "soh/Enhancements/game-interactor/GameInteractor.h"
|
#include "soh/Enhancements/game-interactor/GameInteractor.h"
|
||||||
#include "soh/Enhancements/randomizer/randomizer_entrance.h"
|
#include "soh/Enhancements/randomizer/randomizer_entrance.h"
|
||||||
#include <overlays/actors/ovl_En_Niw/z_en_niw.h>
|
#include <overlays/actors/ovl_En_Niw/z_en_niw.h>
|
||||||
|
#include <overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h>
|
||||||
#include "soh/Enhancements/enhancementTypes.h"
|
#include "soh/Enhancements/enhancementTypes.h"
|
||||||
#include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h"
|
#include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h"
|
||||||
|
|
||||||
|
@ -654,12 +655,12 @@ void Play_Init(GameState* thisx) {
|
||||||
Fault_AddClient(&D_801614B8, ZeldaArena_Display, NULL, NULL);
|
Fault_AddClient(&D_801614B8, ZeldaArena_Display, NULL, NULL);
|
||||||
// In order to keep bunny hood equipped on first load, we need to pre-set the age reqs for the item and slot
|
// In order to keep bunny hood equipped on first load, we need to pre-set the age reqs for the item and slot
|
||||||
if ((CVarGetInteger("gMMBunnyHood", BUNNY_HOOD_VANILLA) != BUNNY_HOOD_VANILLA && CVarGetInteger("gAdultBunnyHood", 0)) || CVarGetInteger("gTimelessEquipment", 0)) {
|
if ((CVarGetInteger("gMMBunnyHood", BUNNY_HOOD_VANILLA) != BUNNY_HOOD_VANILLA && CVarGetInteger("gAdultBunnyHood", 0)) || CVarGetInteger("gTimelessEquipment", 0)) {
|
||||||
gItemAgeReqs[ITEM_MASK_BUNNY] = 9;
|
gItemAgeReqs[ITEM_MASK_BUNNY] = AGE_REQ_NONE;
|
||||||
if(INV_CONTENT(ITEM_TRADE_CHILD) == ITEM_MASK_BUNNY)
|
if(INV_CONTENT(ITEM_TRADE_CHILD) == ITEM_MASK_BUNNY)
|
||||||
gSlotAgeReqs[SLOT_TRADE_CHILD] = 9;
|
gSlotAgeReqs[SLOT_TRADE_CHILD] = AGE_REQ_NONE;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
gItemAgeReqs[ITEM_MASK_BUNNY] = gSlotAgeReqs[SLOT_TRADE_CHILD] = 1;
|
gItemAgeReqs[ITEM_MASK_BUNNY] = gSlotAgeReqs[SLOT_TRADE_CHILD] = AGE_REQ_CHILD;
|
||||||
}
|
}
|
||||||
func_800304DC(play, &play->actorCtx, play->linkActorEntry);
|
func_800304DC(play, &play->actorCtx, play->linkActorEntry);
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
#include "overlays/actors/ovl_En_Fish/z_en_fish.h"
|
#include "overlays/actors/ovl_En_Fish/z_en_fish.h"
|
||||||
#include "overlays/actors/ovl_En_Horse/z_en_horse.h"
|
#include "overlays/actors/ovl_En_Horse/z_en_horse.h"
|
||||||
#include "overlays/effects/ovl_Effect_Ss_Fhg_Flash/z_eff_ss_fhg_flash.h"
|
#include "overlays/effects/ovl_Effect_Ss_Fhg_Flash/z_eff_ss_fhg_flash.h"
|
||||||
|
#include "overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h"
|
||||||
#include "objects/gameplay_keep/gameplay_keep.h"
|
#include "objects/gameplay_keep/gameplay_keep.h"
|
||||||
#include "objects/object_link_child/object_link_child.h"
|
#include "objects/object_link_child/object_link_child.h"
|
||||||
#include "textures/icon_item_24_static/icon_item_24_static.h"
|
#include "textures/icon_item_24_static/icon_item_24_static.h"
|
||||||
|
@ -12715,8 +12716,7 @@ s32 func_8084DFF4(PlayState* play, Player* this) {
|
||||||
equipItem = giEntry.itemId;
|
equipItem = giEntry.itemId;
|
||||||
equipNow = CVarGetInteger("gAskToEquip", 0) && giEntry.modIndex == MOD_NONE &&
|
equipNow = CVarGetInteger("gAskToEquip", 0) && giEntry.modIndex == MOD_NONE &&
|
||||||
equipItem >= ITEM_SWORD_KOKIRI && equipItem <= ITEM_TUNIC_ZORA &&
|
equipItem >= ITEM_SWORD_KOKIRI && equipItem <= ITEM_TUNIC_ZORA &&
|
||||||
((gItemAgeReqs[equipItem] == 9 || gItemAgeReqs[equipItem] == gSaveContext.linkAge) ||
|
CHECK_AGE_REQ_ITEM(equipItem);
|
||||||
CVarGetInteger("gTimelessEquipment", 0));
|
|
||||||
|
|
||||||
Message_StartTextbox(play, giEntry.textId, &this->actor);
|
Message_StartTextbox(play, giEntry.textId, &this->actor);
|
||||||
// RANDOTODO: Macro this boolean check.
|
// RANDOTODO: Macro this boolean check.
|
||||||
|
|
|
@ -476,7 +476,7 @@ void KaleidoScope_DrawEquipment(PlayState* play) {
|
||||||
|
|
||||||
osSyncPrintf("kscope->select_name[Display_Equipment] = %d\n", pauseCtx->cursorItem[PAUSE_EQUIP]);
|
osSyncPrintf("kscope->select_name[Display_Equipment] = %d\n", pauseCtx->cursorItem[PAUSE_EQUIP]);
|
||||||
|
|
||||||
if (!(CHECK_EQUIPMENT_AGE(pauseCtx->cursorY[PAUSE_EQUIP], pauseCtx->cursorX[PAUSE_EQUIP]))) {
|
if (!(CHECK_AGE_REQ_EQUIP(pauseCtx->cursorY[PAUSE_EQUIP], pauseCtx->cursorX[PAUSE_EQUIP]))) {
|
||||||
pauseCtx->nameColorSet = 1;
|
pauseCtx->nameColorSet = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -511,7 +511,7 @@ void KaleidoScope_DrawEquipment(PlayState* play) {
|
||||||
(pauseCtx->unk_1E4 == 0) && CHECK_BTN_ANY(input->press.button, buttonsToCheck) &&
|
(pauseCtx->unk_1E4 == 0) && CHECK_BTN_ANY(input->press.button, buttonsToCheck) &&
|
||||||
(pauseCtx->cursorX[PAUSE_EQUIP] != 0)) {
|
(pauseCtx->cursorX[PAUSE_EQUIP] != 0)) {
|
||||||
|
|
||||||
if (CHECK_EQUIPMENT_AGE(pauseCtx->cursorY[PAUSE_EQUIP], pauseCtx->cursorX[PAUSE_EQUIP])) {
|
if (CHECK_AGE_REQ_EQUIP(pauseCtx->cursorY[PAUSE_EQUIP], pauseCtx->cursorX[PAUSE_EQUIP])) {
|
||||||
if (CHECK_BTN_ALL(input->press.button, BTN_A)) {
|
if (CHECK_BTN_ALL(input->press.button, BTN_A)) {
|
||||||
|
|
||||||
// Allow Link to remove his equipment from the equipment subscreen by toggling on/off
|
// Allow Link to remove his equipment from the equipment subscreen by toggling on/off
|
||||||
|
@ -643,7 +643,7 @@ void KaleidoScope_DrawEquipment(PlayState* play) {
|
||||||
for (k = 0, temp = rowStart + 1, bit = rowStart, j = point; k < 3; k++, bit++, j += 4, temp++) {
|
for (k = 0, temp = rowStart + 1, bit = rowStart, j = point; k < 3; k++, bit++, j += 4, temp++) {
|
||||||
|
|
||||||
if ((gBitFlags[bit] & gSaveContext.inventory.equipment) && (pauseCtx->cursorSpecialPos == 0)) {
|
if ((gBitFlags[bit] & gSaveContext.inventory.equipment) && (pauseCtx->cursorSpecialPos == 0)) {
|
||||||
if (CHECK_EQUIPMENT_AGE(i, k + 1)) {
|
if (CHECK_AGE_REQ_EQUIP(i, k + 1)) {
|
||||||
if (temp == cursorSlot) {
|
if (temp == cursorSlot) {
|
||||||
pauseCtx->equipVtx[j].v.ob[0] = pauseCtx->equipVtx[j + 2].v.ob[0] =
|
pauseCtx->equipVtx[j].v.ob[0] = pauseCtx->equipVtx[j + 2].v.ob[0] =
|
||||||
pauseCtx->equipVtx[j].v.ob[0] - 2;
|
pauseCtx->equipVtx[j].v.ob[0] - 2;
|
||||||
|
@ -702,7 +702,7 @@ void KaleidoScope_DrawEquipment(PlayState* play) {
|
||||||
for (k = 0, bit = rowStart, point = 4; k < 3; k++, point += 4, temp++, bit++) {
|
for (k = 0, bit = rowStart, point = 4; k < 3; k++, point += 4, temp++, bit++) {
|
||||||
|
|
||||||
int itemId = ITEM_SWORD_KOKIRI + temp;
|
int itemId = ITEM_SWORD_KOKIRI + temp;
|
||||||
bool age_restricted = !CHECK_ITEM_AGE(itemId);
|
bool age_restricted = !CHECK_AGE_REQ_ITEM(itemId);
|
||||||
if (age_restricted) {
|
if (age_restricted) {
|
||||||
gDPSetGrayscaleColor(POLY_KAL_DISP++, 109, 109, 109, 255);
|
gDPSetGrayscaleColor(POLY_KAL_DISP++, 109, 109, 109, 255);
|
||||||
gSPGrayscale(POLY_KAL_DISP++, true);
|
gSPGrayscale(POLY_KAL_DISP++, true);
|
||||||
|
|
|
@ -33,7 +33,7 @@ void KaleidoScope_DrawAmmoCount(PauseContext* pauseCtx, GraphicsContext* gfxCtx,
|
||||||
|
|
||||||
gDPPipeSync(POLY_KAL_DISP++);
|
gDPPipeSync(POLY_KAL_DISP++);
|
||||||
|
|
||||||
if (!CHECK_SLOT_AGE(SLOT(item))) {
|
if (!CHECK_AGE_REQ_SLOT(SLOT(item))) {
|
||||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, 100, 100, 100, pauseCtx->alpha);
|
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, 100, 100, 100, pauseCtx->alpha);
|
||||||
} else {
|
} else {
|
||||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, 255, 255, 255, pauseCtx->alpha);
|
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, 255, 255, 255, pauseCtx->alpha);
|
||||||
|
@ -490,7 +490,7 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
|
||||||
pauseCtx->cursorItem[PAUSE_ITEM] = cursorItem;
|
pauseCtx->cursorItem[PAUSE_ITEM] = cursorItem;
|
||||||
pauseCtx->cursorSlot[PAUSE_ITEM] = cursorSlot;
|
pauseCtx->cursorSlot[PAUSE_ITEM] = cursorSlot;
|
||||||
|
|
||||||
if (!CHECK_SLOT_AGE(cursorSlot)) {
|
if (!CHECK_AGE_REQ_SLOT(cursorSlot)) {
|
||||||
pauseCtx->nameColorSet = 1;
|
pauseCtx->nameColorSet = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -540,8 +540,8 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
|
||||||
gSlotAgeReqs[SLOT_TRADE_CHILD] = gItemAgeReqs[ITEM_MASK_BUNNY] =
|
gSlotAgeReqs[SLOT_TRADE_CHILD] = gItemAgeReqs[ITEM_MASK_BUNNY] =
|
||||||
((((CVarGetInteger("gMMBunnyHood", BUNNY_HOOD_VANILLA) != BUNNY_HOOD_VANILLA) && CVarGetInteger("gAdultBunnyHood", 0)) || CVarGetInteger("gTimelessEquipment", 0)) &&
|
((((CVarGetInteger("gMMBunnyHood", BUNNY_HOOD_VANILLA) != BUNNY_HOOD_VANILLA) && CVarGetInteger("gAdultBunnyHood", 0)) || CVarGetInteger("gTimelessEquipment", 0)) &&
|
||||||
INV_CONTENT(ITEM_TRADE_CHILD) == ITEM_MASK_BUNNY)
|
INV_CONTENT(ITEM_TRADE_CHILD) == ITEM_MASK_BUNNY)
|
||||||
? 9
|
? AGE_REQ_NONE
|
||||||
: 1;
|
: AGE_REQ_CHILD;
|
||||||
}
|
}
|
||||||
if (IS_RANDO && Randomizer_GetSettingValue(RSK_SHUFFLE_ADULT_TRADE) &&
|
if (IS_RANDO && Randomizer_GetSettingValue(RSK_SHUFFLE_ADULT_TRADE) &&
|
||||||
cursorSlot == SLOT_TRADE_ADULT && CHECK_BTN_ALL(input->press.button, BTN_A)) {
|
cursorSlot == SLOT_TRADE_ADULT && CHECK_BTN_ALL(input->press.button, BTN_A)) {
|
||||||
|
@ -566,7 +566,7 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
|
||||||
buttonsToCheck |= BTN_DUP | BTN_DDOWN | BTN_DLEFT | BTN_DRIGHT;
|
buttonsToCheck |= BTN_DUP | BTN_DDOWN | BTN_DLEFT | BTN_DRIGHT;
|
||||||
}
|
}
|
||||||
if (CHECK_BTN_ANY(input->press.button, buttonsToCheck)) {
|
if (CHECK_BTN_ANY(input->press.button, buttonsToCheck)) {
|
||||||
if (CHECK_SLOT_AGE(cursorSlot) &&
|
if (CHECK_AGE_REQ_SLOT(cursorSlot) &&
|
||||||
(cursorItem != ITEM_SOLD_OUT) && (cursorItem != ITEM_NONE)) {
|
(cursorItem != ITEM_SOLD_OUT) && (cursorItem != ITEM_NONE)) {
|
||||||
KaleidoScope_SetupItemEquip(play, cursorItem, cursorSlot,
|
KaleidoScope_SetupItemEquip(play, cursorItem, cursorSlot,
|
||||||
pauseCtx->itemVtx[index].v.ob[0] * 10,
|
pauseCtx->itemVtx[index].v.ob[0] * 10,
|
||||||
|
@ -618,7 +618,7 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
|
||||||
|
|
||||||
if (gSaveContext.inventory.items[i] != ITEM_NONE) {
|
if (gSaveContext.inventory.items[i] != ITEM_NONE) {
|
||||||
if ((pauseCtx->unk_1E4 == 0) && (pauseCtx->pageIndex == PAUSE_ITEM) && (pauseCtx->cursorSpecialPos == 0)) {
|
if ((pauseCtx->unk_1E4 == 0) && (pauseCtx->pageIndex == PAUSE_ITEM) && (pauseCtx->cursorSpecialPos == 0)) {
|
||||||
if (CHECK_SLOT_AGE(i)) {
|
if (CHECK_AGE_REQ_SLOT(i)) {
|
||||||
if ((sEquipState == 2) && (i == 3)) {
|
if ((sEquipState == 2) && (i == 3)) {
|
||||||
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, magicArrowEffectsR[pauseCtx->equipTargetItem - 0xBF],
|
gDPSetPrimColor(POLY_KAL_DISP++, 0, 0, magicArrowEffectsR[pauseCtx->equipTargetItem - 0xBF],
|
||||||
magicArrowEffectsG[pauseCtx->equipTargetItem - 0xBF],
|
magicArrowEffectsG[pauseCtx->equipTargetItem - 0xBF],
|
||||||
|
@ -653,7 +653,7 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
|
||||||
|
|
||||||
gSPVertex(POLY_KAL_DISP++, &pauseCtx->itemVtx[j + 0], 4, 0);
|
gSPVertex(POLY_KAL_DISP++, &pauseCtx->itemVtx[j + 0], 4, 0);
|
||||||
int itemId = gSaveContext.inventory.items[i];
|
int itemId = gSaveContext.inventory.items[i];
|
||||||
bool not_acquired = !CHECK_ITEM_AGE(itemId);
|
bool not_acquired = !CHECK_AGE_REQ_ITEM(itemId);
|
||||||
if (not_acquired) {
|
if (not_acquired) {
|
||||||
gDPSetGrayscaleColor(POLY_KAL_DISP++, 109, 109, 109, 255);
|
gDPSetGrayscaleColor(POLY_KAL_DISP++, 109, 109, 109, 255);
|
||||||
gSPGrayscale(POLY_KAL_DISP++, true);
|
gSPGrayscale(POLY_KAL_DISP++, true);
|
||||||
|
|
|
@ -8,9 +8,19 @@ extern u8 gAmmoItems[];
|
||||||
extern s16 D_8082AAEC[];
|
extern s16 D_8082AAEC[];
|
||||||
extern s16 D_8082AB2C[];
|
extern s16 D_8082AB2C[];
|
||||||
extern u8 gEquipAgeReqs[][4];
|
extern u8 gEquipAgeReqs[][4];
|
||||||
|
extern u8 gSlotAgeReqs[];
|
||||||
|
extern u8 gItemAgeReqs[];
|
||||||
extern u8 gAreaGsFlags[];
|
extern u8 gAreaGsFlags[];
|
||||||
extern bool gSelectingMask;
|
extern bool gSelectingMask;
|
||||||
|
|
||||||
|
#define AGE_REQ_ADULT LINK_AGE_ADULT
|
||||||
|
#define AGE_REQ_CHILD LINK_AGE_CHILD
|
||||||
|
#define AGE_REQ_NONE 9
|
||||||
|
|
||||||
|
#define CHECK_AGE_REQ_EQUIP(i, j) (CVarGetInteger("gTimelessEquipment", 0) || (gEquipAgeReqs[i][j] == AGE_REQ_NONE) || (gEquipAgeReqs[i][j] == ((void)0, gSaveContext.linkAge)))
|
||||||
|
#define CHECK_AGE_REQ_SLOT(slotIndex) (CVarGetInteger("gTimelessEquipment", 0) || (gSlotAgeReqs[slotIndex] == AGE_REQ_NONE) || gSlotAgeReqs[slotIndex] == ((void)0, gSaveContext.linkAge))
|
||||||
|
#define CHECK_AGE_REQ_ITEM(itemIndex) (CVarGetInteger("gTimelessEquipment", 0) || (gItemAgeReqs[itemIndex] == AGE_REQ_NONE) || (gItemAgeReqs[itemIndex] == gSaveContext.linkAge))
|
||||||
|
|
||||||
void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx);
|
void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx);
|
||||||
s32 KaleidoScope_UpdateQuestStatusPoint(PauseContext* pauseCtx, s32 point);
|
s32 KaleidoScope_UpdateQuestStatusPoint(PauseContext* pauseCtx, s32 point);
|
||||||
void KaleidoScope_DrawDebugEditor(PlayState* play);
|
void KaleidoScope_DrawDebugEditor(PlayState* play);
|
||||||
|
|
|
@ -734,20 +734,147 @@ static u16 D_8082ABEC[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
u8 gSlotAgeReqs[] = {
|
u8 gSlotAgeReqs[] = {
|
||||||
1, 9, 9, 0, 0, 9, 1, 9, 9, 0, 0, 9, 1, 9, 1, 0, 0, 9, 9, 9, 9, 9, 0, 1,
|
AGE_REQ_CHILD, // SLOT_DEKU_STICK
|
||||||
|
AGE_REQ_NONE, // SLOT_DEKU_NUT
|
||||||
|
AGE_REQ_NONE, // SLOT_BOMB
|
||||||
|
AGE_REQ_ADULT, // SLOT_BOW
|
||||||
|
AGE_REQ_ADULT, // SLOT_ARROW_FIRE
|
||||||
|
AGE_REQ_NONE, // SLOT_DINS_FIRE
|
||||||
|
AGE_REQ_CHILD, // SLOT_SLINGSHOT
|
||||||
|
AGE_REQ_NONE, // SLOT_OCARINA
|
||||||
|
AGE_REQ_NONE, // SLOT_BOMBCHU
|
||||||
|
AGE_REQ_ADULT, // SLOT_HOOKSHOT
|
||||||
|
AGE_REQ_ADULT, // SLOT_ARROW_ICE
|
||||||
|
AGE_REQ_NONE, // SLOT_FARORES_WIND
|
||||||
|
AGE_REQ_CHILD, // SLOT_BOOMERANG
|
||||||
|
AGE_REQ_NONE, // SLOT_LENS_OF_TRUTH
|
||||||
|
AGE_REQ_CHILD, // SLOT_MAGIC_BEAN
|
||||||
|
AGE_REQ_ADULT, // SLOT_HAMMER
|
||||||
|
AGE_REQ_ADULT, // SLOT_ARROW_LIGHT
|
||||||
|
AGE_REQ_NONE, // SLOT_NAYRUS_LOVE
|
||||||
|
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_ADULT, // SLOT_TRADE_ADULT
|
||||||
|
AGE_REQ_CHILD, // SLOT_TRADE_CHILD
|
||||||
};
|
};
|
||||||
|
|
||||||
u8 gEquipAgeReqs[][4] = {
|
u8 gEquipAgeReqs[][4] = {
|
||||||
{ 0, 1, 0, 0 },
|
{
|
||||||
{ 9, 1, 9, 0 },
|
AGE_REQ_ADULT, // 0 UPG_QUIVER
|
||||||
{ 0, 9, 0, 0 },
|
AGE_REQ_CHILD, // EQUIP_TYPE_SWORD EQUIP_VALUE_SWORD_KOKIRI
|
||||||
{ 9, 9, 0, 0 },
|
AGE_REQ_ADULT, // EQUIP_TYPE_SWORD EQUIP_VALUE_SWORD_MASTER
|
||||||
|
AGE_REQ_ADULT // EQUIP_TYPE_SWORD EQUIP_VALUE_SWORD_BIGGORON
|
||||||
|
},
|
||||||
|
{
|
||||||
|
AGE_REQ_NONE, // 0 UPG_BOMB_BAG
|
||||||
|
AGE_REQ_CHILD, // EQUIP_TYPE_SHIELD EQUIP_VALUE_SHIELD_DEKU
|
||||||
|
AGE_REQ_NONE, // EQUIP_TYPE_SHIELD EQUIP_VALUE_SHIELD_HYLIAN
|
||||||
|
AGE_REQ_ADULT // EQUIP_TYPE_SHIELD EQUIP_VALUE_SHIELD_MIRROR
|
||||||
|
},
|
||||||
|
{
|
||||||
|
AGE_REQ_ADULT, // 0 UPG_STRENGTH
|
||||||
|
AGE_REQ_NONE, // EQUIP_TYPE_TUNIC EQUIP_VALUE_TUNIC_KOKIRI
|
||||||
|
AGE_REQ_ADULT, // EQUIP_TYPE_TUNIC EQUIP_VALUE_TUNIC_GORON
|
||||||
|
AGE_REQ_ADULT // EQUIP_TYPE_TUNIC EQUIP_VALUE_TUNIC_ZORA
|
||||||
|
},
|
||||||
|
{
|
||||||
|
AGE_REQ_NONE, // 0 UPG_SCALE
|
||||||
|
AGE_REQ_NONE, // EQUIP_TYPE_BOOTS EQUIP_VALUE_BOOTS_KOKIRI
|
||||||
|
AGE_REQ_ADULT, // EQUIP_TYPE_BOOTS EQUIP_VALUE_BOOTS_IRON
|
||||||
|
AGE_REQ_ADULT // EQUIP_TYPE_BOOTS EQUIP_VALUE_BOOTS_HOVER
|
||||||
|
},
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
u8 gItemAgeReqs[] = {
|
u8 gItemAgeReqs[] = {
|
||||||
1, 9, 9, 0, 0, 9, 1, 9, 9, 9, 0, 0, 0, 9, 1, 9, 1, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
|
AGE_REQ_CHILD, // ITEM_DEKU_STICK
|
||||||
9, 9, 9, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
AGE_REQ_NONE, // ITEM_DEKU_NUT
|
||||||
0, 1, 0, 0, 1, 9, 0, 9, 0, 0, 9, 0, 0, 1, 1, 1, 0, 0, 0, 9, 9, 9, 1, 0, 0, 9, 9, 0,
|
AGE_REQ_NONE, // ITEM_BOMB
|
||||||
|
AGE_REQ_ADULT, // ITEM_BOW
|
||||||
|
AGE_REQ_ADULT, // ITEM_ARROW_FIRE
|
||||||
|
AGE_REQ_NONE, // ITEM_DINS_FIRE
|
||||||
|
AGE_REQ_CHILD, // ITEM_SLINGSHOT
|
||||||
|
AGE_REQ_NONE, // ITEM_OCARINA_FAIRY
|
||||||
|
AGE_REQ_NONE, // ITEM_OCARINA_OF_TIME
|
||||||
|
AGE_REQ_NONE, // ITEM_BOMBCHU
|
||||||
|
AGE_REQ_ADULT, // ITEM_HOOKSHOT
|
||||||
|
AGE_REQ_ADULT, // ITEM_LONGSHOT
|
||||||
|
AGE_REQ_ADULT, // ITEM_ARROW_ICE
|
||||||
|
AGE_REQ_NONE, // ITEM_FARORES_WIND
|
||||||
|
AGE_REQ_CHILD, // ITEM_BOOMERANG
|
||||||
|
AGE_REQ_NONE, // ITEM_LENS_OF_TRUTH
|
||||||
|
AGE_REQ_CHILD, // ITEM_MAGIC_BEAN
|
||||||
|
AGE_REQ_ADULT, // ITEM_HAMMER
|
||||||
|
AGE_REQ_ADULT, // ITEM_ARROW_LIGHT
|
||||||
|
AGE_REQ_NONE, // ITEM_NAYRUS_LOVE
|
||||||
|
AGE_REQ_NONE, // ITEM_BOTTLE_EMPTY
|
||||||
|
AGE_REQ_NONE, // ITEM_BOTTLE_POTION_RED
|
||||||
|
AGE_REQ_NONE, // ITEM_BOTTLE_POTION_GREEN
|
||||||
|
AGE_REQ_NONE, // ITEM_BOTTLE_POTION_BLUE
|
||||||
|
AGE_REQ_NONE, // ITEM_BOTTLE_FAIRY
|
||||||
|
AGE_REQ_NONE, // ITEM_BOTTLE_FISH
|
||||||
|
AGE_REQ_NONE, // ITEM_BOTTLE_MILK_FULL
|
||||||
|
AGE_REQ_NONE, // ITEM_BOTTLE_RUTOS_LETTER
|
||||||
|
AGE_REQ_NONE, // ITEM_BOTTLE_BLUE_FIRE
|
||||||
|
AGE_REQ_NONE, // ITEM_BOTTLE_BUG
|
||||||
|
AGE_REQ_NONE, // ITEM_BOTTLE_BIG_POE
|
||||||
|
AGE_REQ_NONE, // ITEM_BOTTLE_MILK_HALF
|
||||||
|
AGE_REQ_NONE, // ITEM_BOTTLE_POE
|
||||||
|
AGE_REQ_CHILD, // ITEM_WEIRD_EGG
|
||||||
|
AGE_REQ_CHILD, // ITEM_CHICKEN
|
||||||
|
AGE_REQ_CHILD, // ITEM_ZELDAS_LETTER
|
||||||
|
AGE_REQ_CHILD, // ITEM_MASK_KEATON
|
||||||
|
AGE_REQ_CHILD, // ITEM_MASK_SKULL
|
||||||
|
AGE_REQ_CHILD, // ITEM_MASK_SPOOKY
|
||||||
|
AGE_REQ_CHILD, // ITEM_MASK_BUNNY_HOOD
|
||||||
|
AGE_REQ_CHILD, // ITEM_MASK_GORON
|
||||||
|
AGE_REQ_CHILD, // ITEM_MASK_ZORA
|
||||||
|
AGE_REQ_CHILD, // ITEM_MASK_GERUDO
|
||||||
|
AGE_REQ_CHILD, // ITEM_MASK_TRUTH
|
||||||
|
AGE_REQ_CHILD, // ITEM_SOLD_OUT
|
||||||
|
AGE_REQ_ADULT, // ITEM_POCKET_EGG
|
||||||
|
AGE_REQ_ADULT, // ITEM_POCKET_CUCCO
|
||||||
|
AGE_REQ_ADULT, // ITEM_COJIRO
|
||||||
|
AGE_REQ_ADULT, // ITEM_ODD_MUSHROOM
|
||||||
|
AGE_REQ_ADULT, // ITEM_ODD_POTION
|
||||||
|
AGE_REQ_ADULT, // ITEM_POACHERS_SAW
|
||||||
|
AGE_REQ_ADULT, // ITEM_BROKEN_GORONS_SWORD
|
||||||
|
AGE_REQ_ADULT, // ITEM_PRESCRIPTION
|
||||||
|
AGE_REQ_ADULT, // ITEM_EYEBALL_FROG
|
||||||
|
AGE_REQ_ADULT, // ITEM_EYE_DROPS
|
||||||
|
AGE_REQ_ADULT, // ITEM_CLAIM_CHECK
|
||||||
|
AGE_REQ_ADULT, // ITEM_BOW_FIRE
|
||||||
|
AGE_REQ_ADULT, // ITEM_BOW_ICE
|
||||||
|
AGE_REQ_ADULT, // ITEM_BOW_LIGHT
|
||||||
|
AGE_REQ_CHILD, // ITEM_SWORD_KOKIRI
|
||||||
|
AGE_REQ_ADULT, // ITEM_SWORD_MASTER
|
||||||
|
AGE_REQ_ADULT, // ITEM_SWORD_BIGGORON
|
||||||
|
AGE_REQ_CHILD, // ITEM_SHIELD_DEKU
|
||||||
|
AGE_REQ_NONE, // ITEM_SHIELD_HYLIAN
|
||||||
|
AGE_REQ_ADULT, // ITEM_SHIELD_MIRROR
|
||||||
|
AGE_REQ_NONE, // ITEM_TUNIC_KOKIRI
|
||||||
|
AGE_REQ_ADULT, // ITEM_TUNIC_GORON
|
||||||
|
AGE_REQ_ADULT, // ITEM_TUNIC_ZORA
|
||||||
|
AGE_REQ_NONE, // ITEM_BOOTS_KOKIRI
|
||||||
|
AGE_REQ_ADULT, // ITEM_BOOTS_IRON
|
||||||
|
AGE_REQ_ADULT, // ITEM_BOOTS_HOVER
|
||||||
|
AGE_REQ_CHILD, // ITEM_BULLET_BAG_30
|
||||||
|
AGE_REQ_CHILD, // ITEM_BULLET_BAG_40
|
||||||
|
AGE_REQ_CHILD, // ITEM_BULLET_BAG_50
|
||||||
|
AGE_REQ_ADULT, // ITEM_QUIVER_30
|
||||||
|
AGE_REQ_ADULT, // ITEM_QUIVER_40
|
||||||
|
AGE_REQ_ADULT, // ITEM_QUIVER_50
|
||||||
|
AGE_REQ_NONE, // ITEM_BOMB_BAG_20
|
||||||
|
AGE_REQ_NONE, // ITEM_BOMB_BAG_30
|
||||||
|
AGE_REQ_NONE, // ITEM_BOMB_BAG_40
|
||||||
|
AGE_REQ_CHILD, // ITEM_STRENGTH_GORONS_BRACELET
|
||||||
|
AGE_REQ_ADULT, // ITEM_STRENGTH_SILVER_GAUNTLETS
|
||||||
|
AGE_REQ_ADULT, // ITEM_STRENGTH_GOLD_GAUNTLETS
|
||||||
|
AGE_REQ_NONE, // ITEM_SCALE_SILVER
|
||||||
|
AGE_REQ_NONE, // ITEM_SCALE_GOLDEN
|
||||||
|
AGE_REQ_ADULT, // ITEM_GIANTS_KNIFE
|
||||||
};
|
};
|
||||||
|
|
||||||
u8 gAreaGsFlags[] = {
|
u8 gAreaGsFlags[] = {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue