diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-04-14 15:59:22 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2019-04-14 15:59:22 -0400 |
commit | ef00905bd76a02a62ad0b69583b739c54599bd16 (patch) | |
tree | 5903b0e01b12a7eff84135a0521b3def2efee9f9 | |
parent | ed4b353795e27f362ad1abd5d31ec4bf5936b9dd (diff) |
tm_case through sub_8132120
-rw-r--r-- | asm/berry_pouch.s | 8 | ||||
-rw-r--r-- | asm/item.s | 54 | ||||
-rw-r--r-- | asm/item_menu.s | 12 | ||||
-rw-r--r-- | asm/tm_case.s | 451 | ||||
-rw-r--r-- | include/item.h | 4 | ||||
-rw-r--r-- | include/new_menu_helpers.h | 1 | ||||
-rw-r--r-- | src/tm_case.c | 160 | ||||
-rw-r--r-- | sym_ewram.txt | 10 |
8 files changed, 196 insertions, 504 deletions
diff --git a/asm/berry_pouch.s b/asm/berry_pouch.s index 8b639487f..aa8a2ce78 100644 --- a/asm/berry_pouch.s +++ b/asm/berry_pouch.s @@ -573,7 +573,7 @@ sub_813D204: @ 813D204 push {r4-r7,lr} mov r7, r8 push {r7} - ldr r0, _0813D280 @ =gUnknown_20398AC + ldr r0, _0813D280 @ =gBagPockets + 0x20 mov r8, r0 movs r6, 0 ldr r0, _0813D284 @ =gUnknown_203F36C @@ -633,7 +633,7 @@ _0813D254: adds r2, r1, 0 b _0813D2A6 .align 2, 0 -_0813D280: .4byte gUnknown_20398AC +_0813D280: .4byte gBagPockets + 0x20 _0813D284: .4byte gUnknown_203F36C _0813D288: .4byte gUnknown_203F380 _0813D28C: .4byte gUnknown_203F37C @@ -1441,7 +1441,7 @@ _0813D8A4: thumb_func_start sub_813D8AC sub_813D8AC: @ 813D8AC push {r4,lr} - ldr r4, _0813D904 @ =gUnknown_20398AC + ldr r4, _0813D904 @ =gBagPockets + 0x20 adds r0, r4, 0 bl sub_809A720 ldr r3, _0813D908 @ =gUnknown_203F36C @@ -1485,7 +1485,7 @@ _0813D8EE: adds r1, r0, 0 b _0813D916 .align 2, 0 -_0813D904: .4byte gUnknown_20398AC +_0813D904: .4byte gBagPockets + 0x20 _0813D908: .4byte gUnknown_203F36C _0813D90C: .4byte gUnknown_203F370 _0813D910: diff --git a/asm/item.s b/asm/item.s index 800df5f82..19e87ad10 100644 --- a/asm/item.s +++ b/asm/item.s @@ -61,7 +61,7 @@ ApplyNewEncryptionKeyToBagItems: @ 8099DE0 sub sp, 0x4 mov r8, r0 movs r1, 0 - ldr r0, _08099E34 @ =gUnknown_203988C + ldr r0, _08099E34 @ =gBagPockets mov r9, r0 _08099DF2: movs r6, 0 @@ -72,7 +72,7 @@ _08099DF2: ldrb r0, [r0, 0x4] cmp r6, r0 bcs _08099E20 - ldr r2, _08099E34 @ =gUnknown_203988C + ldr r2, _08099E34 @ =gBagPockets _08099E04: adds r4, r5, r2 lsls r1, r6, 2 @@ -99,7 +99,7 @@ _08099E20: pop {r0} bx r0 .align 2, 0 -_08099E34: .4byte gUnknown_203988C +_08099E34: .4byte gBagPockets thumb_func_end ApplyNewEncryptionKeyToBagItems thumb_func_start ApplyNewEncryptionKeyToBagItems_ @@ -112,7 +112,7 @@ ApplyNewEncryptionKeyToBagItems_: @ 8099E38 thumb_func_start sub_8099E44 sub_8099E44: @ 8099E44 - ldr r1, _08099E84 @ =gUnknown_203988C + ldr r1, _08099E84 @ =gBagPockets ldr r0, _08099E88 @ =gSaveBlock1Ptr ldr r2, [r0] movs r3, 0xC4 @@ -144,7 +144,7 @@ sub_8099E44: @ 8099E44 strb r0, [r1] bx lr .align 2, 0 -_08099E84: .4byte gUnknown_203988C +_08099E84: .4byte gBagPockets _08099E88: .4byte gSaveBlock1Ptr _08099E8C: .4byte 0x0000054c thumb_func_end sub_8099E44 @@ -184,7 +184,7 @@ sub_8099ECC: @ 8099ECC push {lr} lsls r0, 24 movs r2, 0 - ldr r1, _08099EF0 @ =gUnknown_203988C + ldr r1, _08099EF0 @ =gBagPockets lsrs r0, 21 adds r0, r1 ldrb r1, [r0, 0x4] @@ -201,7 +201,7 @@ _08099EE0: asrs r0, 24 b _08099F02 .align 2, 0 -_08099EF0: .4byte gUnknown_203988C +_08099EF0: .4byte gBagPockets _08099EF4: adds r0, r2, 0x1 lsls r0, 16 @@ -221,7 +221,7 @@ sub_8099F08: @ 8099F08 push {lr} lsls r0, 24 movs r2, 0 - ldr r1, _08099F2C @ =gUnknown_203988C + ldr r1, _08099F2C @ =gBagPockets lsrs r0, 21 subs r0, 0x8 adds r0, r1 @@ -238,7 +238,7 @@ _08099F1E: movs r0, 0x1 b _08099F3C .align 2, 0 -_08099F2C: .4byte gUnknown_203988C +_08099F2C: .4byte gBagPockets _08099F30: adds r0, r2, 0x1 lsls r0, 24 @@ -274,7 +274,7 @@ _08099F5C: subs r0, 0x1 lsls r0, 24 movs r2, 0 - ldr r1, _08099F94 @ =gUnknown_203988C + ldr r1, _08099F94 @ =gBagPockets lsrs r0, 21 adds r0, r1 ldrb r1, [r0, 0x4] @@ -296,7 +296,7 @@ _08099F76: bcs _08099F58 b _08099FA4 .align 2, 0 -_08099F94: .4byte gUnknown_203988C +_08099F94: .4byte gBagPockets _08099F98: adds r0, r2, 0x1 lsls r0, 24 @@ -378,7 +378,7 @@ CheckBagHasSpace: @ 809A000 lsls r0, 24 lsrs r5, r0, 24 movs r2, 0 - ldr r1, _0809A054 @ =gUnknown_203988C + ldr r1, _0809A054 @ =gBagPockets lsls r0, r5, 3 adds r0, r1 ldrb r1, [r0, 0x4] @@ -404,7 +404,7 @@ _0809A050: movs r0, 0 b _0809A07C .align 2, 0 -_0809A054: .4byte gUnknown_203988C +_0809A054: .4byte gBagPockets _0809A058: .4byte 0x000003e7 _0809A05C: adds r0, r2, 0x1 @@ -453,7 +453,7 @@ _0809A0A2: lsls r0, 24 lsrs r7, r0, 24 movs r2, 0 - ldr r1, _0809A0E0 @ =gUnknown_203988C + ldr r1, _0809A0E0 @ =gBagPockets lsls r0, r7, 3 adds r0, r1 ldrb r1, [r0, 0x4] @@ -478,7 +478,7 @@ _0809A0BE: ble _0809A1B8 b _0809A1CA .align 2, 0 -_0809A0E0: .4byte gUnknown_203988C +_0809A0E0: .4byte gBagPockets _0809A0E4: .4byte 0x000003e7 _0809A0E8: adds r0, r2, 0x1 @@ -506,7 +506,7 @@ _0809A0F4: negs r0, r0 cmp r1, r0 beq _0809A1CA - ldr r2, _0809A1AC @ =gUnknown_203988C + ldr r2, _0809A1AC @ =gBagPockets ldr r0, [r2, 0x8] lsls r1, 2 adds r0, r1, r0 @@ -534,7 +534,7 @@ _0809A132: negs r0, r0 cmp r1, r0 beq _0809A1CA - ldr r2, _0809A1AC @ =gUnknown_203988C + ldr r2, _0809A1AC @ =gBagPockets ldr r0, [r2, 0x8] lsls r1, 2 adds r0, r1, r0 @@ -561,7 +561,7 @@ _0809A180: negs r0, r0 cmp r2, r0 beq _0809A1CA - ldr r0, _0809A1AC @ =gUnknown_203988C + ldr r0, _0809A1AC @ =gBagPockets lsls r1, r7, 3 adds r1, r0 ldr r0, [r1] @@ -574,7 +574,7 @@ _0809A180: mov r1, r8 b _0809A1C2 .align 2, 0 -_0809A1AC: .4byte gUnknown_203988C +_0809A1AC: .4byte gBagPockets _0809A1B0: .4byte 0x0000016d _0809A1B4: .4byte 0x00000847 _0809A1B8: @@ -616,7 +616,7 @@ RemoveBagItem: @ 809A1D8 subs r0, 0x1 lsls r0, 24 movs r2, 0 - ldr r1, _0809A248 @ =gUnknown_203988C + ldr r1, _0809A248 @ =gBagPockets lsrs r0, 21 adds r0, r1 ldrb r1, [r0, 0x4] @@ -653,7 +653,7 @@ _0809A242: movs r0, 0x1 b _0809A25A .align 2, 0 -_0809A248: .4byte gUnknown_203988C +_0809A248: .4byte gBagPockets _0809A24C: adds r0, r2, 0x1 lsls r0, 24 @@ -745,7 +745,7 @@ _0809A2D8: .4byte gSaveBlock1Ptr sub_809A2DC: @ 809A2DC push {r4,r5,lr} movs r4, 0 - ldr r5, _0809A300 @ =gUnknown_203988C + ldr r5, _0809A300 @ =gBagPockets _0809A2E2: lsls r1, r4, 3 adds r1, r5 @@ -761,7 +761,7 @@ _0809A2E2: pop {r0} bx r0 .align 2, 0 -_0809A300: .4byte gUnknown_203988C +_0809A300: .4byte gBagPockets thumb_func_end sub_809A2DC thumb_func_start sub_809A304 @@ -1408,7 +1408,7 @@ _0809A786: sub_809A798: @ 809A798 lsls r0, 24 lsls r1, 16 - ldr r2, _0809A7B0 @ =gUnknown_203988C + ldr r2, _0809A7B0 @ =gBagPockets lsrs r0, 21 subs r0, 0x8 adds r0, r2 @@ -1418,7 +1418,7 @@ sub_809A798: @ 809A798 ldrh r0, [r1] bx lr .align 2, 0 -_0809A7B0: .4byte gUnknown_203988C +_0809A7B0: .4byte gBagPockets thumb_func_end sub_809A798 thumb_func_start sub_809A7B4 @@ -1426,7 +1426,7 @@ sub_809A7B4: @ 809A7B4 push {lr} lsls r0, 24 lsls r1, 16 - ldr r2, _0809A7D8 @ =gUnknown_203988C + ldr r2, _0809A7D8 @ =gBagPockets lsrs r0, 21 subs r0, 0x8 adds r0, r2 @@ -1440,7 +1440,7 @@ sub_809A7B4: @ 809A7B4 pop {r1} bx r1 .align 2, 0 -_0809A7D8: .4byte gUnknown_203988C +_0809A7D8: .4byte gBagPockets thumb_func_end sub_809A7B4 thumb_func_start sub_809A7DC diff --git a/asm/item_menu.s b/asm/item_menu.s index dcc74bafd..b9dc2669a 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -817,7 +817,7 @@ sub_810842C: @ 810842C lsls r0, 24 lsrs r7, r0, 24 lsls r1, r7, 3 - ldr r0, _0810853C @ =gUnknown_203988C + ldr r0, _0810853C @ =gBagPockets adds r1, r0 mov r8, r1 movs r6, 0 @@ -946,7 +946,7 @@ _0810848C: pop {r0} bx r0 .align 2, 0 -_0810853C: .4byte gUnknown_203988C +_0810853C: .4byte gBagPockets _08108540: .4byte gUnknown_203AD10 _08108544: .4byte gUnknown_203AD1C _08108548: .4byte gUnknown_203AD18 @@ -2065,7 +2065,7 @@ sub_8108DC8: @ 8108DC8 lsls r0, 24 lsrs r5, r0, 24 lsls r1, r5, 3 - ldr r0, _08108E3C @ =gUnknown_203988C + ldr r0, _08108E3C @ =gBagPockets adds r4, r1, r0 ldr r0, [r4] ldrb r1, [r4, 0x4] @@ -2120,7 +2120,7 @@ _08108E1C: strb r1, [r0] b _08108E4C .align 2, 0 -_08108E3C: .4byte gUnknown_203988C +_08108E3C: .4byte gBagPockets _08108E40: .4byte gUnknown_203AD10 _08108E44: adds r0, r1, 0 @@ -3063,7 +3063,7 @@ _081095DA: .align 2, 0 _081095E4: .4byte gTasks+0x8 _081095E8: - ldr r1, _0810966C @ =gUnknown_203988C + ldr r1, _0810966C @ =gBagPockets ldr r4, _08109670 @ =gUnknown_203ACFC ldrh r0, [r4, 0x6] lsls r0, 3 @@ -3125,7 +3125,7 @@ _0810965C: pop {r0} bx r0 .align 2, 0 -_0810966C: .4byte gUnknown_203988C +_0810966C: .4byte gBagPockets _08109670: .4byte gUnknown_203ACFC _08109674: .4byte gUnknown_3005E70 _08109678: .4byte sub_8108F0C diff --git a/asm/tm_case.s b/asm/tm_case.s index 28662fad3..8f25e43f6 100644 --- a/asm/tm_case.s +++ b/asm/tm_case.s @@ -5,457 +5,6 @@ .text - thumb_func_start sub_8131E18 -sub_8131E18: @ 8131E18 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - bne _08131E2C - movs r5, 0 - b _08131E3A -_08131E2C: - lsls r1, r4, 16 - lsrs r1, 16 - movs r0, 0x4 - bl sub_809A798 - lsls r0, 16 - lsrs r5, r0, 16 -_08131E3A: - cmp r6, 0x1 - beq _08131E50 - movs r0, 0x5 - bl PlaySE - ldr r0, _08131E64 @ =gUnknown_203B118 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - adds r1, r5, 0 - bl sub_81337E4 -_08131E50: - adds r0, r4, 0 - bl sub_8131F0C - adds r0, r5, 0 - bl sub_8133444 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08131E64: .4byte gUnknown_203B118 - thumb_func_end sub_8131E18 - - thumb_func_start sub_8131E68 -sub_8131E68: @ 8131E68 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - mov r7, r9 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - mov r4, r8 - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - beq _08131EFE - lsls r0, r1, 16 - lsrs r6, r0, 16 - movs r0, 0x4 - adds r1, r6, 0 - bl sub_809A798 - lsls r0, 16 - lsrs r0, 16 - bl itemid_is_unique - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _08131EF4 - ldr r4, _08131EE8 @ =gStringVar1 - movs r0, 0x4 - adds r1, r6, 0 - bl sub_809A7B4 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r4, _08131EEC @ =gStringVar4 - ldr r1, _08131EF0 @ =gUnknown_84162B9 - adds r0, r4, 0 - bl StringExpandPlaceholders - mov r0, r8 - str r0, [sp] - str r5, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0xFF - str r0, [sp, 0xC] - movs r0, 0x1 - str r0, [sp, 0x10] - mov r0, r9 - movs r1, 0 - adds r2, r4, 0 - movs r3, 0x7E - bl sub_81332EC - b _08131EFE - .align 2, 0 -_08131EE8: .4byte gStringVar1 -_08131EEC: .4byte gStringVar4 -_08131EF0: .4byte gUnknown_84162B9 -_08131EF4: - adds r0, r7, 0 - movs r1, 0x8 - adds r2, r4, 0 - bl sub_81335B0 -_08131EFE: - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8131E68 - - thumb_func_start sub_8131F0C -sub_8131F0C: @ 8131F0C - push {r4,lr} - sub sp, 0x14 - adds r1, r0, 0 - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - beq _08131F30 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x4 - bl sub_809A798 - lsls r0, 16 - lsrs r0, 16 - bl ItemId_GetDescription - adds r4, r0, 0 - b _08131F32 -_08131F30: - ldr r4, _08131F60 @ =gUnknown_84166E1 -_08131F32: - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x3 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r0, [sp, 0x10] - movs r0, 0x1 - movs r1, 0x2 - adds r2, r4, 0 - movs r3, 0x2 - bl sub_81332EC - add sp, 0x14 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08131F60: .4byte gUnknown_84166E1 - thumb_func_end sub_8131F0C - - thumb_func_start sub_8131F64 -sub_8131F64: @ 8131F64 - push {lr} - sub sp, 0x8 - movs r1, 0x8 - str r1, [sp] - lsls r0, 1 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0xC - movs r3, 0x1E - bl sub_80F6B08 - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_8131F64 - - thumb_func_start sub_8131F90 -sub_8131F90: @ 8131F90 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsrs r4, 24 - bl ListMenuGetYCoordForPrintingArrowCursor - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - bl sub_8131FB0 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8131F90 - - thumb_func_start sub_8131FB0 -sub_8131FB0: @ 8131FB0 - push {r4,r5,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0xFF - bne _08131FF4 - movs r0, 0x2 - movs r1, 0 - bl GetFontAttribute - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x2 - movs r1, 0x1 - bl GetFontAttribute - lsls r0, 24 - lsrs r0, 24 - str r4, [sp] - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - adds r3, r5, 0 - bl FillWindowPixelRect - movs r0, 0 - movs r1, 0x2 - bl CopyWindowToVram - b _0813200A -_08131FF4: - ldr r2, _08132014 @ =gFameCheckerText_ListMenuCursor - str r5, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r1, [sp, 0x10] - movs r1, 0x2 - movs r3, 0 - bl sub_81332EC -_0813200A: - add sp, 0x14 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08132014: .4byte gFameCheckerText_ListMenuCursor - thumb_func_end sub_8131FB0 - - thumb_func_start sub_8132018 -sub_8132018: @ 8132018 - push {r4,lr} - sub sp, 0x10 - ldr r4, _0813204C @ =gUnknown_203B118 - ldr r1, [r4] - ldrb r0, [r1, 0x6] - ldrb r1, [r1, 0x5] - subs r0, r1 - adds r0, 0x1 - str r0, [sp] - movs r0, 0x6E - str r0, [sp, 0x4] - str r0, [sp, 0x8] - ldr r0, _08132050 @ =gUnknown_203B10C + 10 - str r0, [sp, 0xC] - movs r0, 0x2 - movs r1, 0xA0 - movs r2, 0x8 - movs r3, 0x58 - bl AddScrollIndicatorArrowPairParametrized - ldr r1, [r4] - strb r0, [r1, 0x8] - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813204C: .4byte gUnknown_203B118 -_08132050: .4byte gUnknown_203B10C + 10 - thumb_func_end sub_8132018 - - thumb_func_start sub_8132054 -sub_8132054: @ 8132054 - push {r4,lr} - sub sp, 0x10 - ldr r4, _08132088 @ =gUnknown_203B118 - ldr r1, [r4] - movs r0, 0x1 - strh r0, [r1, 0xA] - movs r0, 0x2 - str r0, [sp] - movs r0, 0x6E - str r0, [sp, 0x4] - str r0, [sp, 0x8] - adds r1, 0xA - str r1, [sp, 0xC] - movs r0, 0x2 - movs r1, 0x98 - movs r2, 0x48 - movs r3, 0x68 - bl AddScrollIndicatorArrowPairParametrized - ldr r1, [r4] - strb r0, [r1, 0x8] - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08132088: .4byte gUnknown_203B118 - thumb_func_end sub_8132054 - - thumb_func_start sub_813208C -sub_813208C: @ 813208C - push {r4,lr} - ldr r4, _081320A8 @ =gUnknown_203B118 - ldr r1, [r4] - ldrb r0, [r1, 0x8] - cmp r0, 0xFF - beq _081320A2 - bl RemoveScrollIndicatorArrowPair - ldr r1, [r4] - movs r0, 0xFF - strb r0, [r1, 0x8] -_081320A2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081320A8: .4byte gUnknown_203B118 - thumb_func_end sub_813208C - - thumb_func_start sub_81320AC -sub_81320AC: @ 81320AC - ldr r1, _081320B8 @ =gUnknown_203B10C - movs r0, 0 - strh r0, [r1, 0x8] - strh r0, [r1, 0xA] - bx lr - .align 2, 0 -_081320B8: .4byte gUnknown_203B10C - thumb_func_end sub_81320AC - - thumb_func_start sub_81320BC -sub_81320BC: @ 81320BC - push {r4,lr} - ldr r4, _08132118 @ =gUnknown_20398A4 - ldr r0, [r4] - ldrb r1, [r4, 0x4] - bl sub_809A584 - ldr r3, _0813211C @ =gUnknown_203B118 - ldr r1, [r3] - movs r0, 0 - strb r0, [r1, 0x6] - movs r2, 0 - ldrb r0, [r4, 0x4] - cmp r2, r0 - bcs _08132100 - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, 0 - beq _08132100 -_081320E0: - ldr r0, [r3] - ldrb r1, [r0, 0x6] - adds r1, 0x1 - strb r1, [r0, 0x6] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldrb r0, [r4, 0x4] - cmp r2, r0 - bcs _08132100 - ldr r0, [r4] - lsls r1, r2, 2 - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - bne _081320E0 -_08132100: - ldr r0, _0813211C @ =gUnknown_203B118 - ldr r1, [r0] - ldrb r0, [r1, 0x6] - adds r0, 0x1 - cmp r0, 0x5 - ble _0813210E - movs r0, 0x5 -_0813210E: - strb r0, [r1, 0x5] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08132118: .4byte gUnknown_20398A4 -_0813211C: .4byte gUnknown_203B118 - thumb_func_end sub_81320BC - - thumb_func_start sub_8132120 -sub_8132120: @ 8132120 - push {r4,r5,lr} - ldr r0, _08132160 @ =gUnknown_203B10C - ldrh r1, [r0, 0xA] - adds r4, r0, 0 - ldr r5, _08132164 @ =gUnknown_203B118 - cmp r1, 0 - beq _08132144 - ldrh r0, [r4, 0xA] - ldr r1, [r5] - ldrb r3, [r1, 0x5] - adds r0, r3 - ldrb r2, [r1, 0x6] - adds r1, r2, 0x1 - cmp r0, r1 - ble _08132144 - subs r0, r3, 0x1 - subs r0, r2, r0 - strh r0, [r4, 0xA] -_08132144: - adds r3, r4, 0 - ldrh r0, [r3, 0xA] - ldrh r1, [r3, 0x8] - adds r0, r1 - ldr r1, [r5] - ldrb r1, [r1, 0x6] - adds r2, r1, 0x1 - cmp r0, r2 - blt _0813216A - cmp r2, 0x1 - bgt _08132168 - movs r0, 0 - strh r0, [r3, 0x8] - b _0813216A - .align 2, 0 -_08132160: .4byte gUnknown_203B10C -_08132164: .4byte gUnknown_203B118 -_08132168: - strh r1, [r4, 0x8] -_0813216A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8132120 - thumb_func_start sub_8132170 sub_8132170: @ 8132170 push {r4-r6,lr} diff --git a/include/item.h b/include/item.h index 37cc6ca70..9aea7dc86 100644 --- a/include/item.h +++ b/include/item.h @@ -28,7 +28,6 @@ struct BagPocket }; extern struct BagPocket gBagPockets[]; -extern struct BagPocket gUnknown_20398A4; void GetBerryCountString(u8* dst, const u8* berryName, u32 quantity); void CopyItemName(u16 itemId, u8 *string); @@ -69,5 +68,8 @@ bool8 AddBagItem(u16 itemId, u16 amount); void sub_809A5E4(struct BagPocket *); u16 sub_809A798(u8 a0, u16 a1); +u16 sub_809A7B4(u8 a0, u16 a1); +bool8 itemid_is_unique(u16 itemId); +void sub_809A584(struct ItemSlot * slots, u8 capacity); #endif // ITEM_H diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h index fe8b5b754..55537f21c 100644 --- a/include/new_menu_helpers.h +++ b/include/new_menu_helpers.h @@ -29,5 +29,6 @@ void ResetBg0(void); void Menu_LoadStdPalAt(u16); void * malloc_and_decompress(const void * src, u32 * size); u16 sub_80F796C(void); +void sub_80F6B08(u8 bgId, u8 value, u8 height, u8 width, u8 x, u8 y); #endif // GUARD_NEW_MENU_HELPERS_H diff --git a/src/tm_case.c b/src/tm_case.c index 011af5d94..60f9c5bcb 100644 --- a/src/tm_case.c +++ b/src/tm_case.c @@ -8,13 +8,17 @@ #include "text.h" #include "menu.h" #include "menu_helpers.h" +#include "new_menu_helpers.h" #include "list_menu.h" #include "item.h" #include "string_util.h" #include "party_menu.h" #include "data2.h" #include "scanline_effect.h" +#include "sound.h" +#include "menu_indicators.h" #include "constants/items.h" +#include "constants/songs.h" struct UnkStruct_203B10C { @@ -34,7 +38,8 @@ struct UnkStruct_203B118 u8 unk_06; u8 unk_07; u8 unk_08; - u8 filler_09[9]; + u16 unk_0a; + u8 filler_0c[6]; s16 unk_12; u8 filler_14[8]; }; @@ -65,6 +70,8 @@ void sub_8131C50(void); void sub_8131D48(u8 * dest, u16 itemId); void sub_8131E18(s32 itemIndex, bool8 onInit, struct ListMenu *list); void sub_8131E68(u8 windowId, s32 itemId, u8 y); +void sub_8131F0C(s32 itemIndex); +void sub_8131FB0(u8 a0, u8 a1); void sub_8132018(void); void sub_81320BC(void); void sub_8132120(void); @@ -72,9 +79,13 @@ void sub_8132170(void); void sub_81322D4(u8 taskId); void sub_8132F20(u8 taskId); void sub_8133244(void); +void sub_81332EC(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx); void sub_81333C4(void); void sub_8133404(void); +void sub_8133444(u16 itemId); +void sub_81335B0(u8 windowId, u8 x, u8 y); u8 sub_813368C(u16 itemId); +void sub_81337E4(u8 a0, u16 itemId); void sub_81338A8(void); extern const struct BgTemplate gUnknown_8463134[3]; @@ -84,12 +95,15 @@ extern const u32 gUnknown_8E84B70[]; extern const u32 gUnknown_8E84CB0[]; extern const u32 gUnknown_8E84D20[]; extern const struct CompressedSpriteSheet gUnknown_8463218; +extern const u8 gUnknown_8463178[]; +extern const u8 gUnknown_846317C[]; +extern const u8 gUnknown_8416226[]; +extern const u8 gFameCheckerText_ListMenuCursor[]; +extern const u8 gUnknown_84162B9[]; extern const u8 gUnknown_84166DB[]; +extern const u8 gUnknown_84166E1[]; extern const u8 gUnknown_84166FF[]; -extern const u8 gUnknown_8463178[]; -extern const u8 gUnknown_8416226[]; -extern const u8 gUnknown_846317C[]; extern const u8 gUnknown_8416703[]; void sub_81317F8(u8 a0, void (* a1)(void), u8 a2) @@ -183,7 +197,7 @@ bool8 sub_81318C0(void) gMain.state++; break; case 9: - sub_809A5E4(&gUnknown_20398A4); + sub_809A5E4(&gBagPockets[POCKET_TM_CASE - 1]); gMain.state++; break; case 10: @@ -307,14 +321,14 @@ bool8 sub_8131B20(void) void sub_8131C10(void) { - struct BagPocket * pocket = &gUnknown_20398A4; + struct BagPocket * pocket = &gBagPockets[POCKET_TM_CASE - 1]; gUnknown_203B124 = Alloc((pocket->capacity + 1) * sizeof(struct ListMenuItem)); gUnknown_203B128 = Alloc(gUnknown_203B118->unk_06 * 29); } void sub_8131C50(void) { - struct BagPocket * pocket = &gUnknown_20398A4; + struct BagPocket * pocket = &gBagPockets[POCKET_TM_CASE - 1]; u16 i; for (i = 0; i < gUnknown_203B118->unk_06; i++) @@ -366,3 +380,135 @@ void sub_8131D48(u8 * dest, u16 itemId) StringAppend(gStringVar4, gMoveNames[ItemIdToBattleMoveId(itemId)]); StringCopy(dest, gStringVar4); } + +void sub_8131E18(s32 itemIndex, bool8 onInit, struct ListMenu *list) +{ + u16 itemId; + + if (itemIndex == -2) + itemId = 0; + else + itemId = sub_809A798(POCKET_TM_CASE, itemIndex); + + if (onInit != TRUE) + { + PlaySE(SE_SELECT); + sub_81337E4(gUnknown_203B118->unk_04, itemId); + } + sub_8131F0C(itemIndex); + sub_8133444(itemId); +} + +void sub_8131E68(u8 windowId, s32 itemId, u8 y) +{ + if (itemId != -2) + { + if (!itemid_is_unique(sub_809A798(POCKET_TM_CASE, itemId))) + { + ConvertIntToDecimalStringN(gStringVar1, sub_809A7B4(POCKET_TM_CASE, itemId), STR_CONV_MODE_RIGHT_ALIGN, 3); + StringExpandPlaceholders(gStringVar4, gUnknown_84162B9); + sub_81332EC(windowId, 0, gStringVar4, 0x7E, y, 0, 0, 0xFF, 1); + } + else + { + sub_81335B0(windowId, 8, y); + } + } +} + +void sub_8131F0C(s32 itemIndex) +{ + const u8 * str; + if (itemIndex != -2) + { + str = ItemId_GetDescription(sub_809A798(POCKET_TM_CASE, itemIndex)); + } + else + { + str = gUnknown_84166E1; + } + FillWindowPixelBuffer(1, 0); + sub_81332EC(1, 2, str, 2, 3, 1, 0, 0, 0); +} + +void sub_8131F64(s32 a0) +{ + sub_80F6B08(2, 0, 12, 30, 8, 2 * a0 + 1); + schedule_bg_copy_tilemap_to_vram(2); +} + +void sub_8131F90(u8 a0, u8 a1) +{ + sub_8131FB0(ListMenuGetYCoordForPrintingArrowCursor(a0), a1); +} + +void sub_8131FB0(u8 a0, u8 a1) +{ + if (a1 == 0xFF) + { + FillWindowPixelRect(0, 0, 0, a0, GetFontAttribute(2, 0), GetFontAttribute(2, 1)); + CopyWindowToVram(0, 2); + } + else + { + sub_81332EC(0, 2, gFameCheckerText_ListMenuCursor, 0, a0, 0, 0, 0, a1); + } +} + +void sub_8132018(void) +{ + gUnknown_203B118->unk_08 = AddScrollIndicatorArrowPairParametrized(2, 0xA0, 0x08, 0x58, gUnknown_203B118->unk_06 - gUnknown_203B118->unk_05 + 1, 0x6E, 0x6E, &gUnknown_203B10C.unk_0a); +} + +void sub_8132054(void) +{ + gUnknown_203B118->unk_0a = 1; + gUnknown_203B118->unk_08 = AddScrollIndicatorArrowPairParametrized(2, 0x98, 0x48, 0x68, 2, 0x6E, 0x6E, &gUnknown_203B118->unk_0a); +} + +void sub_813208C(void) +{ + if (gUnknown_203B118->unk_08 != 0xFF) + { + RemoveScrollIndicatorArrowPair(gUnknown_203B118->unk_08); + gUnknown_203B118->unk_08 = 0xFF; + } +} + +void sub_81320AC(void) +{ + gUnknown_203B10C.unk_08 = 0; + gUnknown_203B10C.unk_0a = 0; +} + +void sub_81320BC(void) +{ + struct BagPocket * pocket = &gBagPockets[POCKET_TM_CASE - 1]; + u16 i; + + sub_809A584(pocket->itemSlots, pocket->capacity); + gUnknown_203B118->unk_06 = 0; + for (i = 0; i < pocket->capacity; i++) + { + if (pocket->itemSlots[i].itemId == ITEM_NONE) + break; + gUnknown_203B118->unk_06++; + } + gUnknown_203B118->unk_05 = min(gUnknown_203B118->unk_06 + 1, 5); +} + +void sub_8132120(void) +{ + if (gUnknown_203B10C.unk_0a != 0) + { + if (gUnknown_203B10C.unk_0a + gUnknown_203B118->unk_05 > gUnknown_203B118->unk_06 + 1) + gUnknown_203B10C.unk_0a = gUnknown_203B118->unk_06 + 1 - gUnknown_203B118->unk_05; + } + if (gUnknown_203B10C.unk_0a + gUnknown_203B10C.unk_08 >= gUnknown_203B118->unk_06 + 1) + { + if (gUnknown_203B118->unk_06 + 1 < 2) + gUnknown_203B10C.unk_08 = 0; + else + gUnknown_203B10C.unk_08 = gUnknown_203B118->unk_06; + } +} diff --git a/sym_ewram.txt b/sym_ewram.txt index 0d1a18e6d..4cfb317c0 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -971,14 +971,8 @@ gUnknown_2039884: @ 2039884 gUnknown_2039888: @ 2039888 .space 0x4 -gUnknown_203988C: @ 203988C - .space 0x18 - -gUnknown_20398A4: @ 20398A4 - .space 0x8 - -gUnknown_20398AC: @ 20398AC - .space 0x8 +gBagPockets: @ 203988C + .space 0x28 gUnknown_20398B4: @ 20398B4 .space 0x4 |