diff --git a/include/save.h b/include/save.h index 4d5e6d06..ef5ec931 100644 --- a/include/save.h +++ b/include/save.h @@ -58,8 +58,9 @@ typedef struct { /*0x0F2*/ u8 inventory[36]; /*0x116*/ u8 didAllFusions; /*0x117*/ u8 fusedKinstoneCount; - /*0x118*/ u8 unk118[0x13]; // TODO also related to kinstones - /*0x12B*/ u8 unk12B[0x16]; // TODO also related to kinstones + /*0x118*/ u8 kinstoneTypes[0x13]; // 0x65-0x75 for each kinstone type present in kinstone bag + /*0x12B*/ u8 kinstoneAmounts[0x13]; // amount of each kinstone type above + /*0x13E*/ u8 filler13E[3]; /*0x141*/ u8 fuserProgress[128]; // indexed by fuser id, incremented after fusion /*0x1C1*/ u8 fuserOffers[128]; // available kinstone fusion for each fuser /*0x241*/ u8 fusedKinstones[13]; /**< Bitfield for fused kinstones. @see CheckKinstoneFused */ diff --git a/src/common.c b/src/common.c index f92ea874..8a2e3058 100644 --- a/src/common.c +++ b/src/common.c @@ -776,17 +776,17 @@ void sub_0801E738(u32 param_1) { index = sub_0801E8B0(param_1); if (index < 0) { index = 0; - while (gSave.unk118[index] != 0) { + while (gSave.kinstoneTypes[index] != 0) { index++; } } if ((u32)index < 0x12) { - gSave.unk118[index] = param_1; - tmp = gSave.unk12B[index] + 1; + gSave.kinstoneTypes[index] = param_1; + tmp = gSave.kinstoneAmounts[index] + 1; if (tmp > 99) { tmp = 99; } - gSave.unk12B[index] = tmp; + gSave.kinstoneAmounts[index] = tmp; } } } @@ -794,12 +794,12 @@ void sub_0801E738(u32 param_1) { void sub_0801E798(u32 a1) { s32 idx = sub_0801E8B0(a1); if (idx >= 0) { - s32 next = gSave.unk12B[idx] - 1; + s32 next = gSave.kinstoneAmounts[idx] - 1; if (next <= 0) { - gSave.unk118[idx] = 0; + gSave.kinstoneTypes[idx] = 0; next = 0; } - gSave.unk12B[idx] = next; + gSave.kinstoneAmounts[idx] = next; } } @@ -808,7 +808,7 @@ u32 sub_0801E7D0(u32 a1) { if (tmp < 0) { return 0; } - return gSave.unk12B[tmp]; + return gSave.kinstoneAmounts[tmp]; } u32 CheckKinstoneFused(u32 kinstoneId) { @@ -830,18 +830,18 @@ void sub_0801E82C(void) { u32 r5; for (r5 = 0; r5 < 0x13; r5++) { - if (gSave.unk12B[r5] == 0) { - gSave.unk118[r5] = gSave.unk12B[r5]; + if (gSave.kinstoneAmounts[r5] == 0) { + gSave.kinstoneTypes[r5] = gSave.kinstoneAmounts[r5]; } } - gSave.unk118[0x12] = 0; - gSave.unk12B[0x12] = 0; + gSave.kinstoneTypes[0x12] = 0; + gSave.kinstoneAmounts[0x12] = 0; for (r5 = 0; r5 < 0x12; r5++) { - if ((gSave.unk118[r5] - 0x65) > 0x10) { - MemCopy(&gSave.unk118[r5 + 1], &gSave.unk118[r5], 0x12 - r5); - MemCopy(&gSave.unk12B[r5 + 1], &gSave.unk12B[r5], 0x12 - r5); + if ((gSave.kinstoneTypes[r5] - 0x65) > 0x10) { + MemCopy(&gSave.kinstoneTypes[r5 + 1], &gSave.kinstoneTypes[r5], 0x12 - r5); + MemCopy(&gSave.kinstoneAmounts[r5 + 1], &gSave.kinstoneAmounts[r5], 0x12 - r5); } } #else @@ -852,7 +852,7 @@ void sub_0801E82C(void) { new_var = 4; r1 = &gSave.inventory[34]; r5 = 0; - r2 = gSave.unk118; + r2 = gSave.kinstoneTypes; code0_0: r0 = r2[0x13]; r3 = &r1[4]; @@ -893,7 +893,7 @@ s32 sub_0801E8B0(u32 idx) { u32 i; for (i = 0; i < 18; ++i) { - if (idx == gSave.unk118[i]) + if (idx == gSave.kinstoneTypes[i]) return i; } return -1; diff --git a/src/menu/kinstoneMenu.c b/src/menu/kinstoneMenu.c index e9aaad8e..11673e00 100644 --- a/src/menu/kinstoneMenu.c +++ b/src/menu/kinstoneMenu.c @@ -86,7 +86,7 @@ const ScreenTransitionData gUnk_08128024[] = { u32 sub_080A3B48(void) { u32 index; for (index = 0; index <= 0x12; index++) { - if (gSave.unk12B[index] == 0) { + if (gSave.kinstoneAmounts[index] == 0) { break; } } @@ -206,7 +206,7 @@ void KinstoneMenu_Type1(void) { case A_BUTTON: if (gMenu.column_idx == 2) { tmp3 = gGenericMenu.unk10.i / 0x10000; - gGenericMenu.unk2a = gSave.unk118[tmp3]; + gGenericMenu.unk2a = gSave.kinstoneTypes[tmp3]; SetMenuType(3); } break; @@ -448,7 +448,7 @@ NONMATCH("asm/non_matching/menu/kinstone_menu/KinstoneMenu_080A414C.inc", void K gOamCmd.x = ((gSineTable[(uVar1 + 0x40) & 0xff] * 0x42) / 0x100) - 0x10; iVar2 = gKinstoneMenu.unk10.WORD / 0x10000 + i; if (iVar2 >= 0) { - uVar3 = gSave.unk12B[iVar2]; + uVar3 = gSave.kinstoneAmounts[iVar2]; if (i == 0) { switch (gMenu.column_idx) { case 3: @@ -460,7 +460,7 @@ NONMATCH("asm/non_matching/menu/kinstone_menu/KinstoneMenu_080A414C.inc", void K } } if (0 < uVar3) { - sub_080A42E0(gSave.unk118[iVar2], uVar3); + sub_080A42E0(gSave.kinstoneTypes[iVar2], uVar3); } } } diff --git a/src/menu/pauseMenu.c b/src/menu/pauseMenu.c index 63f22f28..cb76bee0 100644 --- a/src/menu/pauseMenu.c +++ b/src/menu/pauseMenu.c @@ -665,7 +665,7 @@ void sub_080A5594(void) { iVar5 = 0; if (GetInventoryValue(ITEM_KINSTONE_BAG) != 0) { for (i = 0; i < 0x13; i++) { - iVar5 += gSave.unk12B[i]; + iVar5 += gSave.kinstoneAmounts[i]; } if (iVar5 >= 0x50) { @@ -1299,11 +1299,11 @@ void sub_080A6044(void) { gOamCmd._6 = 0; uVar4 = 0; uVar2 = 0; - uVar1 = gSave.unk118[0]; + uVar1 = gSave.kinstoneTypes[0]; while (uVar1 != 0) { gOamCmd.x = (uVar4 & 3) * 0x30 + 0x2b; gOamCmd.y = (uVar4 >> 2) * 0x24 + 0x34; - uVar3 = gSave.unk12B[uVar2]; + uVar3 = gSave.kinstoneAmounts[uVar2]; gMenu.column_idx = 0; sub_080A42E0(uVar1, uVar3); uVar4++; @@ -1314,7 +1314,7 @@ void sub_080A6044(void) { if (0x11 < uVar2) { return; } - uVar1 = gSave.unk118[uVar2]; + uVar1 = gSave.kinstoneTypes[uVar2]; } } } diff --git a/src/playerUtils.c b/src/playerUtils.c index 5b71aebe..47ed9c10 100644 --- a/src/playerUtils.c +++ b/src/playerUtils.c @@ -1090,7 +1090,7 @@ bool32 sub_080782C0(void) { } if (((gPlayerState.playerInput.newInput & PLAYER_INPUT_1000) != 0) && ((u8)(gUnk_03003DF0.unk_4[3] - 1) < 100)) { sub_0801E738(0); - if (gSave.unk12B[0] != 0) { + if (gSave.kinstoneAmounts[0] != 0) { gUnk_03003DF0.unk_2 = gUnk_03003DF0.unk_4[3]; *(u8*)(*(int*)(gUnk_03003DF0.unk_4 + 8) + 0x39) = 2; gPlayerState.queued_action = PLAYER_08070E9C;