diff --git a/docs/tutorial/advanced_control_flow.md b/docs/tutorial/advanced_control_flow.md index 4952f7586..09ba2505f 100644 --- a/docs/tutorial/advanced_control_flow.md +++ b/docs/tutorial/advanced_control_flow.md @@ -199,7 +199,7 @@ void func_809527F8(EnMs *this, GlobalContext *globalCtx) { } func_8019F208(); Actor_PickUp((Actor *) this, globalCtx, 0x35, 90.0f, 10.0f); - func_801159EC(-0xA); + Rupees_ChangeBy(-0xA); this->actionFunc = func_809529AC; } } @@ -291,7 +291,7 @@ block_13: block_15: func_8019F208(); Actor_PickUp((Actor *) this, globalCtx, 0x35, 90.0f, 10.0f); - func_801159EC(-0xA); + Rupees_ChangeBy(-0xA); this->actionFunc = func_809529AC; return; block_16: @@ -391,7 +391,7 @@ block_11: func_8019F208(); Actor_PickUp((Actor *) this, globalCtx, 0x35, 90.0f, 10.0f); - func_801159EC(-0xA); + Rupees_ChangeBy(-0xA); this->actionFunc = func_809529AC; return; block_16: @@ -461,7 +461,7 @@ block_11: func_8019F208(); Actor_PickUp((Actor *) this, globalCtx, 0x35, 90.0f, 10.0f); - func_801159EC(-0xA); + Rupees_ChangeBy(-0xA); this->actionFunc = func_809529AC; return; block_16: @@ -510,7 +510,7 @@ So let us rewrite the entire second half as a switch: func_8019F208(); Actor_PickUp((Actor *) this, globalCtx, 0x35, 90.0f, 10.0f); - func_801159EC(-0xA); + Rupees_ChangeBy(-0xA); this->actionFunc = func_809529AC; return; break; @@ -541,7 +541,7 @@ There's a couple of other obvious things here: } else { func_8019F208(); Actor_PickUp((Actor *) this, globalCtx, 0x35, 90.0f, 10.0f); - func_801159EC(-0xA); + Rupees_ChangeBy(-0xA); this->actionFunc = func_809529AC; } break; @@ -606,7 +606,7 @@ block_7: } else { func_8019F208(); Actor_PickUp((Actor *) this, globalCtx, 0x35, 90.0f, 10.0f); - func_801159EC(-0xA); + Rupees_ChangeBy(-0xA); this->actionFunc = func_809529AC; } break; @@ -670,7 +670,7 @@ void func_809527F8(EnMs *this, GlobalContext *globalCtx) { } else { func_8019F208(); Actor_PickUp((Actor *) this, globalCtx, 0x35, 90.0f, 10.0f); - func_801159EC(-0xA); + Rupees_ChangeBy(-0xA); this->actionFunc = func_809529AC; } break; @@ -722,7 +722,7 @@ void func_809527F8(EnMs *this, GlobalContext *globalCtx) { } else { func_8019F208(); Actor_PickUp((Actor *) this, globalCtx, 0x35, 90.0f, 10.0f); - func_801159EC(-0xA); + Rupees_ChangeBy(-0xA); this->actionFunc = func_809529AC; } break; diff --git a/include/color.h b/include/color.h index 438d857ad..db2ecd7e7 100644 --- a/include/color.h +++ b/include/color.h @@ -35,6 +35,12 @@ typedef struct { u32 r, g, b, a; } Color_RGBAu32; +typedef struct { + /* 0x0 */ s16 r; + /* 0x1 */ s16 g; + /* 0x2 */ s16 b; +} Color_RGB16; // size = 0x6 + typedef union { struct { u16 r : 5; diff --git a/include/functions.h b/include/functions.h index d15fbbbfa..48b2fc566 100644 --- a/include/functions.h +++ b/include/functions.h @@ -1910,32 +1910,32 @@ void Interface_ChangeAlpha(u16 param_1); // void func_80111CB4(void); // void func_801129E4(void); void func_80112AFC(GlobalContext* globalCtx); -void func_80112B40(GlobalContext* globalCtx, u8 arg1); -// void func_80112BE4(void); +void Interface_LoadItemIconImpl(GlobalContext* globalCtx, u8 arg1); +// void Interface_LoadItemIcon(void); // void func_80112C0C(void); -u32 Item_Give(GlobalContext* globalCtx, u8 param_2); -// void func_801143CC(void); -UNK_TYPE func_80114978(UNK_TYPE arg0); -void func_801149A0(s32 itemId, s16 slotId); -// void func_80114A9C(void); -// void func_80114B84(void); -// void func_80114CA0(void); -s32 Interface_HasEmptyBottle(void); -s32 Interface_HasItemInBottle(u8 itemId); -// void func_80114FD0(void); -// void func_80115130(void); -// void func_801152B8(void); +u8 Item_Give(GlobalContext* globalCtx, u8 item); +// void Item_CheckObtainabilityImpl(void); +UNK_TYPE Item_CheckObtainability(UNK_TYPE arg0); +void Inventory_DeleteItem(s32 itemId, s16 slotId); +// void Inventory_UnequipItem(void); +// void Inventory_ReplaceItem(void); +// void Inventory_UpdateDeitySwordEquip(void); +s32 Inventory_HasEmptyBottle(void); +s32 Inventory_HasItemInBottle(u8 itemId); +// void Inventory_UpdateBottleItem(void); +// void Inventory_ConsumeFairy(void); +// void Inventory_UpdateItem(void); // void func_801153C8(void); // void func_80115428(void); void func_8011552C(GlobalContext* globalCtx, s16 arg1); // void func_801155B4(void); // void func_80115764(void); void func_80115844(GlobalContext* globalCtx, s16 param_2); -s32 func_80115908(GlobalContext* globalCtx, u8 param_2); -void func_801159c0(s16 param_1); -void func_801159EC(s16 arg0); -void func_80115A14(s16 arg0, s16 arg1); -void Parameter_AddMagic(GlobalContext* globalCtx, s16 arg1); +s32 Health_ChangeBy(GlobalContext* globalCtx, u8 param_2); +void Health_GiveHearts(s16 param_1); +void Rupees_ChangeBy(s16 arg0); +void Inventory_ChangeAmmo(s16 arg0, s16 arg1); +void Interface_AddMagic(GlobalContext* globalCtx, s16 arg1); void func_80115D5C(GameState* gamestate); // void func_80115DB4(void); // void func_80116088(void); diff --git a/include/macros.h b/include/macros.h index 5e9c062c9..4a4ea2f36 100644 --- a/include/macros.h +++ b/include/macros.h @@ -81,21 +81,32 @@ #define C_SLOT_EQUIP(form, button) (gSaveContext.save.equips.cButtonSlots[form][button]) #define CHECK_QUEST_ITEM(item) (GET_SAVE_INVENTORY_QUEST_ITEMS & gBitFlags[item]) +#define SET_QUEST_ITEM(item) (gSaveContext.save.inventory.questItems = (GET_SAVE_INVENTORY_QUEST_ITEMS | gBitFlags[item])) #define REMOVE_QUEST_ITEM(item) (gSaveContext.save.inventory.questItems = (GET_SAVE_INVENTORY_QUEST_ITEMS & (-1 - gBitFlags[item]))) #define CHECK_DUNGEON_ITEM(item, dungeonIndex) (gSaveContext.save.inventory.dungeonItems[(void)0, dungeonIndex] & gBitFlags[item]) +#define SET_DUNGEON_ITEM(item, dungeonIndex) (gSaveContext.save.inventory.dungeonItems[(void)0, dungeonIndex] |= (u8)gBitFlags[item]) #define DUNGEON_KEY_COUNT(dungeonIndex) (gSaveContext.save.inventory.dungeonKeys[(void)0, dungeonIndex]) #define GET_CUR_FORM_BTN_ITEM(btn) ((u8)((btn) == EQUIP_SLOT_B ? BUTTON_ITEM_EQUIP(CUR_FORM, btn) : BUTTON_ITEM_EQUIP(0, btn))) +#define GET_CUR_FORM_BTN_SLOT(btn) ((u8)((btn) == EQUIP_SLOT_B ? C_SLOT_EQUIP(CUR_FORM, btn) : C_SLOT_EQUIP(0, btn))) -#define SET_CUR_FORM_BTN_ITEM(btn, item) \ - do { \ - if ((btn) == EQUIP_SLOT_B) { \ - BUTTON_ITEM_EQUIP(CUR_FORM, (btn)) = (item); \ - } else { \ - BUTTON_ITEM_EQUIP(0, (btn)) = (item); \ - } \ - } while (0) + +#define SET_CUR_FORM_BTN_ITEM(btn, item) \ + if ((btn) == EQUIP_SLOT_B) { \ + BUTTON_ITEM_EQUIP(CUR_FORM, (btn)) = (item); \ + } else { \ + BUTTON_ITEM_EQUIP(0, (btn)) = (item); \ + } \ + (void)0 + +#define SET_CUR_FORM_BTN_SLOT(btn, item) \ + if ((btn) == EQUIP_SLOT_B) { \ + C_SLOT_EQUIP(CUR_FORM, (btn)) = (item); \ + } else { \ + C_SLOT_EQUIP(0, (btn)) = (item); \ + } \ + (void)0 #define STOLEN_ITEM_NONE (0) diff --git a/include/z64item.h b/include/z64item.h index 785d56577..ad1524fda 100644 --- a/include/z64item.h +++ b/include/z64item.h @@ -41,9 +41,12 @@ typedef enum { /* 0x0F */ QUEST_SONG_SOARING, /* 0x10 */ QUEST_SONG_STORMS, /* 0x11 */ QUEST_SONG_SUN, - /* 0x12 */ QUEST_BOMBERS_NOTEBOOK, + /* 0x12 */ QUEST_BOMBERS_NOTEBOOK, // Obtained Bombers Notebook + /* 0x13 */ QUEST_SKULL_TOKEN, /* 0x18 */ QUEST_SONG_LULLABY_INTRO = 0x18, - /* 0x19 */ QUEST_UNK_19 // Related to PictoBox + /* 0x19 */ QUEST_PICTOBOX, // Photo taken from PictoBox + /* 0x1C */ QUEST_HEART_PIECE = 0x1C, + /* 0x1E */ QUEST_HEART_CONTAINER = 0x1E } QuestItem; typedef enum { @@ -109,7 +112,7 @@ typedef enum { /* 0x07 */ ITEM_BOMBCHU, /* 0x08 */ ITEM_STICK, /* 0x09 */ ITEM_NUT, - /* 0x0A */ ITEM_MAGIC_BEANS, + /* 0x0A */ ITEM_BEAN, /* 0x0B */ ITEM_SLINGSHOT, /* 0x0C */ ITEM_POWDER_KEG, /* 0x0D */ ITEM_PICTO_BOX, diff --git a/spec b/spec index 958bb80f9..45b796d54 100644 --- a/spec +++ b/spec @@ -500,8 +500,6 @@ beginseg include "build/src/code/z_olib.o" pad_text include "build/src/code/z_parameter.o" - include "build/data/code/z_parameter.data.o" - include "build/data/code/z_parameter.bss.o" include "build/src/code/z_path.o" include "build/src/code/z_pause.o" include "build/src/code/z_player_lib.o" diff --git a/src/boot_O2_g3/yaz0.c b/src/boot_O2_g3/yaz0.c index 5f8e5a0ed..80d819acc 100644 --- a/src/boot_O2_g3/yaz0.c +++ b/src/boot_O2_g3/yaz0.c @@ -1,4 +1,3 @@ -#include "prevent_bss_reordering.h" #include "global.h" u8 sYaz0DataBuffer[0x400]; diff --git a/src/code/code_8012EC80.c b/src/code/code_8012EC80.c index 5dee17fb5..9e0a9b516 100644 --- a/src/code/code_8012EC80.c +++ b/src/code/code_8012EC80.c @@ -107,7 +107,7 @@ void* gItemIcons[] = { 0x08007000, // ITEM_BOMBCHU 0x08008000, // ITEM_STICK 0x08009000, // ITEM_NUT - 0x0800A000, // ITEM_MAGIC_BEANS + 0x0800A000, // ITEM_BEAN 0x0800B000, // ITEM_SLINGSHOT 0x0800C000, // ITEM_POWDER_KEG 0x0800D000, // ITEM_PICTO_BOX @@ -242,7 +242,7 @@ u8 gItemSlots[] = { SLOT_BOMBCHU, // ITEM_BOMBCHU SLOT_STICK, // ITEM_STICK SLOT_NUT, // ITEM_NUT - SLOT_MAGIC_BEANS, // ITEM_MAGIC_BEANS + SLOT_MAGIC_BEANS, // ITEM_BEAN SLOT_TRADE_KEY_MAMA, // ITEM_SLINGSHOT SLOT_POWDER_KEG, // ITEM_POWDER_KEG SLOT_PICTO_BOX, // ITEM_PICTO_BOX @@ -322,7 +322,7 @@ s16 gItemPrices[] = { 0, // ITEM_BOMBCHU 0, // ITEM_STICK 0, // ITEM_NUT - 0, // ITEM_MAGIC_BEANS + 0, // ITEM_BEAN 0, // ITEM_SLINGSHOT 0, // ITEM_POWDER_KEG 0, // ITEM_PICTO_BOX diff --git a/src/code/z_en_item00.c b/src/code/z_en_item00.c index b8fa0f4f1..08fcba8c2 100644 --- a/src/code/z_en_item00.c +++ b/src/code/z_en_item00.c @@ -224,7 +224,7 @@ void EnItem00_Init(Actor* thisx, GlobalContext* globalCtx) { break; case ITEM00_FLEXIBLE: case ITEM00_BIG_FAIRY: - func_80115908(globalCtx, 0x70); + Health_ChangeBy(globalCtx, 0x70); break; case ITEM00_BOMBS_A: case ITEM00_BOMBS_B: @@ -537,7 +537,7 @@ void EnItem00_Update(Actor* thisx, GlobalContext* globalCtx) { break; case ITEM00_FLEXIBLE: case ITEM00_BIG_FAIRY: - func_80115908(globalCtx, 0x70); + Health_ChangeBy(globalCtx, 0x70); break; case ITEM00_BOMBS_A: case ITEM00_BOMBS_B: diff --git a/src/code/z_parameter.c b/src/code/z_parameter.c index 44b1de152..18e4aaae1 100644 --- a/src/code/z_parameter.c +++ b/src/code/z_parameter.c @@ -1,4 +1,264 @@ #include "global.h" +#include "interface/parameter_static/parameter_static.h" + +typedef struct { + /* 0x00 */ u8 scene; + /* 0x01 */ u8 flags1; + /* 0x02 */ u8 flags2; + /* 0x03 */ u8 flags3; +} RestrictionFlags; + +// bss +Input D_801F5850[4]; + +// data +static RestrictionFlags sRestrictionFlags[] = { + { SCENE_20SICHITAI2, 0x00, 0x00, 0x00 }, + { SCENE_UNSET_1, 0x00, 0x00, 0x00 }, + { SCENE_UNSET_2, 0x00, 0x00, 0x00 }, + { SCENE_UNSET_3, 0x00, 0x00, 0x00 }, + { SCENE_UNSET_4, 0x00, 0x00, 0x00 }, + { SCENE_UNSET_5, 0x00, 0x00, 0x00 }, + { SCENE_UNSET_6, 0x00, 0x00, 0x00 }, + { SCENE_KAKUSIANA, 0x00, 0x00, 0x00 }, + { SCENE_SPOT00, 0x00, 0x00, 0x00 }, + { SCENE_UNSET_9, 0x00, 0x00, 0x00 }, + { SCENE_WITCH_SHOP, 0x10, 0x30, 0xC1 }, + { SCENE_LAST_BS, 0x00, 0x3F, 0x00 }, + { SCENE_HAKASHITA, 0x00, 0x00, 0x00 }, + { SCENE_AYASHIISHOP, 0x10, 0x30, 0xC1 }, + { SCENE_UNSET_E, 0x00, 0x00, 0x00 }, + { SCENE_UNSET_F, 0x00, 0x00, 0x00 }, + { SCENE_OMOYA, 0x00, 0x33, 0x00 }, + { SCENE_BOWLING, 0x10, 0x30, 0xC1 }, + { SCENE_SONCHONOIE, 0x10, 0x30, 0xC1 }, + { SCENE_IKANA, 0x00, 0x00, 0x00 }, + { SCENE_KAIZOKU, 0x00, 0x00, 0x00 }, + { SCENE_MILK_BAR, 0x10, 0x30, 0xC1 }, + { SCENE_INISIE_N, 0x00, 0x00, 0x00 }, + { SCENE_TAKARAYA, 0x10, 0x30, 0xC1 }, + { SCENE_INISIE_R, 0x00, 0x00, 0x00 }, + { SCENE_OKUJOU, 0x00, 0x3F, 0xF0 }, + { SCENE_OPENINGDAN, 0x00, 0x00, 0x00 }, + { SCENE_MITURIN, 0x00, 0x00, 0x00 }, + { SCENE_13HUBUKINOMITI, 0x00, 0x00, 0x00 }, + { SCENE_CASTLE, 0x00, 0x00, 0x00 }, + { SCENE_DEKUTES, 0x10, 0x30, 0x01 }, + { SCENE_MITURIN_BS, 0x00, 0x00, 0x00 }, + { SCENE_SYATEKI_MIZU, 0x10, 0x30, 0xC1 }, + { SCENE_HAKUGIN, 0x00, 0x00, 0x00 }, + { SCENE_ROMANYMAE, 0x00, 0x00, 0x00 }, + { SCENE_PIRATE, 0x00, 0x00, 0x00 }, + { SCENE_SYATEKI_MORI, 0x10, 0x30, 0xC1 }, + { SCENE_SINKAI, 0x00, 0x00, 0x00 }, + { SCENE_YOUSEI_IZUMI, 0x00, 0x00, 0x00 }, + { SCENE_KINSTA1, 0x00, 0x30, 0x00 }, + { SCENE_KINDAN2, 0x00, 0x30, 0x00 }, + { SCENE_TENMON_DAI, 0x00, 0x03, 0xC0 }, + { SCENE_LAST_DEKU, 0x00, 0x3F, 0x00 }, + { SCENE_22DEKUCITY, 0x00, 0x00, 0x00 }, + { SCENE_KAJIYA, 0x00, 0x30, 0xC0 }, + { SCENE_00KEIKOKU, 0x00, 0x00, 0x00 }, + { SCENE_POSTHOUSE, 0x00, 0x30, 0xC1 }, + { SCENE_LABO, 0x00, 0x30, 0xC1 }, + { SCENE_DANPEI2TEST, 0x00, 0x30, 0x00 }, + { SCENE_UNSET_31, 0x00, 0x00, 0x00 }, + { SCENE_16GORON_HOUSE, 0x00, 0x00, 0x00 }, + { SCENE_33ZORACITY, 0x00, 0x00, 0xC0 }, + { SCENE_8ITEMSHOP, 0x00, 0x30, 0xC1 }, + { SCENE_F01, 0x00, 0x00, 0x00 }, + { SCENE_INISIE_BS, 0x00, 0x00, 0x00 }, + { SCENE_30GYOSON, 0x00, 0x00, 0x00 }, + { SCENE_31MISAKI, 0x00, 0x00, 0x00 }, + { SCENE_TAKARAKUJI, 0x00, 0x30, 0xC1 }, + { SCENE_UNSET_3A, 0x00, 0x00, 0x00 }, + { SCENE_TORIDE, 0x00, 0x00, 0x00 }, + { SCENE_FISHERMAN, 0x00, 0x30, 0xC1 }, + { SCENE_GORONSHOP, 0x10, 0x30, 0xC1 }, + { SCENE_DEKU_KING, 0x00, 0x30, 0xC0 }, + { SCENE_LAST_GORON, 0x00, 0x3F, 0x00 }, + { SCENE_24KEMONOMITI, 0x00, 0x00, 0x00 }, + { SCENE_F01_B, 0x00, 0x30, 0x00 }, + { SCENE_F01C, 0x00, 0x30, 0x00 }, + { SCENE_BOTI, 0x00, 0x00, 0x00 }, + { SCENE_HAKUGIN_BS, 0x00, 0x00, 0x00 }, + { SCENE_20SICHITAI, 0x00, 0x00, 0x00 }, + { SCENE_21MITURINMAE, 0x00, 0x00, 0x00 }, + { SCENE_LAST_ZORA, 0x00, 0x3F, 0x00 }, + { SCENE_11GORONNOSATO2, 0x00, 0x00, 0x00 }, + { SCENE_SEA, 0x00, 0x00, 0x00 }, + { SCENE_35TAKI, 0x00, 0x00, 0x00 }, + { SCENE_REDEAD, 0x00, 0x00, 0x00 }, + { SCENE_BANDROOM, 0x00, 0x30, 0xC0 }, + { SCENE_11GORONNOSATO, 0x00, 0x00, 0x00 }, + { SCENE_GORON_HAKA, 0x00, 0x00, 0x00 }, + { SCENE_SECOM, 0x00, 0x3C, 0xC0 }, + { SCENE_10YUKIYAMANOMURA, 0x00, 0x00, 0x00 }, + { SCENE_TOUGITES, 0x00, 0x3F, 0xF0 }, + { SCENE_DANPEI, 0x00, 0x30, 0x00 }, + { SCENE_IKANAMAE, 0x00, 0x00, 0x00 }, + { SCENE_DOUJOU, 0x00, 0x30, 0xC1 }, + { SCENE_MUSICHOUSE, 0x00, 0x30, 0xC0 }, + { SCENE_IKNINSIDE, 0x00, 0x3F, 0xC0 }, + { SCENE_MAP_SHOP, 0x10, 0x30, 0xC1 }, + { SCENE_F40, 0x00, 0x00, 0x00 }, + { SCENE_F41, 0x00, 0x00, 0x00 }, + { SCENE_10YUKIYAMANOMURA2, 0x00, 0x00, 0x00 }, + { SCENE_14YUKIDAMANOMITI, 0x00, 0x00, 0x00 }, + { SCENE_12HAKUGINMAE, 0x00, 0x00, 0x00 }, + { SCENE_17SETUGEN, 0x00, 0x00, 0x00 }, + { SCENE_17SETUGEN2, 0x00, 0x00, 0x00 }, + { SCENE_SEA_BS, 0x00, 0x00, 0x00 }, + { SCENE_RANDOM, 0x00, 0x00, 0x00 }, + { SCENE_YADOYA, 0x10, 0x30, 0xC1 }, + { SCENE_KONPEKI_ENT, 0x00, 0x00, 0x00 }, + { SCENE_INSIDETOWER, 0x00, 0xFF, 0xC0 }, + { SCENE_26SARUNOMORI, 0x00, 0x30, 0x00 }, + { SCENE_LOST_WOODS, 0x00, 0x00, 0x00 }, + { SCENE_LAST_LINK, 0x00, 0x3F, 0x00 }, + { SCENE_SOUGEN, 0x00, 0x3F, 0x00 }, + { SCENE_BOMYA, 0x10, 0x30, 0xC1 }, + { SCENE_KYOJINNOMA, 0x00, 0x00, 0x00 }, + { SCENE_KOEPONARACE, 0x00, 0x30, 0x00 }, + { SCENE_GORONRACE, 0x00, 0x00, 0x00 }, + { SCENE_TOWN, 0x00, 0x00, 0x00 }, + { SCENE_ICHIBA, 0x00, 0x00, 0x00 }, + { SCENE_BACKTOWN, 0x00, 0x00, 0x00 }, + { SCENE_CLOCKTOWER, 0x00, 0x00, 0x00 }, + { SCENE_ALLEY, 0x00, 0x00, 0x00 }, +}; + +s16 D_801BF884 = 0; // pictoBox related +s16 D_801BF888 = false; // pictoBox related + +s16 sHBAScoreTier = 0; + +u16 sMinigameScoreDigits[] = { 0, 0, 0, 0 }; + +u16 sCUpInvisible = 0; +u16 sCUpTimer = 0; + +s16 sMagicBarOutlinePrimRed = 255; +s16 sMagicBarOutlinePrimGreen = 255; +s16 sMagicBarOutlinePrimBlue = 255; + +s16 D_801BF8AC = 2; // sMagicBorderRatio + +s16 D_801BF8B0 = 1; + +s16 sExtraItemBases[] = { + ITEM_STICK, ITEM_STICK, ITEM_NUT, ITEM_NUT, ITEM_BOMB, ITEM_BOMB, ITEM_BOMB, + ITEM_BOMB, ITEM_BOW, ITEM_BOW, ITEM_BOW, ITEM_BOMBCHU, ITEM_BOMBCHU, ITEM_BOMBCHU, + ITEM_BOMBCHU, ITEM_STICK, ITEM_STICK, ITEM_NUT, ITEM_NUT, +}; + +s16 D_801BF8DC = 0; + +s16 D_801BF8E0 = 0; + +s16 D_801BF8E4 = 0; + +OSTime D_801BF8E8 = 0; +OSTime D_801BF8F0 = 0; +OSTime D_801BF8F8[] = { + 0, 0, 0, 0, 0, 0, 0, +}; +OSTime D_801BF930[] = { + 0, 0, 0, 0, 0, 0, 0, +}; + +u8 D_801BF968 = false; +u8 D_801BF96C = false; + +s16 D_801BF970 = 99; + +s16 D_801BF974 = 0; + +s16 D_801BF978 = 10; + +s16 D_801BF97C = 255; + +f32 D_801BF980 = 1.0f; + +s32 D_801BF984 = 0; + +// Display List +Gfx D_801BF988[] = { + gsDPPipeSync(), + gsSPClearGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | + G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH), + gsDPSetOtherMode(G_AD_DISABLE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE | + G_TD_CLAMP | G_TP_NONE | G_CYC_1CYCLE | G_PM_1PRIMITIVE, + G_AC_NONE | G_ZS_PIXEL | G_RM_CLD_SURF | G_RM_CLD_SURF2), + gsDPSetCombineMode(G_CC_PRIMITIVE, G_CC_PRIMITIVE), + gsSPEndDisplayList(), +}; + +s16 D_801BF9B0 = 0; + +f32 D_801BF9B4[] = { + 100.0f, + 109.0f, +}; + +s16 D_801BF9BC[] = { + 0x226, + 0x2A8, + 0x2A8, + 0x2A8, +}; + +s16 D_801BF9C4[] = { + 0x9E, + 0x9B, +}; + +s16 D_801BF9C8[] = { + 0x17, + 0x16, +}; + +f32 D_801BF9CC[] = { + -380.0f, + -350.0f, +}; + +s16 D_801BF9D4[] = { + 0xA7, + 0xE3, +}; + +s16 D_801BF9D8[] = { + 0xF9, + 0x10F, +}; + +s16 D_801BF9DC[] = { + 0x11, + 0x12, +}; + +s16 D_801BF9E0[] = { + 0x22, + 0x12, +}; + +s16 D_801BF9E4[] = { + 0x23F, + 0x26C, +}; + +s16 D_801BF9E8[] = { + 0x26C, + 0x26C, +}; + +s16 sFinalHoursClockDigitsRed = 0; +s16 sFinalHoursClockFrameEnvRed = 0; +s16 sFinalHoursClockFrameEnvGreen = 0; +s16 sFinalHoursClockFrameEnvBlue = 0; +s16 sFinalHoursClockColorTimer = 15; +s16 sFinalHoursClockColorTargetIndex = 0; #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_8010CB80.s") @@ -18,8 +278,27 @@ #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_8010DE38.s") +s16 D_801BFA04[] = { + 0xFFF2, 0xFFF2, 0xFFE8, 0xFFF8, 0xFFF4, 0xFFF4, 0xFFF9, 0xFFF8, 0xFFF9, 0xFFF8, 0xFFF4, 0, +}; +s16 D_801BFA1C[] = { + 0x1C, 0x1C, 0x30, 0x10, 0x18, 0x18, 0x10, 0x10, 0x10, 0x10, 0x18, 0, +}; +s16 D_801BFA34[] = { + 0xE, 0xE, 0x8, 0x18, 0xFFAE, 0xFFAE, 0x3A, 0x3B, 0x3A, 0x3B, 0x20, 0, +}; +s16 D_801BFA4C[] = { + 0x1C, 0x1C, 0x10, 0x10, 0x18, 0x18, 0xB, 0xB, 0xB, 0xB, 0x20, 0, +}; +s16 D_801BFA64[] = { + 0xFFC3, 0xFFD3, 0x001D, 0x0068, 0xFF8B, 0xFFD6, 0x0020, 0x0037, +}; +s16 D_801BFA74[] = { + 0x0001, 0xFFBA, 0xFF9D, 0xFFBA, 0x0047, 0x0065, 0x0048, 0x0001, +}; #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_8010E028.s") +s32 D_801BFA84 = 0; #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_8010E968.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_8010E9F0.s") @@ -28,6 +307,7 @@ #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_8010EB50.s") +void func_8010EBA0(s16 timer, s16 timerId); #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_8010EBA0.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_8010EC54.s") @@ -52,38 +332,464 @@ #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80112AFC.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80112B40.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/Interface_LoadItemIconImpl.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80112BE4.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/Interface_LoadItemIcon.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80112C0C.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/Item_Give.s") +s16 sAmmoRefillCounts[] = { + 5, 10, 20, 30, 10, 30, 40, 50, 20, 10, 1, 5, 1, 5, 10, 20, 50, 100, 200, 0, +}; +u8 Item_Give(GlobalContext* globalCtx, u8 item) { + Player* player = GET_PLAYER(globalCtx); + u8 i; + u8 temp; + u8 slot; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_801143CC.s") + slot = SLOT(item); + if (item >= ITEM_STICKS_5) { + slot = SLOT(sExtraItemBases[item - ITEM_STICKS_5]); + } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80114978.s") + if (item == ITEM_SKULL_TOKEN) { + SET_QUEST_ITEM(item - ITEM_SKULL_TOKEN + QUEST_SKULL_TOKEN); + Inventory_IncrementSkullTokenCount(globalCtx->sceneNum); + return ITEM_NONE; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_801149A0.s") + } else if (item == ITEM_TINGLE_MAP) { + return ITEM_NONE; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80114A9C.s") + } else if (item == ITEM_BOMBERS_NOTEBOOK) { + SET_QUEST_ITEM(QUEST_BOMBERS_NOTEBOOK); + return ITEM_NONE; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80114B84.s") + } else if ((item == ITEM_HEART_PIECE_2) || (item == ITEM_HEART_PIECE)) { + gSaveContext.save.inventory.questItems += (1 << QUEST_HEART_PIECE); + if ((gSaveContext.save.inventory.questItems & 0xF0000000) == (1 << QUEST_HEART_CONTAINER)) { + gSaveContext.save.inventory.questItems ^= (1 << QUEST_HEART_CONTAINER); + gSaveContext.save.playerData.healthCapacity += 0x10; + gSaveContext.save.playerData.health += 0x10; + } + return ITEM_NONE; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80114CA0.s") + } else if (item == ITEM_HEART_CONTAINER) { + gSaveContext.save.playerData.healthCapacity += 0x10; + gSaveContext.save.playerData.health += 0x10; + return ITEM_NONE; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/Interface_HasEmptyBottle.s") + } else if ((item >= ITEM_SONG_SONATA) && (item <= ITEM_SONG_LULLABY_INTRO)) { + SET_QUEST_ITEM(item - ITEM_SONG_SONATA + QUEST_SONG_SONATA); + return ITEM_NONE; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/Interface_HasItemInBottle.s") + } else if ((item >= ITEM_SWORD_KOKIRI) && (item <= ITEM_SWORD_GILDED)) { + SET_EQUIP_VALUE(EQUIP_SWORD, item - ITEM_SWORD_KOKIRI + 1); + BUTTON_ITEM_EQUIP(CUR_FORM, EQUIP_SLOT_B) = item; + Interface_LoadItemIconImpl(globalCtx, 0); + if (item == ITEM_SWORD_RAZOR) { + gSaveContext.save.playerData.swordHealth = 100; + } + return ITEM_NONE; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80114FD0.s") + } else if ((item >= ITEM_SHIELD_HERO) && (item <= ITEM_SHIELD_MIRROR)) { + if (GET_CUR_EQUIP_VALUE(EQUIP_SHIELD) != (u16)(item - ITEM_SHIELD_HERO + 1)) { + SET_EQUIP_VALUE(EQUIP_SHIELD, item - ITEM_SHIELD_HERO + 1); + Player_SetEquipmentData(globalCtx, player); + return ITEM_NONE; + } + return item; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80115130.s") + } else if ((item == ITEM_KEY_BOSS) || (item == ITEM_COMPASS) || (item == ITEM_DUNGEON_MAP)) { + SET_DUNGEON_ITEM(item - ITEM_KEY_BOSS, gSaveContext.mapIndex); + return ITEM_NONE; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_801152B8.s") + } else if (item == ITEM_KEY_SMALL) { + if (DUNGEON_KEY_COUNT(gSaveContext.mapIndex) < 0) { + DUNGEON_KEY_COUNT(gSaveContext.mapIndex) = 1; + return ITEM_NONE; + } else { + DUNGEON_KEY_COUNT(gSaveContext.mapIndex)++; + return ITEM_NONE; + } + + } else if ((item == ITEM_QUIVER_30) || (item == ITEM_BOW)) { + if (CUR_UPG_VALUE(UPG_QUIVER) == 0) { + Inventory_ChangeUpgrade(UPG_QUIVER, 1); + INV_CONTENT(ITEM_BOW) = ITEM_BOW; + AMMO(ITEM_BOW) = CAPACITY(UPG_QUIVER, 1); + return ITEM_NONE; + } else { + AMMO(ITEM_BOW)++; + if (AMMO(ITEM_BOW) > (s8)CUR_CAPACITY(UPG_QUIVER)) { + AMMO(ITEM_BOW) = CUR_CAPACITY(UPG_QUIVER); + } + } + } else if (item == ITEM_QUIVER_40) { + Inventory_ChangeUpgrade(UPG_QUIVER, 2); + INV_CONTENT(ITEM_BOW) = ITEM_BOW; + AMMO(ITEM_BOW) = CAPACITY(UPG_QUIVER, 2); + return ITEM_NONE; + + } else if (item == ITEM_QUIVER_50) { + Inventory_ChangeUpgrade(UPG_QUIVER, 3); + INV_CONTENT(ITEM_BOW) = ITEM_BOW; + AMMO(ITEM_BOW) = CAPACITY(UPG_QUIVER, 3); + return ITEM_NONE; + + } else if (item == ITEM_BOMB_BAG_20) { + if (CUR_UPG_VALUE(UPG_BOMB_BAG) == 0) { + Inventory_ChangeUpgrade(UPG_BOMB_BAG, 1); + INV_CONTENT(ITEM_BOMB) = ITEM_BOMB; + AMMO(ITEM_BOMB) = CAPACITY(UPG_BOMB_BAG, 1); + return ITEM_NONE; + + } else { + AMMO(ITEM_BOMB)++; + if (AMMO(ITEM_BOMB) > CUR_CAPACITY(UPG_BOMB_BAG)) { + AMMO(ITEM_BOMB) = CUR_CAPACITY(UPG_BOMB_BAG); + } + } + + } else if (item == ITEM_BOMB_BAG_30) { + Inventory_ChangeUpgrade(UPG_BOMB_BAG, 2); + INV_CONTENT(ITEM_BOMB) = ITEM_BOMB; + AMMO(ITEM_BOMB) = CAPACITY(UPG_BOMB_BAG, 2); + return ITEM_NONE; + + } else if (item == ITEM_BOMB_BAG_40) { + Inventory_ChangeUpgrade(UPG_BOMB_BAG, 3); + INV_CONTENT(ITEM_BOMB) = ITEM_BOMB; + AMMO(ITEM_BOMB) = CAPACITY(UPG_BOMB_BAG, 3); + return ITEM_NONE; + + } else if (item == ITEM_WALLET_ADULT) { + Inventory_ChangeUpgrade(UPG_WALLET, 1); + return ITEM_NONE; + + } else if (item == ITEM_WALLET_GIANT) { + Inventory_ChangeUpgrade(UPG_WALLET, 2); + return ITEM_NONE; + + } else if (item == ITEM_STICK_UPGRADE_20) { + if (INV_CONTENT(ITEM_STICK) != ITEM_STICK) { + INV_CONTENT(ITEM_STICK) = ITEM_STICK; + } + Inventory_ChangeUpgrade(UPG_STICKS, 2); + AMMO(ITEM_STICK) = CAPACITY(UPG_STICKS, 2); + return ITEM_NONE; + + } else if (item == ITEM_STICK_UPGRADE_30) { + if (INV_CONTENT(ITEM_STICK) != ITEM_STICK) { + INV_CONTENT(ITEM_STICK) = ITEM_STICK; + } + Inventory_ChangeUpgrade(UPG_STICKS, 3); + AMMO(ITEM_STICK) = CAPACITY(UPG_STICKS, 3); + return ITEM_NONE; + + } else if (item == ITEM_NUT_UPGRADE_30) { + if (INV_CONTENT(ITEM_NUT) != ITEM_NUT) { + INV_CONTENT(ITEM_NUT) = ITEM_NUT; + } + Inventory_ChangeUpgrade(UPG_NUTS, 2); + AMMO(ITEM_NUT) = CAPACITY(UPG_NUTS, 2); + return ITEM_NONE; + + } else if (item == ITEM_NUT_UPGRADE_40) { + if (INV_CONTENT(ITEM_NUT) != ITEM_NUT) { + INV_CONTENT(ITEM_NUT) = ITEM_NUT; + } + Inventory_ChangeUpgrade(UPG_NUTS, 3); + AMMO(ITEM_NUT) = CAPACITY(UPG_NUTS, 3); + return ITEM_NONE; + + } else if (item == ITEM_STICK) { + if (INV_CONTENT(ITEM_STICK) != ITEM_STICK) { + Inventory_ChangeUpgrade(UPG_STICKS, 1); + AMMO(ITEM_STICK) = 1; + } else { + AMMO(ITEM_STICK)++; + if (AMMO(ITEM_STICK) > CUR_CAPACITY(UPG_STICKS)) { + AMMO(ITEM_STICK) = CUR_CAPACITY(UPG_STICKS); + } + } + } else if ((item == ITEM_STICKS_5) || (item == ITEM_STICKS_10)) { + if (INV_CONTENT(ITEM_STICK) != ITEM_STICK) { + Inventory_ChangeUpgrade(UPG_STICKS, 1); + AMMO(ITEM_STICK) = sAmmoRefillCounts[item - ITEM_STICKS_5]; + } else { + AMMO(ITEM_STICK) += sAmmoRefillCounts[item - ITEM_STICKS_5]; + if (AMMO(ITEM_STICK) > CUR_CAPACITY(UPG_STICKS)) { + AMMO(ITEM_STICK) = CUR_CAPACITY(UPG_STICKS); + } + } + + item = ITEM_STICK; + + } else if (item == ITEM_NUT) { + if (INV_CONTENT(ITEM_NUT) != ITEM_NUT) { + Inventory_ChangeUpgrade(UPG_NUTS, 1); + AMMO(ITEM_NUT) = 1; + } else { + AMMO(ITEM_NUT)++; + if (AMMO(ITEM_NUT) > CUR_CAPACITY(UPG_NUTS)) { + AMMO(ITEM_NUT) = CUR_CAPACITY(UPG_NUTS); + } + } + + } else if ((item == ITEM_NUTS_5) || (item == ITEM_NUTS_10)) { + if (INV_CONTENT(ITEM_NUT) != ITEM_NUT) { + Inventory_ChangeUpgrade(UPG_NUTS, 1); + AMMO(ITEM_NUT) += sAmmoRefillCounts[item - ITEM_NUTS_5]; + } else { + AMMO(ITEM_NUT) += sAmmoRefillCounts[item - ITEM_NUTS_5]; + if (AMMO(ITEM_NUT) > CUR_CAPACITY(UPG_NUTS)) { + AMMO(ITEM_NUT) = CUR_CAPACITY(UPG_NUTS); + } + } + item = ITEM_NUT; + + } else if (item == ITEM_POWDER_KEG) { + if (INV_CONTENT(ITEM_POWDER_KEG) != ITEM_POWDER_KEG) { + INV_CONTENT(ITEM_POWDER_KEG) = ITEM_POWDER_KEG; + } + + AMMO(ITEM_POWDER_KEG) = 1; + return ITEM_NONE; + + } else if (item == ITEM_BOMB) { + if ((AMMO(ITEM_BOMB) += 1) > CUR_CAPACITY(UPG_BOMB_BAG)) { + AMMO(ITEM_BOMB) = CUR_CAPACITY(UPG_BOMB_BAG); + } + return ITEM_NONE; + + } else if ((item >= ITEM_BOMBS_5) && (item <= ITEM_BOMBS_30)) { + if (gSaveContext.save.inventory.items[SLOT_BOMB] != ITEM_BOMB) { + INV_CONTENT(ITEM_BOMB) = ITEM_BOMB; + AMMO(ITEM_BOMB) += sAmmoRefillCounts[item - ITEM_BOMBS_5]; + return ITEM_NONE; + } + + if ((AMMO(ITEM_BOMB) += sAmmoRefillCounts[item - ITEM_BOMBS_5]) > CUR_CAPACITY(UPG_BOMB_BAG)) { + AMMO(ITEM_BOMB) = CUR_CAPACITY(UPG_BOMB_BAG); + } + return ITEM_NONE; + + } else if (item == ITEM_BOMBCHU) { + if (INV_CONTENT(ITEM_BOMBCHU) != ITEM_BOMBCHU) { + INV_CONTENT(ITEM_BOMBCHU) = ITEM_BOMBCHU; + AMMO(ITEM_BOMBCHU) = 10; + return ITEM_NONE; + } + if ((AMMO(ITEM_BOMBCHU) += 10) > CUR_CAPACITY(UPG_BOMB_BAG)) { + AMMO(ITEM_BOMBCHU) = CUR_CAPACITY(UPG_BOMB_BAG); + } + return ITEM_NONE; + + } else if ((item >= ITEM_BOMBCHUS_20) && (item <= ITEM_BOMBCHUS_5)) { + if (gSaveContext.save.inventory.items[SLOT_BOMBCHU] != ITEM_BOMBCHU) { + INV_CONTENT(ITEM_BOMBCHU) = ITEM_BOMBCHU; + AMMO(ITEM_BOMBCHU) += sAmmoRefillCounts[item - ITEM_BOMBCHUS_20 + 8]; + + if (AMMO(ITEM_BOMBCHU) > CUR_CAPACITY(UPG_BOMB_BAG)) { + AMMO(ITEM_BOMBCHU) = CUR_CAPACITY(UPG_BOMB_BAG); + } + return ITEM_NONE; + } + + if ((AMMO(ITEM_BOMBCHU) += sAmmoRefillCounts[item - ITEM_BOMBCHUS_20 + 8]) > CUR_CAPACITY(UPG_BOMB_BAG)) { + AMMO(ITEM_BOMBCHU) = CUR_CAPACITY(UPG_BOMB_BAG); + } + return ITEM_NONE; + + } else if ((item >= ITEM_ARROWS_10) && (item <= ITEM_ARROWS_50)) { + AMMO(ITEM_BOW) += sAmmoRefillCounts[item - ITEM_ARROWS_10 + 4]; + + if ((AMMO(ITEM_BOW) >= CUR_CAPACITY(UPG_QUIVER)) || (AMMO(ITEM_BOW) < 0)) { + AMMO(ITEM_BOW) = CUR_CAPACITY(UPG_QUIVER); + } + return ITEM_BOW; + + } else if (item == ITEM_OCARINA) { + INV_CONTENT(ITEM_OCARINA) = 0; + return ITEM_NONE; + + } else if (item == ITEM_BEAN) { + if (INV_CONTENT(ITEM_BEAN) == ITEM_NONE) { + INV_CONTENT(item) = item; + AMMO(ITEM_BEAN) = 1; + } else if (AMMO(ITEM_BEAN) < 20) { + AMMO(ITEM_BEAN)++; + } else { + AMMO(ITEM_BEAN) = 20; + } + return ITEM_NONE; + + } else if ((item >= ITEM_REMAINS_ODOLWA) && (item <= ITEM_REMAINS_TWINMOLD)) { + SET_QUEST_ITEM(item - ITEM_REMAINS_ODOLWA + QUEST_REMAINS_ODOWLA); + return ITEM_NONE; + + } else if (item == ITEM_HEART) { + Health_ChangeBy(globalCtx, 0x10); + return item; + + } else if (item == ITEM_MAGIC_SMALL) { + Interface_AddMagic(globalCtx, 0x18); + if (!(gSaveContext.save.weekEventReg[12] & 0x80)) { + gSaveContext.save.weekEventReg[12] |= 0x80; + return ITEM_NONE; + } + return item; + + } else if (item == ITEM_MAGIC_LARGE) { + Interface_AddMagic(globalCtx, 0x30); + if (!(gSaveContext.save.weekEventReg[12] & 0x80)) { + gSaveContext.save.weekEventReg[12] |= 0x80; + return ITEM_NONE; + } + return item; + + } else if ((item >= ITEM_RUPEE_GREEN) && (item <= ITEM_RUPEE_HUGE)) { + Rupees_ChangeBy(sAmmoRefillCounts[item - ITEM_RUPEE_GREEN + 12]); // TODO: Different to OoT? Or wrong. + return ITEM_NONE; + + } else if (item == ITEM_LONGSHOT) { + slot = SLOT(item); + + for (i = 0; i < 6; i++) { + if (gSaveContext.save.inventory.items[slot + i] == ITEM_NONE) { + gSaveContext.save.inventory.items[slot + i] = ITEM_POTION_RED; + return ITEM_NONE; + } + } + return item; + + } else if ((item == ITEM_MILK_BOTTLE) || (item == ITEM_POE) || (item == ITEM_GOLD_DUST) || (item == ITEM_CHATEAU) || + (item == ITEM_HYLIAN_LOACH)) { + slot = SLOT(item); + + for (i = 0; i < 6; i++) { + if (gSaveContext.save.inventory.items[slot + i] == ITEM_NONE) { + gSaveContext.save.inventory.items[slot + i] = item; + return ITEM_NONE; + } + } + return item; + + } else if (item == ITEM_BOTTLE) { + slot = SLOT(item); + + for (i = 0; i < 6; i++) { + if (gSaveContext.save.inventory.items[slot + i] == ITEM_NONE) { + gSaveContext.save.inventory.items[slot + i] = item; + return ITEM_NONE; + } + } + return item; + + } else if (((item >= ITEM_POTION_RED) && (item <= ITEM_OBABA_DRINK)) || (item == ITEM_CHATEAU_2) || + (item == ITEM_MILK) || (item == ITEM_GOLD_DUST_2) || (item == ITEM_HYLIAN_LOACH_2) || + (item == ITEM_SEA_HORSE_CAUGHT)) { + slot = SLOT(item); + + if ((item != ITEM_MILK_BOTTLE) && (item != ITEM_MILK_HALF)) { + if (item == ITEM_CHATEAU_2) { + item = ITEM_CHATEAU; + + } else if (item == ITEM_MILK) { + item = ITEM_MILK_BOTTLE; + + } else if (item == ITEM_GOLD_DUST_2) { + item = ITEM_GOLD_DUST; + + } else if (item == ITEM_HYLIAN_LOACH_2) { + item = ITEM_HYLIAN_LOACH; + + } else if (item == ITEM_SEA_HORSE_CAUGHT) { + item = ITEM_SEA_HORSE; + } + slot = SLOT(item); + + for (i = 0; i < 6; i++) { + if (gSaveContext.save.inventory.items[slot + i] == ITEM_BOTTLE) { + if (item == ITEM_HOT_SPRING_WATER) { + func_8010EBA0(60, i); + } + + if ((slot + i) == C_SLOT_EQUIP(0, 1)) { + BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_LEFT) = item; + Interface_LoadItemIconImpl(globalCtx, 1); + gSaveContext.buttonStatus[1] = BTN_ENABLED; + } else if ((slot + i) == C_SLOT_EQUIP(0, 2)) { + BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_DOWN) = item; + Interface_LoadItemIconImpl(globalCtx, 2); + gSaveContext.buttonStatus[2] = BTN_ENABLED; + } else if ((slot + i) == C_SLOT_EQUIP(0, 3)) { + BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_RIGHT) = item; + Interface_LoadItemIconImpl(globalCtx, 3); + gSaveContext.buttonStatus[3] = BTN_ENABLED; + } + + gSaveContext.save.inventory.items[slot + i] = item; + return ITEM_NONE; + } + } + } else { + for (i = 0; i < 6; i++) { + if (gSaveContext.save.inventory.items[slot + i] == ITEM_NONE) { + gSaveContext.save.inventory.items[slot + i] = item; + return ITEM_NONE; + } + } + } + + } else if ((item >= ITEM_MOON_TEAR) && (item <= ITEM_MASK_GIANT)) { + temp = INV_CONTENT(item); + INV_CONTENT(item) = item; + if ((item >= ITEM_MOON_TEAR) && (item <= ITEM_PENDANT_MEMORIES) && (temp != ITEM_NONE)) { + for (i = 1; i < 4; i++) { + if (temp == GET_CUR_FORM_BTN_ITEM(i)) { + SET_CUR_FORM_BTN_ITEM(i, item); + Interface_LoadItemIconImpl(globalCtx, i); + return ITEM_NONE; + } + } + } + return ITEM_NONE; + } + + temp = gSaveContext.save.inventory.items[slot]; + INV_CONTENT(item) = item; + return temp; +} + +#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/Item_CheckObtainabilityImpl.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/Item_CheckObtainability.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/Inventory_DeleteItem.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/Inventory_UnequipItem.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/Inventory_ReplaceItem.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/Inventory_UpdateDeitySwordEquip.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/Inventory_HasEmptyBottle.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/Inventory_HasItemInBottle.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/Inventory_UpdateBottleItem.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/Inventory_ConsumeFairy.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/Inventory_UpdateItem.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_801153C8.s") +TexturePtr sDoActionTextures[] = { + 0x09000000, // gAttackDoActionENGTex + 0x09000180, // gCheckDoActionENGTex +}; #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80115428.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_8011552C.s") @@ -94,15 +800,15 @@ #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80115844.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80115908.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/Health_ChangeBy.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_801159c0.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/Health_GiveHearts.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_801159EC.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/Rupees_ChangeBy.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80115A14.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/Inventory_ChangeAmmo.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/Parameter_AddMagic.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/Interface_AddMagic.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80115D5C.s") @@ -110,6 +816,12 @@ #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80116088.s") +s16 magicBorderColors[][3] = { + { 255, 255, 255 }, + { 150, 150, 150 }, +}; +s16 magicBorderIndices[] = { 0, 1, 1, 0 }; +s16 magicBorderColorTimerIndex[] = { 2, 1, 2, 1 }; #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80116114.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80116348.s") @@ -120,10 +832,22 @@ #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_801170B8.s") +TexturePtr cUpLabelTextures[] = { + gTatlCUpENGTex, gTatlCUpENGTex, gTatlCUpGERTex, gTatlCUpFRATex, gTatlCUpESPTex, +}; +s16 startButtonLeftPos[] = { + // Remnant of OoT + 130, 136, 136, 136, 136, +}; +s16 D_801BFAF4[] = { 0x1D, 0x1B }; +s16 D_801BFAF8[] = { 0x1B, 0x1B }; #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80117100.s") +s16 D_801BFAFC[] = { 30, 24, 24, 24 }; #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80117A20.s") +s16 D_801BFB04[] = { 0xA2, 0xE4, 0xFA, 0x110 }; +s16 D_801BFB0C[] = { 0x23, 0x23, 0x33, 0x23 }; #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80117BD0.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80118084.s") @@ -132,36 +856,170 @@ #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80118BA4.s") +extern TexturePtr D_08095AC0; // gMagicArrowEquipEffectTex +s16 D_801BFB14[] = { 255, 100, 255, 0 }; // magicArrowEffectsR +s16 D_801BFB1C[] = { 0, 100, 255, 0 }; // magicArrowEffectsG +s16 D_801BFB24[] = { 0, 255, 100, 0 }; // magicArrowEffectsB #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80119030.s") +s16 D_801BFB2C = 255; +s16 D_801BFB30 = 0; +s16 D_801BFB34 = 0; +u16 D_801BFB38[] = { + CLOCK_TIME(0, 0), CLOCK_TIME(1, 0), CLOCK_TIME(2, 0), CLOCK_TIME(3, 0), CLOCK_TIME(4, 0), + CLOCK_TIME(5, 0), CLOCK_TIME(6, 0), CLOCK_TIME(7, 0), CLOCK_TIME(8, 0), CLOCK_TIME(9, 0), + CLOCK_TIME(10, 0), CLOCK_TIME(11, 0), CLOCK_TIME(12, 0), CLOCK_TIME(13, 0), CLOCK_TIME(14, 0), + CLOCK_TIME(15, 0), CLOCK_TIME(16, 0), CLOCK_TIME(17, 0), CLOCK_TIME(18, 0), CLOCK_TIME(19, 0), + CLOCK_TIME(20, 0), CLOCK_TIME(21, 0), CLOCK_TIME(22, 0), CLOCK_TIME(23, 0), CLOCK_TIME(24, 0) - 1, +}; +TexturePtr D_801BFB6C[] = { + gThreeDayClockHour12Tex, gThreeDayClockHour1Tex, gThreeDayClockHour2Tex, gThreeDayClockHour3Tex, + gThreeDayClockHour4Tex, gThreeDayClockHour5Tex, gThreeDayClockHour6Tex, gThreeDayClockHour7Tex, + gThreeDayClockHour8Tex, gThreeDayClockHour9Tex, gThreeDayClockHour10Tex, gThreeDayClockHour11Tex, + gThreeDayClockHour12Tex, gThreeDayClockHour1Tex, gThreeDayClockHour2Tex, gThreeDayClockHour3Tex, + gThreeDayClockHour4Tex, gThreeDayClockHour5Tex, gThreeDayClockHour6Tex, gThreeDayClockHour7Tex, + gThreeDayClockHour8Tex, gThreeDayClockHour9Tex, gThreeDayClockHour10Tex, gThreeDayClockHour11Tex, +}; +s16 D_801BFBCC = 0; // color R +s16 D_801BFBD0 = 155; // color G +s16 D_801BFBD4 = 255; +s16 D_801BFBD8 = 0; +s16 D_801BFBDC = 0; +s16 D_801BFBE0 = 0; +s16 D_801BFBE4 = 0xF; +u32 D_801BFBE8 = 0; +s16 D_801BFBEC[] = { 100, 0 }; +s16 D_801BFBF0[] = { 205, 155 }; +s16 D_801BFBF4[] = { 255, 255 }; +s16 D_801BFBF8[] = { 30, 0 }; +s16 D_801BFBFC[] = { 30, 0 }; +s16 D_801BFC00[] = { 100, 0 }; +s16 D_801BFC04[] = { 255, 0 }; +s16 D_801BFC08[] = { 100, 0 }; +s16 D_801BFC0C[] = { 30, 0 }; +s16 D_801BFC10[] = { 100, 0 }; +TexturePtr D_801BFC14[] = { + gFinalHoursClockDigit0Tex, gFinalHoursClockDigit1Tex, gFinalHoursClockDigit2Tex, gFinalHoursClockDigit3Tex, + gFinalHoursClockDigit4Tex, gFinalHoursClockDigit5Tex, gFinalHoursClockDigit6Tex, gFinalHoursClockDigit7Tex, + gFinalHoursClockDigit8Tex, gFinalHoursClockDigit9Tex, gFinalHoursClockColonTex, +}; +s16 D_801BFC40[] = { + 0x007F, 0x0088, 0x0090, 0x0097, 0x00A0, 0x00A8, 0x00AF, 0x00B8, +}; #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80119610.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_8011B4E0.s") +u16 D_801BFC50[] = { + 0xC000, 0xE000, 0x0000, 0x2000, 0xA000, 0x8000, 0x6000, 0x4000, +}; +s16 D_801BFC60[][3] = { + 255, 255, 255, 255, 165, 55, +}; #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_8011B5C0.s") +s16 D_801BFC6C[] = { + 0x004E, 0x0036, 0x001D, 0x0005, 0xFFEE, 0xFFD6, 0xFFBD, 0xFFAB, +}; +s16 D_801BFC7C[] = { + 0x00B4, 0x00B4, 0x00B4, 0x00B4, 0xFF4C, 0xFF4C, 0xFF4C, 0xFF4C, +}; +s16 D_801BFC8C[2][3] = { + { 0xFF, 0xFF, 0xFF }, + { 0xFF, 0xA5, 0x37 }, +}; #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_8011B9E0.s") +s16 D_801BFC98[] = { + 0x004E, 0x0036, 0x001D, 0x0005, 0xFFEE, 0xFFD6, 0xFFBD, 0xFFAB, +}; +u16 D_801BFCA8[] = { + 0xC000, 0xE000, 0x0000, 0x2000, 0xA000, 0x8000, 0x6000, 0x4000, +}; +s16 D_801BFCB8[2][3] = { + { 0xFF, 0xFF, 0xFF }, + { 0xFF, 0xA5, 0x37 }, +}; #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_8011BF70.s") +TexturePtr D_801BFCC4[] = { + gMinigameLetterPTex, gMinigameLetterETex, gMinigameLetterRTex, gMinigameLetterFTex, + gMinigameLetterETex, gMinigameLetterCTex, gMinigameLetterTTex, gMinigameExclamationTex, +}; #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_8011C4C4.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_8011C808.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_8011C898.s") +s16 D_801BFCE4 = 0; +s16 D_801BFCE8[] = { 0, 0, 0, 0, 0, 0, 0, 0 }; +s16 D_801BFCF8 = 0x63; +s16 D_801BFCFC[] = { + // timer digit width + 0x10, 0x19, 0x22, 0x2A, 0x33, 0x3C, 0x44, 0x4D, +}; +s16 D_801BFD0C[] = { + // digit width + 9, 9, 8, 9, 9, 8, 9, 9, +}; #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_8011CA64.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_8011E3B4.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_8011E730.s") +// rupeeDigitsFirst +s16 D_801BFD1C[] = { 1, 0, 0, 0 }; +// rupeeDigitsCount +s16 D_801BFD24[] = { 2, 3, 3, 0 }; +// rupeeIconPrimColor +Color_RGB16 D_801BFD2C[] = { + { 200, 255, 100 }, + { 170, 170, 255 }, + { 255, 105, 105 }, +}; +// rupeeIconEnvColor +Color_RGB16 D_801BFD40[] = { + { 0, 80, 0 }, + { 10, 10, 80 }, + { 40, 10, 0 }, +}; +// minigameCountdownTexs +TexturePtr D_801BFD54[] = { + gMinigameCountdown3Tex, + gMinigameCountdown2Tex, + gMinigameCountdown1Tex, + gMinigameCountdownGoTex, +}; +// minigameCountdownTexHeights +s16 D_801BFD64[] = { 24, 24, 24, 40 }; +// minigameCountdownPrimColor +Color_RGB16 D_801BFD6C[] = { + { 100, 255, 100 }, + { 255, 255, 60 }, + { 255, 100, 0 }, + { 120, 170, 255 }, +}; +// grandma's story pictures +s32 D_801BFD84[] = { + 0x07000000, + 0x07012C00, +}; +// grandma's story TLUT +u32 D_801BFD8C[] = { + 0x07025800, + 0x07025A00, +}; #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_8011F0E0.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80120F90.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80121064.s") +u8 D_801BFD94 = 0; +s16 D_801BFD98 = 0; +s16 D_801BFD9C = 0; #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_801210E0.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80121F94.s") diff --git a/src/code/z_sram_NES.c b/src/code/z_sram_NES.c index 52acc9379..2ebb32447 100644 --- a/src/code/z_sram_NES.c +++ b/src/code/z_sram_NES.c @@ -149,9 +149,9 @@ s32 D_801C6798[] = { }; u8 D_801C67B0[24] = { - ITEM_NONE, ITEM_BOW, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_BOMB, ITEM_BOMBCHU, - ITEM_STICK, ITEM_NUT, ITEM_MAGIC_BEANS, ITEM_NONE, ITEM_POWDER_KEG, ITEM_PICTO_BOX, ITEM_NONE, ITEM_NONE, - ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, + ITEM_NONE, ITEM_BOW, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_BOMB, ITEM_BOMBCHU, + ITEM_STICK, ITEM_NUT, ITEM_BEAN, ITEM_NONE, ITEM_POWDER_KEG, ITEM_PICTO_BOX, ITEM_NONE, ITEM_NONE, + ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, }; s32 D_801C67C8[] = { 0, 0x40, 0x80, 0xC0, 0x100, 0x180, 0x200, 0x280 }; @@ -276,7 +276,7 @@ void Sram_SaveEndOfCycle(GlobalContext* globalCtx) { } if (gSaveContext.save.weekEventReg[84] & 0x20) { - func_801149A0(ITEM_MASK_FIERCE_DEITY, SLOT(ITEM_MASK_FIERCE_DEITY)); + Inventory_DeleteItem(ITEM_MASK_FIERCE_DEITY, SLOT(ITEM_MASK_FIERCE_DEITY)); } for (i = 0; i < ARRAY_COUNT(D_801C66D0); i++) { @@ -346,7 +346,7 @@ void Sram_SaveEndOfCycle(GlobalContext* globalCtx) { for (j = 1; j < 4; j++) { if (GET_CUR_FORM_BTN_ITEM(j) == gSaveContext.save.inventory.items[i]) { SET_CUR_FORM_BTN_ITEM(j, ITEM_BOTTLE); - func_80112B40(globalCtx, j); + Interface_LoadItemIconImpl(globalCtx, j); } } gSaveContext.save.inventory.items[i] = ITEM_BOTTLE; @@ -354,7 +354,7 @@ void Sram_SaveEndOfCycle(GlobalContext* globalCtx) { } } - REMOVE_QUEST_ITEM(QUEST_UNK_19); + REMOVE_QUEST_ITEM(QUEST_PICTOBOX); if (gSaveContext.save.playerData.health < 0x30) { gSaveContext.save.playerData.health = 0x30; @@ -408,14 +408,14 @@ void Sram_SaveEndOfCycle(GlobalContext* globalCtx) { SET_STOLEN_ITEM_2(STOLEN_ITEM_NONE); // ?? - func_801149A0(ITEM_OCARINA_FAIRY, SLOT_TRADE_DEED); - func_801149A0(ITEM_SLINGSHOT, SLOT_TRADE_KEY_MAMA); - func_801149A0(ITEM_LONGSHOT, SLOT_TRADE_COUPLE); + Inventory_DeleteItem(ITEM_OCARINA_FAIRY, SLOT_TRADE_DEED); + Inventory_DeleteItem(ITEM_SLINGSHOT, SLOT_TRADE_KEY_MAMA); + Inventory_DeleteItem(ITEM_LONGSHOT, SLOT_TRADE_COUPLE); for (j = 1; j < 4; j++) { if (GET_CUR_FORM_BTN_ITEM(j) >= ITEM_MOON_TEAR && GET_CUR_FORM_BTN_ITEM(j) <= ITEM_PENDANT_MEMORIES) { SET_CUR_FORM_BTN_ITEM(j, ITEM_NONE); - func_80112B40(globalCtx, j); + Interface_LoadItemIconImpl(globalCtx, j); } } @@ -718,7 +718,7 @@ Inventory sSaveDebugInventory = { ITEM_BOMBCHU, ITEM_STICK, ITEM_NUT, - ITEM_MAGIC_BEANS, + ITEM_BEAN, ITEM_ROOM_KEY, ITEM_POWDER_KEG, ITEM_PICTO_BOX, diff --git a/src/overlays/actors/ovl_En_Akindonuts/z_en_akindonuts.c b/src/overlays/actors/ovl_En_Akindonuts/z_en_akindonuts.c index 70e98fc15..1c48235ae 100644 --- a/src/overlays/actors/ovl_En_Akindonuts/z_en_akindonuts.c +++ b/src/overlays/actors/ovl_En_Akindonuts/z_en_akindonuts.c @@ -230,7 +230,7 @@ s32 func_80BECFBC(EnAkindonuts* this) { return 0x9A; case 3: - func_801149A0(ITEM_DEED_OCEAN, SLOT(ITEM_DEED_OCEAN)); + Inventory_DeleteItem(ITEM_DEED_OCEAN, SLOT(ITEM_DEED_OCEAN)); return 0x7; } return 0; @@ -296,7 +296,7 @@ s32 func_80BED140(GlobalContext* globalCtx) { } s32 func_80BED208(EnAkindonuts* this) { - if (INV_CONTENT(ITEM_MAGIC_BEANS) != 10U) { + if (INV_CONTENT(ITEM_BEAN) != 10U) { return 0; } @@ -304,7 +304,7 @@ s32 func_80BED208(EnAkindonuts* this) { return 1; } - if (AMMO(ITEM_MAGIC_BEANS) >= 20) { + if (AMMO(ITEM_BEAN) >= 20) { return 2; } @@ -332,7 +332,7 @@ s32 func_80BED27C(EnAkindonuts* this) { } s32 func_80BED2FC(EnAkindonuts* this) { - if (!Interface_HasEmptyBottle()) { + if (!Inventory_HasEmptyBottle()) { return 2; } @@ -346,7 +346,7 @@ s32 func_80BED2FC(EnAkindonuts* this) { } s32 func_80BED35C(EnAkindonuts* this) { - if (!Interface_HasEmptyBottle()) { + if (!Inventory_HasEmptyBottle()) { return 2; } @@ -1326,7 +1326,7 @@ void func_80BEF360(EnAkindonuts* this, GlobalContext* globalCtx) { if (this->unk_32C & 0x40) { if (Actor_HasParent(&this->actor, globalCtx)) { this->actor.parent = NULL; - func_801159EC(this->unk_364); + Rupees_ChangeBy(this->unk_364); this->unk_32C &= ~0x40; this->actionFunc = func_80BEF450; } else { diff --git a/src/overlays/actors/ovl_En_Aob_01/z_en_aob_01.c b/src/overlays/actors/ovl_En_Aob_01/z_en_aob_01.c index 0705d7f06..9fcb56018 100644 --- a/src/overlays/actors/ovl_En_Aob_01/z_en_aob_01.c +++ b/src/overlays/actors/ovl_En_Aob_01/z_en_aob_01.c @@ -394,7 +394,7 @@ void func_809C16DC(EnAob01* this, GlobalContext* globalCtx) { case 0x3529: if (this->unk_2D2 & 2) { this->unk_2D2 &= ~2; - func_801159EC(-this->unk_434); + Rupees_ChangeBy(-this->unk_434); func_800B7298(globalCtx, NULL, 7); globalCtx->msgCtx.msgMode = 0x43; globalCtx->msgCtx.unk12023 = 4; @@ -710,7 +710,7 @@ void func_809C28B8(EnAob01* this, GlobalContext* globalCtx) { this->unk_210 = 0x352A; this->unk_2D2 |= 0x80; this->unk_434 *= 3; - func_801159EC(this->unk_434); + Rupees_ChangeBy(this->unk_434); globalCtx->msgCtx.bankRupees = this->unk_434; break; @@ -718,7 +718,7 @@ void func_809C28B8(EnAob01* this, GlobalContext* globalCtx) { this->unk_210 = 0x352B; this->unk_2D2 |= 0x80; this->unk_434 *= 2; - func_801159EC(this->unk_434); + Rupees_ChangeBy(this->unk_434); globalCtx->msgCtx.bankRupees = this->unk_434; break; @@ -726,7 +726,7 @@ void func_809C28B8(EnAob01* this, GlobalContext* globalCtx) { case 4: case 5: this->unk_210 = 0x352C; - func_801159EC(this->unk_434); + Rupees_ChangeBy(this->unk_434); break; default: diff --git a/src/overlays/actors/ovl_En_Cow/z_en_cow.c b/src/overlays/actors/ovl_En_Cow/z_en_cow.c index 772d054ab..84aae79a7 100644 --- a/src/overlays/actors/ovl_En_Cow/z_en_cow.c +++ b/src/overlays/actors/ovl_En_Cow/z_en_cow.c @@ -234,7 +234,7 @@ void EnCow_GiveMilk(EnCow* this, GlobalContext* globalCtx) { void EnCow_CheckForEmptyBottle(EnCow* this, GlobalContext* globalCtx) { if ((Message_GetState(&globalCtx->msgCtx) == 5) && Message_ShouldAdvance(globalCtx)) { - if (Interface_HasEmptyBottle()) { + if (Inventory_HasEmptyBottle()) { func_80151938(globalCtx, 0x32C9); // Text to give milk. this->actionFunc = EnCow_GiveMilk; } else { @@ -291,7 +291,7 @@ void EnCow_Idle(EnCow* this, GlobalContext* globalCtx) { if (func_801A5100() == 4) { if (!(gSaveContext.save.weekEventReg[87] & 1)) { gSaveContext.save.weekEventReg[87] |= 1; - if (Interface_HasEmptyBottle()) { + if (Inventory_HasEmptyBottle()) { this->actor.textId = 0x32C9; // Text to give milk. } else { this->actor.textId = 0x32CA; // Text if you don't have an empty bottle. diff --git a/src/overlays/actors/ovl_En_Dnp/z_en_dnp.c b/src/overlays/actors/ovl_En_Dnp/z_en_dnp.c index 13a02345d..27bd5e359 100644 --- a/src/overlays/actors/ovl_En_Dnp/z_en_dnp.c +++ b/src/overlays/actors/ovl_En_Dnp/z_en_dnp.c @@ -365,7 +365,7 @@ void EnDnp_Init(Actor* thisx, GlobalContext* globalCtx) { this->actor.world.rot.x = this->actor.shape.rot.x; this->actor.cutscene = 0x10; this->actionFunc = func_80B3D47C; - } else if (((ENDNP_GET_7(&this->actor) == ENDNP_GET_7_0) && !Interface_HasItemInBottle(ITEM_DEKU_PRINCESS) && + } else if (((ENDNP_GET_7(&this->actor) == ENDNP_GET_7_0) && !Inventory_HasItemInBottle(ITEM_DEKU_PRINCESS) && !(gSaveContext.save.weekEventReg[23] & 0x20)) || ((ENDNP_GET_7(&this->actor) == ENDNP_GET_7_2) && (gSaveContext.save.weekEventReg[23] & 0x20))) { Actor_SetScale(&this->actor, 0.0085f); diff --git a/src/overlays/actors/ovl_En_Dnq/z_en_dnq.c b/src/overlays/actors/ovl_En_Dnq/z_en_dnq.c index 917a2d4d9..d2a29442d 100644 --- a/src/overlays/actors/ovl_En_Dnq/z_en_dnq.c +++ b/src/overlays/actors/ovl_En_Dnq/z_en_dnq.c @@ -342,7 +342,7 @@ void func_80A52DC8(EnDnq* this, GlobalContext* globalCtx) { if (!(gSaveContext.save.weekEventReg[23] & 0x20)) { this->unk_390 = 70.0f; - if (Interface_HasItemInBottle(ITEM_DEKU_PRINCESS) && !Play_InCsMode(globalCtx) && + if (Inventory_HasItemInBottle(ITEM_DEKU_PRINCESS) && !Play_InCsMode(globalCtx) && (Message_GetState(&globalCtx->msgCtx) == 0) && (ActorCutscene_GetCurrentIndex() == -1)) { if ((DECR(this->unk_384) == 0) && (gSaveContext.save.weekEventReg[29] & 0x40)) { Message_StartTextbox(globalCtx, 0x969, NULL); diff --git a/src/overlays/actors/ovl_En_Elf/z_en_elf.c b/src/overlays/actors/ovl_En_Elf/z_en_elf.c index 62d455147..fcaf6063d 100644 --- a/src/overlays/actors/ovl_En_Elf/z_en_elf.c +++ b/src/overlays/actors/ovl_En_Elf/z_en_elf.c @@ -673,9 +673,9 @@ void func_8088DD34(EnElf* this, GlobalContext* globalCtx) { if ((this->fairyFlags & 0x1000) && (heightDiff > 0.0f) && (heightDiff < 60.0f) && !func_8088C804(&this->actor.world.pos, &refActor->actor.world.pos, 10.0f)) { - func_80115908(globalCtx, 0x80); + Health_ChangeBy(globalCtx, 0x80); if (this->fairyFlags & 0x200) { - Parameter_AddMagic(globalCtx, ((void)0, gSaveContext.unk_3F30) + + Interface_AddMagic(globalCtx, ((void)0, gSaveContext.unk_3F30) + (gSaveContext.save.playerData.doubleMagic * 0x30) + 0x30); } gSaveContext.jinxTimer = 0; diff --git a/src/overlays/actors/ovl_En_Elfgrp/z_en_elfgrp.c b/src/overlays/actors/ovl_En_Elfgrp/z_en_elfgrp.c index 3acd2adf5..605edd6d4 100644 --- a/src/overlays/actors/ovl_En_Elfgrp/z_en_elfgrp.c +++ b/src/overlays/actors/ovl_En_Elfgrp/z_en_elfgrp.c @@ -481,7 +481,7 @@ void func_80A3A610(EnElfgrp* this, GlobalContext* globalCtx) { Player* player = GET_PLAYER(globalCtx); if (this->unk_144 == 60) { - Parameter_AddMagic(globalCtx, + Interface_AddMagic(globalCtx, ((void)0, gSaveContext.unk_3F30) + (gSaveContext.save.playerData.doubleMagic * 0x30) + 0x30); gSaveContext.healthAccumulator = 320; } diff --git a/src/overlays/actors/ovl_En_Elforg/z_en_elforg.c b/src/overlays/actors/ovl_En_Elforg/z_en_elforg.c index 36ad91c0f..0ab1e4210 100644 --- a/src/overlays/actors/ovl_En_Elforg/z_en_elforg.c +++ b/src/overlays/actors/ovl_En_Elforg/z_en_elforg.c @@ -440,7 +440,7 @@ void EnElforg_FreeFloating(EnElforg* this, GlobalContext* globalCtx) { if (!Player_InCsMode(&globalCtx->state)) { if ((this->actor.xzDistToPlayer < 30.0f) && (scaledYDistance < 12.0f) && (scaledYDistance > -68.0f)) { EnElforg_SetupFairyCollected(this, globalCtx); - func_80115908(globalCtx, 48); + Health_ChangeBy(globalCtx, 48); switch (STRAY_FAIRY_TYPE(&this->actor)) { case STRAY_FAIRY_TYPE_COLLECTIBLE: Flags_SetCollectible(globalCtx, STRAY_FAIRY_FLAG(&this->actor)); diff --git a/src/overlays/actors/ovl_En_Fishing/z_en_fishing.c b/src/overlays/actors/ovl_En_Fishing/z_en_fishing.c index eccee0fe9..2a8722fd7 100644 --- a/src/overlays/actors/ovl_En_Fishing/z_en_fishing.c +++ b/src/overlays/actors/ovl_En_Fishing/z_en_fishing.c @@ -1130,7 +1130,7 @@ void EnFishing_UpdateEffects(FishingEffect* effect, GlobalContext* globalCtx) { if ((effect->unk_2C >= 100) && (Message_GetState(&globalCtx->msgCtx) == 5)) { if (Message_ShouldAdvance(globalCtx) || Message_GetState(&globalCtx->msgCtx) == 0) { func_801477B4(globalCtx); - func_801159EC(-50); + Rupees_ChangeBy(-50); effect->unk_2C = -1; } } @@ -4729,7 +4729,7 @@ void EnFishing_HandleOwnerDialog(EnFishing* this, GlobalContext* globalCtx) { switch (globalCtx->msgCtx.choiceIndex) { case 0: if (gSaveContext.save.playerData.rupees >= 20) { - func_801159EC(-20); + Rupees_ChangeBy(-20); if (func_8013EE04() == 0) { this->actor.textId = 0x407C; } else { diff --git a/src/overlays/actors/ovl_En_Fu/z_en_fu.c b/src/overlays/actors/ovl_En_Fu/z_en_fu.c index b67a3080e..0e51cb6db 100644 --- a/src/overlays/actors/ovl_En_Fu/z_en_fu.c +++ b/src/overlays/actors/ovl_En_Fu/z_en_fu.c @@ -430,7 +430,7 @@ void func_80962588(EnFu* this, GlobalContext* globalCtx) { if (globalCtx->msgCtx.choiceIndex == 0) { if (gSaveContext.save.playerData.rupees >= 10) { func_8019F208(); - func_801159EC(-10); + Rupees_ChangeBy(-10); func_80963DE4(this, globalCtx); } else { play_sound(NA_SE_SY_ERROR); @@ -654,7 +654,7 @@ void func_80962A10(EnFu* this, GlobalContext* globalCtx) { if ((gSaveContext.save.playerForm == PLAYER_FORM_DEKU) && gSaveContext.save.playerData.magicAcquired) { s16 temp = gSaveContext.unk_3F30; - Parameter_AddMagic(globalCtx, temp + (gSaveContext.save.playerData.doubleMagic * 48) + 48); + Interface_AddMagic(globalCtx, temp + (gSaveContext.save.playerData.doubleMagic * 48) + 48); } func_80962F10(this); diff --git a/src/overlays/actors/ovl_En_Gb2/z_en_gb2.c b/src/overlays/actors/ovl_En_Gb2/z_en_gb2.c index 82010f193..676d4f701 100644 --- a/src/overlays/actors/ovl_En_Gb2/z_en_gb2.c +++ b/src/overlays/actors/ovl_En_Gb2/z_en_gb2.c @@ -430,7 +430,7 @@ void func_80B0FFA8(EnGb2* this, GlobalContext* globalCtx) { switch (globalCtx->msgCtx.choiceIndex) { case 0: func_8019F208(); - func_801159EC(-this->unk_288); + Rupees_ChangeBy(-this->unk_288); globalCtx->msgCtx.msgMode = 0x43; globalCtx->msgCtx.unk12023 = 4; func_800B7298(globalCtx, NULL, 7); @@ -582,7 +582,7 @@ void func_80B10634(EnGb2* this, GlobalContext* globalCtx) { Message_StartTextbox(globalCtx, this->unk_26E, &this->actor); } else { func_8019F208(); - func_801159EC(-this->unk_288); + Rupees_ChangeBy(-this->unk_288); globalCtx->msgCtx.msgMode = 0x43; globalCtx->msgCtx.unk12023 = 4; func_800B7298(globalCtx, NULL, 7); @@ -628,7 +628,7 @@ void func_80B10924(EnGb2* this, GlobalContext* globalCtx) { if (sp24 == 12) { gSaveContext.save.weekEventReg[54] |= 0x40; } else { - func_801159EC(50); + Rupees_ChangeBy(50); } this->actionFunc = func_80B109DC; } else { diff --git a/src/overlays/actors/ovl_En_Ginko_Man/z_en_ginko_man.c b/src/overlays/actors/ovl_En_Ginko_Man/z_en_ginko_man.c index 34b0e36b4..f5d07fcf5 100644 --- a/src/overlays/actors/ovl_En_Ginko_Man/z_en_ginko_man.c +++ b/src/overlays/actors/ovl_En_Ginko_Man/z_en_ginko_man.c @@ -357,7 +357,7 @@ void EnGinkoMan_WaitForDialogueInput(EnGinkoMan* this, GlobalContext* globalCtx) this->isNewAccount = true; } - func_801159EC((s16)-globalCtx->msgCtx.bankRupeesSelected); + Rupees_ChangeBy((s16)-globalCtx->msgCtx.bankRupeesSelected); this->previousBankValue = gSaveContext.save.bankRupees & 0xFFFF; gSaveContext.save.bankRupees = ((gSaveContext.save.bankRupees & 0xFFFF) + globalCtx->msgCtx.bankRupeesSelected) | @@ -425,7 +425,7 @@ void EnGinkoMan_WaitForDialogueInput(EnGinkoMan* this, GlobalContext* globalCtx) (((gSaveContext.save.bankRupees & 0xFFFF) - globalCtx->msgCtx.bankRupeesSelected) - this->serviceFee) | (gSaveContext.save.bankRupees & 0xFFFF0000); - func_801159EC(globalCtx->msgCtx.bankRupeesSelected); + Rupees_ChangeBy(globalCtx->msgCtx.bankRupeesSelected); } } else { func_8019F230(); diff --git a/src/overlays/actors/ovl_En_GirlA/z_en_girla.c b/src/overlays/actors/ovl_En_GirlA/z_en_girla.c index b509d4500..7a9529c2e 100644 --- a/src/overlays/actors/ovl_En_GirlA/z_en_girla.c +++ b/src/overlays/actors/ovl_En_GirlA/z_en_girla.c @@ -185,7 +185,7 @@ void EnGirlA_Destroy(Actor* thisx, GlobalContext* globalCtx) { } s32 EnGirlA_CanBuyPotionRed(GlobalContext* globalCtx, EnGirlA* this) { - if (!Interface_HasEmptyBottle()) { + if (!Inventory_HasEmptyBottle()) { return CANBUY_RESULT_NEED_EMPTY_BOTTLE; } if (gSaveContext.save.playerData.rupees < globalCtx->msgCtx.unk1206C) { @@ -195,7 +195,7 @@ s32 EnGirlA_CanBuyPotionRed(GlobalContext* globalCtx, EnGirlA* this) { } s32 EnGirlA_CanBuyPotionGreen(GlobalContext* globalCtx, EnGirlA* this) { - if (!Interface_HasEmptyBottle()) { + if (!Inventory_HasEmptyBottle()) { return CANBUY_RESULT_NEED_EMPTY_BOTTLE; } if (gSaveContext.save.playerData.rupees < globalCtx->msgCtx.unk1206C) { @@ -208,7 +208,7 @@ s32 EnGirlA_CanBuyPotionBlue(GlobalContext* globalCtx, EnGirlA* this) { if (!(gSaveContext.save.weekEventReg[53] & 8)) { return CANBUY_RESULT_CANNOT_GET_NOW; } - if (!Interface_HasEmptyBottle()) { + if (!Inventory_HasEmptyBottle()) { return CANBUY_RESULT_NEED_EMPTY_BOTTLE; } if (!(gSaveContext.save.weekEventReg[53] & 0x10)) { @@ -240,7 +240,7 @@ s32 EnGirlA_CanBuyNuts(GlobalContext* globalCtx, EnGirlA* this) { if (gSaveContext.save.playerData.rupees < globalCtx->msgCtx.unk1206C) { return CANBUY_RESULT_NEED_RUPEES; } - if (func_80114978(ITEM_NUT) == ITEM_NONE) { + if (Item_CheckObtainability(ITEM_NUT) == ITEM_NONE) { return CANBUY_RESULT_SUCCESS_1; } return CANBUY_RESULT_SUCCESS_2; @@ -263,7 +263,7 @@ s32 EnGirlA_CanBuyStick(GlobalContext* globalCtx, EnGirlA* this) { if (gSaveContext.save.playerData.rupees < globalCtx->msgCtx.unk1206C) { return CANBUY_RESULT_NEED_RUPEES; } - if (func_80114978(ITEM_STICK) == ITEM_NONE) { + if (Item_CheckObtainability(ITEM_STICK) == ITEM_NONE) { return CANBUY_RESULT_SUCCESS_1; } return CANBUY_RESULT_SUCCESS_2; @@ -322,7 +322,7 @@ s32 EnGirlA_CanBuyBombchus(GlobalContext* globalCtx, EnGirlA* this) { if (gSaveContext.save.playerData.rupees < globalCtx->msgCtx.unk1206C) { return CANBUY_RESULT_NEED_RUPEES; } - if (func_80114978(ITEM_BOMBCHU) == ITEM_NONE) { + if (Item_CheckObtainability(ITEM_BOMBCHU) == ITEM_NONE) { return CANBUY_RESULT_SUCCESS_1; } return CANBUY_RESULT_SUCCESS_2; @@ -366,7 +366,7 @@ s32 EnGirlA_CanBuyShieldMirror(GlobalContext* globalCtx, EnGirlA* this) { } s32 EnGirlA_CanBuyFairy(GlobalContext* globalCtx, EnGirlA* this) { - if (!Interface_HasEmptyBottle()) { + if (!Inventory_HasEmptyBottle()) { return CANBUY_RESULT_NEED_EMPTY_BOTTLE; } if (gSaveContext.save.playerData.rupees < globalCtx->msgCtx.unk1206C) { @@ -398,12 +398,12 @@ void EnGirlA_BuyBottleItem(GlobalContext* globalCtx, EnGirlA* this) { Item_Give(globalCtx, ITEM_FAIRY); break; } - func_801159EC(-globalCtx->msgCtx.unk1206C); + Rupees_ChangeBy(-globalCtx->msgCtx.unk1206C); } void EnGirlA_BuyArrows(GlobalContext* globalCtx, EnGirlA* this) { - func_80115A14(ITEM_BOW, this->itemParams); - func_801159EC(-globalCtx->msgCtx.unk1206C); + Inventory_ChangeAmmo(ITEM_BOW, this->itemParams); + Rupees_ChangeBy(-globalCtx->msgCtx.unk1206C); } void EnGirlA_BuyNuts(GlobalContext* globalCtx, EnGirlA* this) { @@ -415,22 +415,22 @@ void EnGirlA_BuyNuts(GlobalContext* globalCtx, EnGirlA* this) { Item_Give(globalCtx, ITEM_NUTS_10); break; } - func_801159EC(-globalCtx->msgCtx.unk1206C); + Rupees_ChangeBy(-globalCtx->msgCtx.unk1206C); } void EnGirlA_BuyShieldHero(GlobalContext* globalCtx, EnGirlA* this) { Item_Give(globalCtx, ITEM_SHIELD_HERO); - func_801159EC(-globalCtx->msgCtx.unk1206C); + Rupees_ChangeBy(-globalCtx->msgCtx.unk1206C); } void EnGirlA_BuyStick(GlobalContext* globalCtx, EnGirlA* this) { Item_Give(globalCtx, ITEM_STICK); - func_801159EC(-globalCtx->msgCtx.unk1206C); + Rupees_ChangeBy(-globalCtx->msgCtx.unk1206C); } void EnGirlA_BuyMaskAllNight(GlobalContext* globalCtx, EnGirlA* this) { Item_Give(globalCtx, ITEM_MASK_ALL_NIGHT); - func_801159EC(-globalCtx->msgCtx.unk1206C); + Rupees_ChangeBy(-globalCtx->msgCtx.unk1206C); } void EnGirlA_BuyBombBag(GlobalContext* globalCtx, EnGirlA* this) { @@ -446,14 +446,14 @@ void EnGirlA_BuyBombBag(GlobalContext* globalCtx, EnGirlA* this) { Item_Give(globalCtx, ITEM_BOMB_BAG_40); break; } - func_801159EC(-globalCtx->msgCtx.unk1206C); + Rupees_ChangeBy(-globalCtx->msgCtx.unk1206C); } void EnGirlA_BuyBombchus(GlobalContext* globalCtx, EnGirlA* this) { if (this->itemParams == 10) { Item_Give(globalCtx, ITEM_BOMBCHUS_10); } - func_801159EC(-globalCtx->msgCtx.unk1206C); + Rupees_ChangeBy(-globalCtx->msgCtx.unk1206C); } void EnGirlA_BuyBombs(GlobalContext* globalCtx, EnGirlA* this) { @@ -471,12 +471,12 @@ void EnGirlA_BuyBombs(GlobalContext* globalCtx, EnGirlA* this) { Item_Give(globalCtx, ITEM_BOMBS_30); break; } - func_801159EC(-globalCtx->msgCtx.unk1206C); + Rupees_ChangeBy(-globalCtx->msgCtx.unk1206C); } void EnGirlA_BuyBottle(GlobalContext* globalCtx, EnGirlA* this) { Item_Give(globalCtx, ITEM_BOTTLE); - func_801159EC(-globalCtx->msgCtx.unk1206C); + Rupees_ChangeBy(-globalCtx->msgCtx.unk1206C); } void EnGirlA_BuySword(GlobalContext* globalCtx, EnGirlA* this) { @@ -494,17 +494,17 @@ void EnGirlA_BuySword(GlobalContext* globalCtx, EnGirlA* this) { Item_Give(globalCtx, ITEM_SWORD_GREAT_FAIRY); break; } - func_801159EC(-globalCtx->msgCtx.unk1206C); + Rupees_ChangeBy(-globalCtx->msgCtx.unk1206C); } void EnGirlA_BuyShieldMirror(GlobalContext* globalCtx, EnGirlA* this) { Item_Give(globalCtx, ITEM_SHIELD_MIRROR); - func_801159EC(-globalCtx->msgCtx.unk1206C); + Rupees_ChangeBy(-globalCtx->msgCtx.unk1206C); } // Fanfare is handled by ovl_en_ossan void EnGirlA_BuyFanfare(GlobalContext* globalCtx, EnGirlA* this) { - func_801159EC(-globalCtx->msgCtx.unk1206C); + Rupees_ChangeBy(-globalCtx->msgCtx.unk1206C); } void EnGirlA_DoNothing(EnGirlA* this, GlobalContext* globalCtx) { diff --git a/src/overlays/actors/ovl_En_Gk/z_en_gk.c b/src/overlays/actors/ovl_En_Gk/z_en_gk.c index 059f18c9c..22c34cf72 100644 --- a/src/overlays/actors/ovl_En_Gk/z_en_gk.c +++ b/src/overlays/actors/ovl_En_Gk/z_en_gk.c @@ -168,7 +168,7 @@ u16 func_80B50410(EnGk* this, GlobalContext* globalCtx) { if (player->transformation == PLAYER_FORM_GORON) { if (!(gSaveContext.save.weekEventReg[41] & 4)) { if (this->unk_31C == 0xE88) { - if (!(gSaveContext.save.weekEventReg[41] & 8) || Interface_HasEmptyBottle()) { + if (!(gSaveContext.save.weekEventReg[41] & 8) || Inventory_HasEmptyBottle()) { return 0xE89; } gSaveContext.save.weekEventReg[41] |= 4; @@ -179,7 +179,7 @@ u16 func_80B50410(EnGk* this, GlobalContext* globalCtx) { } if ((this->unk_31C == 0xE8D) || (this->unk_31C == 0xE98)) { - if (!(gSaveContext.save.weekEventReg[41] & 8) || Interface_HasEmptyBottle()) { + if (!(gSaveContext.save.weekEventReg[41] & 8) || Inventory_HasEmptyBottle()) { return 0xE89; } gSaveContext.save.weekEventReg[41] |= 4; @@ -727,7 +727,7 @@ void func_80B51B40(EnGk* this, GlobalContext* globalCtx) { globalCtx->sceneLoadFlag = 0x14; globalCtx->unk_1887F = 3; gSaveContext.nextTransition = 3; - Parameter_AddMagic(globalCtx, ((void)0, gSaveContext.unk_3F30) + + Interface_AddMagic(globalCtx, ((void)0, gSaveContext.unk_3F30) + (gSaveContext.save.playerData.doubleMagic * 0x30) + 0x30); } else { this->actionFunc = func_80B51760; diff --git a/src/overlays/actors/ovl_En_In/z_en_in.c b/src/overlays/actors/ovl_En_In/z_en_in.c index 758543f45..31bd34cc6 100644 --- a/src/overlays/actors/ovl_En_In/z_en_in.c +++ b/src/overlays/actors/ovl_En_In/z_en_in.c @@ -576,7 +576,7 @@ s32 func_808F4150(GlobalContext* globalCtx, EnIn* this, s32 arg2, MessageContext if (msgCtx->choiceIndex == 0) { func_8019F208(); if (gSaveContext.save.playerData.rupees >= globalCtx->msgCtx.unk1206C) { - func_801159EC(-globalCtx->msgCtx.unk1206C); + Rupees_ChangeBy(-globalCtx->msgCtx.unk1206C); if (!(gSaveContext.save.weekEventReg[57] & 1)) { func_808F4108(this, globalCtx, 0x3474); } else if (this->unk4AC & 8) { @@ -602,7 +602,7 @@ s32 func_808F4270(GlobalContext* globalCtx, EnIn* this, s32 arg2, MessageContext if (msgCtx->choiceIndex == 0) { func_8019F208(); if (gSaveContext.save.playerData.rupees >= fee) { - func_801159EC(-fee); + Rupees_ChangeBy(-fee); if (!(gSaveContext.save.weekEventReg[57] & 1)) { if (arg4 != 0) { func_800E8EA0(globalCtx, &this->actor, 0x3474); @@ -747,10 +747,10 @@ s32 func_808F4414(GlobalContext* globalCtx, EnIn* this, s32 arg2) { if (msgCtx->choiceIndex == 0) { func_8019F208(); if (gSaveContext.save.playerData.rupees >= globalCtx->msgCtx.unk1206C) { - if (Interface_HasEmptyBottle()) { + if (Inventory_HasEmptyBottle()) { this->actionFunc = func_808F3C40; Actor_PickUp(&this->actor, globalCtx, GI_MILK, 500.0f, 100.0f); - func_801159EC(-globalCtx->msgCtx.unk1206C); + Rupees_ChangeBy(-globalCtx->msgCtx.unk1206C); ret = true; } else { func_800E8EA0(globalCtx, &this->actor, 0x3469); @@ -893,7 +893,7 @@ s32 func_808F4414(GlobalContext* globalCtx, EnIn* this, s32 arg2) { break; case 0x347E: func_808F35D8(this, globalCtx); - if (Interface_HasEmptyBottle()) { + if (Inventory_HasEmptyBottle()) { this->actionFunc = func_808F3B40; Actor_PickUp(&this->actor, globalCtx, GI_MILK, 500.0f, 100.0f); ret = true; @@ -999,10 +999,10 @@ s32 func_808F4414(GlobalContext* globalCtx, EnIn* this, s32 arg2) { if (msgCtx->choiceIndex == 0) { func_8019F208(); if (gSaveContext.save.playerData.rupees >= globalCtx->msgCtx.unk1206C) { - if (Interface_HasEmptyBottle()) { + if (Inventory_HasEmptyBottle()) { this->actionFunc = func_808F3C40; Actor_PickUp(&this->actor, globalCtx, GI_MILK, 500.0f, 100.0f); - func_801159EC(-globalCtx->msgCtx.unk1206C); + Rupees_ChangeBy(-globalCtx->msgCtx.unk1206C); ret = true; } else { func_800E8EA0(globalCtx, &this->actor, 0x3469); @@ -1097,7 +1097,7 @@ s32 func_808F4414(GlobalContext* globalCtx, EnIn* this, s32 arg2) { break; case 0x34A1: func_808F35D8(this, globalCtx); - if (Interface_HasEmptyBottle()) { + if (Inventory_HasEmptyBottle()) { this->actionFunc = func_808F3B40; Actor_PickUp(&this->actor, globalCtx, GI_MILK, 500.0f, 100.0f); ret = true; diff --git a/src/overlays/actors/ovl_En_Jgame_Tsn/z_en_jgame_tsn.c b/src/overlays/actors/ovl_En_Jgame_Tsn/z_en_jgame_tsn.c index 104e2bc3c..478f05323 100644 --- a/src/overlays/actors/ovl_En_Jgame_Tsn/z_en_jgame_tsn.c +++ b/src/overlays/actors/ovl_En_Jgame_Tsn/z_en_jgame_tsn.c @@ -410,7 +410,7 @@ void func_80C14684(EnJgameTsn* this, GlobalContext* globalCtx) { if (gSaveContext.save.playerData.rupees >= 20) { Message_StartTextbox(globalCtx, 0x109E, &this->actor); this->unk_300 = 0x109E; - func_801159EC(-20); + Rupees_ChangeBy(-20); } else { Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, 2); Message_StartTextbox(globalCtx, 0x109D, &this->actor); diff --git a/src/overlays/actors/ovl_En_Kendo_Js/z_en_kendo_js.c b/src/overlays/actors/ovl_En_Kendo_Js/z_en_kendo_js.c index 92053374a..caf4fe389 100644 --- a/src/overlays/actors/ovl_En_Kendo_Js/z_en_kendo_js.c +++ b/src/overlays/actors/ovl_En_Kendo_Js/z_en_kendo_js.c @@ -227,7 +227,7 @@ void func_80B26758(EnKendoJs* this, GlobalContext* globalCtx) { this->unk_288 = 0x2718; } else { func_8019F208(); - func_801159EC(-globalCtx->msgCtx.unk1206C); + Rupees_ChangeBy(-globalCtx->msgCtx.unk1206C); Message_StartTextbox(globalCtx, 0x2719, &this->actor); this->unk_288 = 0x2719; } @@ -245,7 +245,7 @@ void func_80B26758(EnKendoJs* this, GlobalContext* globalCtx) { this->unk_288 = 0x2718; } else { func_8019F208(); - func_801159EC(-globalCtx->msgCtx.unk12070); + Rupees_ChangeBy(-globalCtx->msgCtx.unk12070); Message_StartTextbox(globalCtx, 0x273A, &this->actor); this->unk_288 = 0x273A; } diff --git a/src/overlays/actors/ovl_En_Kgy/z_en_kgy.c b/src/overlays/actors/ovl_En_Kgy/z_en_kgy.c index 176a556e5..0d1933bb6 100644 --- a/src/overlays/actors/ovl_En_Kgy/z_en_kgy.c +++ b/src/overlays/actors/ovl_En_Kgy/z_en_kgy.c @@ -629,7 +629,7 @@ void func_80B41E18(EnKgy* this, GlobalContext* globalCtx) { } else { func_8019F208(); func_80B40E74(this, globalCtx, 0xC42); - func_801159EC(-globalCtx->msgCtx.unk1206C); + Rupees_ChangeBy(-globalCtx->msgCtx.unk1206C); } break; @@ -719,7 +719,7 @@ void func_80B41E18(EnKgy* this, GlobalContext* globalCtx) { this->actor.textId = 0xC43; CUR_FORM_EQUIP(EQUIP_SLOT_B) = ITEM_NONE; SET_EQUIP_VALUE(EQUIP_SWORD, 0); - func_80112B40(globalCtx, 0); + Interface_LoadItemIconImpl(globalCtx, 0); func_80B40C74(globalCtx); break; @@ -752,7 +752,7 @@ void func_80B41E18(EnKgy* this, GlobalContext* globalCtx) { func_80B41368(this, globalCtx, 4); if (this->unk_29C & 0x10) { this->actor.textId = 0xC56; - func_801159EC(globalCtx->msgCtx.unk1206C); + Rupees_ChangeBy(globalCtx->msgCtx.unk1206C); } else { this->actor.textId = 0xC42; } diff --git a/src/overlays/actors/ovl_En_Kujiya/z_en_kujiya.c b/src/overlays/actors/ovl_En_Kujiya/z_en_kujiya.c index caf235b05..0b6c348c0 100644 --- a/src/overlays/actors/ovl_En_Kujiya/z_en_kujiya.c +++ b/src/overlays/actors/ovl_En_Kujiya/z_en_kujiya.c @@ -117,7 +117,7 @@ void EnKujiya_HandlePlayerChoice(EnKujiya* this, GlobalContext* globalCtx) { this->textId = 0x2B62; // Not enough Rupees } else { func_8019F208(); - func_801159EC(-10); + Rupees_ChangeBy(-10); Message_StartTextbox(globalCtx, 0x2B5F, &this->actor); this->textId = 0x2B5F; // Enter number } diff --git a/src/overlays/actors/ovl_En_Mm3/z_en_mm3.c b/src/overlays/actors/ovl_En_Mm3/z_en_mm3.c index 396a3f040..0a4fb551f 100644 --- a/src/overlays/actors/ovl_En_Mm3/z_en_mm3.c +++ b/src/overlays/actors/ovl_En_Mm3/z_en_mm3.c @@ -148,7 +148,7 @@ void func_80A6F3B4(EnMm3* this, GlobalContext* globalCtx) { func_8019F208(); Message_StartTextbox(globalCtx, 0x2790, &this->actor); this->unk_2B4 = 0x2790; - func_801159EC(-globalCtx->msgCtx.unk1206C); + Rupees_ChangeBy(-globalCtx->msgCtx.unk1206C); } else { play_sound(NA_SE_SY_ERROR); Message_StartTextbox(globalCtx, 0x279C, &this->actor); @@ -174,7 +174,7 @@ void func_80A6F3B4(EnMm3* this, GlobalContext* globalCtx) { func_8019F208(); Message_StartTextbox(globalCtx, 0x2790, &this->actor); this->unk_2B4 = 0x2790; - func_801159EC(-globalCtx->msgCtx.unk1206C); + Rupees_ChangeBy(-globalCtx->msgCtx.unk1206C); } else { play_sound(NA_SE_SY_ERROR); Message_StartTextbox(globalCtx, 0x279C, &this->actor); diff --git a/src/overlays/actors/ovl_En_Ms/z_en_ms.c b/src/overlays/actors/ovl_En_Ms/z_en_ms.c index 729e36d49..0c16e9b03 100644 --- a/src/overlays/actors/ovl_En_Ms/z_en_ms.c +++ b/src/overlays/actors/ovl_En_Ms/z_en_ms.c @@ -121,13 +121,13 @@ void EnMs_Talk(EnMs* this, GlobalContext* globalCtx) { if (gSaveContext.save.playerData.rupees < 10) { play_sound(NA_SE_SY_ERROR); func_80151938(globalCtx, 0x935); // "[...] You don't have enough Rupees." - } else if (AMMO(ITEM_MAGIC_BEANS) >= 20) { + } else if (AMMO(ITEM_BEAN) >= 20) { play_sound(NA_SE_SY_ERROR); func_80151938(globalCtx, 0x937); // "[...] You can't carry anymore." } else { func_8019F208(); Actor_PickUp(&this->actor, globalCtx, GI_MAGIC_BEANS, 90.0f, 10.0f); - func_801159EC(-10); + Rupees_ChangeBy(-10); this->actionFunc = EnMs_Sell; } break; diff --git a/src/overlays/actors/ovl_En_Mt_tag/z_en_mt_tag.c b/src/overlays/actors/ovl_En_Mt_tag/z_en_mt_tag.c index 6952f10c2..8dfdeaeb8 100644 --- a/src/overlays/actors/ovl_En_Mt_tag/z_en_mt_tag.c +++ b/src/overlays/actors/ovl_En_Mt_tag/z_en_mt_tag.c @@ -433,7 +433,7 @@ void EnMttag_PotentiallyRestartRace(EnMttag* this, GlobalContext* globalCtx) { gSaveContext.nextTransition = 2; func_801477B4(globalCtx); func_800B7298(globalCtx, &this->actor, 7); - Parameter_AddMagic(globalCtx, + Interface_AddMagic(globalCtx, ((void)0, gSaveContext.unk_3F30) + (gSaveContext.save.playerData.doubleMagic * 48) + 48); gSaveContext.eventInf[1] &= (u8)~1; diff --git a/src/overlays/actors/ovl_En_Scopenuts/z_en_scopenuts.c b/src/overlays/actors/ovl_En_Scopenuts/z_en_scopenuts.c index dc7715fa0..b266cc0b6 100644 --- a/src/overlays/actors/ovl_En_Scopenuts/z_en_scopenuts.c +++ b/src/overlays/actors/ovl_En_Scopenuts/z_en_scopenuts.c @@ -343,7 +343,7 @@ void func_80BCB6D0(EnScopenuts* this, GlobalContext* globalCtx) { func_8019F208(); globalCtx->msgCtx.msgMode = 0x43; globalCtx->msgCtx.unk12023 = 4; - func_801159EC(this->unk_358 * -1); + Rupees_ChangeBy(this->unk_358 * -1); this->actionFunc = func_80BCB90C; } break; diff --git a/src/overlays/actors/ovl_En_Shn/z_en_shn.c b/src/overlays/actors/ovl_En_Shn/z_en_shn.c index 92d4c7514..cf3352375 100644 --- a/src/overlays/actors/ovl_En_Shn/z_en_shn.c +++ b/src/overlays/actors/ovl_En_Shn/z_en_shn.c @@ -235,7 +235,7 @@ s32 func_80AE6704(EnShn* thisx, GlobalContext* globalCtx) { switch (this->unk_2C6) { case 0: - if (!CHECK_QUEST_ITEM(QUEST_UNK_19)) { + if (!CHECK_QUEST_ITEM(QUEST_PICTOBOX)) { this->unk_2C6 = 6; ret = 1; } else { @@ -250,7 +250,7 @@ s32 func_80AE6704(EnShn* thisx, GlobalContext* globalCtx) { if (func_8013A4C4(D_80AE7258[this->unk_2C6])) { this->unk_2C6 = 6; ret = 1; - REMOVE_QUEST_ITEM(QUEST_UNK_19); + REMOVE_QUEST_ITEM(QUEST_PICTOBOX); } else { this->unk_2C6++; } diff --git a/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c b/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c index e69c7e5ab..9cceab788 100644 --- a/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c +++ b/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c @@ -268,7 +268,7 @@ void func_809C6A04(EnSyatekiMan* this, GlobalContext* globalCtx) { this->unk_26A = 3; } else { func_8019F208(); - func_801159EC(-20); + Rupees_ChangeBy(-20); gSaveContext.save.weekEventReg[63] |= 1; gSaveContext.save.weekEventReg[63] &= (u8)~2; globalCtx->msgCtx.msgMode = 0x43; @@ -547,7 +547,7 @@ void func_809C7380(EnSyatekiMan* this, GlobalContext* globalCtx) { this->unk_26A = 3; } else { func_8019F208(); - func_801159EC(-20); + Rupees_ChangeBy(-20); this->unk_26A = 2; if (!(this->unk_282 & 0x10)) { this->unk_282 |= 0x10; diff --git a/src/overlays/actors/ovl_En_Tab/z_en_tab.c b/src/overlays/actors/ovl_En_Tab/z_en_tab.c index 48a1bc064..8ff08e32a 100644 --- a/src/overlays/actors/ovl_En_Tab/z_en_tab.c +++ b/src/overlays/actors/ovl_En_Tab/z_en_tab.c @@ -301,7 +301,7 @@ s32 func_80BE0C04(EnTab* this, Actor* actor, f32 arg2) { } s32 func_80BE0D38(EnTab* this, GlobalContext* globalCtx) { - return Interface_HasEmptyBottle(); + return Inventory_HasEmptyBottle(); } s32 func_80BE0D60(EnTab* this, GlobalContext* globalCtx) { diff --git a/src/overlays/actors/ovl_En_Talk_Gibud/z_en_talk_gibud.c b/src/overlays/actors/ovl_En_Talk_Gibud/z_en_talk_gibud.c index a2324aaf6..47d78ae29 100644 --- a/src/overlays/actors/ovl_En_Talk_Gibud/z_en_talk_gibud.c +++ b/src/overlays/actors/ovl_En_Talk_Gibud/z_en_talk_gibud.c @@ -200,7 +200,7 @@ static CollisionCheckInfoInit2 sColChkInfoInit = { 8, 0, 0, 0, MASS_HEAVY }; static EnTalkGibudRequestedItem sRequestedItemTable[] = { { PLAYER_AP_BOTTLE_POTION_BLUE, ITEM_POTION_BLUE, 1, true }, - { PLAYER_AP_MAGIC_BEANS, ITEM_MAGIC_BEANS, 5, false }, + { PLAYER_AP_MAGIC_BEANS, ITEM_BEAN, 5, false }, { PLAYER_AP_BOTTLE_SPRING_WATER, ITEM_SPRING_WATER, 1, true }, { PLAYER_AP_BOTTLE_FISH, ITEM_FISH, 1, true }, { PLAYER_AP_BOTTLE_BUG, ITEM_BUG, 1, true }, @@ -713,7 +713,7 @@ s32 EnTalkGibud_PresentedItemMatchesRequest(EnTalkGibud* this, GlobalContext* gl return EN_TALK_GIBUD_REQUESTED_ITEM_NOT_ENOUGH_AMMO; } } - if (Interface_HasItemInBottle(requestedItem->item)) { + if (Inventory_HasItemInBottle(requestedItem->item)) { return EN_TALK_GIBUD_REQUESTED_ITEM_MET; } } @@ -819,7 +819,7 @@ void EnTalkGibud_Talk(EnTalkGibud* this, GlobalContext* globalCtx) { // Remove the requested item/amount from the player's inventory requestedItem = &sRequestedItemTable[this->requestedItemIndex]; if (!requestedItem->isBottledItem) { - func_80115A14(requestedItem->item, -requestedItem->amount); + Inventory_ChangeAmmo(requestedItem->item, -requestedItem->amount); } else { func_80123D50(globalCtx, player, ITEM_BOTTLE, PLAYER_AP_BOTTLE); } diff --git a/src/overlays/actors/ovl_En_Thiefbird/z_en_thiefbird.c b/src/overlays/actors/ovl_En_Thiefbird/z_en_thiefbird.c index 5a89347e7..cfb1f5180 100644 --- a/src/overlays/actors/ovl_En_Thiefbird/z_en_thiefbird.c +++ b/src/overlays/actors/ovl_En_Thiefbird/z_en_thiefbird.c @@ -238,7 +238,7 @@ s32 func_80C10B0C(EnThiefbird* this, GlobalContext* globalCtx) { } if (isItemFound) { - func_801149A0(itemId2, slotId); + Inventory_DeleteItem(itemId2, slotId); this->unk_3E8 = object_thiefbird_DL_0033B0; if (Message_GetState(&globalCtx->msgCtx) == 0) { Message_StartTextbox(globalCtx, 0xF4, NULL); @@ -255,7 +255,7 @@ s32 func_80C10B0C(EnThiefbird* this, GlobalContext* globalCtx) { itemId1 = phi_a3 + (ITEM_SWORD_KOKIRI - 1); if (phi_a3 == 4) { - func_801149A0(ITEM_SWORD_GREAT_FAIRY, SLOT_SWORD_GREAT_FAIRY); + Inventory_DeleteItem(ITEM_SWORD_GREAT_FAIRY, SLOT_SWORD_GREAT_FAIRY); this->unk_3E8 = object_thiefbird_DL_003D58; itemId1 = ITEM_SWORD_GREAT_FAIRY; } else { @@ -404,7 +404,7 @@ s32 func_80C10E98(GlobalContext* globalCtx) { AMMO(ITEM_BOMB) -= spB0 * 5; AMMO(ITEM_BOW) -= spAC * 10; - func_801159EC(-((phi_s0_2 * 50) + (spA0 * 20) + (phi_s2 * 5) + spA8)); + Rupees_ChangeBy(-((phi_s0_2 * 50) + (spA0 * 20) + (phi_s2 * 5) + spA8)); return true; } diff --git a/src/overlays/actors/ovl_En_Tk/z_en_tk.c b/src/overlays/actors/ovl_En_Tk/z_en_tk.c index 976a5ac31..9f9bed14c 100644 --- a/src/overlays/actors/ovl_En_Tk/z_en_tk.c +++ b/src/overlays/actors/ovl_En_Tk/z_en_tk.c @@ -593,7 +593,7 @@ void func_80AED610(EnTk* this, GlobalContext* globalCtx) { break; case 0x1413: - func_801159EC(30); + Rupees_ChangeBy(30); gSaveContext.save.weekEventReg[60] |= 2; func_80151938(globalCtx, 0x13FF); break; diff --git a/src/overlays/actors/ovl_En_Trt/z_en_trt.c b/src/overlays/actors/ovl_En_Trt/z_en_trt.c index dde803708..68c685777 100644 --- a/src/overlays/actors/ovl_En_Trt/z_en_trt.c +++ b/src/overlays/actors/ovl_En_Trt/z_en_trt.c @@ -387,7 +387,7 @@ void EnTrt_Goodbye(EnTrt* this, GlobalContext* globalCtx) { void EnTrt_SetupTryToGiveRedPotion(EnTrt* this, GlobalContext* globalCtx) { if (Message_GetState(&globalCtx->msgCtx) == 5 && Message_ShouldAdvance(globalCtx)) { if (this->textId == 0x88F) { - if (Interface_HasEmptyBottle() || !(gSaveContext.save.weekEventReg[12] & 0x10)) { + if (Inventory_HasEmptyBottle() || !(gSaveContext.save.weekEventReg[12] & 0x10)) { if (this->cutsceneState == ENTRT_CUTSCENESTATE_PLAYING) { ActorCutscene_Stop(this->cutscene); this->cutsceneState = ENTRT_CUTSCENESTATE_STOPPED; @@ -408,7 +408,7 @@ void EnTrt_SetupTryToGiveRedPotion(EnTrt* this, GlobalContext* globalCtx) { EnTrt_SetupStartShopping(globalCtx, this, 0); } else if (gSaveContext.save.weekEventReg[84] & 0x40) { this->textId = 0x83B; - if (Interface_HasItemInBottle(ITEM_POTION_RED)) { + if (Inventory_HasItemInBottle(ITEM_POTION_RED)) { EnTrt_SetupStartShopping(globalCtx, this, false); } else { this->actionFunc = EnTrt_TryToGiveRedPotion; @@ -720,7 +720,7 @@ void EnTrt_SelectItem(EnTrt* this, GlobalContext* globalCtx) { } } } else if (talkState == 5 && Message_ShouldAdvance(globalCtx)) { - if (!Interface_HasEmptyBottle()) { + if (!Inventory_HasEmptyBottle()) { play_sound(NA_SE_SY_ERROR); EnTrt_SetupCannotBuy(globalCtx, this, 0x846); } else { @@ -931,7 +931,7 @@ void EnTrt_TryToGiveRedPotionAfterSurprised(EnTrt* this, GlobalContext* globalCt this->blinkFunc = EnTrt_Blink; if (talkState == 6 && Message_ShouldAdvance(globalCtx)) { - if (Interface_HasEmptyBottle() || !(gSaveContext.save.weekEventReg[12] & 0x10)) { + if (Inventory_HasEmptyBottle() || !(gSaveContext.save.weekEventReg[12] & 0x10)) { if (this->cutsceneState == ENTRT_CUTSCENESTATE_PLAYING) { ActorCutscene_Stop(this->cutscene); this->cutsceneState = ENTRT_CUTSCENESTATE_STOPPED; @@ -950,7 +950,7 @@ void EnTrt_TryToGiveRedPotionAfterSurprised(EnTrt* this, GlobalContext* globalCt void EnTrt_TryToGiveRedPotion(EnTrt* this, GlobalContext* globalCtx) { if (Message_GetState(&globalCtx->msgCtx) == 5 && Message_ShouldAdvance(globalCtx)) { if (this->textId == 0x83C) { - if (Interface_HasEmptyBottle()) { + if (Inventory_HasEmptyBottle()) { if (this->cutsceneState == ENTRT_CUTSCENESTATE_PLAYING) { ActorCutscene_Stop(this->cutscene); this->cutsceneState = ENTRT_CUTSCENESTATE_STOPPED; diff --git a/src/overlays/actors/ovl_En_Trt2/z_en_trt2.c b/src/overlays/actors/ovl_En_Trt2/z_en_trt2.c index 0af7ac4bb..8ed15ca3d 100644 --- a/src/overlays/actors/ovl_En_Trt2/z_en_trt2.c +++ b/src/overlays/actors/ovl_En_Trt2/z_en_trt2.c @@ -348,7 +348,7 @@ void func_80AD3DA4(EnTrt2* this, GlobalContext* globalCtx) { this->unk_3B2 = 11; return; } else if (this->unk_3A8 == 0x88F) { - if (Interface_HasEmptyBottle()) { + if (Inventory_HasEmptyBottle()) { this->unk_3B2 = 11; } else { this->unk_3B2 = 10; @@ -360,7 +360,7 @@ void func_80AD3DA4(EnTrt2* this, GlobalContext* globalCtx) { void func_80AD3E34(EnTrt2* this, GlobalContext* globalCtx) { if ((Message_GetState(&globalCtx->msgCtx) == 5) && Message_ShouldAdvance(globalCtx)) { - if (Interface_HasEmptyBottle()) { + if (Inventory_HasEmptyBottle()) { globalCtx->msgCtx.msgMode = 0x43; globalCtx->msgCtx.unk12023 = 4; this->unk_3B2 = 12; @@ -378,7 +378,7 @@ void func_80AD3EF0(EnTrt2* this, GlobalContext* globalCtx) { if (temp_v0 == 6) { if (Message_ShouldAdvance(globalCtx)) { - if ((Interface_HasEmptyBottle() && !(gSaveContext.save.weekEventReg[84] & 0x40)) || + if ((Inventory_HasEmptyBottle() && !(gSaveContext.save.weekEventReg[84] & 0x40)) || !(gSaveContext.save.weekEventReg[12] & 0x10)) { this->unk_3B2 = 12; } else { diff --git a/src/overlays/actors/ovl_En_Tsn/z_en_tsn.c b/src/overlays/actors/ovl_En_Tsn/z_en_tsn.c index e999e5c5c..b8b80d25e 100644 --- a/src/overlays/actors/ovl_En_Tsn/z_en_tsn.c +++ b/src/overlays/actors/ovl_En_Tsn/z_en_tsn.c @@ -323,7 +323,7 @@ void func_80AE04FC(EnTsn* this, GlobalContext* globalCtx) { func_801477B4(globalCtx); this->actionFunc = func_80AE0704; if (sp24 == 19) { - if (CHECK_QUEST_ITEM(QUEST_UNK_19)) { + if (CHECK_QUEST_ITEM(QUEST_PICTOBOX)) { if (func_8013A4C4(1 | 8)) { player->actor.textId = 0x107B; return; @@ -424,7 +424,7 @@ void func_80AE0704(EnTsn* this, GlobalContext* globalCtx) { break; case 0x107C: - if (Interface_HasEmptyBottle()) { + if (Inventory_HasEmptyBottle()) { gSaveContext.save.weekEventReg[26] |= 8; func_801477B4(globalCtx); this->actionFunc = func_80AE0460; @@ -433,7 +433,7 @@ void func_80AE0704(EnTsn* this, GlobalContext* globalCtx) { this->actor.focus.pos = this->actor.world.pos; ActorCutscene_Stop(this->actor.cutscene); this->actor.flags &= ~ACTOR_FLAG_100; - REMOVE_QUEST_ITEM(QUEST_UNK_19); + REMOVE_QUEST_ITEM(QUEST_PICTOBOX); } else { func_80151938(globalCtx, 0x10A8); } diff --git a/src/overlays/actors/ovl_En_Zot/z_en_zot.c b/src/overlays/actors/ovl_En_Zot/z_en_zot.c index bfab9fcf6..59ee515d2 100644 --- a/src/overlays/actors/ovl_En_Zot/z_en_zot.c +++ b/src/overlays/actors/ovl_En_Zot/z_en_zot.c @@ -461,7 +461,7 @@ void func_80B973BC(EnZot* this, GlobalContext* globalCtx) { break; case 0x126F: - func_801159EC(90); + Rupees_ChangeBy(90); func_80151938(globalCtx, 0x1270); break; @@ -470,7 +470,7 @@ void func_80B973BC(EnZot* this, GlobalContext* globalCtx) { func_80151938(globalCtx, 0x1277); } else { func_80151938(globalCtx, 0x1278); - func_801159EC(-10); + Rupees_ChangeBy(-10); } break; @@ -956,13 +956,13 @@ void func_80B985EC(EnZot* this, GlobalContext* globalCtx) { itemActionParam = func_80123810(globalCtx); if (itemActionParam > PLAYER_AP_NONE) { func_801477B4(globalCtx); - if ((itemActionParam == PLAYER_AP_PICTO_BOX) && CHECK_QUEST_ITEM(QUEST_UNK_19) && func_8013A4C4(4)) { + if ((itemActionParam == PLAYER_AP_PICTO_BOX) && CHECK_QUEST_ITEM(QUEST_PICTOBOX) && func_8013A4C4(4)) { if (func_8013A4C4(5) && func_8013A4C4(6)) { player->actor.textId = 0x12AE; } else { player->actor.textId = 0x12AC; } - REMOVE_QUEST_ITEM(QUEST_UNK_19); + REMOVE_QUEST_ITEM(QUEST_PICTOBOX); } else { player->actor.textId = 0x12AB; } diff --git a/tools/disasm/files.txt b/tools/disasm/files.txt index cd1bbac2f..7cb0f2be1 100644 --- a/tools/disasm/files.txt +++ b/tools/disasm/files.txt @@ -544,7 +544,7 @@ 0x801BF550 : "z_map_exp", 0x801BF5C0 : "z_msgevent", 0x801BF6C0 : "z_parameter", - 0x801BFDD0 : "z_player_lib", + 0x801BFDA0 : "z_player_lib", 0x801C0EC0 : "z_quake", 0x801C0EF0 : "z_rcp", 0x801C1D10 : "z_room", diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index 6a7b92683..b2f5caebc 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -2109,32 +2109,32 @@ 0x801129E4:("func_801129E4",), 0x80112AF4:("func_80112AF4",), 0x80112AFC:("func_80112AFC",), - 0x80112B40:("func_80112B40",), - 0x80112BE4:("func_80112BE4",), + 0x80112B40:("Interface_LoadItemIconImpl",), + 0x80112BE4:("Interface_LoadItemIcon",), 0x80112C0C:("func_80112C0C",), 0x80112E80:("Item_Give",), - 0x801143CC:("func_801143CC",), - 0x80114978:("func_80114978",), - 0x801149A0:("func_801149A0",), - 0x80114A9C:("func_80114A9C",), - 0x80114B84:("func_80114B84",), - 0x80114CA0:("func_80114CA0",), - 0x80114E90:("Interface_HasEmptyBottle",), - 0x80114F2C:("Interface_HasItemInBottle",), - 0x80114FD0:("func_80114FD0",), - 0x80115130:("func_80115130",), - 0x801152B8:("func_801152B8",), + 0x801143CC:("Item_CheckObtainabilityImpl",), + 0x80114978:("Item_CheckObtainability",), + 0x801149A0:("Inventory_DeleteItem",), + 0x80114A9C:("Inventory_UnequipItem",), + 0x80114B84:("Inventory_ReplaceItem",), + 0x80114CA0:("Inventory_UpdateDeitySwordEquip",), + 0x80114E90:("Inventory_HasEmptyBottle",), + 0x80114F2C:("Inventory_HasItemInBottle",), + 0x80114FD0:("Inventory_UpdateBottleItem",), + 0x80115130:("Inventory_ConsumeFairy",), + 0x801152B8:("Inventory_UpdateItem",), 0x801153C8:("func_801153C8",), 0x80115428:("func_80115428",), 0x8011552C:("func_8011552C",), 0x801155B4:("func_801155B4",), 0x80115764:("func_80115764",), 0x80115844:("func_80115844",), - 0x80115908:("func_80115908",), - 0x801159C0:("func_801159c0",), - 0x801159EC:("func_801159EC",), - 0x80115A14:("func_80115A14",), - 0x80115D14:("Parameter_AddMagic",), + 0x80115908:("Health_ChangeBy",), + 0x801159C0:("Health_GiveHearts",), + 0x801159EC:("Rupees_ChangeBy",), + 0x80115A14:("Inventory_ChangeAmmo",), + 0x80115D14:("Interface_AddMagic",), 0x80115D5C:("func_80115D5C",), 0x80115DB4:("func_80115DB4",), 0x80116088:("func_80116088",), diff --git a/tools/disasm/variables.txt b/tools/disasm/variables.txt index c96b82408..24720a884 100644 --- a/tools/disasm/variables.txt +++ b/tools/disasm/variables.txt @@ -1062,65 +1062,51 @@ 0x801BF5B0:("D_801BF5B0","UNK_TYPE2","",0x2), 0x801BF5C0:("D_801BF5C0","UNK_PTR","",0x4), 0x801BF68C:("D_801BF68C","UNK_TYPE1","",0x1), - 0x801BF6C0:("D_801BF6C0","UNK_TYPE1","",0x1), - 0x801BF79E:("D_801BF79E","UNK_TYPE1","",0x1), + 0x801BF6C0:("sRestrictionFlags","RestrictionFlags","[113]",0x1c4), 0x801BF884:("D_801BF884","UNK_TYPE2","",0x2), 0x801BF888:("D_801BF888","UNK_TYPE2","",0x2), - 0x801BF88C:("D_801BF88C","UNK_TYPE2","",0x2), - 0x801BF890:("D_801BF890","UNK_TYPE2","",0x2), - 0x801BF898:("D_801BF898","UNK_TYPE2","",0x2), - 0x801BF89C:("D_801BF89C","UNK_TYPE2","",0x2), - 0x801BF8A0:("D_801BF8A0","UNK_TYPE2","",0x2), - 0x801BF8A4:("D_801BF8A4","UNK_TYPE2","",0x2), - 0x801BF8A8:("D_801BF8A8","UNK_TYPE2","",0x2), + 0x801BF88C:("sHBAScoreTier","UNK_TYPE2","",0x2), + 0x801BF890:("sMinigameScoreDigits","UNK_TYPE2","",0x2), + 0x801BF898:("sCUpInvisible","UNK_TYPE2","",0x2), + 0x801BF89C:("sCUpTimer","UNK_TYPE2","",0x2), + 0x801BF8A0:("sMagicBarOutlinePrimRed","UNK_TYPE2","",0x2), + 0x801BF8A4:("sMagicBarOutlinePrimGreen","UNK_TYPE2","",0x2), + 0x801BF8A8:("sMagicBarOutlinePrimBlue","UNK_TYPE2","",0x2), 0x801BF8AC:("D_801BF8AC","UNK_TYPE2","",0x2), 0x801BF8B0:("D_801BF8B0","UNK_TYPE2","",0x2), 0x801BF8DC:("D_801BF8DC","UNK_TYPE2","",0x2), 0x801BF8E0:("D_801BF8E0","UNK_TYPE2","",0x2), 0x801BF8E4:("D_801BF8E4","UNK_TYPE2","",0x2), 0x801BF8E8:("D_801BF8E8","UNK_TYPE4","",0x4), - 0x801BF8F0:("D_801BF8F0","UNK_TYPE4","",0x4), - 0x801BF8F4:("D_801BF8F4","UNK_TYPE4","",0x4), - 0x801BF8F8:("D_801BF8F8","UNK_TYPE4","",0x4), - 0x801BF8FC:("D_801BF8FC","UNK_TYPE4","",0x4), - 0x801BF930:("D_801BF930","UNK_TYPE4","",0x4), - 0x801BF934:("D_801BF934","UNK_TYPE4","",0x4), - 0x801BF968:("D_801BF968","UNK_TYPE1","",0x1), - 0x801BF96A:("D_801BF96A","UNK_TYPE1","",0x1), - 0x801BF96C:("D_801BF96C","UNK_TYPE1","",0x1), - 0x801BF96E:("D_801BF96E","UNK_TYPE1","",0x1), - 0x801BF970:("D_801BF970","UNK_TYPE2","",0x2), - 0x801BF972:("D_801BF972","UNK_TYPE1","",0x1), - 0x801BF974:("D_801BF974","UNK_TYPE2","",0x2), - 0x801BF978:("D_801BF978","UNK_TYPE2","",0x2), - 0x801BF97C:("D_801BF97C","UNK_TYPE2","",0x2), + 0x801BF8F0:("D_801BF8F0","u64","",0x8), + 0x801BF8F8:("D_801BF8F8","u64","[7]",0x38), + 0x801BF930:("D_801BF930","u64","[7]",0x38), + 0x801BF968:("D_801BF968","UNK_TYPE4","",0x4), + 0x801BF96C:("D_801BF96C","UNK_TYPE4","",0x4), + 0x801BF970:("D_801BF970","UNK_TYPE4","",0x4), + 0x801BF974:("D_801BF974","UNK_TYPE4","",0x4), + 0x801BF978:("D_801BF978","UNK_TYPE4","",0x4), + 0x801BF97C:("D_801BF97C","UNK_TYPE4","",0x4), 0x801BF980:("D_801BF980","UNK_TYPE4","",0x4), - 0x801BF988:("D_801BF988","UNK_TYPE1","",0x1), - 0x801BF998:("D_801BF998","UNK_TYPE1","",0x1), + 0x801BF988:("D_801BF988","Gfx","[5]",0x28), 0x801BF9B0:("D_801BF9B0","UNK_TYPE2","",0x2), 0x801BF9B4:("D_801BF9B4","UNK_TYPE1","",0x1), 0x801BF9BC:("D_801BF9BC","UNK_TYPE1","",0x1), 0x801BF9C4:("D_801BF9C4","UNK_TYPE1","",0x1), 0x801BF9C8:("D_801BF9C8","UNK_TYPE1","",0x1), 0x801BF9CC:("D_801BF9CC","UNK_TYPE1","",0x1), - 0x801BF9D4:("D_801BF9D4","UNK_TYPE2","",0x2), - 0x801BF9D6:("D_801BF9D6","UNK_TYPE2","",0x2), - 0x801BF9D8:("D_801BF9D8","UNK_TYPE2","",0x2), - 0x801BF9DA:("D_801BF9DA","UNK_TYPE2","",0x2), - 0x801BF9DC:("D_801BF9DC","UNK_TYPE2","",0x2), - 0x801BF9DE:("D_801BF9DE","UNK_TYPE2","",0x2), - 0x801BF9E0:("D_801BF9E0","UNK_TYPE2","",0x2), - 0x801BF9E2:("D_801BF9E2","UNK_TYPE2","",0x2), - 0x801BF9E4:("D_801BF9E4","UNK_TYPE2","",0x2), - 0x801BF9E6:("D_801BF9E6","UNK_TYPE2","",0x2), - 0x801BF9E8:("D_801BF9E8","UNK_TYPE2","",0x2), - 0x801BF9EA:("D_801BF9EA","UNK_TYPE2","",0x2), - 0x801BF9EC:("D_801BF9EC","UNK_TYPE2","",0x2), - 0x801BF9F0:("D_801BF9F0","UNK_TYPE2","",0x2), - 0x801BF9F4:("D_801BF9F4","UNK_TYPE2","",0x2), - 0x801BF9F8:("D_801BF9F8","UNK_TYPE2","",0x2), - 0x801BF9FC:("D_801BF9FC","UNK_TYPE2","",0x2), - 0x801BFA00:("D_801BFA00","UNK_TYPE2","",0x2), + 0x801BF9D4:("D_801BF9D4","UNK_TYPE4","",0x4), + 0x801BF9D8:("D_801BF9D8","UNK_TYPE4","",0x4), + 0x801BF9DC:("D_801BF9DC","UNK_TYPE4","",0x4), + 0x801BF9E0:("D_801BF9E0","UNK_TYPE4","",0x4), + 0x801BF9E4:("D_801BF9E4","UNK_TYPE4","",0x4), + 0x801BF9E8:("D_801BF9E8","UNK_TYPE4","",0x4), + 0x801BF9EC:("sFinalHoursClockDigitsRed","UNK_TYPE4","",0x4), + 0x801BF9F0:("sFinalHoursClockFrameEnvRed","UNK_TYPE2","",0x2), + 0x801BF9F4:("sFinalHoursClockFrameEnvGreen","UNK_TYPE2","",0x2), + 0x801BF9F8:("sFinalHoursClockFrameEnvBlue","UNK_TYPE2","",0x2), + 0x801BF9FC:("sFinalHoursClockColorTimer","UNK_TYPE2","",0x2), + 0x801BFA00:("sFinalHoursClockColorTargetIndex","UNK_TYPE2","",0x2), 0x801BFA04:("D_801BFA04","UNK_TYPE2","",0x2), 0x801BFA1C:("D_801BFA1C","UNK_TYPE2","",0x2), 0x801BFA34:("D_801BFA34","UNK_TYPE2","",0x2), @@ -1128,16 +1114,14 @@ 0x801BFA64:("D_801BFA64","UNK_TYPE2","",0x2), 0x801BFA74:("D_801BFA74","UNK_TYPE2","",0x2), 0x801BFA84:("D_801BFA84","UNK_TYPE4","",0x4), - 0x801BFAB0:("D_801BFAB0","UNK_TYPE1","",0x1), - 0x801BFAB8:("D_801BFAB8","UNK_TYPE1","",0x1), - 0x801BFAC4:("D_801BFAC4","UNK_TYPE1","",0x1), - 0x801BFACC:("D_801BFACC","UNK_TYPE1","",0x1), - 0x801BFAD4:("D_801BFAD4","UNK_TYPE1","",0x1), - 0x801BFAF4:("D_801BFAF4","UNK_TYPE2","",0x2), - 0x801BFAF6:("D_801BFAF6","UNK_TYPE2","",0x2), - 0x801BFAF8:("D_801BFAF8","UNK_TYPE2","",0x2), - 0x801BFAFA:("D_801BFAFA","UNK_TYPE2","",0x2), - 0x801BFAFC:("D_801BFAFC","UNK_TYPE1","",0x1), + 0x801BFAB0:("sDoActionTextures","UNK_TYPE1","",0x1), + 0x801BFAB8:("magicBorderColors","UNK_TYPE1","",0x1), + 0x801BFAC4:("magicBorderIndices","UNK_TYPE1","",0x1), + 0x801BFACC:("magicBorderColorTimerIndex","UNK_TYPE1","",0x1), + 0x801BFAD4:("cUpLabelTextures","UNK_TYPE1","",0x1), + 0x801BFAF4:("D_801BFAF4","UNK_TYPE4","",0x4), + 0x801BFAF8:("D_801BFAF8","UNK_TYPE4","",0x4), + 0x801BFAFC:("D_801BFAFC","UNK_TYPE4","",0x4), 0x801BFB04:("D_801BFB04","UNK_TYPE1","",0x1), 0x801BFB0C:("D_801BFB0C","UNK_TYPE1","",0x1), 0x801BFB14:("D_801BFB14","UNK_TYPE1","",0x1), @@ -1169,27 +1153,19 @@ 0x801BFC14:("D_801BFC14","UNK_TYPE1","",0x1), 0x801BFC40:("D_801BFC40","UNK_TYPE1","",0x1), 0x801BFC50:("D_801BFC50","UNK_TYPE2","",0x2), - 0x801BFC60:("D_801BFC60","UNK_TYPE2","",0x2), - 0x801BFC62:("D_801BFC62","UNK_TYPE2","",0x2), - 0x801BFC64:("D_801BFC64","UNK_TYPE2","",0x2), - 0x801BFC6C:("D_801BFC6C","UNK_TYPE2","",0x2), + 0x801BFC60:("D_801BFC60","s16","[6]",0xC), + 0x801BFC6C:("D_801BFC6C","UNK_TYPE4","",0x4), 0x801BFC7C:("D_801BFC7C","UNK_TYPE2","",0x2), 0x801BFC8C:("D_801BFC8C","UNK_TYPE1","",0x1), 0x801BFC98:("D_801BFC98","UNK_TYPE2","",0x2), 0x801BFCA8:("D_801BFCA8","UNK_TYPE2","",0x2), 0x801BFCB8:("D_801BFCB8","UNK_TYPE1","",0x1), 0x801BFCC4:("D_801BFCC4","UNK_TYPE4","",0x4), - 0x801BFCE4:("D_801BFCE4","UNK_TYPE2","",0x2), - 0x801BFCE8:("D_801BFCE8","UNK_TYPE2","",0x2), - 0x801BFCEA:("D_801BFCEA","UNK_TYPE2","",0x2), - 0x801BFCEC:("D_801BFCEC","UNK_TYPE2","",0x2), - 0x801BFCEE:("D_801BFCEE","UNK_TYPE2","",0x2), - 0x801BFCF0:("D_801BFCF0","UNK_TYPE2","",0x2), - 0x801BFCF2:("D_801BFCF2","UNK_TYPE2","",0x2), - 0x801BFCF4:("D_801BFCF4","UNK_TYPE2","",0x2), - 0x801BFCF8:("D_801BFCF8","UNK_TYPE2","",0x2), - 0x801BFCFC:("D_801BFCFC","UNK_TYPE2","",0x2), - 0x801BFD0C:("D_801BFD0C","UNK_TYPE2","",0x2), + 0x801BFCE4:("D_801BFCE4","UNK_TYPE4","",0x4), + 0x801BFCE8:("D_801BFCE8","u16","[8]",0x10), + 0x801BFCF8:("D_801BFCF8","UNK_TYPE4","",0x4), + 0x801BFCFC:("D_801BFCFC","UNK_TYPE4","",0x4), + 0x801BFD0C:("D_801BFD0C","UNK_TYPE4","",0x4), 0x801BFD1C:("D_801BFD1C","UNK_TYPE1","",0x1), 0x801BFD24:("D_801BFD24","UNK_TYPE1","",0x1), 0x801BFD2C:("D_801BFD2C","UNK_TYPE1","",0x1), @@ -1199,9 +1175,9 @@ 0x801BFD6C:("D_801BFD6C","UNK_TYPE2","",0x2), 0x801BFD84:("D_801BFD84","UNK_TYPE1","",0x1), 0x801BFD8C:("D_801BFD8C","UNK_TYPE1","",0x1), - 0x801BFD94:("D_801BFD94","UNK_TYPE1","",0x1), - 0x801BFD98:("D_801BFD98","UNK_TYPE2","",0x2), - 0x801BFD9E:("D_801BFD9E","UNK_TYPE1","",0x1), + 0x801BFD94:("D_801BFD94","UNK_TYPE4","",0x4), + 0x801BFD98:("D_801BFD98","UNK_TYPE4","[2]",0x8), + 0x801BFDA0:("D_801BFDA0","s16","[24]",0x30), 0x801BFDD0:("D_801BFDD0","UNK_TYPE1","",0x1), 0x801BFDE8:("D_801BFDE8","UNK_TYPE1","",0x1), 0x801BFE00:("D_801BFE00","UNK_TYPE1","",0x1), diff --git a/tools/namefixer.py b/tools/namefixer.py index 08621f709..177546726 100755 --- a/tools/namefixer.py +++ b/tools/namefixer.py @@ -448,8 +448,8 @@ wordReplace = { "func_8013BC6C": "SubS_ChangeAnimationByInfoS", "func_8013E1C8": "SubS_ChangeAnimationBySpeedInfo", "func_8013D9C8": "SubS_FillLimbRotTables", - "func_80114E90": "Interface_HasEmptyBottle", - "func_80114F2C": "Interface_HasItemInBottle", + "func_80114E90": "Inventory_HasEmptyBottle", + "func_80114F2C": "Inventory_HasItemInBottle", "func_80123C90": "Player_SetEquipmentData", "Quake2_ClearType": "Distortion_ClearType", "Quake2_SetType": "Distortion_SetType", diff --git a/tools/sizes/code_functions.csv b/tools/sizes/code_functions.csv index a1267e0d3..7cf6c6034 100644 --- a/tools/sizes/code_functions.csv +++ b/tools/sizes/code_functions.csv @@ -1623,32 +1623,32 @@ asm/non_matchings/code/z_parameter/func_80111CB4.s,func_80111CB4,0x80111CB4,0x34 asm/non_matchings/code/z_parameter/func_801129E4.s,func_801129E4,0x801129E4,0x44 asm/non_matchings/code/z_parameter/func_80112AF4.s,func_80112AF4,0x80112AF4,0x2 asm/non_matchings/code/z_parameter/func_80112AFC.s,func_80112AFC,0x80112AFC,0x11 -asm/non_matchings/code/z_parameter/func_80112B40.s,func_80112B40,0x80112B40,0x29 -asm/non_matchings/code/z_parameter/func_80112BE4.s,func_80112BE4,0x80112BE4,0xA +asm/non_matchings/code/z_parameter/Interface_LoadItemIconImpl.s,Interface_LoadItemIconImpl,0x80112B40,0x29 +asm/non_matchings/code/z_parameter/Interface_LoadItemIcon.s,Interface_LoadItemIcon,0x80112BE4,0xA asm/non_matchings/code/z_parameter/func_80112C0C.s,func_80112C0C,0x80112C0C,0x9D asm/non_matchings/code/z_parameter/Item_Give.s,Item_Give,0x80112E80,0x553 -asm/non_matchings/code/z_parameter/func_801143CC.s,func_801143CC,0x801143CC,0x16B -asm/non_matchings/code/z_parameter/func_80114978.s,func_80114978,0x80114978,0xA -asm/non_matchings/code/z_parameter/func_801149A0.s,func_801149A0,0x801149A0,0x3F -asm/non_matchings/code/z_parameter/func_80114A9C.s,func_80114A9C,0x80114A9C,0x3A -asm/non_matchings/code/z_parameter/func_80114B84.s,func_80114B84,0x80114B84,0x47 -asm/non_matchings/code/z_parameter/func_80114CA0.s,func_80114CA0,0x80114CA0,0x7C -asm/non_matchings/code/z_parameter/Interface_HasEmptyBottle.s,Interface_HasEmptyBottle,0x80114E90,0x27 -asm/non_matchings/code/z_parameter/Interface_HasItemInBottle.s,Interface_HasItemInBottle,0x80114F2C,0x29 -asm/non_matchings/code/z_parameter/func_80114FD0.s,func_80114FD0,0x80114FD0,0x58 -asm/non_matchings/code/z_parameter/func_80115130.s,func_80115130,0x80115130,0x62 -asm/non_matchings/code/z_parameter/func_801152B8.s,func_801152B8,0x801152B8,0x44 +asm/non_matchings/code/z_parameter/Item_CheckObtainabilityImpl.s,Item_CheckObtainabilityImpl,0x801143CC,0x16B +asm/non_matchings/code/z_parameter/Item_CheckObtainability.s,Item_CheckObtainability,0x80114978,0xA +asm/non_matchings/code/z_parameter/Inventory_DeleteItem.s,Inventory_DeleteItem,0x801149A0,0x3F +asm/non_matchings/code/z_parameter/Inventory_UnequipItem.s,Inventory_UnequipItem,0x80114A9C,0x3A +asm/non_matchings/code/z_parameter/Inventory_ReplaceItem.s,Inventory_ReplaceItem,0x80114B84,0x47 +asm/non_matchings/code/z_parameter/Inventory_UpdateDeitySwordEquip.s,Inventory_UpdateDeitySwordEquip,0x80114CA0,0x7C +asm/non_matchings/code/z_parameter/Inventory_HasEmptyBottle.s,Inventory_HasEmptyBottle,0x80114E90,0x27 +asm/non_matchings/code/z_parameter/Inventory_HasItemInBottle.s,Inventory_HasItemInBottle,0x80114F2C,0x29 +asm/non_matchings/code/z_parameter/Inventory_UpdateBottleItem.s,Inventory_UpdateBottleItem,0x80114FD0,0x58 +asm/non_matchings/code/z_parameter/Inventory_ConsumeFairy.s,Inventory_ConsumeFairy,0x80115130,0x62 +asm/non_matchings/code/z_parameter/Inventory_UpdateItem.s,Inventory_UpdateItem,0x801152B8,0x44 asm/non_matchings/code/z_parameter/func_801153C8.s,func_801153C8,0x801153C8,0x18 asm/non_matchings/code/z_parameter/func_80115428.s,func_80115428,0x80115428,0x41 asm/non_matchings/code/z_parameter/func_8011552C.s,func_8011552C,0x8011552C,0x22 asm/non_matchings/code/z_parameter/func_801155B4.s,func_801155B4,0x801155B4,0x6C asm/non_matchings/code/z_parameter/func_80115764.s,func_80115764,0x80115764,0x38 asm/non_matchings/code/z_parameter/func_80115844.s,func_80115844,0x80115844,0x31 -asm/non_matchings/code/z_parameter/func_80115908.s,func_80115908,0x80115908,0x2E -asm/non_matchings/code/z_parameter/func_801159c0.s,func_801159c0,0x801159C0,0xB -asm/non_matchings/code/z_parameter/func_801159EC.s,func_801159EC,0x801159EC,0xA -asm/non_matchings/code/z_parameter/func_80115A14.s,func_80115A14,0x80115A14,0xC0 -asm/non_matchings/code/z_parameter/Parameter_AddMagic.s,Parameter_AddMagic,0x80115D14,0x12 +asm/non_matchings/code/z_parameter/Health_ChangeBy.s,Health_ChangeBy,0x80115908,0x2E +asm/non_matchings/code/z_parameter/Health_GiveHearts.s,Health_GiveHearts,0x801159C0,0xB +asm/non_matchings/code/z_parameter/Rupees_ChangeBy.s,Rupees_ChangeBy,0x801159EC,0xA +asm/non_matchings/code/z_parameter/Inventory_ChangeAmmo.s,Inventory_ChangeAmmo,0x80115A14,0xC0 +asm/non_matchings/code/z_parameter/Interface_AddMagic.s,Interface_AddMagic,0x80115D14,0x12 asm/non_matchings/code/z_parameter/func_80115D5C.s,func_80115D5C,0x80115D5C,0x16 asm/non_matchings/code/z_parameter/func_80115DB4.s,func_80115DB4,0x80115DB4,0xB5 asm/non_matchings/code/z_parameter/func_80116088.s,func_80116088,0x80116088,0x23