decompile ItemListMenu_ChangeDescription - sub_80A4F74

This commit is contained in:
camthesaxman
2017-07-09 00:40:28 -05:00
parent 4a9e027728
commit 55db40b330
4 changed files with 273 additions and 907 deletions

View File

@@ -6,908 +6,6 @@
.text
thumb_func_start ItemListMenu_ChangeDescription
ItemListMenu_ChangeDescription: @ 80A49AC
push {r4,r5,lr}
sub sp, 0x64
adds r4, r1, 0
lsls r0, 16
lsrs r5, r0, 16
ldr r1, _080A49E8 @ =gUnknown_03005D10
ldr r0, _080A49EC @ =gUnknown_02038559
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
lsls r0, 2
adds r0, r1
ldrb r1, [r0, 0x1]
ldrb r2, [r0]
adds r1, r2
ldrb r0, [r0, 0x2]
cmp r1, r0
bne _080A4A18
cmp r4, 0
bne _080A49F4
movs r0, 0
movs r1, 0xD
movs r2, 0xD
movs r3, 0x14
bl MenuZeroFillWindowRect
ldr r0, _080A49F0 @ =gOtherText_ReturnTo
movs r1, 0x4
movs r2, 0x68
b _080A4A08
.align 2, 0
_080A49E8: .4byte gUnknown_03005D10
_080A49EC: .4byte gUnknown_02038559
_080A49F0: .4byte gOtherText_ReturnTo
_080A49F4:
cmp r4, 0x1
bne _080A4A4C
ldr r1, _080A4A10 @ =gUnknown_0840E740
ldr r0, _080A4A14 @ =gUnknown_03000701
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0x4
movs r2, 0x78
_080A4A08:
movs r3, 0
bl MenuPrint_PixelCoords
b _080A4A4C
.align 2, 0
_080A4A10: .4byte gUnknown_0840E740
_080A4A14: .4byte gUnknown_03000701
_080A4A18:
cmp r4, 0
bne _080A4A28
movs r0, 0
movs r1, 0xD
movs r2, 0xD
movs r3, 0x14
bl MenuZeroFillWindowRect
_080A4A28:
lsls r1, r5, 16
asrs r1, 16
mov r0, sp
adds r2, r4, 0
bl ItemId_CopyDescription
cmp r0, 0
beq _080A4A4C
lsls r2, r4, 20
movs r0, 0xD0
lsls r0, 15
adds r2, r0
lsrs r2, 16
mov r0, sp
movs r1, 0x4
movs r3, 0
bl MenuPrint_PixelCoords
_080A4A4C:
add sp, 0x64
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end ItemListMenu_ChangeDescription
thumb_func_start sub_80A4A54
sub_80A4A54: @ 80A4A54
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r2, 0x1
adds r2, r1, 0
adds r1, r5, 0
_080A4A5E:
ldrb r3, [r2]
adds r0, r3, 0x2
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bhi _080A4A8A
subs r4, 0x1
cmp r4, 0
bne _080A4A78
movs r0, 0xFF
strb r0, [r1]
movs r0, 0x1
b _080A4A92
_080A4A78:
lsls r0, r3, 24
lsrs r0, 24
cmp r0, 0xFF
bne _080A4A84
movs r0, 0
b _080A4A92
_080A4A84:
adds r1, r5, 0
adds r2, 0x1
b _080A4A5E
_080A4A8A:
strb r3, [r1]
adds r2, 0x1
adds r1, 0x1
b _080A4A5E
_080A4A92:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80A4A54
thumb_func_start sub_80A4A98
sub_80A4A98: @ 80A4A98
push {r4,r5,lr}
sub sp, 0x64
adds r5, r0, 0
adds r4, r1, 0
cmp r4, 0
bne _080A4AB0
movs r0, 0
movs r1, 0xD
movs r2, 0xD
movs r3, 0x14
bl MenuZeroFillWindowRect
_080A4AB0:
mov r0, sp
adds r1, r5, 0
adds r2, r4, 0
bl sub_80A4A54
cmp r0, 0
beq _080A4AD2
lsls r2, r4, 20
movs r0, 0xD0
lsls r0, 15
adds r2, r0
lsrs r2, 16
mov r0, sp
movs r1, 0x4
movs r3, 0
bl MenuPrint_PixelCoords
_080A4AD2:
add sp, 0x64
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80A4A98
thumb_func_start sub_80A4ADC
sub_80A4ADC: @ 80A4ADC
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r2, _080A4B0C @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
movs r2, 0x1C
ldrsh r0, [r1, r2]
cmp r0, 0
bne _080A4AFA
movs r0, 0
bl sub_80A7528
_080A4AFA:
movs r0, 0x5
bl PlaySE
ldr r1, _080A4B10 @ =gUnknown_0203855C
movs r0, 0x1
strb r0, [r1]
pop {r0}
bx r0
.align 2, 0
_080A4B0C: .4byte gTasks
_080A4B10: .4byte gUnknown_0203855C
thumb_func_end sub_80A4ADC
thumb_func_start sub_80A4B14
sub_80A4B14: @ 80A4B14
push {r4,lr}
adds r4, r1, 0
lsls r0, 24
lsls r4, 24
lsrs r4, 24
ldr r2, _080A4B50 @ =gUnknown_03005D10
ldr r1, _080A4B54 @ =gUnknown_02038559
ldrb r1, [r1]
lsls r1, 24
asrs r1, 24
lsls r1, 2
adds r1, r2
lsrs r0, 24
ldrb r2, [r1, 0x1]
adds r0, r2
strb r0, [r1, 0x1]
movs r0, 0
bl MoveMenuCursor
bl sub_80A73C0
bl sub_80A763C
adds r0, r4, 0
bl sub_80A4ADC
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080A4B50: .4byte gUnknown_03005D10
_080A4B54: .4byte gUnknown_02038559
thumb_func_end sub_80A4B14
thumb_func_start sub_80A4B58
sub_80A4B58: @ 80A4B58
push {r4,lr}
adds r4, r1, 0
lsls r4, 24
lsrs r4, 24
lsls r0, 24
asrs r0, 24
bl MoveMenuCursor
ldr r2, _080A4B88 @ =gUnknown_03005D10
ldr r1, _080A4B8C @ =gUnknown_02038559
ldrb r1, [r1]
lsls r1, 24
asrs r1, 24
lsls r1, 2
adds r1, r2
strb r0, [r1]
bl sub_80A73C0
adds r0, r4, 0
bl sub_80A4ADC
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080A4B88: .4byte gUnknown_03005D10
_080A4B8C: .4byte gUnknown_02038559
thumb_func_end sub_80A4B58
thumb_func_start sub_80A4B90
sub_80A4B90: @ 80A4B90
push {r4,lr}
lsls r0, 16
lsrs r4, r0, 16
movs r0, 0x6
bl TestPlayerAvatarFlags
lsls r0, 24
cmp r0, 0
beq _080A4BBC
ldr r0, _080A4BB4 @ =0x00000103
cmp r4, r0
beq _080A4BAE
adds r0, 0xD
cmp r4, r0
bne _080A4BBC
_080A4BAE:
ldr r0, _080A4BB8 @ =gOtherText_Walk
b _080A4BE6
.align 2, 0
_080A4BB4: .4byte 0x00000103
_080A4BB8: .4byte gOtherText_Walk
_080A4BBC:
adds r0, r4, 0
bl ItemIsMail
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _080A4BE4
ldr r1, _080A4BDC @ =gUnknown_083C1640
ldr r0, _080A4BE0 @ =gUnknown_03000704
ldr r0, [r0]
ldrb r0, [r0]
lsls r0, 3
adds r0, r1
ldr r0, [r0]
b _080A4BE6
.align 2, 0
_080A4BDC: .4byte gUnknown_083C1640
_080A4BE0: .4byte gUnknown_03000704
_080A4BE4:
ldr r0, _080A4BEC @ =gOtherText_Check
_080A4BE6:
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080A4BEC: .4byte gOtherText_Check
thumb_func_end sub_80A4B90
thumb_func_start sub_80A4BF0
sub_80A4BF0: @ 80A4BF0
push {r4-r7,lr}
sub sp, 0x8
adds r5, r0, 0
ldr r7, _080A4C38 @ =gUnknown_02038564
ldrb r4, [r7]
cmp r4, 0x4
beq _080A4C00
b _080A4CF8
_080A4C00:
movs r0, 0
movs r1, 0x7
movs r2, 0xD
movs r3, 0xC
bl MenuDrawTextWindow
str r4, [sp]
adds r0, r5, 0
movs r1, 0x1
movs r2, 0x8
movs r3, 0xC
bl sub_80A4008
bl sub_80F9344
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080A4C40
ldr r0, _080A4C3C @ =gUnknown_03000701
ldrb r0, [r0]
cmp r0, 0x5
bne _080A4C40
movs r0, 0x1
movs r1, 0
bl sub_80A7834
b _080A4CA0
.align 2, 0
_080A4C38: .4byte gUnknown_02038564
_080A4C3C: .4byte gUnknown_03000701
_080A4C40:
movs r6, 0
ldr r0, _080A4C5C @ =gUnknown_02038564
ldrb r0, [r0]
cmp r6, r0
bcs _080A4CA0
ldr r4, _080A4C60 @ =gUnknown_083C1640
_080A4C4C:
cmp r6, 0
bne _080A4C68
ldr r0, _080A4C64 @ =gScriptItemId
ldrh r0, [r0]
bl sub_80A4B90
adds r3, r0, 0
b _080A4C76
.align 2, 0
_080A4C5C: .4byte gUnknown_02038564
_080A4C60: .4byte gUnknown_083C1640
_080A4C64: .4byte gScriptItemId
_080A4C68:
ldr r0, _080A4CC4 @ =gUnknown_03000704
ldr r0, [r0]
adds r0, r6
ldrb r0, [r0]
lsls r0, 3
adds r0, r4
ldr r3, [r0]
_080A4C76:
lsrs r0, r6, 1
lsls r1, r0, 1
adds r1, r0
lsls r1, 1
adds r1, 0x1
lsls r1, 24
lsrs r1, 24
movs r2, 0x1
ands r2, r6
lsls r2, 1
adds r2, 0x8
adds r0, r3, 0
bl MenuPrint
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
ldr r0, _080A4CC8 @ =gUnknown_02038564
ldrb r0, [r0]
cmp r6, r0
bcc _080A4C4C
_080A4CA0:
ldr r0, _080A4CCC @ =gUnknown_03000701
ldrb r0, [r0]
cmp r0, 0x5
bne _080A4CD4
ldr r0, _080A4CC8 @ =gUnknown_02038564
ldrb r3, [r0]
ldr r0, _080A4CD0 @ =gUnknown_03000700
ldrb r0, [r0]
str r0, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0x1
movs r2, 0x8
bl InitMenu
b _080A4CEA
.align 2, 0
_080A4CC4: .4byte gUnknown_03000704
_080A4CC8: .4byte gUnknown_02038564
_080A4CCC: .4byte gUnknown_03000701
_080A4CD0: .4byte gUnknown_03000700
_080A4CD4:
ldr r0, _080A4CF4 @ =gUnknown_02038564
ldrb r3, [r0]
movs r0, 0
str r0, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0x1
movs r2, 0x8
bl InitMenu
_080A4CEA:
movs r0, 0x2F
bl sub_8072DCC
b _080A4D8A
.align 2, 0
_080A4CF4: .4byte gUnknown_02038564
_080A4CF8:
movs r0, 0
movs r1, 0x5
movs r2, 0xD
movs r3, 0xC
bl MenuDrawTextWindow
movs r0, 0x6
str r0, [sp]
adds r0, r5, 0
movs r1, 0x1
movs r2, 0x6
movs r3, 0xC
bl sub_80A4008
movs r6, 0
ldrb r7, [r7]
cmp r6, r7
bcs _080A4D6E
ldr r7, _080A4D98 @ =gUnknown_083C1640
_080A4D1E:
ldr r0, _080A4D9C @ =gUnknown_03000704
ldr r0, [r0]
adds r0, r6
ldrb r0, [r0]
lsls r0, 3
adds r0, r7
ldr r5, [r0]
adds r0, r6, 0
movs r1, 0x3
bl __udivsi3
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 1
adds r4, r0
lsls r4, 1
adds r4, 0x1
lsls r4, 24
lsrs r4, 24
adds r0, r6, 0
movs r1, 0x3
bl __umodsi3
adds r2, r0, 0
lsls r2, 25
movs r0, 0xC0
lsls r0, 19
adds r2, r0
lsrs r2, 24
adds r0, r5, 0
adds r1, r4, 0
bl MenuPrint
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
ldr r0, _080A4DA0 @ =gUnknown_02038564
ldrb r0, [r0]
cmp r6, r0
bcc _080A4D1E
_080A4D6E:
ldr r0, _080A4DA0 @ =gUnknown_02038564
ldrb r3, [r0]
movs r0, 0
str r0, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0x1
movs r2, 0x6
bl InitMenu
movs r0, 0x2F
bl sub_8072DCC
_080A4D8A:
movs r0, 0x2
bl sub_80A7528
add sp, 0x8
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080A4D98: .4byte gUnknown_083C1640
_080A4D9C: .4byte gUnknown_03000704
_080A4DA0: .4byte gUnknown_02038564
thumb_func_end sub_80A4BF0
thumb_func_start sub_80A4DA4
sub_80A4DA4: @ 80A4DA4
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
bl sub_80A73FC
movs r0, 0x6
str r0, [sp]
adds r0, r4, 0
movs r1, 0
movs r2, 0x6
movs r3, 0xD
bl sub_80A36B8
movs r0, 0
movs r1, 0x5
movs r2, 0xD
movs r3, 0xC
bl MenuZeroFillWindowRect
bl sub_80A7590
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80A4DA4
thumb_func_start sub_80A4DD8
sub_80A4DD8: @ 80A4DD8
push {r4-r6,lr}
mov r6, r10
mov r5, r9
mov r4, r8
push {r4-r6}
sub sp, 0x4
adds r4, r1, 0
adds r1, r2, 0
adds r6, r3, 0
ldr r5, [sp, 0x20]
ldr r2, [sp, 0x24]
lsls r0, 24
lsrs r0, 24
lsls r4, 24
lsrs r4, 24
lsls r1, 24
lsrs r1, 24
lsls r6, 24
lsrs r6, 24
lsls r5, 24
lsrs r5, 24
lsls r2, 24
lsrs r2, 24
mov r10, r2
ldr r3, _080A4E84 @ =gTasks
lsls r2, r0, 2
adds r2, r0
lsls r2, 3
adds r2, r3
movs r0, 0x1
strh r0, [r2, 0xA]
adds r0, r4, 0x2
mov r9, r0
strh r0, [r2, 0xC]
adds r0, r1, 0x1
mov r8, r0
strh r0, [r2, 0xE]
adds r2, r4, r6
lsls r2, 24
lsrs r2, 24
adds r3, r1, r5
lsls r3, 24
lsrs r3, 24
adds r0, r4, 0
bl MenuDrawTextWindow
ldr r0, _080A4E88 @ =gBGTilemapBuffers + 0x800
adds r4, 0x1
lsls r4, 24
lsrs r4, 24
mov r1, r8
lsls r1, 24
lsrs r1, 24
mov r8, r1
subs r6, 0x1
lsls r6, 24
lsrs r6, 24
subs r5, 0x1
lsls r5, 24
lsrs r5, 24
str r5, [sp]
adds r1, r4, 0
mov r2, r8
adds r3, r6, 0
bl sub_80A4008
mov r2, r9
lsls r2, 24
lsrs r2, 24
mov r9, r2
mov r0, r10
str r0, [sp]
movs r0, 0x1
movs r1, 0x1
mov r3, r8
bl sub_80A418C
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080A4E84: .4byte gTasks
_080A4E88: .4byte gBGTilemapBuffers + 0x800
thumb_func_end sub_80A4DD8
thumb_func_start sub_80A4E8C
sub_80A4E8C: @ 80A4E8C
push {r4-r6,lr}
adds r4, r0, 0
adds r6, r1, 0
lsls r4, 24
lsrs r4, 24
lsls r6, 24
lsrs r6, 24
movs r0, 0x5
bl PlaySE
movs r0, 0
movs r1, 0x1
bl sub_80F979C
movs r0, 0x1
movs r1, 0x1
bl sub_80F979C
movs r0, 0x2
movs r1, 0x1
bl sub_80F979C
movs r0, 0x3
movs r1, 0x1
bl sub_80F979C
movs r0, 0
bl PauseVerticalScrollIndicator
movs r0, 0x1
bl PauseVerticalScrollIndicator
movs r0, 0x2
bl PauseVerticalScrollIndicator
movs r0, 0x3
bl PauseVerticalScrollIndicator
ldr r5, _080A4F04 @ =gBGTilemapBuffers + 0x1000
lsls r4, 24
asrs r4, 24
adds r0, r5, 0
adds r1, r4, 0
bl sub_80A3B04
ldr r0, _080A4F08 @ =gUnknown_02038559
ldrb r1, [r0]
adds r0, r5, 0
bl sub_80A3AC0
bl sub_80A3770
bl sub_80A7C64
adds r0, r6, 0
bl CreateBagPokeballSprite
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080A4F04: .4byte gBGTilemapBuffers + 0x1000
_080A4F08: .4byte gUnknown_02038559
thumb_func_end sub_80A4E8C
thumb_func_start sub_80A4F0C
sub_80A4F0C: @ 80A4F0C
push {r4,lr}
ldr r0, _080A4F38 @ =gUnknown_03000701
ldrb r0, [r0]
subs r0, 0x4
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bls _080A4F60
ldr r4, _080A4F3C @ =gMain
ldrh r0, [r4, 0x2E]
cmp r0, 0x10
beq _080A4F30
bl sub_80F9284
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _080A4F40
_080A4F30:
movs r0, 0x1
movs r1, 0x2
b _080A4F58
.align 2, 0
_080A4F38: .4byte gUnknown_03000701
_080A4F3C: .4byte gMain
_080A4F40:
ldrh r0, [r4, 0x2E]
cmp r0, 0x20
beq _080A4F52
bl sub_80F9284
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080A4F60
_080A4F52:
movs r0, 0x1
negs r0, r0
movs r1, 0x1
_080A4F58:
bl sub_80A4E8C
movs r0, 0x1
b _080A4F62
_080A4F60:
movs r0, 0
_080A4F62:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80A4F0C
thumb_func_start sub_80A4F68
sub_80A4F68: @ 80A4F68
push {lr}
bl sub_80A4F0C
pop {r0}
bx r0
thumb_func_end sub_80A4F68
thumb_func_start sub_80A4F74
sub_80A4F74: @ 80A4F74
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
adds r2, r4, 0
movs r5, 0
ldr r0, _080A4FAC @ =gMain
ldrh r0, [r0, 0x30]
movs r1, 0xF0
ands r1, r0
cmp r1, 0x40
bne _080A4FE8
ldr r1, _080A4FB0 @ =gUnknown_03005D10
ldr r0, _080A4FB4 @ =gUnknown_02038559
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
lsls r0, 2
adds r1, r0, r1
ldrb r0, [r1]
cmp r0, 0
beq _080A4FB8
movs r0, 0x1
negs r0, r0
adds r1, r4, 0
bl sub_80A4B58
b _080A4FC8
.align 2, 0
_080A4FAC: .4byte gMain
_080A4FB0: .4byte gUnknown_03005D10
_080A4FB4: .4byte gUnknown_02038559
_080A4FB8:
ldrb r0, [r1, 0x1]
cmp r0, 0
beq _080A4FC8
movs r0, 0x1
negs r0, r0
adds r1, r4, 0
bl sub_80A4B14
_080A4FC8:
ldr r0, _080A4FE0 @ =gLinkOpen
ldrb r0, [r0]
cmp r0, 0x1
bne _080A50AE
ldr r1, _080A4FE4 @ =gMain
ldrh r0, [r1, 0x32]
cmp r0, 0x5
bne _080A50AE
movs r0, 0xB
strh r0, [r1, 0x32]
b _080A50AE
.align 2, 0
_080A4FE0: .4byte gLinkOpen
_080A4FE4: .4byte gMain
_080A4FE8:
cmp r1, 0x80
bne _080A5088
ldr r0, _080A5020 @ =gUnknown_03000701
ldrb r0, [r0]
cmp r0, 0x5
beq _080A502C
ldr r1, _080A5024 @ =gUnknown_03005D10
ldr r0, _080A5028 @ =gUnknown_02038559
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
lsls r0, 2
adds r2, r0, r1
ldrb r0, [r2]
ldrb r1, [r2, 0x3]
cmp r0, r1
bne _080A504E
ldrb r0, [r2, 0x1]
ldrb r1, [r2]
adds r0, r1
ldrb r2, [r2, 0x2]
cmp r0, r2
beq _080A5068
movs r0, 0x1
adds r1, r4, 0
bl sub_80A4B14
b _080A5068
.align 2, 0
_080A5020: .4byte gUnknown_03000701
_080A5024: .4byte gUnknown_03005D10
_080A5028: .4byte gUnknown_02038559
_080A502C:
ldr r1, _080A5058 @ =gUnknown_03005D10
ldr r0, _080A505C @ =gUnknown_02038559
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
lsls r0, 2
adds r2, r0, r1
ldrb r1, [r2, 0x1]
ldrb r3, [r2]
adds r1, r3
ldrb r0, [r2, 0x2]
subs r0, 0x1
cmp r1, r0
beq _080A5068
ldrb r2, [r2, 0x3]
cmp r3, r2
beq _080A5060
_080A504E:
movs r0, 0x1
adds r1, r4, 0
bl sub_80A4B58
b _080A5068
.align 2, 0
_080A5058: .4byte gUnknown_03005D10
_080A505C: .4byte gUnknown_02038559
_080A5060:
movs r0, 0x1
adds r1, r4, 0
bl sub_80A4B14
_080A5068:
movs r5, 0x1
ldr r0, _080A5080 @ =gLinkOpen
ldrb r0, [r0]
cmp r0, 0x1
bne _080A50C0
ldr r1, _080A5084 @ =gMain
ldrh r0, [r1, 0x32]
cmp r0, 0x5
bne _080A50C0
movs r0, 0xB
strh r0, [r1, 0x32]
b _080A50C0
.align 2, 0
_080A5080: .4byte gLinkOpen
_080A5084: .4byte gMain
_080A5088:
ldr r0, _080A50B4 @ =gTasks
lsls r1, r2, 2
adds r1, r2
lsls r1, 3
adds r4, r1, r0
movs r1, 0x1C
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080A50BC
bl sub_80A4F0C
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080A50BC
bl sub_80A73F0
ldr r0, _080A50B8 @ =sub_80A4F68
str r0, [r4]
_080A50AE:
movs r5, 0x1
b _080A50C0
.align 2, 0
_080A50B4: .4byte gTasks
_080A50B8: .4byte sub_80A4F68
_080A50BC:
bl sub_80A73C0
_080A50C0:
adds r0, r5, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80A4F74
thumb_func_start sub_80A50C8
sub_80A50C8: @ 80A50C8
push {r4-r7,lr}

View File

@@ -51,7 +51,7 @@ u16 ItemId_GetPrice(u16 itemId);
u8 ItemId_GetHoldEffect(u16 itemId);
u8 ItemId_GetHoldEffectParam(u16 itemId);
u8 *ItemId_GetDescription(u16 itemId);
bool8 ItemId_CopyDescription(u8 *a, u32 itemId, u32 c);
bool32 ItemId_CopyDescription(u8 *a, u32 itemId, u32 c);
u8 ItemId_GetImportance(u16 itemId);
u8 ItemId_GetUnknownValue(u16 itemId);
u8 ItemId_GetPocket(u16 itemId);

View File

@@ -587,7 +587,7 @@ u8 *ItemId_GetDescription(u16 itemId)
return gItems[SanitizeItemId(itemId)].description;
}
bool8 ItemId_CopyDescription(u8 *a, u32 itemId, u32 c)
bool32 ItemId_CopyDescription(u8 *a, u32 itemId, u32 c)
{
u32 r5 = c + 1;
u8 *description = gItems[SanitizeItemId(itemId)].description;

View File

@@ -1,8 +1,12 @@
#include "global.h"
#include "data2.h"
#include "decompress.h"
#include "field_player_avatar.h"
#include "graphics.h"
#include "item.h"
#include "items.h"
#include "item_use.h"
#include "mail_data.h"
#include "main.h"
#include "menu.h"
#include "menu_helpers.h"
@@ -48,6 +52,8 @@ extern void gpu_pal_allocator_reset__manage_upper_four(void);
extern void sub_80F9020(void);
extern void sub_80F9988();
extern void sub_809D104(u16 *, u16, u16, const u8 *, u16, u16, u16, u16);
extern void PauseVerticalScrollIndicator();
extern u8 sub_80F9284(void);
extern const struct CompressedSpriteSheet gUnknown_083C1CC8;
extern const struct CompressedSpriteSheet gUnknown_083C1CD0;
@@ -114,10 +120,13 @@ void sub_80A3D40(void);
void sub_80A40D0(void);
void sub_80A48E8(u16, int, int);
void ItemListMenu_InitDescription(s16);
void ItemListMenu_ChangeDescription();
void ItemListMenu_ChangeDescription(s16, int);
void sub_80A4F68(u8);
void sub_80A50C8(u8);
void ItemListMenu_InitMenu(void);
void sub_80A73C0(void);
void sub_80A73F0(void);
void sub_80A73FC(void);
void sub_80A740C(void);
void sub_80A751C(void);
void sub_80A7528();
@@ -127,9 +136,11 @@ void sub_80A763C(void);
void sub_80A76A0(void);
void sub_80A770C(void);
void sub_80A7828(void);
void sub_80A7834();
void sub_80A78B8(void);
void CreateBagSprite(void);
void CreateBagPokeballSprite();
void sub_80A7C64(void);
void sub_80A3118(void)
{
@@ -460,7 +471,7 @@ void sub_80A37F8(u8 taskId)
{
u32 val = gUnknown_03005D10[gUnknown_02038559].unk1 + gUnknown_03005D10[gUnknown_02038559].unk0;
ItemListMenu_ChangeDescription((s16)gUnknown_03005D24[val].itemId, gUnknown_02038562);
ItemListMenu_ChangeDescription(gUnknown_03005D24[val].itemId, gUnknown_02038562);
gUnknown_02038562++;
}
else
@@ -469,7 +480,7 @@ void sub_80A37F8(u8 taskId)
{
u32 val = gUnknown_03005D10[gUnknown_02038559].unk1 + gUnknown_03005D10[gUnknown_02038559].unk0;
ItemListMenu_ChangeDescription((s16)gUnknown_03005D24[val].itemId, gUnknown_02038562);
ItemListMenu_ChangeDescription(gUnknown_03005D24[val].itemId, gUnknown_02038562);
gUnknown_02038562++;
}
}
@@ -1315,3 +1326,260 @@ void ItemListMenu_InitDescription(s16 itemId)
if (r5 < 3)
MenuZeroFillWindowRect(0, 13 + r5 * 2, 13, 20);
}
void ItemListMenu_ChangeDescription(s16 itemId, int b)
{
u8 description[100];
if (gUnknown_03005D10[gUnknown_02038559].unk1 + gUnknown_03005D10[gUnknown_02038559].unk0 == gUnknown_03005D10[gUnknown_02038559].unk2)
{
if (b == 0)
{
MenuZeroFillWindowRect(0, 13, 13, 20);
MenuPrint_PixelCoords(gOtherText_ReturnTo, 4, 0x68, 0);
}
else if (b == 1)
{
MenuPrint_PixelCoords(gUnknown_0840E740[gUnknown_03000701], 4, 0x78, 0);
}
}
else
{
if (b == 0)
MenuZeroFillWindowRect(0, 13, 13, 20);
if (ItemId_CopyDescription(description, itemId, b))
MenuPrint_PixelCoords(description, 4, 104 + b * 16, 0);
}
}
bool32 sub_80A4A54(u8 *a, const u8 *b, u32 c)
{
u32 r4 = c + 1;
const u8 *src = b;
u8 *dst = a;
while (1)
{
if (*src == CHAR_NEWLINE || *src == EOS)
{
if (--r4 == 0)
{
*dst = EOS;
return TRUE;
}
if (*src == EOS)
return FALSE;
dst = a;
src++;
}
else
{
*dst++ = *src++;
}
}
}
void sub_80A4A98(u8 *a, u32 b)
{
u8 text[100];
if (b == 0)
MenuZeroFillWindowRect(0, 13, 13, 20);
if (sub_80A4A54(text, a, b))
MenuPrint_PixelCoords(text, 4, 104 + b * 16, 0);
}
void sub_80A4ADC(u8 taskId)
{
if (gTasks[taskId].data[10] == 0)
sub_80A7528(0);
PlaySE(SE_SELECT);
gUnknown_0203855C = 1;
}
void sub_80A4B14(s8 a, u8 b)
{
gUnknown_03005D10[gUnknown_02038559].unk1 += a;
MoveMenuCursor(0);
sub_80A73C0();
sub_80A763C();
sub_80A4ADC(b);
}
void sub_80A4B58(s8 a, u8 b)
{
gUnknown_03005D10[gUnknown_02038559].unk0 = MoveMenuCursor(a);
sub_80A73C0();
sub_80A4ADC(b);
}
const u8 *sub_80A4B90(u16 itemId)
{
if (TestPlayerAvatarFlags(6))
{
if (itemId == ITEM_MACH_BIKE || itemId == ITEM_ACRO_BIKE)
return gOtherText_Walk;
}
if (ItemIsMail(itemId) == TRUE)
return gOtherText_Check;
return gUnknown_083C1640[gUnknown_03000704[0]].text;
}
void sub_80A4BF0(u16 *a)
{
u8 i;
if (gUnknown_02038564 == 4)
{
MenuDrawTextWindow(0, 7, 13, 12);
sub_80A4008(a, 1, 8, 12, 4);
if (sub_80F9344() == 1 && gUnknown_03000701 == 5)
{
sub_80A7834(1, 0);
}
else
{
for (i = 0; i < gUnknown_02038564; i++)
{
const u8 *text;
if (i == 0)
text = sub_80A4B90(gScriptItemId);
else
text = gUnknown_083C1640[gUnknown_03000704[i]].text;
MenuPrint(text, 1 + (i / 2) * 6, 8 + (i % 2) * 2);
}
}
if (gUnknown_03000701 == 5)
InitMenu(0, 1, 8, gUnknown_02038564, gUnknown_03000700, 1);
else
InitMenu(0, 1, 8, gUnknown_02038564, 0, 1);
sub_8072DCC(0x2F);
}
else
{
MenuDrawTextWindow(0, 5, 13, 12);
sub_80A4008(a, 1, 6, 12, 6);
for (i = 0; i < gUnknown_02038564; i++)
MenuPrint(gUnknown_083C1640[gUnknown_03000704[i]].text, 1 + (i / 3) * 6, 6 + (i % 3) * 2);
InitMenu(0, 1, 6, gUnknown_02038564, 0, 1);
sub_8072DCC(0x2F);
}
sub_80A7528(2);
}
void sub_80A4DA4(u16 *a)
{
sub_80A73FC();
sub_80A36B8(a, 0, 6, 13, 6);
MenuZeroFillWindowRect(0, 5, 13, 12);
sub_80A7590();
}
void sub_80A4DD8(u8 taskId, u8 b, u8 c, u8 d, u8 e, u8 f)
{
gTasks[taskId].data[1] = 1;
gTasks[taskId].data[2] = b + 2;
gTasks[taskId].data[3] = c + 1;
MenuDrawTextWindow(b, c, b + d, c + e);
sub_80A4008(gBGTilemapBuffers[1], b + 1, c + 1, d - 1, e - 1);
sub_80A418C(1, 1, b + 2, c + 1, f);
}
void sub_80A4E8C(s8 a, u8 b)
{
PlaySE(SE_SELECT);
sub_80F979C(0, 1);
sub_80F979C(1, 1);
sub_80F979C(2, 1);
sub_80F979C(3, 1);
PauseVerticalScrollIndicator(0);
PauseVerticalScrollIndicator(1);
PauseVerticalScrollIndicator(2);
PauseVerticalScrollIndicator(3);
sub_80A3B04(gBGTilemapBuffers[2], a);
sub_80A3AC0(gBGTilemapBuffers[2], gUnknown_02038559);
sub_80A3770();
sub_80A7C64();
CreateBagPokeballSprite(b);
}
static bool8 sub_80A4F0C(void)
{
if (gUnknown_03000701 == 5 || gUnknown_03000701 == 4)
return FALSE;
if (gMain.newKeys == DPAD_RIGHT || sub_80F9284() == 2)
{
sub_80A4E8C(1, 2);
return TRUE;
}
if (gMain.newKeys == DPAD_LEFT || sub_80F9284() == 1)
{
sub_80A4E8C(-1, 1);
return TRUE;
}
return FALSE;
}
void sub_80A4F68(u8 taskId)
{
sub_80A4F0C();
}
bool8 sub_80A4F74(u8 a)
{
bool8 retVal = FALSE;
if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_UP)
{
if (gUnknown_03005D10[gUnknown_02038559].unk0 != 0)
sub_80A4B58(-1, a);
else if (gUnknown_03005D10[gUnknown_02038559].unk1 != 0)
sub_80A4B14(-1, a);
if (gLinkOpen == TRUE && gMain.keyRepeatCounter == 5)
gMain.keyRepeatCounter = 11;
retVal = TRUE;
}
else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_DOWN)
{
if (gUnknown_03000701 != 5)
{
if (gUnknown_03005D10[gUnknown_02038559].unk0 == gUnknown_03005D10[gUnknown_02038559].unk3)
{
if (gUnknown_03005D10[gUnknown_02038559].unk1 + gUnknown_03005D10[gUnknown_02038559].unk0 != gUnknown_03005D10[gUnknown_02038559].unk2)
sub_80A4B14(1, a);
}
else
{
sub_80A4B58(1, a);
}
}
else
{
if (gUnknown_03005D10[gUnknown_02038559].unk1 + gUnknown_03005D10[gUnknown_02038559].unk0 != gUnknown_03005D10[gUnknown_02038559].unk2 - 1)
{
if (gUnknown_03005D10[gUnknown_02038559].unk0 != gUnknown_03005D10[gUnknown_02038559].unk3)
sub_80A4B58(1, a);
else
sub_80A4B14(1, a);
}
}
retVal = TRUE;
if (gLinkOpen == TRUE && gMain.keyRepeatCounter == 5)
gMain.keyRepeatCounter = 11;
}
else
{
if (gTasks[a].data[10] == 0 && sub_80A4F0C() == TRUE)
{
sub_80A73F0();
gTasks[a].func = sub_80A4F68;
retVal = TRUE;
}
else
{
sub_80A73C0();
}
}
return retVal;
}