Berry_pouch through sub_813D5BC
This commit is contained in:
@@ -5,557 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_813D1C0
|
||||
sub_813D1C0: @ 813D1C0
|
||||
push {r4,lr}
|
||||
ldr r4, _0813D1F0 @ =gUnknown_203F37C
|
||||
movs r0, 0xB0
|
||||
lsls r0, 1
|
||||
bl Alloc
|
||||
str r0, [r4]
|
||||
cmp r0, 0
|
||||
beq _0813D1FC
|
||||
ldr r4, _0813D1F4 @ =gUnknown_203F380
|
||||
ldr r0, _0813D1F8 @ =gUnknown_203F36C
|
||||
ldr r0, [r0]
|
||||
ldrb r1, [r0, 0x7]
|
||||
lsls r0, r1, 3
|
||||
subs r0, r1
|
||||
lsls r0, 2
|
||||
subs r0, r1
|
||||
bl Alloc
|
||||
str r0, [r4]
|
||||
cmp r0, 0
|
||||
beq _0813D1FC
|
||||
movs r0, 0x1
|
||||
b _0813D1FE
|
||||
.align 2, 0
|
||||
_0813D1F0: .4byte gUnknown_203F37C
|
||||
_0813D1F4: .4byte gUnknown_203F380
|
||||
_0813D1F8: .4byte gUnknown_203F36C
|
||||
_0813D1FC:
|
||||
movs r0, 0
|
||||
_0813D1FE:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_813D1C0
|
||||
|
||||
thumb_func_start sub_813D204
|
||||
sub_813D204: @ 813D204
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
ldr r0, _0813D280 @ =gBagPockets + 0x20
|
||||
mov r8, r0
|
||||
movs r6, 0
|
||||
ldr r0, _0813D284 @ =gUnknown_203F36C
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0x7]
|
||||
cmp r6, r0
|
||||
bcs _0813D254
|
||||
ldr r7, _0813D288 @ =gUnknown_203F380
|
||||
_0813D21C:
|
||||
lsls r5, r6, 3
|
||||
subs r4, r5, r6
|
||||
lsls r4, 2
|
||||
subs r4, r6
|
||||
ldr r0, [r7]
|
||||
adds r0, r4
|
||||
mov r1, r8
|
||||
ldr r2, [r1]
|
||||
lsls r1, r6, 2
|
||||
adds r1, r2
|
||||
ldrh r1, [r1]
|
||||
bl sub_813D31C
|
||||
ldr r0, _0813D28C @ =gUnknown_203F37C
|
||||
ldr r0, [r0]
|
||||
adds r5, r0
|
||||
ldr r0, [r7]
|
||||
adds r0, r4
|
||||
str r0, [r5]
|
||||
str r6, [r5, 0x4]
|
||||
adds r0, r6, 0x1
|
||||
lsls r0, 16
|
||||
lsrs r6, r0, 16
|
||||
ldr r0, _0813D284 @ =gUnknown_203F36C
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0x7]
|
||||
cmp r6, r0
|
||||
bcc _0813D21C
|
||||
_0813D254:
|
||||
ldr r0, _0813D28C @ =gUnknown_203F37C
|
||||
ldr r2, [r0]
|
||||
lsls r0, r6, 3
|
||||
adds r0, r2
|
||||
ldr r1, _0813D290 @ =gText_Close
|
||||
str r1, [r0]
|
||||
str r6, [r0, 0x4]
|
||||
ldr r1, _0813D294 @ =gMultiuseListMenuTemplate
|
||||
str r2, [r1]
|
||||
ldr r0, _0813D298 @ =gUnknown_203F370
|
||||
ldrb r0, [r0, 0x4]
|
||||
adds r5, r1, 0
|
||||
cmp r0, 0x5
|
||||
beq _0813D29C
|
||||
ldr r1, _0813D284 @ =gUnknown_203F36C
|
||||
ldr r0, [r1]
|
||||
ldrb r0, [r0, 0x7]
|
||||
adds r0, 0x1
|
||||
strh r0, [r5, 0xC]
|
||||
adds r2, r1, 0
|
||||
b _0813D2A6
|
||||
.align 2, 0
|
||||
_0813D280: .4byte gBagPockets + 0x20
|
||||
_0813D284: .4byte gUnknown_203F36C
|
||||
_0813D288: .4byte gUnknown_203F380
|
||||
_0813D28C: .4byte gUnknown_203F37C
|
||||
_0813D290: .4byte gText_Close
|
||||
_0813D294: .4byte gMultiuseListMenuTemplate
|
||||
_0813D298: .4byte gUnknown_203F370
|
||||
_0813D29C:
|
||||
ldr r0, _0813D310 @ =gUnknown_203F36C
|
||||
ldr r1, [r0]
|
||||
ldrb r1, [r1, 0x7]
|
||||
strh r1, [r5, 0xC]
|
||||
adds r2, r0, 0
|
||||
_0813D2A6:
|
||||
movs r0, 0
|
||||
strb r0, [r5, 0x10]
|
||||
strb r0, [r5, 0x11]
|
||||
movs r0, 0x9
|
||||
strb r0, [r5, 0x12]
|
||||
movs r0, 0x1
|
||||
strb r0, [r5, 0x13]
|
||||
ldrb r0, [r5, 0x16]
|
||||
movs r3, 0x8
|
||||
negs r3, r3
|
||||
ands r3, r0
|
||||
movs r0, 0x39
|
||||
negs r0, r0
|
||||
ands r3, r0
|
||||
movs r0, 0x10
|
||||
orrs r3, r0
|
||||
strb r3, [r5, 0x16]
|
||||
ldrb r1, [r5, 0x14]
|
||||
movs r0, 0x10
|
||||
negs r0, r0
|
||||
ands r0, r1
|
||||
movs r4, 0x2
|
||||
orrs r0, r4
|
||||
strb r0, [r5, 0x14]
|
||||
ldr r1, [r2]
|
||||
ldrb r1, [r1, 0x8]
|
||||
strh r1, [r5, 0xE]
|
||||
ldrb r1, [r5, 0x17]
|
||||
movs r2, 0x40
|
||||
negs r2, r2
|
||||
ands r2, r1
|
||||
orrs r2, r4
|
||||
movs r1, 0xF
|
||||
ands r0, r1
|
||||
movs r1, 0x20
|
||||
orrs r0, r1
|
||||
strb r0, [r5, 0x14]
|
||||
movs r0, 0x30
|
||||
strb r0, [r5, 0x15]
|
||||
ldr r0, _0813D314 @ =sub_813D3C0
|
||||
str r0, [r5, 0x4]
|
||||
ldr r0, _0813D318 @ =sub_813D430
|
||||
str r0, [r5, 0x8]
|
||||
movs r0, 0x3F
|
||||
ands r2, r0
|
||||
strb r2, [r5, 0x17]
|
||||
ands r3, r0
|
||||
strb r3, [r5, 0x16]
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0813D310: .4byte gUnknown_203F36C
|
||||
_0813D314: .4byte sub_813D3C0
|
||||
_0813D318: .4byte sub_813D430
|
||||
thumb_func_end sub_813D204
|
||||
|
||||
thumb_func_start sub_813D31C
|
||||
sub_813D31C: @ 813D31C
|
||||
push {r4-r6,lr}
|
||||
mov r6, r8
|
||||
push {r6}
|
||||
mov r8, r0
|
||||
lsls r5, r1, 16
|
||||
lsrs r5, 16
|
||||
ldr r4, _0813D384 @ =gStringVar4
|
||||
ldr r1, _0813D388 @ =gText_FontSize0
|
||||
adds r0, r4, 0
|
||||
bl StringCopy
|
||||
ldr r1, _0813D38C @ =gOtherText_UnkF9_08_Clear_01
|
||||
adds r0, r4, 0
|
||||
bl StringAppend
|
||||
ldr r6, _0813D390 @ =gStringVar1
|
||||
adds r1, r5, 0
|
||||
subs r1, 0x84
|
||||
adds r0, r6, 0
|
||||
movs r2, 0x2
|
||||
movs r3, 0x2
|
||||
bl ConvertIntToDecimalStringN
|
||||
adds r0, r4, 0
|
||||
adds r1, r6, 0
|
||||
bl StringAppend
|
||||
adds r0, r5, 0
|
||||
adds r1, r6, 0
|
||||
bl CopyItemName
|
||||
ldr r1, _0813D394 @ =gUnknown_84643B4
|
||||
adds r0, r4, 0
|
||||
bl StringAppend
|
||||
ldr r1, _0813D398 @ =gText_FontSize2
|
||||
adds r0, r4, 0
|
||||
bl StringAppend
|
||||
adds r0, r4, 0
|
||||
adds r1, r6, 0
|
||||
bl StringAppend
|
||||
mov r0, r8
|
||||
adds r1, r4, 0
|
||||
bl StringCopy
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0813D384: .4byte gStringVar4
|
||||
_0813D388: .4byte gText_FontSize0
|
||||
_0813D38C: .4byte gOtherText_UnkF9_08_Clear_01
|
||||
_0813D390: .4byte gStringVar1
|
||||
_0813D394: .4byte gUnknown_84643B4
|
||||
_0813D398: .4byte gText_FontSize2
|
||||
thumb_func_end sub_813D31C
|
||||
|
||||
thumb_func_start sub_813D39C
|
||||
sub_813D39C: @ 813D39C
|
||||
push {lr}
|
||||
adds r3, r1, 0
|
||||
ldr r1, _0813D3BC @ =gUnknown_203F380
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
lsls r2, r0, 3
|
||||
subs r2, r0
|
||||
lsls r2, 2
|
||||
subs r2, r0
|
||||
ldr r1, [r1]
|
||||
adds r1, r2
|
||||
adds r0, r3, 0
|
||||
bl StringCopy
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0813D3BC: .4byte gUnknown_203F380
|
||||
thumb_func_end sub_813D39C
|
||||
|
||||
thumb_func_start sub_813D3C0
|
||||
sub_813D3C0: @ 813D3C0
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
cmp r1, 0x1
|
||||
beq _0813D3D6
|
||||
movs r0, 0xF5
|
||||
bl PlaySE
|
||||
bl sub_813EC28
|
||||
_0813D3D6:
|
||||
ldr r4, _0813D404 @ =gUnknown_203F36C
|
||||
ldr r0, [r4]
|
||||
ldrb r1, [r0, 0x9]
|
||||
movs r0, 0x1
|
||||
eors r0, r1
|
||||
bl DestroyItemMenuIcon
|
||||
ldr r1, [r4]
|
||||
ldrb r0, [r1, 0x7]
|
||||
cmp r0, r5
|
||||
beq _0813D408
|
||||
lsls r1, r5, 16
|
||||
lsrs r1, 16
|
||||
movs r0, 0x5
|
||||
bl BagGetItemIdByPocketPosition
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
ldr r1, [r4]
|
||||
ldrb r1, [r1, 0x9]
|
||||
bl sub_80989A0
|
||||
b _0813D410
|
||||
.align 2, 0
|
||||
_0813D404: .4byte gUnknown_203F36C
|
||||
_0813D408:
|
||||
ldr r0, _0813D428 @ =0x00000177
|
||||
ldrb r1, [r1, 0x9]
|
||||
bl sub_80989A0
|
||||
_0813D410:
|
||||
ldr r0, _0813D42C @ =gUnknown_203F36C
|
||||
ldr r2, [r0]
|
||||
ldrb r0, [r2, 0x9]
|
||||
movs r1, 0x1
|
||||
eors r0, r1
|
||||
strb r0, [r2, 0x9]
|
||||
adds r0, r5, 0
|
||||
bl sub_813D538
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0813D428: .4byte 0x00000177
|
||||
_0813D42C: .4byte gUnknown_203F36C
|
||||
thumb_func_end sub_813D3C0
|
||||
|
||||
thumb_func_start sub_813D430
|
||||
sub_813D430: @ 813D430
|
||||
push {r4-r6,lr}
|
||||
sub sp, 0x14
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
lsls r2, 24
|
||||
lsrs r5, r2, 24
|
||||
movs r0, 0x2
|
||||
negs r0, r0
|
||||
cmp r1, r0
|
||||
beq _0813D498
|
||||
ldr r0, _0813D4A0 @ =gUnknown_203F36C
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0x7]
|
||||
cmp r0, r1
|
||||
beq _0813D498
|
||||
lsls r4, r1, 16
|
||||
lsrs r4, 16
|
||||
movs r0, 0x5
|
||||
adds r1, r4, 0
|
||||
bl BagGetItemIdByPocketPosition
|
||||
movs r0, 0x5
|
||||
adds r1, r4, 0
|
||||
bl BagGetQuantityByPocketPosition
|
||||
adds r1, r0, 0
|
||||
lsls r1, 16
|
||||
lsrs r1, 16
|
||||
ldr r0, _0813D4A4 @ =gStringVar1
|
||||
movs r2, 0x1
|
||||
movs r3, 0x3
|
||||
bl ConvertIntToDecimalStringN
|
||||
ldr r4, _0813D4A8 @ =gStringVar4
|
||||
ldr r1, _0813D4AC @ =gText_TimesStrVar1
|
||||
adds r0, r4, 0
|
||||
bl StringExpandPlaceholders
|
||||
str r5, [sp]
|
||||
movs r0, 0
|
||||
str r0, [sp, 0x4]
|
||||
str r0, [sp, 0x8]
|
||||
movs r0, 0xFF
|
||||
str r0, [sp, 0xC]
|
||||
movs r0, 0x1
|
||||
str r0, [sp, 0x10]
|
||||
adds r0, r6, 0
|
||||
movs r1, 0
|
||||
adds r2, r4, 0
|
||||
movs r3, 0x6E
|
||||
bl sub_813E9A0
|
||||
_0813D498:
|
||||
add sp, 0x14
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0813D4A0: .4byte gUnknown_203F36C
|
||||
_0813D4A4: .4byte gStringVar1
|
||||
_0813D4A8: .4byte gStringVar4
|
||||
_0813D4AC: .4byte gText_TimesStrVar1
|
||||
thumb_func_end sub_813D430
|
||||
|
||||
thumb_func_start sub_813D4B0
|
||||
sub_813D4B0: @ 813D4B0
|
||||
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_813D4D0
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_813D4B0
|
||||
|
||||
thumb_func_start sub_813D4D0
|
||||
sub_813D4D0: @ 813D4D0
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x14
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
cmp r1, 0xFF
|
||||
bne _0813D514
|
||||
movs r0, 0x2
|
||||
movs r1, 0
|
||||
bl GetMenuCursorDimensionByFont
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
movs r0, 0x2
|
||||
movs r1, 0x1
|
||||
bl GetMenuCursorDimensionByFont
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
str r4, [sp]
|
||||
str r0, [sp, 0x4]
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
movs r2, 0x1
|
||||
adds r3, r5, 0
|
||||
bl FillWindowPixelRect
|
||||
movs r0, 0
|
||||
movs r1, 0x2
|
||||
bl CopyWindowToVram
|
||||
b _0813D52A
|
||||
_0813D514:
|
||||
ldr r2, _0813D534 @ =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, 0x1
|
||||
bl sub_813E9A0
|
||||
_0813D52A:
|
||||
add sp, 0x14
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0813D534: .4byte gFameCheckerText_ListMenuCursor
|
||||
thumb_func_end sub_813D4D0
|
||||
|
||||
thumb_func_start sub_813D538
|
||||
sub_813D538: @ 813D538
|
||||
push {r4,lr}
|
||||
sub sp, 0x14
|
||||
adds r1, r0, 0
|
||||
ldr r0, _0813D560 @ =gUnknown_203F36C
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0x7]
|
||||
cmp r1, r0
|
||||
beq _0813D564
|
||||
lsls r1, 16
|
||||
lsrs r1, 16
|
||||
movs r0, 0x5
|
||||
bl BagGetItemIdByPocketPosition
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
bl ItemId_GetDescription
|
||||
adds r4, r0, 0
|
||||
b _0813D566
|
||||
.align 2, 0
|
||||
_0813D560: .4byte gUnknown_203F36C
|
||||
_0813D564:
|
||||
ldr r4, _0813D590 @ =gUnknown_8416716
|
||||
_0813D566:
|
||||
movs r0, 0x1
|
||||
movs r1, 0
|
||||
bl FillWindowPixelBuffer
|
||||
movs r0, 0x2
|
||||
str r0, [sp]
|
||||
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, 0
|
||||
bl sub_813E9A0
|
||||
add sp, 0x14
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0813D590: .4byte gUnknown_8416716
|
||||
thumb_func_end sub_813D538
|
||||
|
||||
thumb_func_start sub_813D594
|
||||
sub_813D594: @ 813D594
|
||||
push {lr}
|
||||
sub sp, 0x8
|
||||
movs r1, 0x4
|
||||
str r1, [sp]
|
||||
adds r0, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
str r0, [sp, 0x4]
|
||||
movs r0, 0x1
|
||||
movs r1, 0
|
||||
movs r2, 0x10
|
||||
movs r3, 0x1E
|
||||
bl SetBgRectPal
|
||||
movs r0, 0x1
|
||||
bl ScheduleBgCopyTilemapToVram
|
||||
add sp, 0x8
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_813D594
|
||||
|
||||
thumb_func_start sub_813D5BC
|
||||
sub_813D5BC: @ 813D5BC
|
||||
push {r4,lr}
|
||||
sub sp, 0x10
|
||||
ldr r2, _0813D5D8 @ =gUnknown_203F370
|
||||
ldrb r0, [r2, 0x4]
|
||||
cmp r0, 0x5
|
||||
beq _0813D5E0
|
||||
ldr r4, _0813D5DC @ =gUnknown_203F36C
|
||||
ldr r1, [r4]
|
||||
ldrb r0, [r1, 0x7]
|
||||
ldrb r1, [r1, 0x8]
|
||||
subs r0, r1
|
||||
adds r0, 0x1
|
||||
b _0813D5EA
|
||||
.align 2, 0
|
||||
_0813D5D8: .4byte gUnknown_203F370
|
||||
_0813D5DC: .4byte gUnknown_203F36C
|
||||
_0813D5E0:
|
||||
ldr r4, _0813D610 @ =gUnknown_203F36C
|
||||
ldr r1, [r4]
|
||||
ldrb r0, [r1, 0x7]
|
||||
ldrb r1, [r1, 0x8]
|
||||
subs r0, r1
|
||||
_0813D5EA:
|
||||
str r0, [sp]
|
||||
movs r0, 0x6E
|
||||
str r0, [sp, 0x4]
|
||||
str r0, [sp, 0x8]
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xA
|
||||
str r0, [sp, 0xC]
|
||||
movs r0, 0x2
|
||||
movs r1, 0xA0
|
||||
movs r2, 0x8
|
||||
movs r3, 0x78
|
||||
bl AddScrollIndicatorArrowPairParameterized
|
||||
ldr r1, [r4]
|
||||
strb r0, [r1, 0x6]
|
||||
add sp, 0x10
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0813D610: .4byte gUnknown_203F36C
|
||||
thumb_func_end sub_813D5BC
|
||||
|
||||
thumb_func_start sub_813D614
|
||||
sub_813D614: @ 813D614
|
||||
push {r4,lr}
|
||||
|
||||
BIN
Binary file not shown.
+2
-1
@@ -28,8 +28,9 @@ gUnknown_84643B0:: @ 84643B0
|
||||
.incbin "baserom.gba", 0x4643B0, 0x4
|
||||
|
||||
gUnknown_84643B4:: @ 84643B4
|
||||
.incbin "baserom.gba", 0x4643B4, 0x4
|
||||
.string " $"
|
||||
|
||||
.align 2
|
||||
gUnknown_84643B8:: @ 84643B8
|
||||
.incbin "baserom.gba", 0x4643B8, 0x20
|
||||
|
||||
|
||||
@@ -315,4 +315,7 @@ extern const u8 gCreditsString_The_Royal_New_Zealand_Foundation_of_the_Blind_Gre
|
||||
extern const u8 gCreditsString_Graphic_Designer[];
|
||||
extern const u8 gCreditsString_Akira_Kinashi[];
|
||||
|
||||
// berry_pouch
|
||||
extern const u8 gUnknown_8416716[];
|
||||
|
||||
#endif //GUARD_STRINGS_H
|
||||
|
||||
+161
-1
@@ -13,14 +13,22 @@
|
||||
#include "item_menu_icons.h"
|
||||
#include "list_menu.h"
|
||||
#include "graphics.h"
|
||||
#include "berry.h"
|
||||
#include "item.h"
|
||||
#include "strings.h"
|
||||
#include "string_util.h"
|
||||
#include "sound.h"
|
||||
#include "menu_indicators.h"
|
||||
#include "constants/items.h"
|
||||
#include "constants/songs.h"
|
||||
|
||||
struct BerryPouchStruct_203F36C
|
||||
{
|
||||
u32 unk_000;
|
||||
u8 filler_004[2];
|
||||
u8 unk_006;
|
||||
u8 filler_007[2];
|
||||
u8 unk_007;
|
||||
u8 unk_008;
|
||||
u8 unk_009;
|
||||
u8 filler_00a[2];
|
||||
u8 unk_00C[BG_SCREEN_SIZE];
|
||||
@@ -39,6 +47,8 @@ struct BerryPouchStruct_203F370
|
||||
|
||||
EWRAM_DATA struct BerryPouchStruct_203F36C *gUnknown_203F36C = NULL;
|
||||
EWRAM_DATA struct BerryPouchStruct_203F370 gUnknown_203F370 = {};
|
||||
EWRAM_DATA struct ListMenuItem *gUnknown_203F37C = NULL;
|
||||
EWRAM_DATA u8 *gUnknown_203F380 = NULL;
|
||||
|
||||
void sub_813CE30(void);
|
||||
bool8 sub_813CE5C(void);
|
||||
@@ -48,6 +58,11 @@ void sub_813D07C(void);
|
||||
bool8 sub_813D0E4(void);
|
||||
bool8 sub_813D1C0(void);
|
||||
void sub_813D204(void);
|
||||
void sub_813D31C(u8 * dest, u16 itemId);
|
||||
void sub_813D3C0(s32 itemIndex, bool8 onInit, struct ListMenu *list);
|
||||
void sub_813D430(u8 windowId, s32 itemId, u8 y);
|
||||
void sub_813D4D0(u8 y, u8 colorIdx);
|
||||
void sub_813D538(s32 itemIndex);
|
||||
void sub_813D5BC(void);
|
||||
void sub_813D6A4(void);
|
||||
void sub_813D6F4(void);
|
||||
@@ -55,7 +70,9 @@ void sub_813D754(void);
|
||||
void sub_813D7CC(void);
|
||||
void sub_813D8AC(void);
|
||||
void sub_813DA68(u8 taskId);
|
||||
void sub_813EC28(void);
|
||||
void sub_813E910(void);
|
||||
void sub_813E9A0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx);
|
||||
void sub_813EC08(void);
|
||||
|
||||
static const struct BgTemplate gUnknown_846434C[] = {
|
||||
@@ -86,6 +103,8 @@ static const struct BgTemplate gUnknown_846434C[] = {
|
||||
}
|
||||
};
|
||||
|
||||
extern const u8 gUnknown_84643B4[];
|
||||
|
||||
extern const struct CompressedSpriteSheet gUnknown_84644A8;
|
||||
extern const struct CompressedSpritePalette gUnknown_84644B0;
|
||||
|
||||
@@ -315,3 +334,144 @@ bool8 sub_813D0E4(void)
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 sub_813D1C0(void)
|
||||
{
|
||||
gUnknown_203F37C = Alloc(NUM_BERRIES * sizeof(struct ListMenuItem));
|
||||
if (gUnknown_203F37C == NULL)
|
||||
return FALSE;
|
||||
gUnknown_203F380 = Alloc(gUnknown_203F36C->unk_007 * 27);
|
||||
if (gUnknown_203F380 == NULL)
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_813D204(void)
|
||||
{
|
||||
u16 i;
|
||||
struct BagPocket *pocket = &gBagPockets[POCKET_BERRY_POUCH - 1];
|
||||
for (i = 0; i < gUnknown_203F36C->unk_007; i++)
|
||||
{
|
||||
sub_813D31C(&gUnknown_203F380[i * 27], pocket->itemSlots[i].itemId);
|
||||
gUnknown_203F37C[i].label = &gUnknown_203F380[i * 27];
|
||||
gUnknown_203F37C[i].index = i;
|
||||
}
|
||||
gUnknown_203F37C[i].label = gText_Close;
|
||||
gUnknown_203F37C[i].index = i;
|
||||
gMultiuseListMenuTemplate.items = gUnknown_203F37C;
|
||||
if (gUnknown_203F370.unk_04 != 5)
|
||||
gMultiuseListMenuTemplate.totalItems = gUnknown_203F36C->unk_007 + 1;
|
||||
else
|
||||
gMultiuseListMenuTemplate.totalItems = gUnknown_203F36C->unk_007;
|
||||
gMultiuseListMenuTemplate.windowId = 0;
|
||||
gMultiuseListMenuTemplate.header_X = 0;
|
||||
gMultiuseListMenuTemplate.item_X = 9;
|
||||
gMultiuseListMenuTemplate.cursor_X = 1;
|
||||
gMultiuseListMenuTemplate.lettersSpacing = 0;
|
||||
gMultiuseListMenuTemplate.itemVerticalPadding = 2;
|
||||
gMultiuseListMenuTemplate.upText_Y = 2;
|
||||
gMultiuseListMenuTemplate.maxShowed = gUnknown_203F36C->unk_008;
|
||||
gMultiuseListMenuTemplate.fontId = 2;
|
||||
gMultiuseListMenuTemplate.cursorPal = 2;
|
||||
gMultiuseListMenuTemplate.fillValue = 0;
|
||||
gMultiuseListMenuTemplate.cursorShadowPal = 3;
|
||||
gMultiuseListMenuTemplate.moveCursorFunc = sub_813D3C0;
|
||||
gMultiuseListMenuTemplate.itemPrintFunc = sub_813D430;
|
||||
gMultiuseListMenuTemplate.cursorKind = 0;
|
||||
gMultiuseListMenuTemplate.scrollMultiple = 0;
|
||||
}
|
||||
|
||||
void sub_813D31C(u8 * dest, u16 itemId)
|
||||
{
|
||||
StringCopy(gStringVar4, gText_FontSize0);
|
||||
StringAppend(gStringVar4, gOtherText_UnkF9_08_Clear_01);
|
||||
ConvertIntToDecimalStringN(gStringVar1, itemId - FIRST_BERRY_INDEX + 1, STR_CONV_MODE_LEADING_ZEROS, 2);
|
||||
StringAppend(gStringVar4, gStringVar1);
|
||||
CopyItemName(itemId, gStringVar1);
|
||||
StringAppend(gStringVar4, gUnknown_84643B4);
|
||||
StringAppend(gStringVar4, gText_FontSize2);
|
||||
StringAppend(gStringVar4, gStringVar1);
|
||||
StringCopy(dest, gStringVar4);
|
||||
}
|
||||
|
||||
void sub_813D39C(s16 a0, u8 *dest)
|
||||
{
|
||||
StringCopy(dest, &gUnknown_203F380[a0 * 27]);
|
||||
}
|
||||
|
||||
void sub_813D3C0(s32 itemIndex, bool8 onInit, struct ListMenu *list)
|
||||
{
|
||||
if (onInit != TRUE)
|
||||
{
|
||||
PlaySE(SE_W287B);
|
||||
sub_813EC28();
|
||||
}
|
||||
DestroyItemMenuIcon(gUnknown_203F36C->unk_009 ^ 1);
|
||||
if (gUnknown_203F36C->unk_007 != itemIndex)
|
||||
sub_80989A0(BagGetItemIdByPocketPosition(POCKET_BERRY_POUCH, itemIndex), gUnknown_203F36C->unk_009);
|
||||
else
|
||||
sub_80989A0(ITEM_N_A, gUnknown_203F36C->unk_009);
|
||||
gUnknown_203F36C->unk_009 ^= 1;
|
||||
sub_813D538(itemIndex);
|
||||
}
|
||||
|
||||
void sub_813D430(u8 windowId, s32 itemId, u8 y)
|
||||
{
|
||||
u16 unused;
|
||||
u16 itemQuantity;
|
||||
if (itemId != -2 && gUnknown_203F36C->unk_007 != itemId)
|
||||
{
|
||||
unused = BagGetItemIdByPocketPosition(POCKET_BERRY_POUCH, itemId);
|
||||
itemQuantity = BagGetQuantityByPocketPosition(POCKET_BERRY_POUCH, itemId);
|
||||
ConvertIntToDecimalStringN(gStringVar1, itemQuantity, STR_CONV_MODE_RIGHT_ALIGN, 3);
|
||||
StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1);
|
||||
sub_813E9A0(windowId, 0, gStringVar4, 110, y, 0, 0, 0xFF, 1);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_813D4B0(u8 taskId, u8 colorIdx)
|
||||
{
|
||||
sub_813D4D0(ListMenuGetYCoordForPrintingArrowCursor(taskId), colorIdx);
|
||||
}
|
||||
|
||||
void sub_813D4D0(u8 y, u8 colorIdx)
|
||||
{
|
||||
u8 width;
|
||||
u8 height;
|
||||
if (colorIdx == 0xFF)
|
||||
{
|
||||
width = GetMenuCursorDimensionByFont(2, 0);
|
||||
height = GetMenuCursorDimensionByFont(2, 1);
|
||||
FillWindowPixelRect(0, 0, 1, y, width, height);
|
||||
CopyWindowToVram(0, 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_813E9A0(0, 2, gFameCheckerText_ListMenuCursor, 1, y, 0, 0, 0, colorIdx);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_813D538(s32 itemIdx)
|
||||
{
|
||||
const u8 *str;
|
||||
if (itemIdx != gUnknown_203F36C->unk_007)
|
||||
str = ItemId_GetDescription(BagGetItemIdByPocketPosition(POCKET_BERRY_POUCH, itemIdx));
|
||||
else
|
||||
str = gUnknown_8416716;
|
||||
FillWindowPixelBuffer(1, PIXEL_FILL(0));
|
||||
sub_813E9A0(1, 2, str, 0, 2, 2, 0, 0, 0);
|
||||
}
|
||||
|
||||
void sub_813D594(s32 pal)
|
||||
{
|
||||
SetBgRectPal(1, 0, 16, 30, 4, pal + 1);
|
||||
ScheduleBgCopyTilemapToVram(1);
|
||||
}
|
||||
|
||||
void sub_813D5BC(void)
|
||||
{
|
||||
if (gUnknown_203F370.unk_04 != 5)
|
||||
gUnknown_203F36C->unk_006 = AddScrollIndicatorArrowPairParameterized(2, 160, 8, 120, gUnknown_203F36C->unk_007 - gUnknown_203F36C->unk_008 + 1, 110, 110, &gUnknown_203F370.unk_0A);
|
||||
else
|
||||
gUnknown_203F36C->unk_006 = AddScrollIndicatorArrowPairParameterized(2, 160, 8, 120, gUnknown_203F36C->unk_007 - gUnknown_203F36C->unk_008, 110, 110, &gUnknown_203F370.unk_0A);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user