More docs & cleanup

This commit is contained in:
engineer124
2021-12-30 13:27:35 +11:00
parent c0afa143f4
commit 7d1aed3ae0
6 changed files with 78 additions and 84 deletions
+2 -2
View File
@@ -2065,9 +2065,9 @@ void Inventory_DeleteItem(s16 arg0, s16 arg1);
// void func_80114CA0(void);
s32 Inventory_HasEmptyBottle(void);
s32 Inventory_HasItemInBottle(u8 itemId);
// void func_80114FD0(void);
// void Inventory_UpdateBottleItem(void);
// void func_80115130(void);
// void func_801152B8(void);
// void Inventory_UpdateItem(void);
// void func_801153C8(void);
// void Interface_LoadActionLabel(void);
void Interface_SetDoAction(GlobalContext* globalCtx, u16 arg1);
+18 -2
View File
@@ -66,8 +66,24 @@
#define INV_CONTENT_VOID(item) ((void)0, gSaveContext.save.inventory.items)[SLOT(item)]
#define CUR_FORM ((gSaveContext.save.playerForm == PLAYER_FORM_HUMAN) ? 0 : gSaveContext.save.playerForm)
#define CUR_FORM_BTN_ITEM(btn) ((u8)((btn) == 0 ? gSaveContext.save.equips.buttonItems[CUR_FORM][btn] : gSaveContext.save.equips.buttonItems[0][btn]))
#define CUR_FORM_CBTN_SLOT(btn) ((u8)((btn) == 0 ? gSaveContext.save.equips.cButtonSlots[CUR_FORM][btn] : gSaveContext.save.equips.cButtonSlots[0][btn]))
#define GET_CUR_FORM_BTN_ITEM(btn) ((u8)((btn) == 0 ? gSaveContext.save.equips.buttonItems[CUR_FORM][btn] : gSaveContext.save.equips.buttonItems[0][btn]))
#define GET_CUR_FORM_BTN_SLOT(btn) ((u8)((btn) == 0 ? gSaveContext.save.equips.cButtonSlots[CUR_FORM][btn] : gSaveContext.save.equips.cButtonSlots[0][btn]))
#define SET_CUR_FORM_BTN_ITEM(btn, item) \
if ((btn) == 0) { \
gSaveContext.save.equips.buttonItems[CUR_FORM][btn] = (item); \
} else { \
gSaveContext.save.equips.buttonItems[0][btn] = (item); \
}
#define SET_CUR_FORM_BTN_SLOT(btn, slot) \
if ((btn) == 0) { \
gSaveContext.save.equips.cButtonSlots[CUR_FORM][btn] = (slot); \
} else { \
gSaveContext.save.equips.cButtonSlots[0][btn] = (slot); \
}
#define ALL_EQUIP_VALUE(equip) ((gSaveContext.save.inventory.equipment & gEquipMasks[equip]) >> gEquipShifts[equip])
#define CUR_EQUIP_VALUE(equip) ((gSaveContext.save.equips.equipment & gEquipMasks[equip]) >> gEquipShifts[equip])
+1 -1
View File
@@ -569,7 +569,7 @@ typedef struct {
/* 0x258 */ s16 unk_258;
/* 0x25A */ s16 unk_25A;
/* 0x25C */ u16 unk_25C;
/* 0x25E */ u16 unk_25E[5]; // ItemId
/* 0x25E */ u16 cursorItem[5];
/* 0x268 */ u16 unk_268[5];
/* 0x272 */ u16 equipTargetItem;
/* 0x274 */ u16 equipTargetSlot;
+53 -75
View File
@@ -542,12 +542,12 @@ void func_8010EB50(s32 arg0) {
}
}
void func_8010EBA0(s16 arg0, s16 arg1) {
gSaveContext.unk_101A[arg1] = 1;
gSaveContext.unk_1080[arg1] = arg0 * 100;
gSaveContext.unk_1050[arg1] = gSaveContext.unk_1080[arg1];
gSaveContext.unk_1020[arg1] = osGetTime();
gSaveContext.unk_10B0[arg1] = 0;
void func_8010EBA0(s16 timer, s16 timerId) {
gSaveContext.unk_101A[timerId] = 1;
gSaveContext.unk_1080[timerId] = timer * 100;
gSaveContext.unk_1050[timerId] = gSaveContext.unk_1080[timerId];
gSaveContext.unk_1020[timerId] = osGetTime();
gSaveContext.unk_10B0[timerId] = 0;
D_801BF8F0 = 0;
}
@@ -1399,16 +1399,15 @@ void Interface_InitMinigame(GlobalContext* globalCtx) {
interfaceCtx->hbaAmmo = 20;
}
void Interface_LoadItemIconImpl(GlobalContext* globalCtx, u8 arg1) {
void Interface_LoadItemIconImpl(GlobalContext* globalCtx, u8 btn) {
InterfaceContext* interfaceCtx = &globalCtx->interfaceCtx;
u32 new_var = arg1;
func_80178E3C(_icon_item_static_testSegmentRomStart, CUR_FORM_BTN_ITEM(new_var),
&interfaceCtx->iconItemSegment[new_var * 0x1000], 0x1000);
func_80178E3C(_icon_item_static_testSegmentRomStart, GET_CUR_FORM_BTN_ITEM(btn),
&interfaceCtx->iconItemSegment[(u32)btn * 0x1000], 0x1000);
}
void Interface_LoadItemIcon(GlobalContext* globalCtx, u8 arg1) {
Interface_LoadItemIconImpl(globalCtx, arg1);
void Interface_LoadItemIcon(GlobalContext* globalCtx, u8 btn) {
Interface_LoadItemIconImpl(globalCtx, btn);
}
void func_80112C0C(GlobalContext* globalCtx, u16 flag) {
@@ -1830,21 +1829,21 @@ u8 Item_Give(GlobalContext* globalCtx, u8 item) {
for (i = 0; i < 6; i++) {
if (gSaveContext.save.inventory.items[slot + i] == 0x12) {
if (item == 0x20) {
func_8010EBA0(0x3C, i);
func_8010EBA0(60, i);
}
if ((slot + i) == gSaveContext.save.equips.cButtonSlots[0][1]) {
gSaveContext.save.equips.buttonItems[0][1] = item;
Interface_LoadItemIconImpl(globalCtx, 1);
gSaveContext.buttonStatus[1] = 0;
gSaveContext.buttonStatus[1] = BTN_ENABLED;
} else if ((slot + i) == gSaveContext.save.equips.cButtonSlots[0][2]) {
gSaveContext.save.equips.buttonItems[0][2] = item;
Interface_LoadItemIconImpl(globalCtx, 2);
gSaveContext.buttonStatus[2] = 0;
gSaveContext.buttonStatus[2] = BTN_ENABLED;
} else if ((slot + i) == gSaveContext.save.equips.cButtonSlots[0][3]) {
gSaveContext.save.equips.buttonItems[0][3] = item;
Interface_LoadItemIconImpl(globalCtx, 3);
gSaveContext.buttonStatus[3] = 0;
gSaveContext.buttonStatus[3] = BTN_ENABLED;
}
gSaveContext.save.inventory.items[slot] = item;
@@ -1902,42 +1901,26 @@ s32 Item_CheckObtainability(u8 item) {
return Item_CheckObtainabilityImpl(item);
}
void Inventory_DeleteItem(s16 itemId, s16 invSlot) {
s16 i;
void Inventory_DeleteItem(s16 item, s16 invSlot) {
s16 btn;
gSaveContext.save.inventory.items[invSlot] = ITEM_NONE;
for (i = 1; i < 4; i++) {
if (itemId == CUR_FORM_BTN_ITEM(i)) {
if (i == 0) {
gSaveContext.save.equips.buttonItems[CUR_FORM][i] = ITEM_NONE;
} else {
gSaveContext.save.equips.buttonItems[0][i] = ITEM_NONE;
}
if (i == 0) {
gSaveContext.save.equips.cButtonSlots[CUR_FORM][i] = SLOT_NONE;
} else {
gSaveContext.save.equips.cButtonSlots[0][i] = SLOT_NONE;
}
for (btn = 1; btn < 4; btn++) {
if (GET_CUR_FORM_BTN_ITEM(btn) == item) {
SET_CUR_FORM_BTN_ITEM(btn, ITEM_NONE);
SET_CUR_FORM_BTN_SLOT(btn, SLOT_NONE);
}
}
}
void Inventory_UnequipItem(s16 itemId) {
s16 i;
void Inventory_UnequipItem(s16 item) {
s16 btn;
for (i = 1; i < 4; i++) {
if (itemId == CUR_FORM_BTN_ITEM(i)) {
if (i == 0) {
gSaveContext.save.equips.buttonItems[CUR_FORM][i] = ITEM_NONE;
} else {
gSaveContext.save.equips.buttonItems[0][i] = ITEM_NONE;
}
if (i == 0) {
gSaveContext.save.equips.cButtonSlots[CUR_FORM][i] = SLOT_NONE;
} else {
gSaveContext.save.equips.cButtonSlots[0][i] = SLOT_NONE;
}
for (btn = 1; btn < 4; btn++) {
if (GET_CUR_FORM_BTN_ITEM(btn) == item) {
SET_CUR_FORM_BTN_ITEM(btn, ITEM_NONE);
SET_CUR_FORM_BTN_SLOT(btn, SLOT_NONE);
}
}
}
@@ -1950,13 +1933,8 @@ s32 Inventory_ReplaceItem(GlobalContext* globalCtx, u8 oldItem, u8 newItem) {
gSaveContext.save.inventory.items[i] = newItem;
for (i = 1; i < 4; i++) {
if (oldItem == CUR_FORM_BTN_ITEM(i)) {
if (i == 0) {
gSaveContext.save.equips.buttonItems[CUR_FORM][i] = newItem;
} else {
gSaveContext.save.equips.buttonItems[0][i] = newItem;
}
if (GET_CUR_FORM_BTN_ITEM(i) == oldItem) {
SET_CUR_FORM_BTN_ITEM(i, newItem);
Interface_LoadItemIconImpl(globalCtx, i);
break;
}
@@ -1969,6 +1947,7 @@ s32 Inventory_ReplaceItem(GlobalContext* globalCtx, u8 oldItem, u8 newItem) {
#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80114CA0.s")
s32 Inventory_HasEmptyBottle(void) {
s32 slot;
@@ -1980,46 +1959,45 @@ s32 Inventory_HasEmptyBottle(void) {
return false;
}
s32 Inventory_HasItemInBottle(u8 itemId) {
s32 Inventory_HasItemInBottle(u8 item) {
s32 slot;
for (slot = SLOT_BOTTLE_1; slot <= SLOT_BOTTLE_6; slot++) {
if (gSaveContext.save.inventory.items[slot] == itemId) {
if (gSaveContext.save.inventory.items[slot] == item) {
return true;
}
}
return false;
}
void func_80114FD0(GlobalContext* globalCtx, u8 item, u8 arg2) {
gSaveContext.save.inventory.items[CUR_FORM_CBTN_SLOT(arg2)] = item;
if (arg2 == 0) {
gSaveContext.save.equips.buttonItems[CUR_FORM][arg2] = item;
} else {
gSaveContext.save.equips.buttonItems[0][arg2] = item;
}
Interface_LoadItemIconImpl(globalCtx, arg2);
globalCtx->pauseCtx.unk_25E[0] = item;
gSaveContext.buttonStatus[arg2] = 0;
void Inventory_UpdateBottleItem(GlobalContext* globalCtx, u8 item, u8 btn) {
gSaveContext.save.inventory.items[GET_CUR_FORM_BTN_SLOT(btn)] = item;
SET_CUR_FORM_BTN_ITEM(btn, item);
Interface_LoadItemIconImpl(globalCtx, btn);
globalCtx->pauseCtx.cursorItem[0] = item;
gSaveContext.buttonStatus[btn] = BTN_ENABLED;
if (item == ITEM_HOT_SPRING_WATER) {
func_8010EBA0(0x3C, CUR_FORM_CBTN_SLOT(arg2) - 0x12);
func_8010EBA0(60, GET_CUR_FORM_BTN_SLOT(btn) - 18);
}
}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80115130.s")
void func_801152B8(GlobalContext* globalCtx, s16 slot, s16 item) {
s16 i;
/**
* Only used to equip spring water when hot sprint water timer runs out
*/
void Inventory_UpdateItem(GlobalContext* globalCtx, s16 slot, s16 item) {
s16 btn;
gSaveContext.save.inventory.items[slot] = item;
for (i = 1; i < 4; i++) {
if (slot == CUR_FORM_CBTN_SLOT(i)) {
if (i == 0) {
gSaveContext.save.equips.buttonItems[CUR_FORM][i] = item;
} else {
gSaveContext.save.equips.buttonItems[0][i] = item;
}
Interface_LoadItemIconImpl(globalCtx, i);
for (btn = 1; btn < 4; btn++) {
if (GET_CUR_FORM_BTN_SLOT(btn) == slot) {
SET_CUR_FORM_BTN_ITEM(btn, item);
Interface_LoadItemIconImpl(globalCtx, btn);
}
}
}
@@ -3770,7 +3748,7 @@ void Interface_Update(GlobalContext* globalCtx) {
func_8010EF9C(globalCtx, alpha1);
if (gSaveContext.buttonStatus[5] == 0xFF) {
if (gSaveContext.buttonStatus[5] == BTN_DISABLED) {
if (interfaceCtx->startAlpha != 70) {
interfaceCtx->startAlpha = 70;
}
+2 -2
View File
@@ -2121,9 +2121,9 @@
0x80114CA0:("func_80114CA0",),
0x80114E90:("Inventory_HasEmptyBottle",),
0x80114F2C:("Inventory_HasItemInBottle",),
0x80114FD0:("func_80114FD0",),
0x80114FD0:("Inventory_UpdateBottleItem",),
0x80115130:("func_80115130",),
0x801152B8:("func_801152B8",),
0x801152B8:("Inventory_UpdateItem",),
0x801153C8:("func_801153C8",),
0x80115428:("Interface_LoadActionLabel",),
0x8011552C:("Interface_SetDoAction",),
+2 -2
View File
@@ -1635,9 +1635,9 @@ asm/non_matchings/code/z_parameter/Inventory_ReplaceItem.s,Inventory_ReplaceItem
asm/non_matchings/code/z_parameter/func_80114CA0.s,func_80114CA0,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/func_80114FD0.s,func_80114FD0,0x80114FD0,0x58
asm/non_matchings/code/z_parameter/Inventory_UpdateBottleItem.s,Inventory_UpdateBottleItem,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/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/Interface_LoadActionLabel.s,Interface_LoadActionLabel,0x80115428,0x41
asm/non_matchings/code/z_parameter/Interface_SetDoAction.s,Interface_SetDoAction,0x8011552C,0x22
1 asm/non_matchings/code/z_en_a_keep/EnAObj_Init.s EnAObj_Init 0x800A5AC0 0x2B
1635 asm/non_matchings/code/z_parameter/func_80114CA0.s func_80114CA0 0x80114CA0 0x7C
1636 asm/non_matchings/code/z_parameter/Inventory_HasEmptyBottle.s Inventory_HasEmptyBottle 0x80114E90 0x27
1637 asm/non_matchings/code/z_parameter/Inventory_HasItemInBottle.s Inventory_HasItemInBottle 0x80114F2C 0x29
1638 asm/non_matchings/code/z_parameter/func_80114FD0.s asm/non_matchings/code/z_parameter/Inventory_UpdateBottleItem.s func_80114FD0 Inventory_UpdateBottleItem 0x80114FD0 0x58
1639 asm/non_matchings/code/z_parameter/func_80115130.s func_80115130 0x80115130 0x62
1640 asm/non_matchings/code/z_parameter/func_801152B8.s asm/non_matchings/code/z_parameter/Inventory_UpdateItem.s func_801152B8 Inventory_UpdateItem 0x801152B8 0x44
1641 asm/non_matchings/code/z_parameter/func_801153C8.s func_801153C8 0x801153C8 0x18
1642 asm/non_matchings/code/z_parameter/Interface_LoadActionLabel.s Interface_LoadActionLabel 0x80115428 0x41
1643 asm/non_matchings/code/z_parameter/Interface_SetDoAction.s Interface_SetDoAction 0x8011552C 0x22