summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2019-04-14 15:59:22 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2019-04-14 15:59:22 -0400
commitef00905bd76a02a62ad0b69583b739c54599bd16 (patch)
tree5903b0e01b12a7eff84135a0521b3def2efee9f9
parented4b353795e27f362ad1abd5d31ec4bf5936b9dd (diff)
tm_case through sub_8132120
-rw-r--r--asm/berry_pouch.s8
-rw-r--r--asm/item.s54
-rw-r--r--asm/item_menu.s12
-rw-r--r--asm/tm_case.s451
-rw-r--r--include/item.h4
-rw-r--r--include/new_menu_helpers.h1
-rw-r--r--src/tm_case.c160
-rw-r--r--sym_ewram.txt10
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