mirror of
https://github.com/pret/pokeruby.git
synced 2026-08-09 19:07:50 -05:00
8226 lines
137 KiB
ArmAsm
8226 lines
137 KiB
ArmAsm
.include "constants/gba_constants.inc"
|
|
.include "constants/species_constants.inc"
|
|
.include "asm/macros.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_806AEDC
|
|
sub_806AEDC: @ 806AEDC
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
ldr r0, _0806AF2C @ =gUnknown_0202E8FA
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 4
|
|
ldr r1, _0806AF30 @ =gUnknown_08376BB4
|
|
adds r5, r0, r1
|
|
movs r6, 0
|
|
_0806AEF8:
|
|
ldrb r0, [r5]
|
|
lsls r0, 3
|
|
ldrb r1, [r5, 0x1]
|
|
lsls r1, 3
|
|
ldr r2, [r5, 0x4]
|
|
lsls r3, r6, 5
|
|
movs r4, 0x80
|
|
lsls r4, 2
|
|
orrs r3, r4
|
|
str r3, [sp]
|
|
movs r3, 0
|
|
bl sub_800142C
|
|
adds r5, 0x8
|
|
adds r6, 0x1
|
|
cmp r6, 0x5
|
|
ble _0806AEF8
|
|
bl RunTasks
|
|
bl UpdatePaletteFade
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806AF2C: .4byte gUnknown_0202E8FA
|
|
_0806AF30: .4byte gUnknown_08376BB4
|
|
thumb_func_end sub_806AEDC
|
|
|
|
thumb_func_start sub_806AF34
|
|
sub_806AF34: @ 806AF34
|
|
push {lr}
|
|
bl LoadOam
|
|
bl ProcessSpriteCopyRequests
|
|
bl TransferPlttBuffer
|
|
bl sub_806B548
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_806AF34
|
|
|
|
thumb_func_start sub_806AF4C
|
|
sub_806AF4C: @ 806AF4C
|
|
push {r4,r5,lr}
|
|
adds r4, r2, 0
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
cmp r1, 0xFF
|
|
beq _0806AF64
|
|
ldr r0, _0806AF84 @ =gBattleTypeFlags
|
|
strh r1, [r0]
|
|
_0806AF64:
|
|
ldr r0, _0806AF88 @ =0x0201b000
|
|
movs r5, 0x96
|
|
lsls r5, 2
|
|
adds r1, r0, r5
|
|
strb r2, [r1]
|
|
movs r2, 0x97
|
|
lsls r2, 2
|
|
adds r1, r0, r2
|
|
str r4, [r1]
|
|
adds r5, 0x1
|
|
adds r0, r5
|
|
strb r3, [r0]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806AF84: .4byte gBattleTypeFlags
|
|
_0806AF88: .4byte 0x0201b000
|
|
thumb_func_end sub_806AF4C
|
|
|
|
thumb_func_start sub_806AF8C
|
|
sub_806AF8C: @ 806AF8C
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
bl sub_806AF4C
|
|
ldr r0, _0806AFA8 @ =sub_806B460
|
|
bl SetMainCallback2
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806AFA8: .4byte sub_806B460
|
|
thumb_func_end sub_806AF8C
|
|
|
|
thumb_func_start OpenPartyMenu
|
|
OpenPartyMenu: @ 806AFAC
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r2, _0806AFCC @ =gUnknown_08376C74
|
|
lsls r3, r0, 1
|
|
adds r3, r0
|
|
lsls r3, 2
|
|
adds r3, r2
|
|
ldr r2, [r3]
|
|
ldrb r3, [r3, 0x8]
|
|
bl sub_806AF8C
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806AFCC: .4byte gUnknown_08376C74
|
|
thumb_func_end OpenPartyMenu
|
|
|
|
thumb_func_start sub_806AFD0
|
|
sub_806AFD0: @ 806AFD0
|
|
push {r4,r5,lr}
|
|
ldr r1, _0806AFF0 @ =0x0201b000
|
|
movs r2, 0x99
|
|
lsls r2, 2
|
|
adds r0, r1, r2
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
adds r4, r1, 0
|
|
cmp r0, 0x9
|
|
bls _0806AFE6
|
|
b _0806B11A
|
|
_0806AFE6:
|
|
lsls r0, 2
|
|
ldr r1, _0806AFF4 @ =_0806AFF8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0806AFF0: .4byte 0x0201b000
|
|
_0806AFF4: .4byte _0806AFF8
|
|
.align 2, 0
|
|
_0806AFF8:
|
|
.4byte _0806B020
|
|
.4byte _0806B060
|
|
.4byte _0806B066
|
|
.4byte _0806B07A
|
|
.4byte _0806B0A4
|
|
.4byte _0806B0AA
|
|
.4byte _0806B0BC
|
|
.4byte _0806B0C2
|
|
.4byte _0806B0D4
|
|
.4byte _0806B0EC
|
|
_0806B020:
|
|
ldr r0, _0806B048 @ =0x00000266
|
|
adds r5, r4, r0
|
|
movs r1, 0
|
|
ldrsh r3, [r5, r1]
|
|
ldr r0, _0806B04C @ =gPlayerPartyCount
|
|
ldrb r0, [r0]
|
|
cmp r3, r0
|
|
bge _0806B054
|
|
movs r2, 0x98
|
|
lsls r2, 2
|
|
adds r0, r4, r2
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r5]
|
|
movs r2, 0x64
|
|
muls r2, r3
|
|
ldr r3, _0806B050 @ =gPlayerParty
|
|
adds r2, r3
|
|
bl TryCreatePartyMenuMonIcon
|
|
b _0806B114
|
|
.align 2, 0
|
|
_0806B048: .4byte 0x00000266
|
|
_0806B04C: .4byte gPlayerPartyCount
|
|
_0806B050: .4byte gPlayerParty
|
|
_0806B054:
|
|
movs r0, 0
|
|
strh r0, [r5]
|
|
movs r0, 0x99
|
|
lsls r0, 2
|
|
adds r1, r4, r0
|
|
b _0806B0E0
|
|
_0806B060:
|
|
bl LoadHeldItemIconGraphics
|
|
b _0806B0D8
|
|
_0806B066:
|
|
movs r1, 0x98
|
|
lsls r1, 2
|
|
adds r0, r4, r1
|
|
ldrb r0, [r0]
|
|
bl CreateHeldItemIcons_806DC34
|
|
movs r2, 0x99
|
|
lsls r2, 2
|
|
adds r1, r4, r2
|
|
b _0806B0E0
|
|
_0806B07A:
|
|
movs r1, 0x98
|
|
lsls r1, 2
|
|
adds r0, r4, r1
|
|
ldrb r0, [r0]
|
|
ldr r2, _0806B0A0 @ =0x00000266
|
|
adds r5, r4, r2
|
|
ldrb r1, [r5]
|
|
bl sub_806BD58
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0806B114
|
|
movs r0, 0
|
|
strh r0, [r5]
|
|
movs r0, 0x99
|
|
lsls r0, 2
|
|
adds r1, r4, r0
|
|
b _0806B0E0
|
|
.align 2, 0
|
|
_0806B0A0: .4byte 0x00000266
|
|
_0806B0A4:
|
|
bl PartyMenuPrintMonsLevelOrStatus
|
|
b _0806B0D8
|
|
_0806B0AA:
|
|
bl PrintPartyMenuMonNicknames
|
|
ldr r1, _0806B0B8 @ =0x0201b000
|
|
movs r0, 0x99
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
b _0806B0E0
|
|
.align 2, 0
|
|
_0806B0B8: .4byte 0x0201b000
|
|
_0806B0BC:
|
|
bl PartyMenuTryPrintMonsHP
|
|
b _0806B0D8
|
|
_0806B0C2:
|
|
bl nullsub_13
|
|
ldr r1, _0806B0D0 @ =0x0201b000
|
|
movs r0, 0x99
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
b _0806B0E0
|
|
.align 2, 0
|
|
_0806B0D0: .4byte 0x0201b000
|
|
_0806B0D4:
|
|
bl PartyMenuDrawHPBars
|
|
_0806B0D8:
|
|
ldr r1, _0806B0E8 @ =0x0201b000
|
|
movs r2, 0x99
|
|
lsls r2, 2
|
|
adds r1, r2
|
|
_0806B0E0:
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
b _0806B11A
|
|
.align 2, 0
|
|
_0806B0E8: .4byte 0x0201b000
|
|
_0806B0EC:
|
|
ldr r0, _0806B110 @ =0x00000266
|
|
adds r5, r4, r0
|
|
ldrb r0, [r5]
|
|
bl sub_806B58C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0806B114
|
|
movs r1, 0
|
|
strh r1, [r5]
|
|
movs r2, 0x99
|
|
lsls r2, 2
|
|
adds r0, r4, r2
|
|
strh r1, [r0]
|
|
movs r0, 0x1
|
|
b _0806B11C
|
|
.align 2, 0
|
|
_0806B110: .4byte 0x00000266
|
|
_0806B114:
|
|
ldrh r0, [r5]
|
|
adds r0, 0x1
|
|
strh r0, [r5]
|
|
_0806B11A:
|
|
movs r0, 0
|
|
_0806B11C:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806AFD0
|
|
|
|
thumb_func_start sub_806B124
|
|
sub_806B124: @ 806B124
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0xC
|
|
ldr r0, _0806B144 @ =gMain
|
|
ldr r1, _0806B148 @ =0x0000043c
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x11
|
|
bls _0806B13A
|
|
b _0806B450
|
|
_0806B13A:
|
|
lsls r0, 2
|
|
ldr r1, _0806B14C @ =_0806B150
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0806B144: .4byte gMain
|
|
_0806B148: .4byte 0x0000043c
|
|
_0806B14C: .4byte _0806B150
|
|
.align 2, 0
|
|
_0806B150:
|
|
.4byte _0806B198
|
|
.4byte _0806B240
|
|
.4byte _0806B246
|
|
.4byte _0806B27C
|
|
.4byte _0806B282
|
|
.4byte _0806B2AC
|
|
.4byte _0806B2B2
|
|
.4byte _0806B2D0
|
|
.4byte _0806B2EC
|
|
.4byte _0806B318
|
|
.4byte _0806B344
|
|
.4byte _0806B37C
|
|
.4byte _0806B382
|
|
.4byte _0806B3C0
|
|
.4byte _0806B3CC
|
|
.4byte _0806B3E4
|
|
.4byte _0806B40C
|
|
.4byte _0806B440
|
|
_0806B198:
|
|
movs r0, 0
|
|
bl SetVBlankCallback
|
|
movs r3, 0xC0
|
|
lsls r3, 19
|
|
movs r4, 0xC0
|
|
lsls r4, 9
|
|
add r2, sp, 0x8
|
|
mov r8, r2
|
|
add r2, sp, 0x4
|
|
movs r6, 0
|
|
ldr r1, _0806B22C @ =0x040000d4
|
|
movs r5, 0x80
|
|
lsls r5, 5
|
|
ldr r7, _0806B230 @ =0x81000800
|
|
movs r0, 0x81
|
|
lsls r0, 24
|
|
mov r12, r0
|
|
_0806B1BC:
|
|
strh r6, [r2]
|
|
add r0, sp, 0x4
|
|
str r0, [r1]
|
|
str r3, [r1, 0x4]
|
|
str r7, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
adds r3, r5
|
|
subs r4, r5
|
|
cmp r4, r5
|
|
bhi _0806B1BC
|
|
strh r6, [r2]
|
|
add r2, sp, 0x4
|
|
str r2, [r1]
|
|
str r3, [r1, 0x4]
|
|
lsrs r0, r4, 1
|
|
mov r3, r12
|
|
orrs r0, r3
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
movs r0, 0xE0
|
|
lsls r0, 19
|
|
movs r3, 0x80
|
|
lsls r3, 3
|
|
movs r4, 0
|
|
str r4, [sp, 0x8]
|
|
ldr r2, _0806B22C @ =0x040000d4
|
|
mov r1, r8
|
|
str r1, [r2]
|
|
str r0, [r2, 0x4]
|
|
lsrs r0, r3, 2
|
|
movs r1, 0x85
|
|
lsls r1, 24
|
|
orrs r0, r1
|
|
str r0, [r2, 0x8]
|
|
ldr r0, [r2, 0x8]
|
|
movs r1, 0xA0
|
|
lsls r1, 19
|
|
add r0, sp, 0x4
|
|
strh r4, [r0]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
lsrs r3, 1
|
|
movs r0, 0x81
|
|
lsls r0, 24
|
|
orrs r3, r0
|
|
str r3, [r2, 0x8]
|
|
ldr r0, [r2, 0x8]
|
|
ldr r2, _0806B234 @ =gPaletteFade
|
|
ldrb r0, [r2, 0x8]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x8]
|
|
ldr r1, _0806B238 @ =gMain
|
|
ldr r2, _0806B23C @ =0x0000043c
|
|
adds r1, r2
|
|
b _0806B42C
|
|
.align 2, 0
|
|
_0806B22C: .4byte 0x040000d4
|
|
_0806B230: .4byte 0x81000800
|
|
_0806B234: .4byte gPaletteFade
|
|
_0806B238: .4byte gMain
|
|
_0806B23C: .4byte 0x0000043c
|
|
_0806B240:
|
|
bl remove_some_task
|
|
b _0806B426
|
|
_0806B246:
|
|
bl sub_806B4A8
|
|
ldr r1, _0806B26C @ =0x0201b000
|
|
movs r2, 0x99
|
|
lsls r2, 2
|
|
adds r0, r1, r2
|
|
movs r2, 0
|
|
strh r2, [r0]
|
|
ldr r3, _0806B270 @ =0x00000266
|
|
adds r0, r1, r3
|
|
strh r2, [r0]
|
|
movs r0, 0x9A
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
strh r2, [r1]
|
|
ldr r1, _0806B274 @ =gMain
|
|
ldr r2, _0806B278 @ =0x0000043c
|
|
adds r1, r2
|
|
b _0806B42C
|
|
.align 2, 0
|
|
_0806B26C: .4byte 0x0201b000
|
|
_0806B270: .4byte 0x00000266
|
|
_0806B274: .4byte gMain
|
|
_0806B278: .4byte 0x0000043c
|
|
_0806B27C:
|
|
bl ResetSpriteData
|
|
b _0806B426
|
|
_0806B282:
|
|
ldr r0, _0806B2A0 @ =0x0201b000
|
|
movs r1, 0x96
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _0806B298
|
|
cmp r0, 0x5
|
|
beq _0806B298
|
|
bl ResetTasks
|
|
_0806B298:
|
|
ldr r1, _0806B2A4 @ =gMain
|
|
ldr r2, _0806B2A8 @ =0x0000043c
|
|
adds r1, r2
|
|
b _0806B42C
|
|
.align 2, 0
|
|
_0806B2A0: .4byte 0x0201b000
|
|
_0806B2A4: .4byte gMain
|
|
_0806B2A8: .4byte 0x0000043c
|
|
_0806B2AC:
|
|
bl FreeAllSpritePalettes
|
|
b _0806B426
|
|
_0806B2B2:
|
|
ldr r4, _0806B2CC @ =0x0201b000
|
|
movs r1, 0x97
|
|
lsls r1, 2
|
|
adds r0, r4, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
bl CreateTask
|
|
movs r2, 0x98
|
|
lsls r2, 2
|
|
adds r1, r4, r2
|
|
strb r0, [r1]
|
|
b _0806B426
|
|
.align 2, 0
|
|
_0806B2CC: .4byte 0x0201b000
|
|
_0806B2D0:
|
|
ldr r0, _0806B2E0 @ =gWindowConfig_81E6C90
|
|
bl SetUpWindowConfig
|
|
ldr r1, _0806B2E4 @ =gMain
|
|
ldr r0, _0806B2E8 @ =0x0000043c
|
|
adds r1, r0
|
|
b _0806B42C
|
|
.align 2, 0
|
|
_0806B2E0: .4byte gWindowConfig_81E6C90
|
|
_0806B2E4: .4byte gMain
|
|
_0806B2E8: .4byte 0x0000043c
|
|
_0806B2EC:
|
|
ldr r4, _0806B308 @ =gUnknown_03004210
|
|
ldr r1, _0806B30C @ =gWindowConfig_81E6C90
|
|
adds r0, r4, 0
|
|
bl InitWindowFromConfig
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl MultistepInitWindowTileData
|
|
ldr r1, _0806B310 @ =gMain
|
|
ldr r2, _0806B314 @ =0x0000043c
|
|
adds r1, r2
|
|
b _0806B42C
|
|
.align 2, 0
|
|
_0806B308: .4byte gUnknown_03004210
|
|
_0806B30C: .4byte gWindowConfig_81E6C90
|
|
_0806B310: .4byte gMain
|
|
_0806B314: .4byte 0x0000043c
|
|
_0806B318:
|
|
bl MultistepLoadFont
|
|
cmp r0, 0
|
|
bne _0806B322
|
|
b _0806B450
|
|
_0806B322:
|
|
ldr r0, _0806B338 @ =0x0201b000
|
|
movs r3, 0x99
|
|
lsls r3, 2
|
|
adds r0, r3
|
|
movs r1, 0x1
|
|
strh r1, [r0]
|
|
ldr r1, _0806B33C @ =gMain
|
|
ldr r0, _0806B340 @ =0x0000043c
|
|
adds r1, r0
|
|
b _0806B42C
|
|
.align 2, 0
|
|
_0806B338: .4byte 0x0201b000
|
|
_0806B33C: .4byte gMain
|
|
_0806B340: .4byte 0x0000043c
|
|
_0806B344:
|
|
ldr r0, _0806B368 @ =0x0201b000
|
|
movs r1, 0x99
|
|
lsls r1, 2
|
|
adds r4, r0, r1
|
|
ldrb r0, [r4]
|
|
bl sub_806D718
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0806B374
|
|
movs r0, 0
|
|
strh r0, [r4]
|
|
ldr r1, _0806B36C @ =gMain
|
|
ldr r2, _0806B370 @ =0x0000043c
|
|
adds r1, r2
|
|
b _0806B42C
|
|
.align 2, 0
|
|
_0806B368: .4byte 0x0201b000
|
|
_0806B36C: .4byte gMain
|
|
_0806B370: .4byte 0x0000043c
|
|
_0806B374:
|
|
ldrh r0, [r4]
|
|
adds r0, 0x1
|
|
strh r0, [r4]
|
|
b _0806B450
|
|
_0806B37C:
|
|
bl sub_809D51C
|
|
b _0806B426
|
|
_0806B382:
|
|
ldr r2, _0806B3B0 @ =gUnknown_08376C74
|
|
ldr r0, _0806B3B4 @ =0x0201b000
|
|
movs r1, 0x96
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x4
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0806B450
|
|
ldr r1, _0806B3B8 @ =gMain
|
|
ldr r2, _0806B3BC @ =0x0000043c
|
|
adds r1, r2
|
|
b _0806B42C
|
|
.align 2, 0
|
|
_0806B3B0: .4byte gUnknown_08376C74
|
|
_0806B3B4: .4byte 0x0201b000
|
|
_0806B3B8: .4byte gMain
|
|
_0806B3BC: .4byte 0x0000043c
|
|
_0806B3C0:
|
|
ldr r0, _0806B3C8 @ =gWindowConfig_81E6CC8
|
|
bl MultistepInitMenuWindowBegin
|
|
b _0806B426
|
|
.align 2, 0
|
|
_0806B3C8: .4byte gWindowConfig_81E6CC8
|
|
_0806B3CC:
|
|
bl MultistepInitMenuWindowContinue
|
|
cmp r0, 0
|
|
beq _0806B450
|
|
ldr r1, _0806B3DC @ =gMain
|
|
ldr r0, _0806B3E0 @ =0x0000043c
|
|
adds r1, r0
|
|
b _0806B42C
|
|
.align 2, 0
|
|
_0806B3DC: .4byte gMain
|
|
_0806B3E0: .4byte 0x0000043c
|
|
_0806B3E4:
|
|
ldr r0, _0806B3FC @ =0x0201b000
|
|
ldr r1, _0806B400 @ =0x00000259
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
movs r1, 0
|
|
bl sub_806D538
|
|
ldr r1, _0806B404 @ =gMain
|
|
ldr r2, _0806B408 @ =0x0000043c
|
|
adds r1, r2
|
|
b _0806B42C
|
|
.align 2, 0
|
|
_0806B3FC: .4byte 0x0201b000
|
|
_0806B400: .4byte 0x00000259
|
|
_0806B404: .4byte gMain
|
|
_0806B408: .4byte 0x0000043c
|
|
_0806B40C:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
ldr r2, _0806B434 @ =gPaletteFade
|
|
ldrb r1, [r2, 0x8]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r2, 0x8]
|
|
_0806B426:
|
|
ldr r1, _0806B438 @ =gMain
|
|
ldr r3, _0806B43C @ =0x0000043c
|
|
adds r1, r3
|
|
_0806B42C:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _0806B450
|
|
.align 2, 0
|
|
_0806B434: .4byte gPaletteFade
|
|
_0806B438: .4byte gMain
|
|
_0806B43C: .4byte 0x0000043c
|
|
_0806B440:
|
|
ldr r0, _0806B44C @ =sub_806AF34
|
|
bl SetVBlankCallback
|
|
movs r0, 0x1
|
|
b _0806B452
|
|
.align 2, 0
|
|
_0806B44C: .4byte sub_806AF34
|
|
_0806B450:
|
|
movs r0, 0
|
|
_0806B452:
|
|
add sp, 0xC
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806B124
|
|
|
|
thumb_func_start sub_806B460
|
|
sub_806B460: @ 806B460
|
|
push {lr}
|
|
b _0806B470
|
|
_0806B464:
|
|
bl sub_80F9344
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _0806B49C
|
|
_0806B470:
|
|
bl sub_806B124
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0806B464
|
|
ldr r1, _0806B4A0 @ =0x0201b000
|
|
movs r2, 0x96
|
|
lsls r2, 2
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x5
|
|
beq _0806B496
|
|
adds r2, 0x8
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
movs r1, 0
|
|
bl sub_806BF74
|
|
_0806B496:
|
|
ldr r0, _0806B4A4 @ =sub_806AEDC
|
|
bl SetMainCallback2
|
|
_0806B49C:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806B4A0: .4byte 0x0201b000
|
|
_0806B4A4: .4byte sub_806AEDC
|
|
thumb_func_end sub_806B460
|
|
|
|
thumb_func_start sub_806B4A8
|
|
sub_806B4A8: @ 806B4A8
|
|
push {lr}
|
|
movs r0, 0
|
|
bl SetHBlankCallback
|
|
movs r1, 0x80
|
|
lsls r1, 19
|
|
movs r2, 0xFA
|
|
lsls r2, 5
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
adds r1, 0x8
|
|
ldr r2, _0806B50C @ =0x00001e05
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
ldr r2, _0806B510 @ =0x00000703
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
ldr r2, _0806B514 @ =0x00000f08
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
ldr r2, _0806B518 @ =0x00000602
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r0, _0806B51C @ =REG_BLDCNT
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
subs r0, 0x40
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
strh r1, [r0]
|
|
ldr r2, _0806B520 @ =REG_BG3VOFS
|
|
strh r1, [r2]
|
|
ldr r1, _0806B524 @ =0x0000ffff
|
|
adds r0, r1, 0
|
|
strh r0, [r2]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806B50C: .4byte 0x00001e05
|
|
_0806B510: .4byte 0x00000703
|
|
_0806B514: .4byte 0x00000f08
|
|
_0806B518: .4byte 0x00000602
|
|
_0806B51C: .4byte REG_BLDCNT
|
|
_0806B520: .4byte REG_BG3VOFS
|
|
_0806B524: .4byte 0x0000ffff
|
|
thumb_func_end sub_806B4A8
|
|
|
|
thumb_func_start IsLinkDoubleBattle
|
|
IsLinkDoubleBattle: @ 806B528
|
|
push {lr}
|
|
ldr r0, _0806B53C @ =gBattleTypeFlags
|
|
ldrh r1, [r0]
|
|
movs r0, 0x4B
|
|
ands r0, r1
|
|
cmp r0, 0x4B
|
|
beq _0806B540
|
|
movs r0, 0
|
|
b _0806B542
|
|
.align 2, 0
|
|
_0806B53C: .4byte gBattleTypeFlags
|
|
_0806B540:
|
|
movs r0, 0x1
|
|
_0806B542:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end IsLinkDoubleBattle
|
|
|
|
thumb_func_start sub_806B548
|
|
sub_806B548: @ 806B548
|
|
push {r4,lr}
|
|
ldr r0, _0806B574 @ =0x0201b000
|
|
ldr r1, _0806B578 @ =0x00000261
|
|
adds r4, r0, r1
|
|
ldrb r3, [r4]
|
|
cmp r3, 0
|
|
beq _0806B56E
|
|
ldr r1, _0806B57C @ =gBGTilemapBuffers + 0x1000
|
|
ldr r2, _0806B580 @ =0x06003000
|
|
ldr r0, _0806B584 @ =0x040000d4
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
ldr r1, _0806B588 @ =0x80000400
|
|
str r1, [r0, 0x8]
|
|
ldr r0, [r0, 0x8]
|
|
cmp r3, 0x2
|
|
bne _0806B56E
|
|
movs r0, 0
|
|
strb r0, [r4]
|
|
_0806B56E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806B574: .4byte 0x0201b000
|
|
_0806B578: .4byte 0x00000261
|
|
_0806B57C: .4byte gBGTilemapBuffers + 0x1000
|
|
_0806B580: .4byte 0x06003000
|
|
_0806B584: .4byte 0x040000d4
|
|
_0806B588: .4byte 0x80000400
|
|
thumb_func_end sub_806B548
|
|
|
|
thumb_func_start sub_806B58C
|
|
sub_806B58C: @ 806B58C
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
bl IsDoubleBattle
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0
|
|
bne _0806B5A8
|
|
ldr r0, _0806B5A4 @ =gUnknown_0202E8FA
|
|
strb r2, [r0]
|
|
b _0806B5C8
|
|
.align 2, 0
|
|
_0806B5A4: .4byte gUnknown_0202E8FA
|
|
_0806B5A8:
|
|
bl IsLinkDoubleBattle
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0806B5C0
|
|
ldr r1, _0806B5BC @ =gUnknown_0202E8FA
|
|
movs r0, 0x2
|
|
b _0806B5C4
|
|
.align 2, 0
|
|
_0806B5BC: .4byte gUnknown_0202E8FA
|
|
_0806B5C0:
|
|
ldr r1, _0806B5E4 @ =gUnknown_0202E8FA
|
|
movs r0, 0x1
|
|
_0806B5C4:
|
|
strb r0, [r1]
|
|
adds r0, r1, 0
|
|
_0806B5C8:
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _0806B5E8 @ =gUnknown_083769A8
|
|
adds r4, r1, r0
|
|
cmp r5, 0x8
|
|
bls _0806B5DA
|
|
b _0806B900
|
|
_0806B5DA:
|
|
lsls r0, r5, 2
|
|
ldr r1, _0806B5EC @ =_0806B5F0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0806B5E4: .4byte gUnknown_0202E8FA
|
|
_0806B5E8: .4byte gUnknown_083769A8
|
|
_0806B5EC: .4byte _0806B5F0
|
|
.align 2, 0
|
|
_0806B5F0:
|
|
.4byte _0806B614
|
|
.4byte _0806B628
|
|
.4byte _0806B638
|
|
.4byte _0806B694
|
|
.4byte _0806B71A
|
|
.4byte _0806B7A2
|
|
.4byte _0806B832
|
|
.4byte _0806B8C6
|
|
.4byte _0806B8E8
|
|
_0806B614:
|
|
ldr r0, _0806B624 @ =gBGTilemapBuffers + 0x1000
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
movs r1, 0
|
|
bl memset
|
|
b _0806B900
|
|
.align 2, 0
|
|
_0806B624: .4byte gBGTilemapBuffers + 0x1000
|
|
_0806B628:
|
|
ldrb r0, [r4]
|
|
ldrb r1, [r4, 0x1]
|
|
movs r2, 0x3
|
|
bl sub_806B9A4
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
b _0806B8A8
|
|
_0806B638:
|
|
bl IsDoubleBattle
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806B666
|
|
ldr r0, _0806B65C @ =gPlayerPartyCount
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bls _0806B660
|
|
ldrb r0, [r4, 0x2]
|
|
ldrb r1, [r4, 0x3]
|
|
movs r2, 0
|
|
movs r3, 0x3
|
|
bl sub_806BA94
|
|
adds r0, r4, 0x2
|
|
movs r1, 0x1
|
|
b _0806B8A8
|
|
.align 2, 0
|
|
_0806B65C: .4byte gPlayerPartyCount
|
|
_0806B660:
|
|
ldrb r0, [r4, 0x2]
|
|
ldrb r1, [r4, 0x3]
|
|
b _0806B8BC
|
|
_0806B666:
|
|
bl IsLinkDoubleBattle
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0806B684
|
|
ldrb r0, [r4, 0x2]
|
|
ldrb r1, [r4, 0x3]
|
|
movs r2, 0x4
|
|
bl sub_806B9A4
|
|
adds r0, r4, 0x2
|
|
movs r1, 0x1
|
|
movs r2, 0x4
|
|
b _0806B8AA
|
|
_0806B684:
|
|
ldrb r0, [r4, 0x2]
|
|
ldrb r1, [r4, 0x3]
|
|
movs r2, 0x3
|
|
bl sub_806B9A4
|
|
adds r0, r4, 0x2
|
|
movs r1, 0x1
|
|
b _0806B8A8
|
|
_0806B694:
|
|
bl IsDoubleBattle
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806B6C2
|
|
ldr r0, _0806B6B8 @ =gPlayerPartyCount
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
bls _0806B6BC
|
|
ldrb r0, [r4, 0x4]
|
|
ldrb r1, [r4, 0x5]
|
|
movs r2, 0
|
|
movs r3, 0x3
|
|
bl sub_806BA94
|
|
adds r0, r4, 0x4
|
|
movs r1, 0x2
|
|
b _0806B8A8
|
|
.align 2, 0
|
|
_0806B6B8: .4byte gPlayerPartyCount
|
|
_0806B6BC:
|
|
ldrb r0, [r4, 0x4]
|
|
ldrb r1, [r4, 0x5]
|
|
b _0806B8BC
|
|
_0806B6C2:
|
|
bl IsLinkDoubleBattle
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0806B6F6
|
|
ldr r0, _0806B6EC @ =gPlayerParty + 2 * 0x64
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0806B6F0
|
|
ldrb r0, [r4, 0x4]
|
|
ldrb r1, [r4, 0x5]
|
|
movs r2, 0
|
|
movs r3, 0x3
|
|
bl sub_806BA94
|
|
adds r0, r4, 0x4
|
|
movs r1, 0x2
|
|
b _0806B8A8
|
|
.align 2, 0
|
|
_0806B6EC: .4byte gPlayerParty + 2 * 0x64
|
|
_0806B6F0:
|
|
ldrb r0, [r4, 0x4]
|
|
ldrb r1, [r4, 0x5]
|
|
b _0806B8BC
|
|
_0806B6F6:
|
|
ldr r0, _0806B710 @ =gPlayerPartyCount
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
bls _0806B714
|
|
ldrb r0, [r4, 0x4]
|
|
ldrb r1, [r4, 0x5]
|
|
movs r2, 0
|
|
movs r3, 0x3
|
|
bl sub_806BA94
|
|
adds r0, r4, 0x4
|
|
movs r1, 0x2
|
|
b _0806B8A8
|
|
.align 2, 0
|
|
_0806B710: .4byte gPlayerPartyCount
|
|
_0806B714:
|
|
ldrb r0, [r4, 0x4]
|
|
ldrb r1, [r4, 0x5]
|
|
b _0806B8BC
|
|
_0806B71A:
|
|
bl IsDoubleBattle
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806B74A
|
|
ldr r0, _0806B740 @ =gPlayerPartyCount
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3
|
|
bls _0806B744
|
|
ldrb r0, [r4, 0x6]
|
|
ldrb r1, [r4, 0x7]
|
|
movs r2, 0
|
|
movs r3, 0x3
|
|
bl sub_806BA94
|
|
adds r0, r4, 0x6
|
|
movs r1, 0x3
|
|
b _0806B8A8
|
|
.align 2, 0
|
|
_0806B740: .4byte gPlayerPartyCount
|
|
_0806B744:
|
|
ldrb r0, [r4, 0x6]
|
|
ldrb r1, [r4, 0x7]
|
|
b _0806B8BC
|
|
_0806B74A:
|
|
bl IsLinkDoubleBattle
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0806B77E
|
|
ldr r0, _0806B774 @ =gPlayerParty + 3 * 0x64
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0806B778
|
|
ldrb r0, [r4, 0x6]
|
|
ldrb r1, [r4, 0x7]
|
|
movs r2, 0
|
|
movs r3, 0x3
|
|
bl sub_806BA94
|
|
adds r0, r4, 0x6
|
|
movs r1, 0x3
|
|
b _0806B8A8
|
|
.align 2, 0
|
|
_0806B774: .4byte gPlayerParty + 3 * 0x64
|
|
_0806B778:
|
|
ldrb r0, [r4, 0x6]
|
|
ldrb r1, [r4, 0x7]
|
|
b _0806B8BC
|
|
_0806B77E:
|
|
ldr r0, _0806B798 @ =gPlayerPartyCount
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3
|
|
bls _0806B79C
|
|
ldrb r0, [r4, 0x6]
|
|
ldrb r1, [r4, 0x7]
|
|
movs r2, 0
|
|
movs r3, 0x3
|
|
bl sub_806BA94
|
|
adds r0, r4, 0x6
|
|
movs r1, 0x3
|
|
b _0806B8A8
|
|
.align 2, 0
|
|
_0806B798: .4byte gPlayerPartyCount
|
|
_0806B79C:
|
|
ldrb r0, [r4, 0x6]
|
|
ldrb r1, [r4, 0x7]
|
|
b _0806B8BC
|
|
_0806B7A2:
|
|
bl IsDoubleBattle
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806B7D2
|
|
ldr r0, _0806B7C8 @ =gPlayerPartyCount
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x4
|
|
bls _0806B7CC
|
|
ldrb r0, [r4, 0x8]
|
|
ldrb r1, [r4, 0x9]
|
|
movs r2, 0
|
|
movs r3, 0x3
|
|
bl sub_806BA94
|
|
adds r0, r4, 0
|
|
adds r0, 0x8
|
|
movs r1, 0x4
|
|
b _0806B8A8
|
|
.align 2, 0
|
|
_0806B7C8: .4byte gPlayerPartyCount
|
|
_0806B7CC:
|
|
ldrb r0, [r4, 0x8]
|
|
ldrb r1, [r4, 0x9]
|
|
b _0806B8BC
|
|
_0806B7D2:
|
|
bl IsLinkDoubleBattle
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0806B80A
|
|
ldr r0, _0806B800 @ =gPlayerParty + 4 * 0x64
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0806B804
|
|
ldrb r0, [r4, 0x8]
|
|
ldrb r1, [r4, 0x9]
|
|
movs r2, 0
|
|
movs r3, 0x4
|
|
bl sub_806BA94
|
|
adds r0, r4, 0
|
|
adds r0, 0x8
|
|
movs r1, 0x4
|
|
movs r2, 0x4
|
|
b _0806B8AA
|
|
.align 2, 0
|
|
_0806B800: .4byte gPlayerParty + 4 * 0x64
|
|
_0806B804:
|
|
ldrb r0, [r4, 0x8]
|
|
ldrb r1, [r4, 0x9]
|
|
b _0806B884
|
|
_0806B80A:
|
|
ldr r0, _0806B828 @ =gPlayerPartyCount
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x4
|
|
bls _0806B82C
|
|
ldrb r0, [r4, 0x8]
|
|
ldrb r1, [r4, 0x9]
|
|
movs r2, 0
|
|
movs r3, 0x3
|
|
bl sub_806BA94
|
|
adds r0, r4, 0
|
|
adds r0, 0x8
|
|
movs r1, 0x4
|
|
b _0806B8A8
|
|
.align 2, 0
|
|
_0806B828: .4byte gPlayerPartyCount
|
|
_0806B82C:
|
|
ldrb r0, [r4, 0x8]
|
|
ldrb r1, [r4, 0x9]
|
|
b _0806B8BC
|
|
_0806B832:
|
|
bl IsDoubleBattle
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806B84C
|
|
ldr r0, _0806B848 @ =gPlayerPartyCount
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x5
|
|
bhi _0806B896
|
|
b _0806B8B8
|
|
.align 2, 0
|
|
_0806B848: .4byte gPlayerPartyCount
|
|
_0806B84C:
|
|
bl IsLinkDoubleBattle
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0806B88E
|
|
ldr r0, _0806B87C @ =gPlayerParty + 5 * 0x64
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0806B880
|
|
ldrb r0, [r4, 0xA]
|
|
ldrb r1, [r4, 0xB]
|
|
movs r2, 0
|
|
movs r3, 0x4
|
|
bl sub_806BA94
|
|
adds r0, r4, 0
|
|
adds r0, 0xA
|
|
movs r1, 0x5
|
|
movs r2, 0x4
|
|
b _0806B8AA
|
|
.align 2, 0
|
|
_0806B87C: .4byte gPlayerParty + 5 * 0x64
|
|
_0806B880:
|
|
ldrb r0, [r4, 0xA]
|
|
ldrb r1, [r4, 0xB]
|
|
_0806B884:
|
|
movs r2, 0x1
|
|
movs r3, 0x4
|
|
bl sub_806BA94
|
|
b _0806B900
|
|
_0806B88E:
|
|
ldr r0, _0806B8B4 @ =gPlayerPartyCount
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x5
|
|
bls _0806B8B8
|
|
_0806B896:
|
|
ldrb r0, [r4, 0xA]
|
|
ldrb r1, [r4, 0xB]
|
|
movs r2, 0
|
|
movs r3, 0x3
|
|
bl sub_806BA94
|
|
adds r0, r4, 0
|
|
adds r0, 0xA
|
|
movs r1, 0x5
|
|
_0806B8A8:
|
|
movs r2, 0x3
|
|
_0806B8AA:
|
|
movs r3, 0
|
|
bl sub_806BF24
|
|
b _0806B900
|
|
.align 2, 0
|
|
_0806B8B4: .4byte gPlayerPartyCount
|
|
_0806B8B8:
|
|
ldrb r0, [r4, 0xA]
|
|
ldrb r1, [r4, 0xB]
|
|
_0806B8BC:
|
|
movs r2, 0x1
|
|
movs r3, 0x3
|
|
bl sub_806BA94
|
|
b _0806B900
|
|
_0806B8C6:
|
|
ldr r0, _0806B8E4 @ =0x0201b000
|
|
movs r1, 0x96
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x4
|
|
bne _0806B8DA
|
|
movs r0, 0x1
|
|
bl sub_806BB9C
|
|
_0806B8DA:
|
|
movs r0, 0x1
|
|
bl sub_806BBEC
|
|
b _0806B900
|
|
.align 2, 0
|
|
_0806B8E4: .4byte 0x0201b000
|
|
_0806B8E8:
|
|
ldr r0, _0806B8F8 @ =0x0201b000
|
|
ldr r1, _0806B8FC @ =0x00000261
|
|
adds r0, r1
|
|
movs r1, 0x2
|
|
strb r1, [r0]
|
|
movs r0, 0x1
|
|
b _0806B902
|
|
.align 2, 0
|
|
_0806B8F8: .4byte 0x0201b000
|
|
_0806B8FC: .4byte 0x00000261
|
|
_0806B900:
|
|
movs r0, 0
|
|
_0806B902:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806B58C
|
|
|
|
thumb_func_start sub_806B908
|
|
sub_806B908: @ 806B908
|
|
push {r4,r5,lr}
|
|
ldr r0, _0806B948 @ =gBGTilemapBuffers + 0x1000
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
movs r1, 0
|
|
bl memset
|
|
ldr r1, _0806B94C @ =gUnknown_0202E8FA
|
|
movs r0, 0x3
|
|
strb r0, [r1]
|
|
ldr r0, _0806B950 @ =gUnknown_083769A8
|
|
adds r4, r0, 0
|
|
adds r4, 0x24
|
|
ldr r5, _0806B954 @ =gPlayerParty + 1 * 0x64
|
|
ldrb r0, [r4]
|
|
ldrb r1, [r4, 0x1]
|
|
movs r2, 0x3
|
|
bl sub_806B9A4
|
|
adds r0, r5, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0806B958
|
|
ldrb r0, [r4, 0x4]
|
|
ldrb r1, [r4, 0x5]
|
|
movs r2, 0
|
|
movs r3, 0x3
|
|
bl sub_806BA94
|
|
b _0806B964
|
|
.align 2, 0
|
|
_0806B948: .4byte gBGTilemapBuffers + 0x1000
|
|
_0806B94C: .4byte gUnknown_0202E8FA
|
|
_0806B950: .4byte gUnknown_083769A8
|
|
_0806B954: .4byte gPlayerParty + 1 * 0x64
|
|
_0806B958:
|
|
ldrb r0, [r4, 0x4]
|
|
ldrb r1, [r4, 0x5]
|
|
movs r2, 0x1
|
|
movs r3, 0x3
|
|
bl sub_806BA94
|
|
_0806B964:
|
|
adds r0, r5, 0
|
|
adds r0, 0x64
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0806B980
|
|
ldrb r0, [r4, 0x6]
|
|
ldrb r1, [r4, 0x7]
|
|
movs r2, 0
|
|
movs r3, 0x3
|
|
bl sub_806BA94
|
|
b _0806B98C
|
|
_0806B980:
|
|
ldrb r0, [r4, 0x6]
|
|
ldrb r1, [r4, 0x7]
|
|
movs r2, 0x1
|
|
movs r3, 0x3
|
|
bl sub_806BA94
|
|
_0806B98C:
|
|
ldr r0, _0806B99C @ =0x0201b000
|
|
ldr r1, _0806B9A0 @ =0x00000261
|
|
adds r0, r1
|
|
movs r1, 0x2
|
|
strb r1, [r0]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806B99C: .4byte 0x0201b000
|
|
_0806B9A0: .4byte 0x00000261
|
|
thumb_func_end sub_806B908
|
|
|
|
thumb_func_start sub_806B9A4
|
|
sub_806B9A4: @ 806B9A4
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
str r2, [sp]
|
|
lsls r1, 21
|
|
lsrs r1, 16
|
|
str r1, [sp, 0x4]
|
|
movs r1, 0
|
|
lsls r0, 16
|
|
mov r8, r0
|
|
asrs r0, 16
|
|
mov r10, r0
|
|
ldr r4, _0806BA2C @ =gUnknown_083769D8
|
|
mov r9, r4
|
|
_0806B9CA:
|
|
movs r3, 0
|
|
adds r7, r1, 0x1
|
|
mov r0, r10
|
|
cmp r0, 0x1F
|
|
bgt _0806BA12
|
|
mov r4, r8
|
|
asrs r2, r4, 16
|
|
lsls r0, r1, 5
|
|
ldr r4, [sp, 0x4]
|
|
adds r6, r4, r0
|
|
ldr r0, _0806BA30 @ =gBGTilemapBuffers + 0x1000
|
|
mov r12, r0
|
|
ldr r4, [sp]
|
|
lsls r5, r4, 12
|
|
movs r0, 0xB
|
|
adds r4, r1, 0
|
|
muls r4, r0
|
|
_0806B9EC:
|
|
adds r0, r2, r3
|
|
cmp r0, 0
|
|
blt _0806BA02
|
|
adds r0, r6, r0
|
|
lsls r0, 1
|
|
add r0, r12
|
|
adds r1, r4, r3
|
|
add r1, r9
|
|
ldrb r1, [r1]
|
|
orrs r1, r5
|
|
strh r1, [r0]
|
|
_0806BA02:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0xA
|
|
bhi _0806BA12
|
|
adds r0, r2, r3
|
|
cmp r0, 0x1F
|
|
ble _0806B9EC
|
|
_0806BA12:
|
|
lsls r0, r7, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x6
|
|
bls _0806B9CA
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806BA2C: .4byte gUnknown_083769D8
|
|
_0806BA30: .4byte gBGTilemapBuffers + 0x1000
|
|
thumb_func_end sub_806B9A4
|
|
|
|
thumb_func_start sub_806BA34
|
|
sub_806BA34: @ 806BA34
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r1, 21
|
|
lsrs r1, 16
|
|
mov r8, r1
|
|
movs r1, 0
|
|
lsls r7, r0, 16
|
|
asrs r0, r7, 16
|
|
mov r12, r0
|
|
_0806BA48:
|
|
movs r2, 0
|
|
adds r4, r1, 0x1
|
|
mov r5, r12
|
|
cmp r5, 0x1F
|
|
bgt _0806BA7C
|
|
asrs r3, r7, 16
|
|
lsls r0, r1, 5
|
|
mov r5, r8
|
|
adds r1, r5, r0
|
|
ldr r6, _0806BA90 @ =gBGTilemapBuffers + 0x1000
|
|
movs r5, 0
|
|
_0806BA5E:
|
|
adds r0, r3, r2
|
|
cmp r0, 0
|
|
blt _0806BA6C
|
|
adds r0, r1, r0
|
|
lsls r0, 1
|
|
adds r0, r6
|
|
strh r5, [r0]
|
|
_0806BA6C:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0xA
|
|
bhi _0806BA7C
|
|
adds r0, r3, r2
|
|
cmp r0, 0x1F
|
|
ble _0806BA5E
|
|
_0806BA7C:
|
|
lsls r0, r4, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x6
|
|
bls _0806BA48
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806BA90: .4byte gBGTilemapBuffers + 0x1000
|
|
thumb_func_end sub_806BA34
|
|
|
|
thumb_func_start sub_806BA94
|
|
sub_806BA94: @ 806BA94
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
lsls r1, 16
|
|
lsrs r0, r1, 16
|
|
lsls r2, 24
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
str r3, [sp]
|
|
ldr r1, _0806BB30 @ =gUnknown_08376A5E
|
|
mov r9, r1
|
|
cmp r2, 0
|
|
bne _0806BABC
|
|
ldr r1, _0806BB34 @ =gUnknown_08376A25
|
|
mov r9, r1
|
|
_0806BABC:
|
|
lsls r0, 21
|
|
lsrs r0, 16
|
|
str r0, [sp, 0x4]
|
|
movs r1, 0
|
|
lsls r4, 16
|
|
mov r12, r4
|
|
asrs r4, 16
|
|
mov r10, r4
|
|
_0806BACC:
|
|
movs r2, 0
|
|
adds r7, r1, 0x1
|
|
mov r0, r10
|
|
cmp r0, 0x1F
|
|
bgt _0806BB16
|
|
mov r4, r12
|
|
asrs r3, r4, 16
|
|
lsls r0, r1, 5
|
|
ldr r4, [sp, 0x4]
|
|
adds r6, r4, r0
|
|
ldr r0, _0806BB38 @ =gBGTilemapBuffers + 0x1000
|
|
mov r8, r0
|
|
ldr r4, [sp]
|
|
lsls r5, r4, 12
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
subs r4, r0, r1
|
|
_0806BAF0:
|
|
adds r0, r3, r2
|
|
cmp r0, 0
|
|
blt _0806BB06
|
|
adds r0, r6, r0
|
|
lsls r0, 1
|
|
add r0, r8
|
|
adds r1, r4, r2
|
|
add r1, r9
|
|
ldrb r1, [r1]
|
|
orrs r1, r5
|
|
strh r1, [r0]
|
|
_0806BB06:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x12
|
|
bhi _0806BB16
|
|
adds r0, r3, r2
|
|
cmp r0, 0x1F
|
|
ble _0806BAF0
|
|
_0806BB16:
|
|
lsls r0, r7, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x2
|
|
bls _0806BACC
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806BB30: .4byte gUnknown_08376A5E
|
|
_0806BB34: .4byte gUnknown_08376A25
|
|
_0806BB38: .4byte gBGTilemapBuffers + 0x1000
|
|
thumb_func_end sub_806BA94
|
|
|
|
thumb_func_start sub_806BB3C
|
|
sub_806BB3C: @ 806BB3C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r1, 21
|
|
lsrs r1, 16
|
|
mov r8, r1
|
|
movs r1, 0
|
|
lsls r7, r0, 16
|
|
asrs r0, r7, 16
|
|
mov r12, r0
|
|
_0806BB50:
|
|
movs r2, 0
|
|
adds r4, r1, 0x1
|
|
mov r5, r12
|
|
cmp r5, 0x1F
|
|
bgt _0806BB84
|
|
asrs r3, r7, 16
|
|
lsls r0, r1, 5
|
|
mov r5, r8
|
|
adds r1, r5, r0
|
|
ldr r6, _0806BB98 @ =gBGTilemapBuffers + 0x1000
|
|
movs r5, 0
|
|
_0806BB66:
|
|
adds r0, r3, r2
|
|
cmp r0, 0
|
|
blt _0806BB74
|
|
adds r0, r1, r0
|
|
lsls r0, 1
|
|
adds r0, r6
|
|
strh r5, [r0]
|
|
_0806BB74:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x12
|
|
bhi _0806BB84
|
|
adds r0, r3, r2
|
|
cmp r0, 0x1F
|
|
ble _0806BB66
|
|
_0806BB84:
|
|
lsls r0, r4, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x2
|
|
bls _0806BB50
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806BB98: .4byte gBGTilemapBuffers + 0x1000
|
|
thumb_func_end sub_806BB3C
|
|
|
|
thumb_func_start sub_806BB9C
|
|
sub_806BB9C: @ 806BB9C
|
|
push {r4,lr}
|
|
sub sp, 0x18
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r1, _0806BBE4 @ =gUnknown_08376CD4
|
|
mov r0, sp
|
|
movs r2, 0x18
|
|
bl memcpy
|
|
ldr r3, _0806BBE8 @ =0x06003c30
|
|
movs r2, 0
|
|
lsls r4, 12
|
|
_0806BBB6:
|
|
lsls r0, r2, 1
|
|
adds r1, r0, r3
|
|
add r0, sp
|
|
ldrh r0, [r0]
|
|
adds r0, r4
|
|
strh r0, [r1]
|
|
adds r1, 0x40
|
|
adds r0, r2, 0x6
|
|
lsls r0, 1
|
|
add r0, sp
|
|
ldrh r0, [r0]
|
|
adds r0, r4
|
|
strh r0, [r1]
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x5
|
|
bls _0806BBB6
|
|
add sp, 0x18
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806BBE4: .4byte gUnknown_08376CD4
|
|
_0806BBE8: .4byte 0x06003c30
|
|
thumb_func_end sub_806BB9C
|
|
|
|
thumb_func_start sub_806BBEC
|
|
sub_806BBEC: @ 806BBEC
|
|
push {r4,lr}
|
|
sub sp, 0x18
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r1, _0806BC34 @ =gUnknown_08376CEC
|
|
mov r0, sp
|
|
movs r2, 0x18
|
|
bl memcpy
|
|
ldr r3, _0806BC38 @ =0x06003cb0
|
|
movs r2, 0
|
|
lsls r4, 12
|
|
_0806BC06:
|
|
lsls r0, r2, 1
|
|
adds r1, r0, r3
|
|
add r0, sp
|
|
ldrh r0, [r0]
|
|
adds r0, r4
|
|
strh r0, [r1]
|
|
adds r1, 0x40
|
|
adds r0, r2, 0x6
|
|
lsls r0, 1
|
|
add r0, sp
|
|
ldrh r0, [r0]
|
|
adds r0, r4
|
|
strh r0, [r1]
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x5
|
|
bls _0806BC06
|
|
add sp, 0x18
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806BC34: .4byte gUnknown_08376CEC
|
|
_0806BC38: .4byte 0x06003cb0
|
|
thumb_func_end sub_806BBEC
|
|
|
|
thumb_func_start sub_806BC3C
|
|
sub_806BC3C: @ 806BC3C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r6, _0806BCB0 @ =gUnknown_08376918
|
|
bl IsDoubleBattle
|
|
lsls r4, 2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r4, r1
|
|
adds r4, r6
|
|
ldr r7, [r4]
|
|
movs r6, 0
|
|
adds r0, r5, 0
|
|
movs r1, 0x7
|
|
bl __udivsi3
|
|
lsls r0, 24
|
|
lsrs r4, r0, 19
|
|
ldr r5, _0806BCB4 @ =gUnknown_08E9A300
|
|
movs r0, 0x86
|
|
lsls r0, 1
|
|
adds r3, r0, 0
|
|
_0806BC7C:
|
|
adds r1, r6, r4
|
|
lsls r2, r6, 1
|
|
adds r2, r7
|
|
lsls r0, r1, 1
|
|
adds r0, r5
|
|
ldrh r0, [r0]
|
|
adds r0, r3, r0
|
|
strh r0, [r2]
|
|
adds r2, 0x40
|
|
adds r1, 0x20
|
|
lsls r1, 1
|
|
adds r1, r5
|
|
ldrh r1, [r1]
|
|
adds r0, r3, r1
|
|
strh r0, [r2]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x6
|
|
bls _0806BC7C
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806BCB0: .4byte gUnknown_08376918
|
|
_0806BCB4: .4byte gUnknown_08E9A300
|
|
thumb_func_end sub_806BC3C
|
|
|
|
thumb_func_start unref_sub_806BCB8
|
|
unref_sub_806BCB8: @ 806BCB8
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
ldr r0, _0806BCE4 @ =gPlayerPartyCount
|
|
ldrb r1, [r0]
|
|
cmp r4, r1
|
|
bcs _0806BCDE
|
|
adds r6, r0, 0
|
|
_0806BCCA:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806BC3C
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldrb r0, [r6]
|
|
cmp r4, r0
|
|
bcc _0806BCCA
|
|
_0806BCDE:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806BCE4: .4byte gPlayerPartyCount
|
|
thumb_func_end unref_sub_806BCB8
|
|
|
|
thumb_func_start sub_806BCE8
|
|
sub_806BCE8: @ 806BCE8
|
|
push {r4,r5,lr}
|
|
movs r5, 0
|
|
b _0806BD46
|
|
_0806BCEE:
|
|
movs r0, 0x64
|
|
adds r1, r5, 0
|
|
muls r1, r0
|
|
ldr r0, _0806BD20 @ =gPlayerParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x2D
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _0806BD38
|
|
adds r0, r4, 0
|
|
bl GetMonGender
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
beq _0806BD24
|
|
cmp r0, 0xFE
|
|
beq _0806BD2E
|
|
adds r0, r5, 0
|
|
movs r1, 0x46
|
|
bl sub_806BC3C
|
|
b _0806BD40
|
|
.align 2, 0
|
|
_0806BD20: .4byte gPlayerParty
|
|
_0806BD24:
|
|
adds r0, r5, 0
|
|
movs r1, 0x54
|
|
bl sub_806BC3C
|
|
b _0806BD40
|
|
_0806BD2E:
|
|
adds r0, r5, 0
|
|
movs r1, 0x62
|
|
bl sub_806BC3C
|
|
b _0806BD40
|
|
_0806BD38:
|
|
adds r0, r5, 0
|
|
movs r1, 0x46
|
|
bl sub_806BC3C
|
|
_0806BD40:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
_0806BD46:
|
|
ldr r0, _0806BD54 @ =gPlayerPartyCount
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bcc _0806BCEE
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806BD54: .4byte gPlayerPartyCount
|
|
thumb_func_end sub_806BCE8
|
|
|
|
thumb_func_start sub_806BD58
|
|
sub_806BD58: @ 806BD58
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, _0806BD7C @ =SpriteCallbackDummy
|
|
bl CreateInvisibleSpriteWithCallback
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl sub_806CA18
|
|
movs r0, 0x1
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0806BD7C: .4byte SpriteCallbackDummy
|
|
thumb_func_end sub_806BD58
|
|
|
|
thumb_func_start sub_806BD80
|
|
sub_806BD80: @ 806BD80
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
ldr r0, _0806BD9C @ =gMain
|
|
ldrh r0, [r0, 0x30]
|
|
cmp r0, 0x20
|
|
beq _0806BDB2
|
|
cmp r0, 0x20
|
|
bgt _0806BDA0
|
|
cmp r0, 0x10
|
|
beq _0806BDB6
|
|
b _0806BDB8
|
|
.align 2, 0
|
|
_0806BD9C: .4byte gMain
|
|
_0806BDA0:
|
|
cmp r0, 0x40
|
|
beq _0806BDAA
|
|
cmp r0, 0x80
|
|
beq _0806BDAE
|
|
b _0806BDB8
|
|
_0806BDAA:
|
|
movs r4, 0xFF
|
|
b _0806BDB8
|
|
_0806BDAE:
|
|
movs r4, 0x1
|
|
b _0806BDB8
|
|
_0806BDB2:
|
|
movs r4, 0xFE
|
|
b _0806BDB8
|
|
_0806BDB6:
|
|
movs r4, 0x2
|
|
_0806BDB8:
|
|
lsls r0, r4, 24
|
|
cmp r0, 0
|
|
bne _0806BDDC
|
|
bl sub_80F92BC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _0806BDD0
|
|
cmp r0, 0x2
|
|
beq _0806BDD4
|
|
b _0806BDD6
|
|
_0806BDD0:
|
|
movs r4, 0xFF
|
|
b _0806BDD6
|
|
_0806BDD4:
|
|
movs r4, 0x1
|
|
_0806BDD6:
|
|
lsls r0, r4, 24
|
|
cmp r0, 0
|
|
beq _0806BDF0
|
|
_0806BDDC:
|
|
asrs r1, r0, 24
|
|
adds r0, r5, 0
|
|
bl sub_806BF74
|
|
ldr r0, _0806BDEC @ =gMain
|
|
ldrh r0, [r0, 0x30]
|
|
b _0806BE2C
|
|
.align 2, 0
|
|
_0806BDEC: .4byte gMain
|
|
_0806BDF0:
|
|
ldr r0, _0806BE1C @ =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0806BE24
|
|
ldr r4, _0806BE20 @ =gSprites
|
|
adds r0, r5, 0
|
|
bl sub_806CA00
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0x7
|
|
bne _0806BE24
|
|
movs r0, 0x2
|
|
b _0806BE2C
|
|
.align 2, 0
|
|
_0806BE1C: .4byte gMain
|
|
_0806BE20: .4byte gSprites
|
|
_0806BE24:
|
|
ldr r0, _0806BE34 @ =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x3
|
|
ands r0, r1
|
|
_0806BE2C:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0806BE34: .4byte gMain
|
|
thumb_func_end sub_806BD80
|
|
|
|
thumb_func_start sub_806BE38
|
|
sub_806BE38: @ 806BE38
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
ldr r0, _0806BE54 @ =gMain
|
|
ldrh r1, [r0, 0x30]
|
|
adds r6, r0, 0
|
|
cmp r1, 0x20
|
|
beq _0806BE6A
|
|
cmp r1, 0x20
|
|
bgt _0806BE58
|
|
cmp r1, 0x10
|
|
beq _0806BE6E
|
|
b _0806BE70
|
|
.align 2, 0
|
|
_0806BE54: .4byte gMain
|
|
_0806BE58:
|
|
cmp r1, 0x40
|
|
beq _0806BE62
|
|
cmp r1, 0x80
|
|
beq _0806BE66
|
|
b _0806BE70
|
|
_0806BE62:
|
|
movs r4, 0xFF
|
|
b _0806BE8E
|
|
_0806BE66:
|
|
movs r4, 0x1
|
|
b _0806BE8E
|
|
_0806BE6A:
|
|
movs r4, 0xFE
|
|
b _0806BE8E
|
|
_0806BE6E:
|
|
movs r4, 0x2
|
|
_0806BE70:
|
|
cmp r4, 0
|
|
bne _0806BE8E
|
|
bl sub_80F92BC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _0806BE86
|
|
cmp r0, 0x2
|
|
beq _0806BE8A
|
|
b _0806BE8C
|
|
_0806BE86:
|
|
movs r4, 0xFF
|
|
b _0806BE8C
|
|
_0806BE8A:
|
|
movs r4, 0x1
|
|
_0806BE8C:
|
|
ldr r6, _0806BEA4 @ =gMain
|
|
_0806BE8E:
|
|
ldrh r2, [r6, 0x2E]
|
|
movs r0, 0x8
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0806BEA8
|
|
adds r0, r5, 0
|
|
bl sub_806C890
|
|
movs r0, 0x8
|
|
b _0806BEF0
|
|
.align 2, 0
|
|
_0806BEA4: .4byte gMain
|
|
_0806BEA8:
|
|
lsls r0, r4, 24
|
|
asrs r1, r0, 24
|
|
cmp r1, 0
|
|
beq _0806BEBA
|
|
adds r0, r5, 0
|
|
bl sub_806C658
|
|
ldrh r0, [r6, 0x30]
|
|
b _0806BEF0
|
|
_0806BEBA:
|
|
movs r0, 0x1
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0806BEE8
|
|
ldr r4, _0806BEE4 @ =gSprites
|
|
adds r0, r5, 0
|
|
bl sub_806CA00
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0x7
|
|
bne _0806BEE8
|
|
movs r0, 0x2
|
|
b _0806BEF0
|
|
.align 2, 0
|
|
_0806BEE4: .4byte gSprites
|
|
_0806BEE8:
|
|
ldr r0, _0806BEF8 @ =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x3
|
|
ands r0, r1
|
|
_0806BEF0:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0806BEF8: .4byte gMain
|
|
thumb_func_end sub_806BE38
|
|
|
|
thumb_func_start task_pc_turn_off
|
|
task_pc_turn_off: @ 806BEFC
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
lsls r1, 24
|
|
lsrs r3, r1, 24
|
|
ldrb r0, [r2]
|
|
cmp r0, 0
|
|
beq _0806BF14
|
|
ldrb r1, [r2, 0x1]
|
|
movs r2, 0
|
|
bl sub_806BA94
|
|
b _0806BF1E
|
|
_0806BF14:
|
|
ldrb r0, [r2]
|
|
ldrb r1, [r2, 0x1]
|
|
adds r2, r3, 0
|
|
bl sub_806B9A4
|
|
_0806BF1E:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end task_pc_turn_off
|
|
|
|
thumb_func_start sub_806BF24
|
|
sub_806BF24: @ 806BF24
|
|
push {r4-r7,lr}
|
|
adds r7, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r4, r2, 24
|
|
lsls r3, 24
|
|
lsrs r6, r3, 24
|
|
movs r0, 0x64
|
|
muls r1, r0
|
|
ldr r0, _0806BF70 @ =gPlayerParty
|
|
adds r5, r1, r0
|
|
adds r0, r5, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0806BF56
|
|
adds r0, r5, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _0806BF56
|
|
movs r4, 0x5
|
|
_0806BF56:
|
|
cmp r6, 0x1
|
|
bne _0806BF60
|
|
adds r0, r4, 0x4
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_0806BF60:
|
|
adds r0, r7, 0
|
|
adds r1, r4, 0
|
|
bl task_pc_turn_off
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806BF70: .4byte gPlayerParty
|
|
thumb_func_end sub_806BF24
|
|
|
|
thumb_func_start sub_806BF74
|
|
sub_806BF74: @ 806BF74
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
bl sub_806CA00
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r1, _0806C0C4 @ =gSprites
|
|
lsls r0, r6, 4
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x2E]
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
mov r0, r9
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl UpdateMonIconFrame_806DA44
|
|
bl IsLinkDoubleBattle
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _0806BFB6
|
|
b _0806C0D8
|
|
_0806BFB6:
|
|
cmp r5, 0
|
|
beq _0806BFC2
|
|
cmp r5, 0x2
|
|
beq _0806BFC2
|
|
cmp r5, 0x3
|
|
bne _0806BFD2
|
|
_0806BFC2:
|
|
lsls r0, r5, 1
|
|
ldr r1, _0806C0C8 @ =gUnknown_083769C0
|
|
adds r0, r1
|
|
adds r1, r5, 0
|
|
movs r2, 0x3
|
|
movs r3, 0
|
|
bl sub_806BF24
|
|
_0806BFD2:
|
|
cmp r5, 0x1
|
|
beq _0806BFDE
|
|
cmp r5, 0x4
|
|
beq _0806BFDE
|
|
cmp r5, 0x5
|
|
bne _0806BFEE
|
|
_0806BFDE:
|
|
lsls r0, r5, 1
|
|
ldr r1, _0806C0C8 @ =gUnknown_083769C0
|
|
adds r0, r1
|
|
adds r1, r5, 0
|
|
movs r2, 0x4
|
|
movs r3, 0
|
|
bl sub_806BF24
|
|
_0806BFEE:
|
|
cmp r5, 0x7
|
|
bne _0806BFF8
|
|
movs r0, 0x1
|
|
bl sub_806BBEC
|
|
_0806BFF8:
|
|
lsls r2, r4, 24
|
|
asrs r2, 24
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_806C490
|
|
ldr r2, _0806C0C4 @ =gSprites
|
|
lsls r1, r6, 4
|
|
adds r0, r1, r6
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r0, r2]
|
|
mov r8, r1
|
|
cmp r0, 0
|
|
beq _0806C020
|
|
cmp r0, 0x2
|
|
beq _0806C020
|
|
cmp r0, 0x3
|
|
bne _0806C042
|
|
_0806C020:
|
|
ldr r0, _0806C0C4 @ =gSprites
|
|
mov r4, r8
|
|
adds r1, r4, r6
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
movs r7, 0x2E
|
|
ldrsh r0, [r1, r7]
|
|
lsls r0, 1
|
|
ldr r2, _0806C0C8 @ =gUnknown_083769C0
|
|
adds r0, r2
|
|
ldrh r1, [r1, 0x2E]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r2, 0x3
|
|
movs r3, 0x1
|
|
bl sub_806BF24
|
|
_0806C042:
|
|
ldr r1, _0806C0C4 @ =gSprites
|
|
mov r2, r8
|
|
adds r0, r2, r6
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
movs r4, 0x2E
|
|
ldrsh r0, [r0, r4]
|
|
cmp r0, 0x1
|
|
beq _0806C05C
|
|
cmp r0, 0x4
|
|
beq _0806C05C
|
|
cmp r0, 0x5
|
|
bne _0806C07E
|
|
_0806C05C:
|
|
ldr r0, _0806C0C4 @ =gSprites
|
|
mov r7, r8
|
|
adds r1, r7, r6
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r1, r2]
|
|
lsls r0, 1
|
|
ldr r2, _0806C0C8 @ =gUnknown_083769C0
|
|
adds r0, r2
|
|
ldrh r1, [r1, 0x2E]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r2, 0x4
|
|
movs r3, 0x1
|
|
bl sub_806BF24
|
|
_0806C07E:
|
|
ldr r7, _0806C0C4 @ =gSprites
|
|
mov r4, r8
|
|
adds r0, r4, r6
|
|
lsls r0, 2
|
|
adds r4, r0, r7
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x7
|
|
bne _0806C096
|
|
movs r0, 0x2
|
|
bl sub_806BBEC
|
|
_0806C096:
|
|
ldr r0, _0806C0CC @ =0x0201b000
|
|
ldr r2, _0806C0D0 @ =0x00000261
|
|
adds r0, r2
|
|
movs r1, 0x2
|
|
strb r1, [r0]
|
|
ldr r1, _0806C0D4 @ =gUnknown_083768B8
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
adds r0, 0x40
|
|
ldrb r0, [r0]
|
|
strh r0, [r4, 0x20]
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
adds r0, 0x41
|
|
ldrb r0, [r0]
|
|
strh r0, [r4, 0x22]
|
|
adds r0, r7, 0
|
|
b _0806C1A4
|
|
.align 2, 0
|
|
_0806C0C4: .4byte gSprites
|
|
_0806C0C8: .4byte gUnknown_083769C0
|
|
_0806C0CC: .4byte 0x0201b000
|
|
_0806C0D0: .4byte 0x00000261
|
|
_0806C0D4: .4byte gUnknown_083768B8
|
|
_0806C0D8:
|
|
bl IsDoubleBattle
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r5, 0x5
|
|
bhi _0806C104
|
|
lsls r0, r7, 1
|
|
adds r0, r7
|
|
lsls r0, 2
|
|
lsls r1, r5, 1
|
|
adds r0, r1
|
|
ldr r1, _0806C100 @ =gUnknown_083769A8
|
|
adds r0, r1
|
|
adds r1, r5, 0
|
|
movs r2, 0x3
|
|
movs r3, 0
|
|
bl sub_806BF24
|
|
b _0806C10A
|
|
.align 2, 0
|
|
_0806C100: .4byte gUnknown_083769A8
|
|
_0806C104:
|
|
movs r0, 0x1
|
|
bl sub_806BBEC
|
|
_0806C10A:
|
|
cmp r7, 0
|
|
bne _0806C11C
|
|
lsls r2, r4, 24
|
|
asrs r2, 24
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_806C1E4
|
|
b _0806C128
|
|
_0806C11C:
|
|
lsls r2, r4, 24
|
|
asrs r2, 24
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_806C310
|
|
_0806C128:
|
|
ldr r1, _0806C160 @ =gSprites
|
|
lsls r2, r6, 4
|
|
adds r0, r2, r6
|
|
lsls r0, 2
|
|
adds r1, r0, r1
|
|
ldrh r3, [r1, 0x2E]
|
|
movs r4, 0x2E
|
|
ldrsh r0, [r1, r4]
|
|
mov r8, r2
|
|
cmp r0, 0x5
|
|
bgt _0806C168
|
|
lsls r0, r7, 1
|
|
adds r0, r7
|
|
lsls r0, 2
|
|
movs r2, 0x2E
|
|
ldrsh r1, [r1, r2]
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
ldr r1, _0806C164 @ =gUnknown_083769A8
|
|
adds r0, r1
|
|
lsls r1, r3, 24
|
|
lsrs r1, 24
|
|
movs r2, 0x3
|
|
movs r3, 0x1
|
|
bl sub_806BF24
|
|
b _0806C16E
|
|
.align 2, 0
|
|
_0806C160: .4byte gSprites
|
|
_0806C164: .4byte gUnknown_083769A8
|
|
_0806C168:
|
|
movs r0, 0x2
|
|
bl sub_806BBEC
|
|
_0806C16E:
|
|
ldr r0, _0806C1D4 @ =0x0201b000
|
|
ldr r4, _0806C1D8 @ =0x00000261
|
|
adds r0, r4
|
|
movs r1, 0x2
|
|
strb r1, [r0]
|
|
ldr r4, _0806C1DC @ =gSprites
|
|
mov r0, r8
|
|
adds r1, r0, r6
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldr r3, _0806C1E0 @ =gUnknown_083768B8
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r1, r2]
|
|
lsls r0, 2
|
|
lsls r2, r7, 5
|
|
adds r0, r2
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
strh r0, [r1, 0x20]
|
|
movs r7, 0x2E
|
|
ldrsh r0, [r1, r7]
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
adds r0, r3
|
|
ldrb r0, [r0, 0x1]
|
|
strh r0, [r1, 0x22]
|
|
adds r0, r4, 0
|
|
_0806C1A4:
|
|
mov r1, r8
|
|
adds r4, r1, r6
|
|
lsls r4, 2
|
|
adds r4, r0
|
|
ldrh r1, [r4, 0x2E]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r0, r9
|
|
movs r2, 0x1
|
|
bl UpdateMonIconFrame_806DA44
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
cmp r5, r0
|
|
beq _0806C1C8
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
_0806C1C8:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806C1D4: .4byte 0x0201b000
|
|
_0806C1D8: .4byte 0x00000261
|
|
_0806C1DC: .4byte gSprites
|
|
_0806C1E0: .4byte gUnknown_083768B8
|
|
thumb_func_end sub_806BF74
|
|
|
|
thumb_func_start sub_806C1E4
|
|
sub_806C1E4: @ 806C1E4
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r1, 24
|
|
lsrs r3, r1, 24
|
|
lsls r2, 24
|
|
lsrs r5, r2, 24
|
|
movs r0, 0x80
|
|
lsls r0, 18
|
|
adds r2, r0
|
|
asrs r0, r2, 24
|
|
cmp r0, 0x4
|
|
bls _0806C200
|
|
b _0806C306
|
|
_0806C200:
|
|
lsls r0, 2
|
|
ldr r1, _0806C20C @ =_0806C210
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0806C20C: .4byte _0806C210
|
|
.align 2, 0
|
|
_0806C210:
|
|
.4byte _0806C2EC
|
|
.4byte _0806C238
|
|
.4byte _0806C224
|
|
.4byte _0806C25C
|
|
.4byte _0806C2BC
|
|
_0806C224:
|
|
ldr r0, _0806C234 @ =gSprites
|
|
lsls r1, r4, 4
|
|
adds r1, r4
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
movs r0, 0
|
|
strh r0, [r1, 0x30]
|
|
b _0806C306
|
|
.align 2, 0
|
|
_0806C234: .4byte gSprites
|
|
_0806C238:
|
|
cmp r3, 0
|
|
beq _0806C266
|
|
cmp r3, 0x7
|
|
bne _0806C298
|
|
ldr r2, _0806C254 @ =gSprites
|
|
lsls r3, r4, 4
|
|
adds r1, r3, r4
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldr r0, _0806C258 @ =gPlayerPartyCount
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
b _0806C2AA
|
|
.align 2, 0
|
|
_0806C254: .4byte gSprites
|
|
_0806C258: .4byte gPlayerPartyCount
|
|
_0806C25C:
|
|
ldr r0, _0806C278 @ =gPlayerPartyCount
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
cmp r3, r0
|
|
bne _0806C280
|
|
_0806C266:
|
|
ldr r2, _0806C27C @ =gSprites
|
|
lsls r3, r4, 4
|
|
adds r0, r3, r4
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x7
|
|
strh r1, [r0, 0x2E]
|
|
b _0806C2AC
|
|
.align 2, 0
|
|
_0806C278: .4byte gPlayerPartyCount
|
|
_0806C27C: .4byte gSprites
|
|
_0806C280:
|
|
cmp r3, 0x7
|
|
bne _0806C298
|
|
ldr r2, _0806C294 @ =gSprites
|
|
lsls r3, r4, 4
|
|
adds r0, r3, r4
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0
|
|
strh r1, [r0, 0x2E]
|
|
b _0806C2AC
|
|
.align 2, 0
|
|
_0806C294: .4byte gSprites
|
|
_0806C298:
|
|
ldr r2, _0806C2B8 @ =gSprites
|
|
lsls r3, r4, 4
|
|
adds r1, r3, r4
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
lsls r0, r5, 24
|
|
asrs r0, 24
|
|
ldrh r5, [r1, 0x2E]
|
|
adds r0, r5
|
|
_0806C2AA:
|
|
strh r0, [r1, 0x2E]
|
|
_0806C2AC:
|
|
adds r0, r3, r4
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0
|
|
strh r1, [r0, 0x30]
|
|
b _0806C306
|
|
.align 2, 0
|
|
_0806C2B8: .4byte gSprites
|
|
_0806C2BC:
|
|
ldr r0, _0806C2E4 @ =gPlayerPartyCount
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bls _0806C306
|
|
cmp r3, 0
|
|
bne _0806C306
|
|
ldr r0, _0806C2E8 @ =gSprites
|
|
lsls r1, r4, 4
|
|
adds r1, r4
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
movs r2, 0x30
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
bne _0806C2DE
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x30]
|
|
_0806C2DE:
|
|
ldrh r0, [r1, 0x30]
|
|
strh r0, [r1, 0x2E]
|
|
b _0806C306
|
|
.align 2, 0
|
|
_0806C2E4: .4byte gPlayerPartyCount
|
|
_0806C2E8: .4byte gSprites
|
|
_0806C2EC:
|
|
subs r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x4
|
|
bhi _0806C306
|
|
ldr r0, _0806C30C @ =gSprites
|
|
lsls r1, r4, 4
|
|
adds r1, r4
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
movs r0, 0
|
|
strh r0, [r1, 0x2E]
|
|
strh r3, [r1, 0x30]
|
|
_0806C306:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806C30C: .4byte gSprites
|
|
thumb_func_end sub_806C1E4
|
|
|
|
thumb_func_start sub_806C310
|
|
sub_806C310: @ 806C310
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r1, 24
|
|
lsrs r3, r1, 24
|
|
lsls r2, 24
|
|
lsrs r5, r2, 24
|
|
movs r0, 0x80
|
|
lsls r0, 18
|
|
adds r2, r0
|
|
asrs r0, r2, 24
|
|
cmp r0, 0x4
|
|
bls _0806C32C
|
|
b _0806C486
|
|
_0806C32C:
|
|
lsls r0, 2
|
|
ldr r1, _0806C338 @ =_0806C33C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0806C338: .4byte _0806C33C
|
|
.align 2, 0
|
|
_0806C33C:
|
|
.4byte _0806C44E
|
|
.4byte _0806C38C
|
|
.4byte _0806C350
|
|
.4byte _0806C364
|
|
.4byte _0806C3E8
|
|
_0806C350:
|
|
ldr r0, _0806C360 @ =gSprites
|
|
lsls r1, r4, 4
|
|
adds r1, r4
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
movs r0, 0
|
|
strh r0, [r1, 0x30]
|
|
b _0806C486
|
|
.align 2, 0
|
|
_0806C360: .4byte gSprites
|
|
_0806C364:
|
|
cmp r3, 0x7
|
|
bne _0806C37C
|
|
ldr r2, _0806C378 @ =gSprites
|
|
lsls r3, r4, 4
|
|
adds r0, r3, r4
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0
|
|
strh r1, [r0, 0x2E]
|
|
b _0806C3D8
|
|
.align 2, 0
|
|
_0806C378: .4byte gSprites
|
|
_0806C37C:
|
|
ldr r0, _0806C388 @ =gPlayerPartyCount
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
cmp r3, r0
|
|
beq _0806C390
|
|
b _0806C3C4
|
|
.align 2, 0
|
|
_0806C388: .4byte gPlayerPartyCount
|
|
_0806C38C:
|
|
cmp r3, 0
|
|
bne _0806C3A4
|
|
_0806C390:
|
|
ldr r2, _0806C3A0 @ =gSprites
|
|
lsls r3, r4, 4
|
|
adds r0, r3, r4
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x7
|
|
strh r1, [r0, 0x2E]
|
|
b _0806C3D8
|
|
.align 2, 0
|
|
_0806C3A0: .4byte gSprites
|
|
_0806C3A4:
|
|
cmp r3, 0x7
|
|
bne _0806C3C4
|
|
ldr r2, _0806C3BC @ =gSprites
|
|
lsls r3, r4, 4
|
|
adds r1, r3, r4
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldr r0, _0806C3C0 @ =gPlayerPartyCount
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
b _0806C3D6
|
|
.align 2, 0
|
|
_0806C3BC: .4byte gSprites
|
|
_0806C3C0: .4byte gPlayerPartyCount
|
|
_0806C3C4:
|
|
ldr r2, _0806C3E4 @ =gSprites
|
|
lsls r3, r4, 4
|
|
adds r1, r3, r4
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
lsls r0, r5, 24
|
|
asrs r0, 24
|
|
ldrh r5, [r1, 0x2E]
|
|
adds r0, r5
|
|
_0806C3D6:
|
|
strh r0, [r1, 0x2E]
|
|
_0806C3D8:
|
|
adds r0, r3, r4
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0
|
|
strh r1, [r0, 0x30]
|
|
b _0806C486
|
|
.align 2, 0
|
|
_0806C3E4: .4byte gSprites
|
|
_0806C3E8:
|
|
cmp r3, 0
|
|
bne _0806C418
|
|
ldr r0, _0806C410 @ =gPlayerPartyCount
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
bls _0806C486
|
|
ldr r0, _0806C414 @ =gSprites
|
|
lsls r1, r4, 4
|
|
adds r1, r4
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0x30]
|
|
subs r0, r2, 0x2
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bls _0806C43A
|
|
movs r0, 0x2
|
|
strh r0, [r1, 0x2E]
|
|
b _0806C486
|
|
.align 2, 0
|
|
_0806C410: .4byte gPlayerPartyCount
|
|
_0806C414: .4byte gSprites
|
|
_0806C418:
|
|
cmp r3, 0x1
|
|
bne _0806C486
|
|
ldr r0, _0806C440 @ =gPlayerPartyCount
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x4
|
|
bls _0806C486
|
|
ldr r0, _0806C444 @ =gSprites
|
|
lsls r1, r4, 4
|
|
adds r1, r4
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0x30]
|
|
subs r0, r2, 0x4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bhi _0806C448
|
|
_0806C43A:
|
|
strh r2, [r1, 0x2E]
|
|
b _0806C486
|
|
.align 2, 0
|
|
_0806C440: .4byte gPlayerPartyCount
|
|
_0806C444: .4byte gSprites
|
|
_0806C448:
|
|
movs r0, 0x4
|
|
strh r0, [r1, 0x2E]
|
|
b _0806C486
|
|
_0806C44E:
|
|
subs r0, r3, 0x2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _0806C46C
|
|
ldr r0, _0806C468 @ =gSprites
|
|
lsls r1, r4, 4
|
|
adds r1, r4
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
movs r0, 0
|
|
b _0806C482
|
|
.align 2, 0
|
|
_0806C468: .4byte gSprites
|
|
_0806C46C:
|
|
subs r0, r3, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _0806C486
|
|
ldr r0, _0806C48C @ =gSprites
|
|
lsls r1, r4, 4
|
|
adds r1, r4
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
movs r0, 0x1
|
|
_0806C482:
|
|
strh r0, [r1, 0x2E]
|
|
strh r3, [r1, 0x30]
|
|
_0806C486:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806C48C: .4byte gSprites
|
|
thumb_func_end sub_806C310
|
|
|
|
thumb_func_start sub_806C490
|
|
sub_806C490: @ 806C490
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
lsls r2, 24
|
|
movs r0, 0x80
|
|
lsls r0, 18
|
|
adds r2, r0
|
|
asrs r0, r2, 24
|
|
cmp r0, 0x4
|
|
bls _0806C4AA
|
|
b _0806C64E
|
|
_0806C4AA:
|
|
lsls r0, 2
|
|
ldr r1, _0806C4B4 @ =_0806C4B8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0806C4B4: .4byte _0806C4B8
|
|
.align 2, 0
|
|
_0806C4B8:
|
|
.4byte _0806C618
|
|
.4byte _0806C524
|
|
.4byte _0806C4CC
|
|
.4byte _0806C4E0
|
|
.4byte _0806C57C
|
|
_0806C4CC:
|
|
ldr r0, _0806C4DC @ =gSprites
|
|
lsls r1, r5, 4
|
|
adds r1, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
movs r0, 0
|
|
strh r0, [r1, 0x30]
|
|
b _0806C64E
|
|
.align 2, 0
|
|
_0806C4DC: .4byte gSprites
|
|
_0806C4E0:
|
|
cmp r4, 0x7
|
|
bne _0806C4FC
|
|
ldr r2, _0806C4F8 @ =gSprites
|
|
lsls r3, r5, 4
|
|
adds r0, r3, r5
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0
|
|
strh r1, [r0, 0x2E]
|
|
adds r1, r2, 0
|
|
adds r6, r3, 0
|
|
b _0806C566
|
|
.align 2, 0
|
|
_0806C4F8: .4byte gSprites
|
|
_0806C4FC:
|
|
lsls r6, r5, 4
|
|
b _0806C518
|
|
_0806C500:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
movs r0, 0x64
|
|
muls r0, r4
|
|
ldr r1, _0806C520 @ =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _0806C528
|
|
_0806C518:
|
|
cmp r4, 0x5
|
|
bne _0806C500
|
|
b _0806C558
|
|
.align 2, 0
|
|
_0806C520: .4byte gPlayerParty
|
|
_0806C524:
|
|
lsls r6, r5, 4
|
|
b _0806C554
|
|
_0806C528:
|
|
ldr r1, _0806C534 @ =gSprites
|
|
adds r0, r6, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
strh r4, [r0, 0x2E]
|
|
b _0806C566
|
|
.align 2, 0
|
|
_0806C534: .4byte gSprites
|
|
_0806C538:
|
|
subs r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x6
|
|
beq _0806C554
|
|
movs r0, 0x64
|
|
muls r0, r4
|
|
ldr r1, _0806C574 @ =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _0806C528
|
|
_0806C554:
|
|
cmp r4, 0
|
|
bne _0806C538
|
|
_0806C558:
|
|
ldr r0, _0806C578 @ =gSprites
|
|
adds r1, r6, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
movs r2, 0x7
|
|
strh r2, [r1, 0x2E]
|
|
adds r1, r0, 0
|
|
_0806C566:
|
|
adds r0, r6, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strh r1, [r0, 0x30]
|
|
b _0806C64E
|
|
.align 2, 0
|
|
_0806C574: .4byte gPlayerParty
|
|
_0806C578: .4byte gSprites
|
|
_0806C57C:
|
|
cmp r4, 0
|
|
bne _0806C5C8
|
|
ldr r0, _0806C5AC @ =gSprites
|
|
lsls r1, r5, 4
|
|
adds r1, r5
|
|
lsls r1, 2
|
|
adds r4, r1, r0
|
|
ldrh r1, [r4, 0x30]
|
|
subs r0, r1, 0x2
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bls _0806C5E2
|
|
ldr r5, _0806C5B0 @ =gPlayerParty + 2 * 0x64
|
|
adds r0, r5, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0806C5B4
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x2E]
|
|
b _0806C64E
|
|
.align 2, 0
|
|
_0806C5AC: .4byte gSprites
|
|
_0806C5B0: .4byte gPlayerParty + 2 * 0x64
|
|
_0806C5B4:
|
|
adds r0, r5, 0
|
|
adds r0, 0x64
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0806C64E
|
|
movs r0, 0x3
|
|
strh r0, [r4, 0x2E]
|
|
b _0806C64E
|
|
_0806C5C8:
|
|
cmp r4, 0x1
|
|
bne _0806C64E
|
|
ldr r0, _0806C5E8 @ =gSprites
|
|
lsls r1, r5, 4
|
|
adds r1, r5
|
|
lsls r1, 2
|
|
adds r4, r1, r0
|
|
ldrh r1, [r4, 0x30]
|
|
subs r0, r1, 0x4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bhi _0806C5EC
|
|
_0806C5E2:
|
|
strh r1, [r4, 0x2E]
|
|
b _0806C64E
|
|
.align 2, 0
|
|
_0806C5E8: .4byte gSprites
|
|
_0806C5EC:
|
|
ldr r5, _0806C600 @ =gPlayerParty + 4 * 0x64
|
|
adds r0, r5, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0806C604
|
|
movs r0, 0x4
|
|
strh r0, [r4, 0x2E]
|
|
b _0806C64E
|
|
.align 2, 0
|
|
_0806C600: .4byte gPlayerParty + 4 * 0x64
|
|
_0806C604:
|
|
adds r0, r5, 0
|
|
adds r0, 0x64
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0806C64E
|
|
movs r0, 0x5
|
|
strh r0, [r4, 0x2E]
|
|
b _0806C64E
|
|
_0806C618:
|
|
subs r0, r4, 0x2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _0806C634
|
|
ldr r0, _0806C630 @ =gSprites
|
|
lsls r1, r5, 4
|
|
adds r1, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
movs r0, 0
|
|
b _0806C64A
|
|
.align 2, 0
|
|
_0806C630: .4byte gSprites
|
|
_0806C634:
|
|
subs r0, r4, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _0806C64E
|
|
ldr r0, _0806C654 @ =gSprites
|
|
lsls r1, r5, 4
|
|
adds r1, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
movs r0, 0x1
|
|
_0806C64A:
|
|
strh r0, [r1, 0x2E]
|
|
strh r4, [r1, 0x30]
|
|
_0806C64E:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806C654: .4byte gSprites
|
|
thumb_func_end sub_806C490
|
|
|
|
thumb_func_start sub_806C658
|
|
sub_806C658: @ 806C658
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
bl sub_806CA00
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, _0806C6A0 @ =gSprites
|
|
lsls r0, r5, 4
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x2E]
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
mov r0, r8
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl UpdateMonIconFrame_806DA44
|
|
cmp r6, 0x5
|
|
bhi _0806C6A8
|
|
lsls r0, r6, 1
|
|
ldr r1, _0806C6A4 @ =gUnknown_083769A8
|
|
adds r0, r1
|
|
adds r1, r6, 0
|
|
movs r2, 0x3
|
|
movs r3, 0
|
|
bl sub_806BF24
|
|
b _0806C6BA
|
|
.align 2, 0
|
|
_0806C6A0: .4byte gSprites
|
|
_0806C6A4: .4byte gUnknown_083769A8
|
|
_0806C6A8:
|
|
cmp r6, 0x6
|
|
bne _0806C6B4
|
|
movs r0, 0x1
|
|
bl sub_806BB9C
|
|
b _0806C6BA
|
|
_0806C6B4:
|
|
movs r0, 0x1
|
|
bl sub_806BBEC
|
|
_0806C6BA:
|
|
lsls r1, r4, 24
|
|
movs r2, 0x80
|
|
lsls r2, 18
|
|
adds r0, r1, r2
|
|
asrs r0, 24
|
|
lsls r4, r5, 4
|
|
adds r7, r1, 0
|
|
cmp r0, 0x4
|
|
bls _0806C6CE
|
|
b _0806C7EA
|
|
_0806C6CE:
|
|
lsls r0, 2
|
|
ldr r1, _0806C6D8 @ =_0806C6DC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0806C6D8: .4byte _0806C6DC
|
|
.align 2, 0
|
|
_0806C6DC:
|
|
.4byte _0806C7D0
|
|
.4byte _0806C708
|
|
.4byte _0806C6F0
|
|
.4byte _0806C740
|
|
.4byte _0806C7A0
|
|
_0806C6F0:
|
|
ldr r1, _0806C704 @ =gSprites
|
|
lsls r2, r5, 4
|
|
adds r0, r2, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strh r1, [r0, 0x30]
|
|
adds r4, r2, 0
|
|
b _0806C7EA
|
|
.align 2, 0
|
|
_0806C704: .4byte gSprites
|
|
_0806C708:
|
|
cmp r6, 0
|
|
bne _0806C720
|
|
ldr r2, _0806C71C @ =gSprites
|
|
lsls r3, r5, 4
|
|
adds r0, r3, r5
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x7
|
|
strh r1, [r0, 0x2E]
|
|
b _0806C78E
|
|
.align 2, 0
|
|
_0806C71C: .4byte gSprites
|
|
_0806C720:
|
|
cmp r6, 0x6
|
|
bne _0806C77C
|
|
ldr r2, _0806C738 @ =gSprites
|
|
lsls r3, r5, 4
|
|
adds r1, r3, r5
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldr r0, _0806C73C @ =gPlayerPartyCount
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
b _0806C78C
|
|
.align 2, 0
|
|
_0806C738: .4byte gSprites
|
|
_0806C73C: .4byte gPlayerPartyCount
|
|
_0806C740:
|
|
ldr r0, _0806C75C @ =gPlayerPartyCount
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
cmp r6, r0
|
|
bne _0806C764
|
|
ldr r2, _0806C760 @ =gSprites
|
|
lsls r3, r5, 4
|
|
adds r0, r3, r5
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x6
|
|
strh r1, [r0, 0x2E]
|
|
b _0806C78E
|
|
.align 2, 0
|
|
_0806C75C: .4byte gPlayerPartyCount
|
|
_0806C760: .4byte gSprites
|
|
_0806C764:
|
|
cmp r6, 0x7
|
|
bne _0806C77C
|
|
ldr r2, _0806C778 @ =gSprites
|
|
lsls r3, r5, 4
|
|
adds r0, r3, r5
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0
|
|
strh r1, [r0, 0x2E]
|
|
b _0806C78E
|
|
.align 2, 0
|
|
_0806C778: .4byte gSprites
|
|
_0806C77C:
|
|
ldr r2, _0806C79C @ =gSprites
|
|
lsls r3, r5, 4
|
|
adds r1, r3, r5
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
asrs r0, r7, 24
|
|
ldrh r4, [r1, 0x2E]
|
|
adds r0, r4
|
|
_0806C78C:
|
|
strh r0, [r1, 0x2E]
|
|
_0806C78E:
|
|
adds r4, r3, 0
|
|
adds r0, r4, r5
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0
|
|
strh r1, [r0, 0x30]
|
|
b _0806C7EA
|
|
.align 2, 0
|
|
_0806C79C: .4byte gSprites
|
|
_0806C7A0:
|
|
ldr r0, _0806C7C8 @ =gPlayerPartyCount
|
|
ldrb r0, [r0]
|
|
lsls r4, r5, 4
|
|
cmp r0, 0x1
|
|
bls _0806C7EA
|
|
cmp r6, 0
|
|
bne _0806C7EA
|
|
ldr r0, _0806C7CC @ =gSprites
|
|
adds r1, r4, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
movs r2, 0x30
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
bne _0806C7C2
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x30]
|
|
_0806C7C2:
|
|
ldrh r0, [r1, 0x30]
|
|
strh r0, [r1, 0x2E]
|
|
b _0806C7EA
|
|
.align 2, 0
|
|
_0806C7C8: .4byte gPlayerPartyCount
|
|
_0806C7CC: .4byte gSprites
|
|
_0806C7D0:
|
|
subs r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, r5, 4
|
|
cmp r0, 0x4
|
|
bhi _0806C7EA
|
|
ldr r0, _0806C82C @ =gSprites
|
|
adds r1, r4, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
movs r0, 0
|
|
strh r0, [r1, 0x2E]
|
|
strh r6, [r1, 0x30]
|
|
_0806C7EA:
|
|
ldr r1, _0806C82C @ =gSprites
|
|
adds r0, r4, r5
|
|
lsls r0, 2
|
|
adds r2, r0, r1
|
|
ldr r1, _0806C830 @ =gUnknown_083768B8
|
|
movs r3, 0x2E
|
|
ldrsh r0, [r2, r3]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strh r0, [r2, 0x20]
|
|
movs r3, 0x2E
|
|
ldrsh r0, [r2, r3]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x1]
|
|
strh r0, [r2, 0x22]
|
|
ldrh r3, [r2, 0x2E]
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, 0x5
|
|
bgt _0806C838
|
|
lsls r0, 1
|
|
ldr r1, _0806C834 @ =gUnknown_083769A8
|
|
adds r0, r1
|
|
lsls r1, r3, 24
|
|
lsrs r1, 24
|
|
movs r2, 0x3
|
|
movs r3, 0x1
|
|
bl sub_806BF24
|
|
b _0806C84A
|
|
.align 2, 0
|
|
_0806C82C: .4byte gSprites
|
|
_0806C830: .4byte gUnknown_083768B8
|
|
_0806C834: .4byte gUnknown_083769A8
|
|
_0806C838:
|
|
cmp r0, 0x6
|
|
bne _0806C844
|
|
movs r0, 0x2
|
|
bl sub_806BB9C
|
|
b _0806C84A
|
|
_0806C844:
|
|
movs r0, 0x2
|
|
bl sub_806BBEC
|
|
_0806C84A:
|
|
ldr r0, _0806C884 @ =0x0201b000
|
|
ldr r2, _0806C888 @ =0x00000261
|
|
adds r0, r2
|
|
movs r1, 0x2
|
|
strb r1, [r0]
|
|
ldr r0, _0806C88C @ =gSprites
|
|
adds r4, r5
|
|
lsls r4, 2
|
|
adds r4, r0
|
|
ldrh r1, [r4, 0x2E]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r0, r8
|
|
movs r2, 0x1
|
|
bl UpdateMonIconFrame_806DA44
|
|
movs r3, 0x2E
|
|
ldrsh r0, [r4, r3]
|
|
cmp r6, r0
|
|
beq _0806C878
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
_0806C878:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806C884: .4byte 0x0201b000
|
|
_0806C888: .4byte 0x00000261
|
|
_0806C88C: .4byte gSprites
|
|
thumb_func_end sub_806C658
|
|
|
|
thumb_func_start sub_806C890
|
|
sub_806C890: @ 806C890
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
adds r0, r6, 0
|
|
bl sub_806CA00
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, _0806C8D4 @ =gSprites
|
|
lsls r0, r5, 4
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x2E]
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x6
|
|
beq _0806C914
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl UpdateMonIconFrame_806DA44
|
|
cmp r4, 0x5
|
|
bhi _0806C8DC
|
|
lsls r0, r4, 1
|
|
ldr r1, _0806C8D8 @ =gUnknown_083769A8
|
|
adds r0, r1
|
|
adds r1, r4, 0
|
|
movs r2, 0x3
|
|
movs r3, 0
|
|
bl sub_806BF24
|
|
b _0806C8E2
|
|
.align 2, 0
|
|
_0806C8D4: .4byte gSprites
|
|
_0806C8D8: .4byte gUnknown_083769A8
|
|
_0806C8DC:
|
|
movs r0, 0x1
|
|
bl sub_806BBEC
|
|
_0806C8E2:
|
|
ldr r1, _0806C91C @ =gSprites
|
|
lsls r0, r5, 4
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strh r1, [r0, 0x30]
|
|
movs r1, 0x6
|
|
strh r1, [r0, 0x2E]
|
|
ldr r2, _0806C920 @ =gUnknown_083768B8
|
|
ldrb r1, [r2, 0x18]
|
|
strh r1, [r0, 0x20]
|
|
ldrb r1, [r2, 0x19]
|
|
strh r1, [r0, 0x22]
|
|
movs r0, 0x2
|
|
bl sub_806BB9C
|
|
ldr r0, _0806C924 @ =0x0201b000
|
|
ldr r1, _0806C928 @ =0x00000261
|
|
adds r0, r1
|
|
movs r1, 0x2
|
|
strb r1, [r0]
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
_0806C914:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806C91C: .4byte gSprites
|
|
_0806C920: .4byte gUnknown_083768B8
|
|
_0806C924: .4byte 0x0201b000
|
|
_0806C928: .4byte 0x00000261
|
|
thumb_func_end sub_806C890
|
|
|
|
thumb_func_start sub_806C92C
|
|
sub_806C92C: @ 806C92C
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, _0806C960 @ =gSprites
|
|
lsls r1, r5, 4
|
|
adds r1, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x2E]
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldrh r0, [r1, 0x30]
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
bl IsDoubleBattle
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806C96A
|
|
cmp r6, 0
|
|
bne _0806C964
|
|
cmp r4, 0
|
|
bne _0806C97C
|
|
movs r4, 0x1
|
|
b _0806C97C
|
|
.align 2, 0
|
|
_0806C960: .4byte gSprites
|
|
_0806C964:
|
|
cmp r4, 0
|
|
beq _0806C97C
|
|
b _0806C97A
|
|
_0806C96A:
|
|
cmp r6, 0x1
|
|
bhi _0806C976
|
|
cmp r4, 0x1
|
|
bhi _0806C97C
|
|
movs r4, 0x2
|
|
b _0806C97C
|
|
_0806C976:
|
|
cmp r4, 0x1
|
|
bls _0806C97C
|
|
_0806C97A:
|
|
movs r4, 0
|
|
_0806C97C:
|
|
ldr r1, _0806C990 @ =gSprites
|
|
lsls r0, r5, 4
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
strh r4, [r0, 0x30]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806C990: .4byte gSprites
|
|
thumb_func_end sub_806C92C
|
|
|
|
thumb_func_start sub_806C994
|
|
sub_806C994: @ 806C994
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl sub_806CA00
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0806C9C0 @ =gSprites
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
strh r4, [r1, 0x2E]
|
|
bl sub_806C92C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806C9C0: .4byte gSprites
|
|
thumb_func_end sub_806C994
|
|
|
|
thumb_func_start sub_806C9C4
|
|
sub_806C9C4: @ 806C9C4
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl sub_806CA00
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, _0806C9FC @ =gSprites
|
|
lsls r2, r4, 4
|
|
adds r2, r4
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r3
|
|
ldrh r0, [r1, 0x20]
|
|
strh r0, [r2, 0x20]
|
|
ldrh r0, [r1, 0x22]
|
|
strh r0, [r2, 0x22]
|
|
ldrh r0, [r1, 0x2E]
|
|
strh r0, [r2, 0x2E]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806C9FC: .4byte gSprites
|
|
thumb_func_end sub_806C9C4
|
|
|
|
thumb_func_start sub_806CA00
|
|
sub_806CA00: @ 806CA00
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0806CA14 @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldrh r0, [r1, 0xE]
|
|
lsrs r0, 8
|
|
bx lr
|
|
.align 2, 0
|
|
_0806CA14: .4byte gTasks
|
|
thumb_func_end sub_806CA00
|
|
|
|
thumb_func_start sub_806CA18
|
|
sub_806CA18: @ 806CA18
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
ldr r3, _0806CA34 @ =gTasks
|
|
lsls r2, r0, 2
|
|
adds r2, r0
|
|
lsls r2, 3
|
|
adds r2, r3
|
|
ldrb r0, [r2, 0xE]
|
|
lsrs r1, 16
|
|
orrs r0, r1
|
|
strh r0, [r2, 0xE]
|
|
bx lr
|
|
.align 2, 0
|
|
_0806CA34: .4byte gTasks
|
|
thumb_func_end sub_806CA18
|
|
|
|
thumb_func_start sub_806CA38
|
|
sub_806CA38: @ 806CA38
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_806CA00
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0806CA5C @ =gSprites
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrh r0, [r1, 0x2E]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0806CA5C: .4byte gSprites
|
|
thumb_func_end sub_806CA38
|
|
|
|
thumb_func_start sub_806CA60
|
|
sub_806CA60: @ 806CA60
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r1, _0806CAD8 @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _0806CADC @ =TaskDummy
|
|
str r1, [r0]
|
|
ldr r5, _0806CAE0 @ =0x02001000
|
|
strb r4, [r5]
|
|
ldr r0, _0806CAE4 @ =sub_806CB74
|
|
movs r1, 0
|
|
bl CreateTask
|
|
ldr r0, _0806CAE8 @ =SpriteCallbackDummy
|
|
bl CreateInvisibleSpriteWithCallback
|
|
strb r0, [r5, 0x1]
|
|
ldrb r1, [r5, 0x1]
|
|
adds r0, r4, 0
|
|
bl sub_806C9C4
|
|
adds r0, r4, 0
|
|
bl sub_806CA00
|
|
strb r0, [r5, 0x2]
|
|
ldr r1, _0806CAEC @ =0x0001a272
|
|
adds r0, r5, r1
|
|
ldrb r0, [r0]
|
|
movs r1, 0
|
|
bl sub_806D538
|
|
ldr r2, _0806CAF0 @ =gSprites
|
|
ldrb r0, [r5, 0x1]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r1, r2]
|
|
lsls r0, 1
|
|
ldr r2, _0806CAF4 @ =gUnknown_083769A8
|
|
adds r0, r2
|
|
ldrh r1, [r1, 0x2E]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r2, 0x6
|
|
movs r3, 0
|
|
bl sub_806BF24
|
|
ldr r0, _0806CAF8 @ =0x0001a261
|
|
adds r5, r0
|
|
movs r0, 0x2
|
|
strb r0, [r5]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806CAD8: .4byte gTasks
|
|
_0806CADC: .4byte TaskDummy
|
|
_0806CAE0: .4byte 0x02001000
|
|
_0806CAE4: .4byte sub_806CB74
|
|
_0806CAE8: .4byte SpriteCallbackDummy
|
|
_0806CAEC: .4byte 0x0001a272
|
|
_0806CAF0: .4byte gSprites
|
|
_0806CAF4: .4byte gUnknown_083769A8
|
|
_0806CAF8: .4byte 0x0001a261
|
|
thumb_func_end sub_806CA60
|
|
|
|
thumb_func_start sub_806CAFC
|
|
sub_806CAFC: @ 806CAFC
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r4, _0806CB48 @ =0x02001000
|
|
ldrb r3, [r4, 0x1]
|
|
lsls r2, r3, 4
|
|
adds r2, r3
|
|
lsls r2, 2
|
|
ldr r3, _0806CB4C @ =gSprites
|
|
adds r5, r2, r3
|
|
ldrb r2, [r4, 0x2]
|
|
lsls r4, r2, 4
|
|
adds r4, r2
|
|
lsls r4, 2
|
|
adds r4, r3
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
bl sub_806BF74
|
|
ldrh r2, [r5, 0x2E]
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r5, r0]
|
|
movs r3, 0x2E
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
beq _0806CB54
|
|
adds r0, r1, 0
|
|
lsls r0, 1
|
|
ldr r1, _0806CB50 @ =gUnknown_083769A8
|
|
adds r0, r1
|
|
lsls r1, r2, 24
|
|
lsrs r1, 24
|
|
movs r2, 0x6
|
|
movs r3, 0x1
|
|
bl sub_806BF24
|
|
b _0806CB6A
|
|
.align 2, 0
|
|
_0806CB48: .4byte 0x02001000
|
|
_0806CB4C: .4byte gSprites
|
|
_0806CB50: .4byte gUnknown_083769A8
|
|
_0806CB54:
|
|
movs r3, 0x2E
|
|
ldrsh r0, [r5, r3]
|
|
lsls r0, 1
|
|
ldr r1, _0806CB70 @ =gUnknown_083769A8
|
|
adds r0, r1
|
|
lsls r1, r2, 24
|
|
lsrs r1, 24
|
|
movs r2, 0x6
|
|
movs r3, 0
|
|
bl sub_806BF24
|
|
_0806CB6A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806CB70: .4byte gUnknown_083769A8
|
|
thumb_func_end sub_806CAFC
|
|
|
|
thumb_func_start sub_806CB74
|
|
sub_806CB74: @ 806CB74
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, _0806CB8C @ =gMain
|
|
ldrh r0, [r0, 0x30]
|
|
cmp r0, 0x20
|
|
beq _0806CBBC
|
|
cmp r0, 0x20
|
|
bgt _0806CB90
|
|
cmp r0, 0x10
|
|
beq _0806CBD0
|
|
b _0806CBDA
|
|
.align 2, 0
|
|
_0806CB8C: .4byte gMain
|
|
_0806CB90:
|
|
cmp r0, 0x40
|
|
beq _0806CB9A
|
|
cmp r0, 0x80
|
|
beq _0806CBAC
|
|
b _0806CBDA
|
|
_0806CB9A:
|
|
ldr r0, _0806CBA8 @ =0x02001000
|
|
ldrb r0, [r0]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
bl sub_806CAFC
|
|
b _0806CBDA
|
|
.align 2, 0
|
|
_0806CBA8: .4byte 0x02001000
|
|
_0806CBAC:
|
|
ldr r0, _0806CBB8 @ =0x02001000
|
|
ldrb r0, [r0]
|
|
movs r1, 0x1
|
|
bl sub_806CAFC
|
|
b _0806CBDA
|
|
.align 2, 0
|
|
_0806CBB8: .4byte 0x02001000
|
|
_0806CBBC:
|
|
ldr r0, _0806CBCC @ =0x02001000
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
negs r1, r1
|
|
bl sub_806CAFC
|
|
b _0806CBDA
|
|
.align 2, 0
|
|
_0806CBCC: .4byte 0x02001000
|
|
_0806CBD0:
|
|
ldr r0, _0806CC04 @ =0x02001000
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl sub_806CAFC
|
|
_0806CBDA:
|
|
ldr r0, _0806CC08 @ =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0806CC10
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
ldr r1, _0806CC0C @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _0806CC04 @ =0x02001000
|
|
ldr r1, [r1, 0xC]
|
|
str r1, [r0]
|
|
adds r0, r4, 0
|
|
bl _call_via_r1
|
|
b _0806CC24
|
|
.align 2, 0
|
|
_0806CC04: .4byte 0x02001000
|
|
_0806CC08: .4byte gMain
|
|
_0806CC0C: .4byte gTasks
|
|
_0806CC10:
|
|
lsls r0, r1, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x2
|
|
bne _0806CC24
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
adds r0, r4, 0
|
|
bl sub_806CD44
|
|
_0806CC24:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_806CB74
|
|
|
|
thumb_func_start sub_806CC2C
|
|
sub_806CC2C: @ 806CC2C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r5, _0806CC68 @ =0x02001000
|
|
ldrb r1, [r5, 0x1]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0806CC6C @ =gSprites
|
|
adds r0, r1
|
|
bl DestroySprite
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_806D538
|
|
ldr r0, _0806CC70 @ =0x0001a261
|
|
adds r1, r5, r0
|
|
movs r0, 0x2
|
|
strb r0, [r1]
|
|
ldrb r0, [r5]
|
|
bl SwitchTaskToFollowupFunc
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806CC68: .4byte 0x02001000
|
|
_0806CC6C: .4byte gSprites
|
|
_0806CC70: .4byte 0x0001a261
|
|
thumb_func_end sub_806CC2C
|
|
|
|
thumb_func_start sub_806CC74
|
|
sub_806CC74: @ 806CC74
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, _0806CCD8 @ =gSprites
|
|
mov r8, r0
|
|
ldr r6, _0806CCDC @ =0x02001000
|
|
ldrb r0, [r6, 0x2]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
add r1, r8
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r1, r2]
|
|
lsls r0, 1
|
|
ldr r5, _0806CCE0 @ =gUnknown_083769A8
|
|
adds r0, r5
|
|
ldrh r1, [r1, 0x2E]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r2, 0x3
|
|
movs r3, 0x1
|
|
bl sub_806BF24
|
|
ldrb r0, [r6, 0x1]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
add r1, r8
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r1, r2]
|
|
lsls r0, 1
|
|
adds r0, r5
|
|
ldrh r1, [r1, 0x2E]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r2, 0x3
|
|
movs r3, 0
|
|
bl sub_806BF24
|
|
adds r0, r4, 0
|
|
bl sub_806CC2C
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806CCD8: .4byte gSprites
|
|
_0806CCDC: .4byte 0x02001000
|
|
_0806CCE0: .4byte gUnknown_083769A8
|
|
thumb_func_end sub_806CC74
|
|
|
|
thumb_func_start sub_806CCE4
|
|
sub_806CCE4: @ 806CCE4
|
|
push {r4,r5,lr}
|
|
ldr r3, _0806CD38 @ =gSprites
|
|
ldr r2, _0806CD3C @ =0x02001000
|
|
ldrb r1, [r2, 0x1]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrh r0, [r0, 0x2E]
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldrb r1, [r2, 0x2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrh r0, [r0, 0x2E]
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r4, 0x5
|
|
bhi _0806CD1E
|
|
lsls r0, r4, 1
|
|
ldr r1, _0806CD40 @ =gUnknown_083769A8
|
|
adds r0, r1
|
|
adds r1, r4, 0
|
|
movs r2, 0x3
|
|
movs r3, 0
|
|
bl sub_806BF24
|
|
_0806CD1E:
|
|
cmp r5, 0x5
|
|
bhi _0806CD32
|
|
lsls r0, r5, 1
|
|
ldr r1, _0806CD40 @ =gUnknown_083769A8
|
|
adds r0, r1
|
|
adds r1, r5, 0
|
|
movs r2, 0x3
|
|
movs r3, 0x1
|
|
bl sub_806BF24
|
|
_0806CD32:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806CD38: .4byte gSprites
|
|
_0806CD3C: .4byte 0x02001000
|
|
_0806CD40: .4byte gUnknown_083769A8
|
|
thumb_func_end sub_806CCE4
|
|
|
|
thumb_func_start sub_806CD44
|
|
sub_806CD44: @ 806CD44
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl sub_806CCE4
|
|
adds r0, r4, 0
|
|
bl sub_806CC2C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_806CD44
|
|
|
|
thumb_func_start sub_806CD5C
|
|
sub_806CD5C: @ 806CD5C
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r2, _0806CDA8 @ =gSprites
|
|
ldr r6, _0806CDAC @ =0x02001000
|
|
ldrb r1, [r6, 0x1]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x2E]
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
mov r9, r5
|
|
ldrb r1, [r6, 0x2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x2E]
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r7, r4, 0
|
|
cmp r5, r4
|
|
beq _0806CD9E
|
|
cmp r5, 0x7
|
|
beq _0806CD9E
|
|
cmp r4, 0x7
|
|
bne _0806CDB0
|
|
_0806CD9E:
|
|
mov r0, r8
|
|
bl sub_806CD44
|
|
b _0806CED2
|
|
.align 2, 0
|
|
_0806CDA8: .4byte gSprites
|
|
_0806CDAC: .4byte 0x02001000
|
|
_0806CDB0:
|
|
adds r0, r5, 0
|
|
bl sub_806D5B8
|
|
adds r0, r4, 0
|
|
bl sub_806D5B8
|
|
cmp r5, r4
|
|
bls _0806CDC6
|
|
strb r4, [r6, 0x5]
|
|
strb r5, [r6, 0x6]
|
|
b _0806CDCC
|
|
_0806CDC6:
|
|
mov r0, r9
|
|
strb r0, [r6, 0x5]
|
|
strb r7, [r6, 0x6]
|
|
_0806CDCC:
|
|
ldr r4, _0806CE1C @ =0x02001000
|
|
ldrb r0, [r4]
|
|
ldrb r1, [r4, 0x5]
|
|
bl GetMonIconSpriteId_maybe
|
|
strb r0, [r4, 0x3]
|
|
ldrb r0, [r4]
|
|
ldrb r1, [r4, 0x6]
|
|
bl GetMonIconSpriteId_maybe
|
|
strb r0, [r4, 0x4]
|
|
ldrb r3, [r4, 0x5]
|
|
cmp r3, 0
|
|
bne _0806CE34
|
|
ldr r2, _0806CE20 @ =gSprites
|
|
ldrb r1, [r4, 0x3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r1, _0806CE24 @ =0x0000fff8
|
|
strh r1, [r0, 0x2E]
|
|
ldrb r1, [r4, 0x3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r1, _0806CE28 @ =0x0000ff58
|
|
strh r1, [r0, 0x32]
|
|
strh r3, [r4, 0x8]
|
|
movs r0, 0xB
|
|
strh r0, [r4, 0xA]
|
|
ldr r1, _0806CE2C @ =gTasks
|
|
mov r3, r8
|
|
lsls r0, r3, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _0806CE30 @ =sub_806D014
|
|
b _0806CE66
|
|
.align 2, 0
|
|
_0806CE1C: .4byte 0x02001000
|
|
_0806CE20: .4byte gSprites
|
|
_0806CE24: .4byte 0x0000fff8
|
|
_0806CE28: .4byte 0x0000ff58
|
|
_0806CE2C: .4byte gTasks
|
|
_0806CE30: .4byte sub_806D014
|
|
_0806CE34:
|
|
ldr r2, _0806CEE0 @ =gSprites
|
|
ldrb r1, [r4, 0x3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x8
|
|
strh r1, [r0, 0x2E]
|
|
ldrb r1, [r4, 0x3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0xA8
|
|
strh r1, [r0, 0x32]
|
|
movs r0, 0xB
|
|
strh r0, [r4, 0x8]
|
|
strh r0, [r4, 0xA]
|
|
ldr r1, _0806CEE4 @ =gTasks
|
|
mov r3, r8
|
|
lsls r0, r3, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _0806CEE8 @ =sub_806D118
|
|
_0806CE66:
|
|
str r1, [r0]
|
|
ldr r0, _0806CEEC @ =0x0001a261
|
|
adds r1, r4, r0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
adds r6, r2, 0
|
|
ldr r4, _0806CEF0 @ =0x02001000
|
|
ldrb r1, [r4, 0x3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r5, r6, 0
|
|
adds r5, 0x1C
|
|
adds r0, r5
|
|
ldr r2, _0806CEF4 @ =sub_806D37C
|
|
str r2, [r0]
|
|
ldrb r1, [r4, 0x4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
movs r1, 0x8
|
|
strh r1, [r0, 0x2E]
|
|
ldrb r1, [r4, 0x4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
movs r1, 0xA8
|
|
strh r1, [r0, 0x32]
|
|
ldrb r1, [r4, 0x4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
str r2, [r0]
|
|
ldrb r1, [r4, 0x3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r0, r5
|
|
adds r0, r6
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
ldrb r1, [r4, 0x4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r5, r0, r5
|
|
adds r0, r6
|
|
ldr r1, [r5]
|
|
bl _call_via_r1
|
|
_0806CED2:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806CEE0: .4byte gSprites
|
|
_0806CEE4: .4byte gTasks
|
|
_0806CEE8: .4byte sub_806D118
|
|
_0806CEEC: .4byte 0x0001a261
|
|
_0806CEF0: .4byte 0x02001000
|
|
_0806CEF4: .4byte sub_806D37C
|
|
thumb_func_end sub_806CD5C
|
|
|
|
thumb_func_start sub_806CEF8
|
|
sub_806CEF8: @ 806CEF8
|
|
ldrh r3, [r0]
|
|
ldrh r2, [r1]
|
|
strh r2, [r0]
|
|
strh r3, [r1]
|
|
bx lr
|
|
thumb_func_end sub_806CEF8
|
|
|
|
thumb_func_start sub_806CF04
|
|
sub_806CF04: @ 806CF04
|
|
push {r4,r5,lr}
|
|
ldr r4, _0806CF94 @ =0x02001000
|
|
ldrb r1, [r4, 0x3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r5, _0806CF98 @ =gSprites + 0x20
|
|
adds r0, r5
|
|
ldrb r2, [r4, 0x4]
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
bl sub_806CEF8
|
|
ldrb r1, [r4, 0x3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r3, r5, 0x2
|
|
adds r0, r3
|
|
ldrb r2, [r4, 0x4]
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r3
|
|
bl sub_806CEF8
|
|
ldrb r1, [r4, 0x3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r3, r5, 0x4
|
|
adds r0, r3
|
|
ldrb r2, [r4, 0x4]
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r3
|
|
bl sub_806CEF8
|
|
ldrb r1, [r4, 0x3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r3, r5, 0
|
|
adds r3, 0xE
|
|
adds r0, r3
|
|
ldrb r2, [r4, 0x4]
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r3
|
|
bl sub_806CEF8
|
|
ldrb r1, [r4, 0x3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
subs r5, 0x4
|
|
adds r0, r5
|
|
ldr r2, _0806CF9C @ =sub_806D37C
|
|
str r2, [r0]
|
|
ldrb r1, [r4, 0x4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
str r2, [r0]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806CF94: .4byte 0x02001000
|
|
_0806CF98: .4byte gSprites + 0x20
|
|
_0806CF9C: .4byte sub_806D37C
|
|
thumb_func_end sub_806CF04
|
|
|
|
thumb_func_start sub_806CFA0
|
|
sub_806CFA0: @ 806CFA0
|
|
push {r4-r6,lr}
|
|
lsls r4, r1, 24
|
|
lsrs r4, 24
|
|
ldr r5, _0806CFDC @ =0x02001000
|
|
ldrb r1, [r5, 0x6]
|
|
subs r1, 0x1
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r1, 0x8
|
|
ldrsh r0, [r5, r1]
|
|
movs r1, 0x3
|
|
bl sub_806BA34
|
|
movs r1, 0xA
|
|
ldrsh r0, [r5, r1]
|
|
adds r1, r6, 0
|
|
bl sub_806BB3C
|
|
cmp r4, 0
|
|
bne _0806CFE0
|
|
ldrh r0, [r5, 0x8]
|
|
subs r0, 0x1
|
|
strh r0, [r5, 0x8]
|
|
ldrh r0, [r5, 0xA]
|
|
adds r0, 0x1
|
|
b _0806CFEA
|
|
.align 2, 0
|
|
_0806CFDC: .4byte 0x02001000
|
|
_0806CFE0:
|
|
ldrh r0, [r5, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x8]
|
|
ldrh r0, [r5, 0xA]
|
|
subs r0, 0x1
|
|
_0806CFEA:
|
|
strh r0, [r5, 0xA]
|
|
ldr r4, _0806D010 @ =0x02001000
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x3
|
|
movs r2, 0xA
|
|
bl sub_806B9A4
|
|
movs r1, 0xA
|
|
ldrsh r0, [r4, r1]
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
movs r3, 0xA
|
|
bl sub_806BA94
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806D010: .4byte 0x02001000
|
|
thumb_func_end sub_806CFA0
|
|
|
|
thumb_func_start sub_806D014
|
|
sub_806D014: @ 806D014
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl sub_806CFA0
|
|
ldr r2, _0806D050 @ =0x02001000
|
|
movs r0, 0x8
|
|
ldrsh r1, [r2, r0]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bge _0806D04A
|
|
movs r1, 0xA
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, 0x20
|
|
ble _0806D04A
|
|
bl sub_806CF04
|
|
ldr r0, _0806D054 @ =gTasks
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _0806D058 @ =sub_806D05C
|
|
str r0, [r1]
|
|
_0806D04A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806D050: .4byte 0x02001000
|
|
_0806D054: .4byte gTasks
|
|
_0806D058: .4byte sub_806D05C
|
|
thumb_func_end sub_806D014
|
|
|
|
thumb_func_start sub_806D05C
|
|
sub_806D05C: @ 806D05C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_806CFA0
|
|
ldr r0, _0806D08C @ =0x02001000
|
|
ldr r1, [r0, 0x8]
|
|
movs r0, 0xB0
|
|
lsls r0, 12
|
|
cmp r1, r0
|
|
bne _0806D084
|
|
ldr r0, _0806D090 @ =gTasks
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _0806D094 @ =sub_806D198
|
|
str r0, [r1]
|
|
_0806D084:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806D08C: .4byte 0x02001000
|
|
_0806D090: .4byte gTasks
|
|
_0806D094: .4byte sub_806D198
|
|
thumb_func_end sub_806D05C
|
|
|
|
thumb_func_start sub_806D098
|
|
sub_806D098: @ 806D098
|
|
push {r4-r7,lr}
|
|
lsls r4, r1, 24
|
|
lsrs r4, 24
|
|
ldr r5, _0806D0E0 @ =0x02001000
|
|
ldrb r1, [r5, 0x5]
|
|
subs r1, 0x1
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldrb r1, [r5, 0x6]
|
|
subs r1, 0x1
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r1, 0x8
|
|
ldrsh r0, [r5, r1]
|
|
adds r1, r7, 0
|
|
bl sub_806BB3C
|
|
movs r1, 0xA
|
|
ldrsh r0, [r5, r1]
|
|
adds r1, r6, 0
|
|
bl sub_806BB3C
|
|
cmp r4, 0
|
|
bne _0806D0E4
|
|
ldrh r0, [r5, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x8]
|
|
ldrh r0, [r5, 0xA]
|
|
adds r0, 0x1
|
|
b _0806D0EE
|
|
.align 2, 0
|
|
_0806D0E0: .4byte 0x02001000
|
|
_0806D0E4:
|
|
ldrh r0, [r5, 0x8]
|
|
subs r0, 0x1
|
|
strh r0, [r5, 0x8]
|
|
ldrh r0, [r5, 0xA]
|
|
subs r0, 0x1
|
|
_0806D0EE:
|
|
strh r0, [r5, 0xA]
|
|
ldr r4, _0806D114 @ =0x02001000
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
adds r1, r7, 0
|
|
movs r2, 0
|
|
movs r3, 0xA
|
|
bl sub_806BA94
|
|
movs r1, 0xA
|
|
ldrsh r0, [r4, r1]
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
movs r3, 0xA
|
|
bl sub_806BA94
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806D114: .4byte 0x02001000
|
|
thumb_func_end sub_806D098
|
|
|
|
thumb_func_start sub_806D118
|
|
sub_806D118: @ 806D118
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl sub_806D098
|
|
ldr r1, _0806D150 @ =0x02001000
|
|
movs r2, 0x8
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0x20
|
|
ble _0806D14A
|
|
movs r2, 0xA
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0x20
|
|
ble _0806D14A
|
|
bl sub_806CF04
|
|
ldr r0, _0806D154 @ =gTasks
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _0806D158 @ =sub_806D15C
|
|
str r0, [r1]
|
|
_0806D14A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806D150: .4byte 0x02001000
|
|
_0806D154: .4byte gTasks
|
|
_0806D158: .4byte sub_806D15C
|
|
thumb_func_end sub_806D118
|
|
|
|
thumb_func_start sub_806D15C
|
|
sub_806D15C: @ 806D15C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_806D098
|
|
ldr r0, _0806D188 @ =0x02001000
|
|
ldr r1, [r0, 0x8]
|
|
ldr r0, _0806D18C @ =0x000b000b
|
|
cmp r1, r0
|
|
bne _0806D182
|
|
ldr r0, _0806D190 @ =gTasks
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _0806D194 @ =sub_806D198
|
|
str r0, [r1]
|
|
_0806D182:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806D188: .4byte 0x02001000
|
|
_0806D18C: .4byte 0x000b000b
|
|
_0806D190: .4byte gTasks
|
|
_0806D194: .4byte sub_806D198
|
|
thumb_func_end sub_806D15C
|
|
|
|
thumb_func_start sub_806D198
|
|
sub_806D198: @ 806D198
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
mov r10, r0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
ldr r4, _0806D364 @ =0x02001000
|
|
ldrb r0, [r4]
|
|
ldrb r1, [r4, 0x5]
|
|
ldrb r2, [r4, 0x4]
|
|
bl SetMonIconSpriteId_maybe
|
|
ldrb r0, [r4]
|
|
ldrb r1, [r4, 0x6]
|
|
ldrb r2, [r4, 0x3]
|
|
bl SetMonIconSpriteId_maybe
|
|
bl IsDoubleBattle
|
|
ldr r5, _0806D368 @ =gSprites
|
|
ldrb r1, [r4, 0x3]
|
|
lsls r3, r1, 4
|
|
adds r3, r1
|
|
lsls r3, 2
|
|
adds r3, r5
|
|
ldr r6, _0806D36C @ =gUnknown_08376678
|
|
ldrb r2, [r4, 0x6]
|
|
lsls r2, 2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r2, r1
|
|
adds r2, r6
|
|
ldrb r0, [r2]
|
|
movs r1, 0
|
|
mov r8, r1
|
|
strh r0, [r3, 0x20]
|
|
bl IsDoubleBattle
|
|
ldrb r1, [r4, 0x3]
|
|
lsls r3, r1, 4
|
|
adds r3, r1
|
|
lsls r3, 2
|
|
adds r3, r5
|
|
ldrb r2, [r4, 0x6]
|
|
lsls r2, 2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r2, r1
|
|
adds r2, r6
|
|
ldrb r0, [r2, 0x1]
|
|
strh r0, [r3, 0x22]
|
|
ldrb r1, [r4, 0x3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
mov r1, r8
|
|
strh r1, [r0, 0x24]
|
|
ldrb r1, [r4, 0x3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
mov r1, r8
|
|
strh r1, [r0, 0x26]
|
|
ldrb r1, [r4, 0x3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
movs r1, 0x1C
|
|
adds r1, r5
|
|
mov r9, r1
|
|
add r0, r9
|
|
ldr r7, _0806D370 @ =UpdateMonIconFrame_806DA38
|
|
str r7, [r0]
|
|
bl IsDoubleBattle
|
|
ldrb r1, [r4, 0x4]
|
|
lsls r3, r1, 4
|
|
adds r3, r1
|
|
lsls r3, 2
|
|
adds r3, r5
|
|
ldrb r2, [r4, 0x5]
|
|
lsls r2, 2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r2, r1
|
|
adds r2, r6
|
|
ldrb r0, [r2]
|
|
strh r0, [r3, 0x20]
|
|
bl IsDoubleBattle
|
|
ldrb r1, [r4, 0x4]
|
|
lsls r3, r1, 4
|
|
adds r3, r1
|
|
lsls r3, 2
|
|
adds r3, r5
|
|
ldrb r2, [r4, 0x5]
|
|
lsls r2, 2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r2, r1
|
|
adds r2, r6
|
|
ldrb r0, [r2, 0x1]
|
|
strh r0, [r3, 0x22]
|
|
ldrb r1, [r4, 0x4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
mov r1, r8
|
|
strh r1, [r0, 0x24]
|
|
ldrb r1, [r4, 0x4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
mov r1, r8
|
|
strh r1, [r0, 0x26]
|
|
ldrb r1, [r4, 0x4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r9
|
|
str r7, [r0]
|
|
ldrb r0, [r4]
|
|
ldrb r2, [r4, 0x2]
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldrh r1, [r1, 0x2E]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
bl GetMonIconSpriteId_maybe
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
add r1, r9
|
|
ldr r0, _0806D374 @ =UpdateMonIconFrame_806DA0C
|
|
str r0, [r1]
|
|
ldrb r0, [r4, 0x5]
|
|
movs r6, 0x64
|
|
muls r0, r6
|
|
ldr r5, _0806D378 @ =gPlayerParty
|
|
adds r0, r5
|
|
ldrb r1, [r4, 0x6]
|
|
muls r1, r6
|
|
adds r1, r5
|
|
bl sub_806E6F0
|
|
ldrb r0, [r4, 0x5]
|
|
adds r1, r0, 0
|
|
muls r1, r6
|
|
adds r1, r5
|
|
bl PartyMenuPrintMonLevelOrStatus
|
|
ldrb r0, [r4, 0x5]
|
|
adds r1, r0, 0
|
|
muls r1, r6
|
|
adds r1, r5
|
|
bl TryPrintPartyMenuMonNickname
|
|
ldrb r0, [r4, 0x5]
|
|
adds r1, r0, 0
|
|
muls r1, r6
|
|
adds r1, r5
|
|
bl PartyMenuTryPrintHP
|
|
ldrb r0, [r4, 0x5]
|
|
adds r1, r0, 0
|
|
muls r1, r6
|
|
adds r1, r5
|
|
bl nullsub_12
|
|
ldrb r0, [r4, 0x6]
|
|
adds r1, r0, 0
|
|
muls r1, r6
|
|
adds r1, r5
|
|
bl PartyMenuPrintMonLevelOrStatus
|
|
ldrb r0, [r4, 0x6]
|
|
adds r1, r0, 0
|
|
muls r1, r6
|
|
adds r1, r5
|
|
bl TryPrintPartyMenuMonNickname
|
|
ldrb r0, [r4, 0x6]
|
|
adds r1, r0, 0
|
|
muls r1, r6
|
|
adds r1, r5
|
|
bl PartyMenuTryPrintHP
|
|
ldrb r0, [r4, 0x6]
|
|
adds r1, r0, 0
|
|
muls r1, r6
|
|
adds r1, r5
|
|
bl nullsub_12
|
|
bl PartyMenuDrawHPBars
|
|
mov r0, r10
|
|
bl sub_806CC74
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806D364: .4byte 0x02001000
|
|
_0806D368: .4byte gSprites
|
|
_0806D36C: .4byte gUnknown_08376678
|
|
_0806D370: .4byte UpdateMonIconFrame_806DA38
|
|
_0806D374: .4byte UpdateMonIconFrame_806DA0C
|
|
_0806D378: .4byte gPlayerParty
|
|
thumb_func_end sub_806D198
|
|
|
|
thumb_func_start sub_806D37C
|
|
sub_806D37C: @ 806D37C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl UpdateMonIconFrame
|
|
ldrh r2, [r4, 0x24]
|
|
movs r0, 0x24
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x32
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _0806D3A8
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
negs r0, r0
|
|
movs r1, 0
|
|
strh r0, [r4, 0x2E]
|
|
strh r1, [r4, 0x32]
|
|
ldr r0, _0806D3A4 @ =UpdateMonIconFrame_806DA38
|
|
str r0, [r4, 0x1C]
|
|
b _0806D3AE
|
|
.align 2, 0
|
|
_0806D3A4: .4byte UpdateMonIconFrame_806DA38
|
|
_0806D3A8:
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, r2, r0
|
|
strh r0, [r4, 0x24]
|
|
_0806D3AE:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_806D37C
|
|
|
|
thumb_func_start sub_806D3B4
|
|
sub_806D3B4: @ 806D3B4
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r4, r1, 0
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
mov r8, r2
|
|
ldr r6, _0806D438 @ =gUnknown_083769C0
|
|
ldr r1, _0806D43C @ =gTasks
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r5, r0, r1
|
|
ldrh r0, [r5, 0x8]
|
|
ldrb r1, [r6, 0x2]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldrb r1, [r6, 0x3]
|
|
bl sub_806BA34
|
|
ldrh r0, [r5, 0x8]
|
|
ldrb r1, [r6, 0x8]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldrb r1, [r6, 0x9]
|
|
bl sub_806BB3C
|
|
ldrh r0, [r5, 0x8]
|
|
ldrb r1, [r6, 0xA]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldrb r1, [r6, 0xB]
|
|
bl sub_806BB3C
|
|
ldrh r1, [r5, 0x8]
|
|
subs r1, 0x1
|
|
strh r1, [r5, 0x8]
|
|
ldrb r0, [r6, 0x2]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldrb r1, [r6, 0x3]
|
|
movs r2, 0x4
|
|
bl sub_806B9A4
|
|
cmp r4, 0
|
|
beq _0806D440
|
|
ldrh r0, [r5, 0x8]
|
|
ldrb r1, [r6, 0x8]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldrb r1, [r6, 0x9]
|
|
movs r2, 0
|
|
movs r3, 0x4
|
|
bl sub_806BA94
|
|
b _0806D454
|
|
.align 2, 0
|
|
_0806D438: .4byte gUnknown_083769C0
|
|
_0806D43C: .4byte gTasks
|
|
_0806D440:
|
|
ldrh r0, [r5, 0x8]
|
|
ldrb r1, [r6, 0x8]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldrb r1, [r6, 0x9]
|
|
movs r2, 0x1
|
|
movs r3, 0x4
|
|
bl sub_806BA94
|
|
_0806D454:
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
beq _0806D480
|
|
ldr r1, _0806D47C @ =gTasks
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x8]
|
|
ldrb r1, [r6, 0xA]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldrb r1, [r6, 0xB]
|
|
movs r2, 0
|
|
movs r3, 0x4
|
|
bl sub_806BA94
|
|
b _0806D49E
|
|
.align 2, 0
|
|
_0806D47C: .4byte gTasks
|
|
_0806D480:
|
|
ldr r1, _0806D4A8 @ =gTasks
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x8]
|
|
ldrb r1, [r6, 0xA]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldrb r1, [r6, 0xB]
|
|
movs r2, 0x1
|
|
movs r3, 0x4
|
|
bl sub_806BA94
|
|
_0806D49E:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806D4A8: .4byte gTasks
|
|
thumb_func_end sub_806D3B4
|
|
|
|
thumb_func_start sub_806D4AC
|
|
sub_806D4AC: @ 806D4AC
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r1, 16
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
cmp r1, 0
|
|
beq _0806D4F6
|
|
adds r1, r2, 0x3
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r5, 0
|
|
bl GetMonIconSpriteId_maybe
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0806D4FC @ =gSprites
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r4, r1, r2
|
|
ldr r0, _0806D500 @ =0x0000fff8
|
|
strh r0, [r4, 0x2E]
|
|
ldr r3, _0806D504 @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r3
|
|
movs r3, 0x8
|
|
ldrsh r0, [r0, r3]
|
|
lsls r0, 3
|
|
negs r0, r0
|
|
strh r0, [r4, 0x32]
|
|
adds r2, 0x1C
|
|
adds r1, r2
|
|
ldr r0, _0806D508 @ =sub_806D37C
|
|
str r0, [r1]
|
|
_0806D4F6:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806D4FC: .4byte gSprites
|
|
_0806D500: .4byte 0x0000fff8
|
|
_0806D504: .4byte gTasks
|
|
_0806D508: .4byte sub_806D37C
|
|
thumb_func_end sub_806D4AC
|
|
|
|
thumb_func_start sub_806D50C
|
|
sub_806D50C: @ 806D50C
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
bl GetMonIconSpriteId_maybe
|
|
ldr r2, _0806D534 @ =gSprites
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0xF0
|
|
strh r0, [r1, 0x20]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806D534: .4byte gSprites
|
|
thumb_func_end sub_806D50C
|
|
|
|
thumb_func_start sub_806D538
|
|
sub_806D538: @ 806D538
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r1, 0
|
|
cmp r4, 0xFF
|
|
beq _0806D59A
|
|
cmp r1, 0x1
|
|
beq _0806D568
|
|
cmp r1, 0x1
|
|
bgt _0806D556
|
|
cmp r1, 0
|
|
beq _0806D560
|
|
b _0806D58A
|
|
_0806D556:
|
|
cmp r0, 0x2
|
|
beq _0806D570
|
|
cmp r0, 0x3
|
|
beq _0806D57E
|
|
b _0806D58A
|
|
_0806D560:
|
|
movs r0, 0
|
|
movs r1, 0x10
|
|
movs r2, 0x17
|
|
b _0806D576
|
|
_0806D568:
|
|
movs r0, 0
|
|
movs r1, 0x10
|
|
movs r2, 0x13
|
|
b _0806D576
|
|
_0806D570:
|
|
movs r0, 0
|
|
movs r1, 0x10
|
|
movs r2, 0x16
|
|
_0806D576:
|
|
movs r3, 0x13
|
|
bl MenuDrawTextWindow
|
|
b _0806D58A
|
|
_0806D57E:
|
|
movs r0, 0
|
|
movs r1, 0x10
|
|
movs r2, 0x12
|
|
movs r3, 0x13
|
|
bl MenuDrawTextWindow
|
|
_0806D58A:
|
|
ldr r0, _0806D5A0 @ =gUnknown_08376624
|
|
lsls r1, r4, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
movs r1, 0x1
|
|
movs r2, 0x11
|
|
bl MenuPrint
|
|
_0806D59A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806D5A0: .4byte gUnknown_08376624
|
|
thumb_func_end sub_806D538
|
|
|
|
thumb_func_start sub_806D5A4
|
|
sub_806D5A4: @ 806D5A4
|
|
push {lr}
|
|
movs r0, 0
|
|
movs r1, 0x10
|
|
movs r2, 0x1D
|
|
movs r3, 0x13
|
|
bl MenuZeroFillWindowRect
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_806D5A4
|
|
|
|
thumb_func_start sub_806D5B8
|
|
sub_806D5B8: @ 806D5B8
|
|
push {r4-r6,lr}
|
|
mov r6, r10
|
|
mov r5, r9
|
|
mov r4, r8
|
|
push {r4-r6}
|
|
sub sp, 0x8
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r6, _0806D658 @ =gUnknown_08376948
|
|
bl IsDoubleBattle
|
|
lsls r4, r5, 2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r4, r1
|
|
adds r1, r6
|
|
ldrb r1, [r1]
|
|
mov r10, r1
|
|
bl IsDoubleBattle
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r4, r1
|
|
adds r1, r6
|
|
ldrb r1, [r1, 0x1]
|
|
mov r9, r1
|
|
bl IsDoubleBattle
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r4, r1
|
|
adds r1, r6
|
|
ldrb r1, [r1, 0x2]
|
|
mov r8, r1
|
|
bl IsDoubleBattle
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r4, r1
|
|
adds r4, r6
|
|
ldrb r1, [r4, 0x3]
|
|
ldr r0, _0806D65C @ =gUnknown_03004210
|
|
str r1, [sp]
|
|
mov r1, r10
|
|
mov r2, r9
|
|
mov r3, r8
|
|
bl ZeroFillWindowRect
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
lsls r5, 10
|
|
ldr r0, _0806D660 @ =0x06014000
|
|
adds r5, r0
|
|
ldr r2, _0806D664 @ =0x01000100
|
|
add r0, sp, 0x4
|
|
adds r1, r5, 0
|
|
bl CpuFastSet
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806D658: .4byte gUnknown_08376948
|
|
_0806D65C: .4byte gUnknown_03004210
|
|
_0806D660: .4byte 0x06014000
|
|
_0806D664: .4byte 0x01000100
|
|
thumb_func_end sub_806D5B8
|
|
|
|
thumb_func_start sub_806D668
|
|
sub_806D668: @ 806D668
|
|
push {r4-r6,lr}
|
|
mov r6, r10
|
|
mov r5, r9
|
|
mov r4, r8
|
|
push {r4-r6}
|
|
sub sp, 0x8
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r6, _0806D708 @ =gUnknown_08376978
|
|
bl IsDoubleBattle
|
|
lsls r4, r5, 2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r4, r1
|
|
adds r1, r6
|
|
ldrb r1, [r1]
|
|
mov r10, r1
|
|
bl IsDoubleBattle
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r4, r1
|
|
adds r1, r6
|
|
ldrb r1, [r1, 0x1]
|
|
mov r9, r1
|
|
bl IsDoubleBattle
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r4, r1
|
|
adds r1, r6
|
|
ldrb r1, [r1, 0x2]
|
|
mov r8, r1
|
|
bl IsDoubleBattle
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r4, r1
|
|
adds r4, r6
|
|
ldrb r1, [r4, 0x3]
|
|
ldr r0, _0806D70C @ =gUnknown_03004210
|
|
str r1, [sp]
|
|
mov r1, r10
|
|
mov r2, r9
|
|
mov r3, r8
|
|
bl ZeroFillWindowRect
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
lsls r5, 10
|
|
ldr r0, _0806D710 @ =0x06014300
|
|
adds r5, r0
|
|
ldr r2, _0806D714 @ =0x01000040
|
|
add r0, sp, 0x4
|
|
adds r1, r5, 0
|
|
bl CpuFastSet
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806D708: .4byte gUnknown_08376978
|
|
_0806D70C: .4byte gUnknown_03004210
|
|
_0806D710: .4byte 0x06014300
|
|
_0806D714: .4byte 0x01000040
|
|
thumb_func_end sub_806D668
|
|
|
|
thumb_func_start sub_806D718
|
|
sub_806D718: @ 806D718
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _0806D7C4 @ =0x00007fff
|
|
mov r0, sp
|
|
strh r1, [r0]
|
|
movs r5, 0
|
|
cmp r4, 0x1
|
|
bhi _0806D736
|
|
ldr r0, _0806D7C8 @ =gPartyMenuMisc_Gfx
|
|
movs r1, 0xC0
|
|
lsls r1, 19
|
|
bl LZDecompressVram
|
|
_0806D736:
|
|
cmp r4, 0x2
|
|
beq _0806D73E
|
|
cmp r4, 0
|
|
bne _0806D746
|
|
_0806D73E:
|
|
ldr r0, _0806D7CC @ =gPartyMenuMisc_Tilemap
|
|
ldr r1, _0806D7D0 @ =0x06003800
|
|
bl LZDecompressVram
|
|
_0806D746:
|
|
cmp r4, 0x3
|
|
beq _0806D74E
|
|
cmp r4, 0
|
|
bne _0806D75A
|
|
_0806D74E:
|
|
ldr r0, _0806D7D4 @ =gPartyMenuMisc_Pal
|
|
movs r2, 0xB0
|
|
lsls r2, 1
|
|
movs r1, 0
|
|
bl LoadCompressedPalette
|
|
_0806D75A:
|
|
cmp r4, 0x4
|
|
beq _0806D762
|
|
cmp r4, 0
|
|
bne _0806D776
|
|
_0806D762:
|
|
mov r0, sp
|
|
movs r1, 0
|
|
movs r2, 0x2
|
|
bl LoadPalette
|
|
ldr r0, _0806D7D8 @ =gFontDefaultPalette
|
|
movs r1, 0xF0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
_0806D776:
|
|
cmp r4, 0x5
|
|
beq _0806D77E
|
|
cmp r4, 0
|
|
bne _0806D786
|
|
_0806D77E:
|
|
ldr r0, _0806D7DC @ =gPartyMenuHpBar_Gfx
|
|
ldr r1, _0806D7E0 @ =0x06006000
|
|
bl LZDecompressVram
|
|
_0806D786:
|
|
cmp r4, 0x6
|
|
beq _0806D78E
|
|
cmp r4, 0
|
|
bne _0806D796
|
|
_0806D78E:
|
|
ldr r0, _0806D7E4 @ =gPartyMenuOrderText_Gfx
|
|
ldr r1, _0806D7E8 @ =0x06006180
|
|
bl LZDecompressVram
|
|
_0806D796:
|
|
cmp r4, 0x7
|
|
beq _0806D79E
|
|
cmp r4, 0
|
|
bne _0806D7A6
|
|
_0806D79E:
|
|
ldr r0, _0806D7EC @ =gStatusGfx_Icons
|
|
ldr r1, _0806D7F0 @ =0x06007180
|
|
bl LZDecompressVram
|
|
_0806D7A6:
|
|
cmp r4, 0x8
|
|
beq _0806D7AE
|
|
cmp r4, 0
|
|
bne _0806D7BA
|
|
_0806D7AE:
|
|
ldr r0, _0806D7F4 @ =gStatusPal_Icons
|
|
movs r1, 0xB0
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
movs r5, 0x1
|
|
_0806D7BA:
|
|
adds r0, r5, 0
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0806D7C4: .4byte 0x00007fff
|
|
_0806D7C8: .4byte gPartyMenuMisc_Gfx
|
|
_0806D7CC: .4byte gPartyMenuMisc_Tilemap
|
|
_0806D7D0: .4byte 0x06003800
|
|
_0806D7D4: .4byte gPartyMenuMisc_Pal
|
|
_0806D7D8: .4byte gFontDefaultPalette
|
|
_0806D7DC: .4byte gPartyMenuHpBar_Gfx
|
|
_0806D7E0: .4byte 0x06006000
|
|
_0806D7E4: .4byte gPartyMenuOrderText_Gfx
|
|
_0806D7E8: .4byte 0x06006180
|
|
_0806D7EC: .4byte gStatusGfx_Icons
|
|
_0806D7F0: .4byte 0x06007180
|
|
_0806D7F4: .4byte gStatusPal_Icons
|
|
thumb_func_end sub_806D718
|
|
|
|
thumb_func_start SetMonIconAnimByHP
|
|
SetMonIconAnimByHP: @ 806D7F8
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r1, 16
|
|
lsls r2, 16
|
|
lsrs r5, r1, 16
|
|
asrs r1, 16
|
|
lsrs r4, r2, 16
|
|
asrs r2, 16
|
|
adds r0, r1, 0
|
|
adds r1, r2, 0
|
|
bl GetHPBarLevel
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r2, 0
|
|
cmp r5, r4
|
|
beq _0806D830
|
|
movs r2, 0x1
|
|
cmp r0, 0x3
|
|
beq _0806D830
|
|
movs r2, 0x2
|
|
cmp r0, 0x2
|
|
beq _0806D830
|
|
movs r2, 0x4
|
|
cmp r0, 0x1
|
|
bne _0806D830
|
|
movs r2, 0x3
|
|
_0806D830:
|
|
lsls r0, r6, 4
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
ldr r1, _0806D848 @ =gSprites
|
|
adds r0, r1
|
|
adds r1, r2, 0
|
|
bl sub_809D824
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806D848: .4byte gSprites
|
|
thumb_func_end SetMonIconAnimByHP
|
|
|
|
thumb_func_start SetMonIconAnim
|
|
SetMonIconAnim: @ 806D84C
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
adds r0, r6, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
adds r0, r6, 0
|
|
movs r1, 0x3A
|
|
bl GetMonData
|
|
adds r2, r0, 0
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl SetMonIconAnimByHP
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end SetMonIconAnim
|
|
|
|
thumb_func_start CreatePartyMenuMonIcon
|
|
CreatePartyMenuMonIcon: @ 806D880
|
|
push {r4-r6,lr}
|
|
mov r6, r10
|
|
mov r5, r9
|
|
mov r4, r8
|
|
push {r4-r6}
|
|
sub sp, 0x8
|
|
adds r6, r0, 0
|
|
adds r5, r1, 0
|
|
mov r8, r3
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r3, _0806D904 @ =gUnknown_08376678
|
|
lsls r1, r5, 2
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
adds r1, r3
|
|
ldrb r0, [r1]
|
|
mov r9, r0
|
|
ldrb r1, [r1, 0x1]
|
|
mov r10, r1
|
|
mov r0, r8
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
mov r0, r8
|
|
movs r1, 0
|
|
bl GetMonData
|
|
ldr r1, _0806D908 @ =sub_809D62C
|
|
movs r2, 0x5
|
|
str r2, [sp]
|
|
str r0, [sp, 0x4]
|
|
adds r0, r4, 0
|
|
mov r2, r9
|
|
mov r3, r10
|
|
bl CreateMonIcon
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
bl SetMonIconSpriteId_maybe
|
|
adds r0, r4, 0
|
|
mov r1, r8
|
|
bl SetMonIconAnim
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806D904: .4byte gUnknown_08376678
|
|
_0806D908: .4byte sub_809D62C
|
|
thumb_func_end CreatePartyMenuMonIcon
|
|
|
|
thumb_func_start TryCreatePartyMenuMonIcon
|
|
TryCreatePartyMenuMonIcon: @ 806D90C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r4, r2, 0
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
mov r8, r6
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
adds r7, r5, 0
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0806D95A
|
|
bl IsLinkDoubleBattle
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0806D946
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x2
|
|
adds r3, r4, 0
|
|
bl CreatePartyMenuMonIcon
|
|
b _0806D95A
|
|
_0806D946:
|
|
bl IsDoubleBattle
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r0, r8
|
|
adds r1, r7, 0
|
|
adds r3, r4, 0
|
|
bl CreatePartyMenuMonIcon
|
|
_0806D95A:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end TryCreatePartyMenuMonIcon
|
|
|
|
thumb_func_start unref_sub_806D964
|
|
unref_sub_806D964: @ 806D964
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
b _0806D986
|
|
_0806D96E:
|
|
movs r0, 0x64
|
|
adds r2, r4, 0
|
|
muls r2, r0
|
|
ldr r0, _0806D994 @ =gPlayerParty
|
|
adds r2, r0
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl TryCreatePartyMenuMonIcon
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_0806D986:
|
|
ldr r0, _0806D998 @ =gPlayerPartyCount
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bcc _0806D96E
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806D994: .4byte gPlayerParty
|
|
_0806D998: .4byte gPlayerPartyCount
|
|
thumb_func_end unref_sub_806D964
|
|
|
|
thumb_func_start CreateMonIcon_806D99C
|
|
CreateMonIcon_806D99C: @ 806D99C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x8
|
|
adds r6, r0, 0
|
|
adds r5, r1, 0
|
|
mov r8, r3
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r3, _0806DA04 @ =gUnknown_08376678
|
|
lsls r1, r5, 2
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
adds r1, r3
|
|
ldrb r2, [r1]
|
|
ldrb r3, [r1, 0x1]
|
|
mov r1, r8
|
|
ldrh r0, [r1]
|
|
ldr r1, _0806DA08 @ =sub_809D62C
|
|
movs r4, 0x5
|
|
str r4, [sp]
|
|
mov r7, r8
|
|
ldr r4, [r7, 0x18]
|
|
str r4, [sp, 0x4]
|
|
bl CreateMonIcon
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
bl SetMonIconSpriteId_maybe
|
|
ldrh r1, [r7, 0x10]
|
|
ldrh r2, [r7, 0x12]
|
|
adds r0, r4, 0
|
|
bl SetMonIconAnimByHP
|
|
add sp, 0x8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806DA04: .4byte gUnknown_08376678
|
|
_0806DA08: .4byte sub_809D62C
|
|
thumb_func_end CreateMonIcon_806D99C
|
|
|
|
thumb_func_start UpdateMonIconFrame_806DA0C
|
|
UpdateMonIconFrame_806DA0C: @ 806DA0C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl UpdateMonIconFrame
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
beq _0806DA32
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0806DA30
|
|
ldr r0, _0806DA2C @ =0x0000fffd
|
|
strh r0, [r4, 0x26]
|
|
b _0806DA32
|
|
.align 2, 0
|
|
_0806DA2C: .4byte 0x0000fffd
|
|
_0806DA30:
|
|
strh r1, [r4, 0x26]
|
|
_0806DA32:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end UpdateMonIconFrame_806DA0C
|
|
|
|
thumb_func_start UpdateMonIconFrame_806DA38
|
|
UpdateMonIconFrame_806DA38: @ 806DA38
|
|
push {lr}
|
|
bl UpdateMonIconFrame
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end UpdateMonIconFrame_806DA38
|
|
|
|
thumb_func_start UpdateMonIconFrame_806DA44
|
|
UpdateMonIconFrame_806DA44: @ 806DA44
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r4, r2, 24
|
|
cmp r1, 0x5
|
|
bhi _0806DA8E
|
|
bl GetMonIconSpriteId_maybe
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, _0806DA7C @ =gSprites
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r2, r1, 2
|
|
adds r1, r2, r3
|
|
movs r0, 0
|
|
strh r0, [r1, 0x26]
|
|
strh r0, [r1, 0x2E]
|
|
cmp r4, 0
|
|
bne _0806DA84
|
|
adds r0, r3, 0
|
|
adds r0, 0x1C
|
|
adds r0, r2, r0
|
|
ldr r1, _0806DA80 @ =UpdateMonIconFrame_806DA38
|
|
b _0806DA8C
|
|
.align 2, 0
|
|
_0806DA7C: .4byte gSprites
|
|
_0806DA80: .4byte UpdateMonIconFrame_806DA38
|
|
_0806DA84:
|
|
adds r0, r3, 0
|
|
adds r0, 0x1C
|
|
adds r0, r2, r0
|
|
ldr r1, _0806DA94 @ =UpdateMonIconFrame_806DA0C
|
|
_0806DA8C:
|
|
str r1, [r0]
|
|
_0806DA8E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806DA94: .4byte UpdateMonIconFrame_806DA0C
|
|
thumb_func_end UpdateMonIconFrame_806DA44
|
|
|
|
thumb_func_start LoadHeldItemIconGraphics
|
|
LoadHeldItemIconGraphics: @ 806DA98
|
|
push {lr}
|
|
ldr r0, _0806DAAC @ =gUnknown_083765DC
|
|
bl LoadSpriteSheet
|
|
ldr r0, _0806DAB0 @ =gUnknown_083765E4
|
|
bl LoadSpritePalette
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806DAAC: .4byte gUnknown_083765DC
|
|
_0806DAB0: .4byte gUnknown_083765E4
|
|
thumb_func_end LoadHeldItemIconGraphics
|
|
|
|
thumb_func_start SpriteCB_HeldItemIcon
|
|
SpriteCB_HeldItemIcon: @ 806DAB4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r1, [r4, 0x3C]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r2, _0806DAE4 @ =gSprites
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, r0, r2
|
|
adds r0, r2, 0
|
|
adds r0, 0x3E
|
|
ldrb r0, [r0]
|
|
lsls r0, 29
|
|
cmp r0, 0
|
|
bge _0806DAE8
|
|
adds r0, r4, 0
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _0806DB06
|
|
.align 2, 0
|
|
_0806DAE4: .4byte gSprites
|
|
_0806DAE8:
|
|
adds r3, r4, 0
|
|
adds r3, 0x3E
|
|
ldrb r1, [r3]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r3]
|
|
ldrh r0, [r2, 0x24]
|
|
ldrh r1, [r2, 0x20]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r2, 0x26]
|
|
ldrh r2, [r2, 0x22]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x22]
|
|
_0806DB06:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end SpriteCB_HeldItemIcon
|
|
|
|
thumb_func_start CreateHeldItemIcon
|
|
CreateHeldItemIcon: @ 806DB0C
|
|
push {r4-r6,lr}
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5,r6}
|
|
adds r6, r0, 0
|
|
mov r9, r1
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
mov r0, r9
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
ldr r0, _0806DB84 @ =gSprites
|
|
mov r8, r0
|
|
lsls r0, r6, 4
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
add r0, r8
|
|
adds r0, 0x43
|
|
ldrb r3, [r0]
|
|
ldr r0, _0806DB88 @ =gSpriteTemplate_837660C
|
|
subs r3, 0x1
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r1, 0xFA
|
|
movs r2, 0xAA
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, r0, 4
|
|
adds r4, r0
|
|
lsls r4, 2
|
|
mov r0, r8
|
|
adds r5, r4, r0
|
|
movs r0, 0x4
|
|
strh r0, [r5, 0x24]
|
|
movs r0, 0xA
|
|
strh r0, [r5, 0x26]
|
|
movs r0, 0x1C
|
|
add r8, r0
|
|
add r4, r8
|
|
ldr r0, _0806DB8C @ =SpriteCB_HeldItemIcon
|
|
str r0, [r4]
|
|
strh r6, [r5, 0x3C]
|
|
adds r0, r5, 0
|
|
mov r1, r9
|
|
bl StartSpriteAnim
|
|
ldr r1, [r4]
|
|
adds r0, r5, 0
|
|
bl _call_via_r1
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806DB84: .4byte gSprites
|
|
_0806DB88: .4byte gSpriteTemplate_837660C
|
|
_0806DB8C: .4byte SpriteCB_HeldItemIcon
|
|
thumb_func_end CreateHeldItemIcon
|
|
|
|
thumb_func_start CreateHeldItemIcons
|
|
CreateHeldItemIcons: @ 806DB90
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
cmp r2, 0
|
|
beq _0806DBA4
|
|
cmp r2, 0x1
|
|
beq _0806DBEC
|
|
b _0806DC28
|
|
_0806DBA4:
|
|
movs r5, 0
|
|
ldrb r0, [r6]
|
|
cmp r5, r0
|
|
bcs _0806DC28
|
|
_0806DBAC:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, _0806DBE8 @ =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0xC
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r1, 0
|
|
beq _0806DBD8
|
|
adds r0, r7, r5
|
|
ldrb r4, [r0]
|
|
adds r0, r1, 0
|
|
bl ItemIsMail
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl CreateHeldItemIcon
|
|
_0806DBD8:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
ldrb r0, [r6]
|
|
cmp r5, r0
|
|
bcc _0806DBAC
|
|
b _0806DC28
|
|
.align 2, 0
|
|
_0806DBE8: .4byte gPlayerParty
|
|
_0806DBEC:
|
|
movs r5, 0
|
|
b _0806DC22
|
|
_0806DBF0:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
ldr r1, _0806DC30 @ =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0xC
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r1, 0
|
|
beq _0806DC1C
|
|
adds r0, r5, r7
|
|
ldrb r4, [r0, 0x6]
|
|
adds r0, r1, 0
|
|
bl ItemIsMail
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl CreateHeldItemIcon
|
|
_0806DC1C:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
_0806DC22:
|
|
ldrb r0, [r6, 0x1]
|
|
cmp r5, r0
|
|
bcc _0806DBF0
|
|
_0806DC28:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806DC30: .4byte gEnemyParty
|
|
thumb_func_end CreateHeldItemIcons
|
|
|
|
thumb_func_start CreateHeldItemIcons_806DC34
|
|
CreateHeldItemIcons_806DC34: @ 806DC34
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
movs r7, 0
|
|
ldr r0, _0806DCC8 @ =gSprites
|
|
mov r9, r0
|
|
movs r1, 0x1C
|
|
add r1, r9
|
|
mov r10, r1
|
|
_0806DC50:
|
|
movs r0, 0x64
|
|
muls r0, r7
|
|
ldr r1, _0806DCCC @ =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0806DCB0
|
|
mov r0, r8
|
|
adds r1, r7, 0
|
|
bl GetMonIconSpriteId_maybe
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r0, _0806DCD0 @ =gSpriteTemplate_837660C
|
|
movs r1, 0xFA
|
|
movs r2, 0xAA
|
|
movs r3, 0x4
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, r0, 4
|
|
adds r4, r0
|
|
lsls r4, 2
|
|
mov r1, r9
|
|
adds r6, r4, r1
|
|
movs r1, 0x4
|
|
strh r1, [r6, 0x24]
|
|
movs r1, 0xA
|
|
strh r1, [r6, 0x26]
|
|
strh r5, [r6, 0x3C]
|
|
lsls r1, r5, 4
|
|
adds r1, r5
|
|
lsls r1, 2
|
|
add r1, r9
|
|
strh r0, [r1, 0x3C]
|
|
mov r0, r8
|
|
adds r1, r7, 0
|
|
bl SetHeldItemIconVisibility
|
|
add r4, r10
|
|
ldr r1, [r4]
|
|
adds r0, r6, 0
|
|
bl _call_via_r1
|
|
_0806DCB0:
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0x5
|
|
bls _0806DC50
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806DCC8: .4byte gSprites
|
|
_0806DCCC: .4byte gPlayerParty
|
|
_0806DCD0: .4byte gSpriteTemplate_837660C
|
|
thumb_func_end CreateHeldItemIcons_806DC34
|
|
|
|
thumb_func_start CreateHeldItemIcon_806DCD4
|
|
CreateHeldItemIcon_806DCD4: @ 806DCD4
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 16
|
|
lsrs r7, r2, 16
|
|
bl GetMonIconSpriteId_maybe
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, _0806DD2C @ =gSpriteTemplate_837660C
|
|
movs r1, 0xFA
|
|
movs r2, 0xAA
|
|
movs r3, 0x4
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r1, _0806DD30 @ =gSprites
|
|
lsls r0, r6, 4
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
adds r5, r0, r1
|
|
movs r0, 0x4
|
|
strh r0, [r5, 0x24]
|
|
movs r0, 0xA
|
|
strh r0, [r5, 0x26]
|
|
strh r4, [r5, 0x3C]
|
|
lsls r0, r4, 4
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
strh r6, [r0, 0x3C]
|
|
cmp r7, 0
|
|
bne _0806DD34
|
|
adds r0, r5, 0
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _0806DD5C
|
|
.align 2, 0
|
|
_0806DD2C: .4byte gSpriteTemplate_837660C
|
|
_0806DD30: .4byte gSprites
|
|
_0806DD34:
|
|
adds r0, r7, 0
|
|
bl ItemIsMail
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0806DD46
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
b _0806DD4A
|
|
_0806DD46:
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
_0806DD4A:
|
|
bl StartSpriteAnim
|
|
adds r2, r5, 0
|
|
adds r2, 0x3E
|
|
ldrb r1, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
_0806DD5C:
|
|
ldr r2, _0806DD78 @ =gSprites
|
|
lsls r0, r6, 4
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
adds r1, r2, 0
|
|
adds r1, 0x1C
|
|
adds r1, r0, r1
|
|
adds r0, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806DD78: .4byte gSprites
|
|
thumb_func_end CreateHeldItemIcon_806DCD4
|
|
|
|
thumb_func_start SpriteCB_HeldItemIcon_806DD7C
|
|
SpriteCB_HeldItemIcon_806DD7C: @ 806DD7C
|
|
ldrh r2, [r0, 0x3C]
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r3, _0806DD9C @ =gSprites
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r3
|
|
ldrh r2, [r1, 0x24]
|
|
ldrh r3, [r1, 0x20]
|
|
adds r2, r3
|
|
strh r2, [r0, 0x20]
|
|
ldrh r1, [r1, 0x22]
|
|
strh r1, [r0, 0x22]
|
|
bx lr
|
|
.align 2, 0
|
|
_0806DD9C: .4byte gSprites
|
|
thumb_func_end SpriteCB_HeldItemIcon_806DD7C
|
|
|
|
thumb_func_start GetMonIconSpriteId_maybe
|
|
GetMonIconSpriteId_maybe: @ 806DDA0
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r1, 24
|
|
lsrs r0, r1, 24
|
|
cmp r0, 0x5
|
|
bhi _0806DE38
|
|
lsls r0, 2
|
|
ldr r1, _0806DDB8 @ =_0806DDBC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0806DDB8: .4byte _0806DDBC
|
|
.align 2, 0
|
|
_0806DDBC:
|
|
.4byte _0806DE38
|
|
.4byte _0806DDD4
|
|
.4byte _0806DDE8
|
|
.4byte _0806DDFC
|
|
.4byte _0806DE10
|
|
.4byte _0806DE24
|
|
_0806DDD4:
|
|
ldr r0, _0806DDE4 @ =gTasks
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x8]
|
|
b _0806DE46
|
|
.align 2, 0
|
|
_0806DDE4: .4byte gTasks
|
|
_0806DDE8:
|
|
ldr r0, _0806DDF8 @ =gTasks
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0xA]
|
|
b _0806DE44
|
|
.align 2, 0
|
|
_0806DDF8: .4byte gTasks
|
|
_0806DDFC:
|
|
ldr r0, _0806DE0C @ =gTasks
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0xA]
|
|
b _0806DE46
|
|
.align 2, 0
|
|
_0806DE0C: .4byte gTasks
|
|
_0806DE10:
|
|
ldr r0, _0806DE20 @ =gTasks
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0xC]
|
|
b _0806DE44
|
|
.align 2, 0
|
|
_0806DE20: .4byte gTasks
|
|
_0806DE24:
|
|
ldr r0, _0806DE34 @ =gTasks
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0xC]
|
|
b _0806DE46
|
|
.align 2, 0
|
|
_0806DE34: .4byte gTasks
|
|
_0806DE38:
|
|
ldr r0, _0806DE4C @ =gTasks
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x8]
|
|
_0806DE44:
|
|
lsrs r0, 8
|
|
_0806DE46:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0806DE4C: .4byte gTasks
|
|
thumb_func_end GetMonIconSpriteId_maybe
|
|
|
|
thumb_func_start SetMonIconSpriteId_maybe
|
|
SetMonIconSpriteId_maybe: @ 806DE50
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
lsls r1, 24
|
|
lsrs r0, r1, 24
|
|
lsls r2, 24
|
|
lsrs r4, r2, 24
|
|
cmp r0, 0x5
|
|
bhi _0806DF24
|
|
lsls r0, 2
|
|
ldr r1, _0806DE6C @ =_0806DE70
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0806DE6C: .4byte _0806DE70
|
|
.align 2, 0
|
|
_0806DE70:
|
|
.4byte _0806DE88
|
|
.4byte _0806DEA0
|
|
.4byte _0806DEC0
|
|
.4byte _0806DED8
|
|
.4byte _0806DEF8
|
|
.4byte _0806DF10
|
|
_0806DE88:
|
|
ldr r1, _0806DE9C @ =gTasks
|
|
lsls r0, r3, 2
|
|
adds r0, r3
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x8]
|
|
lsls r2, r4, 8
|
|
orrs r1, r2
|
|
strh r1, [r0, 0x8]
|
|
b _0806DF24
|
|
.align 2, 0
|
|
_0806DE9C: .4byte gTasks
|
|
_0806DEA0:
|
|
ldr r0, _0806DEB8 @ =gTasks
|
|
lsls r1, r3, 2
|
|
adds r1, r3
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0x8]
|
|
ldr r0, _0806DEBC @ =0xffffff00
|
|
ands r0, r2
|
|
orrs r0, r4
|
|
strh r0, [r1, 0x8]
|
|
b _0806DF24
|
|
.align 2, 0
|
|
_0806DEB8: .4byte gTasks
|
|
_0806DEBC: .4byte 0xffffff00
|
|
_0806DEC0:
|
|
ldr r1, _0806DED4 @ =gTasks
|
|
lsls r0, r3, 2
|
|
adds r0, r3
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0xA]
|
|
lsls r2, r4, 8
|
|
orrs r1, r2
|
|
strh r1, [r0, 0xA]
|
|
b _0806DF24
|
|
.align 2, 0
|
|
_0806DED4: .4byte gTasks
|
|
_0806DED8:
|
|
ldr r0, _0806DEF0 @ =gTasks
|
|
lsls r1, r3, 2
|
|
adds r1, r3
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0xA]
|
|
ldr r0, _0806DEF4 @ =0xffffff00
|
|
ands r0, r2
|
|
orrs r0, r4
|
|
strh r0, [r1, 0xA]
|
|
b _0806DF24
|
|
.align 2, 0
|
|
_0806DEF0: .4byte gTasks
|
|
_0806DEF4: .4byte 0xffffff00
|
|
_0806DEF8:
|
|
ldr r1, _0806DF0C @ =gTasks
|
|
lsls r0, r3, 2
|
|
adds r0, r3
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0xC]
|
|
lsls r2, r4, 8
|
|
orrs r1, r2
|
|
strh r1, [r0, 0xC]
|
|
b _0806DF24
|
|
.align 2, 0
|
|
_0806DF0C: .4byte gTasks
|
|
_0806DF10:
|
|
ldr r0, _0806DF2C @ =gTasks
|
|
lsls r1, r3, 2
|
|
adds r1, r3
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0xC]
|
|
ldr r0, _0806DF30 @ =0xffffff00
|
|
ands r0, r2
|
|
orrs r0, r4
|
|
strh r0, [r1, 0xC]
|
|
_0806DF24:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806DF2C: .4byte gTasks
|
|
_0806DF30: .4byte 0xffffff00
|
|
thumb_func_end SetMonIconSpriteId_maybe
|
|
|
|
thumb_func_start GetHeldItemIconSpriteIdByMon_maybe
|
|
GetHeldItemIconSpriteIdByMon_maybe: @ 806DF34
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
bl GetMonIconSpriteId_maybe
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0806DF5C @ =gSprites
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrh r0, [r1, 0x3C]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0806DF5C: .4byte gSprites
|
|
thumb_func_end GetHeldItemIconSpriteIdByMon_maybe
|
|
|
|
thumb_func_start SetHeldItemIconVisibility
|
|
SetHeldItemIconVisibility: @ 806DF60
|
|
push {r4-r6,lr}
|
|
adds r4, r1, 0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r1, r4, 0
|
|
bl GetHeldItemIconSpriteIdByMon_maybe
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r6, r5, 0
|
|
movs r0, 0x64
|
|
adds r1, r4, 0
|
|
muls r1, r0
|
|
ldr r0, _0806DFA4 @ =gPlayerParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0xC
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _0806DFAC
|
|
ldr r1, _0806DFA8 @ =gSprites
|
|
lsls r0, r5, 4
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _0806DFF6
|
|
.align 2, 0
|
|
_0806DFA4: .4byte gPlayerParty
|
|
_0806DFA8: .4byte gSprites
|
|
_0806DFAC:
|
|
adds r0, r4, 0
|
|
movs r1, 0xC
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl ItemIsMail
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0806DFD8
|
|
lsls r4, r5, 4
|
|
adds r4, r5
|
|
lsls r4, 2
|
|
ldr r0, _0806DFD4 @ =gSprites
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
b _0806DFE6
|
|
.align 2, 0
|
|
_0806DFD4: .4byte gSprites
|
|
_0806DFD8:
|
|
lsls r4, r6, 4
|
|
adds r4, r6
|
|
lsls r4, 2
|
|
ldr r0, _0806DFFC @ =gSprites
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
_0806DFE6:
|
|
bl StartSpriteAnim
|
|
adds r4, 0x3E
|
|
ldrb r1, [r4]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
_0806DFF6:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806DFFC: .4byte gSprites
|
|
thumb_func_end SetHeldItemIconVisibility
|
|
|
|
thumb_func_start box_print
|
|
box_print: @ 806E000
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r6, r2, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
ldr r5, _0806E040 @ =gTileBuffer
|
|
ldr r2, _0806E044 @ =0x01000100
|
|
mov r0, sp
|
|
adds r1, r5, 0
|
|
bl CpuFastSet
|
|
ldr r0, _0806E048 @ =gWindowConfig_81E6CAC
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
bl sub_8004E3C
|
|
lsls r4, 10
|
|
ldr r0, _0806E04C @ =0x06014000
|
|
adds r4, r0
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x80
|
|
bl CpuFastSet
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806E040: .4byte gTileBuffer
|
|
_0806E044: .4byte 0x01000100
|
|
_0806E048: .4byte gWindowConfig_81E6CAC
|
|
_0806E04C: .4byte 0x06014000
|
|
thumb_func_end box_print
|
|
|
|
thumb_func_start PrintPartyMenuMonNickname
|
|
PrintPartyMenuMonNickname: @ 806E050
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r2, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
mov r1, sp
|
|
bl GetMonNickname
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
mov r2, sp
|
|
bl box_print
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PrintPartyMenuMonNickname
|
|
|
|
thumb_func_start TryPrintPartyMenuMonNickname
|
|
TryPrintPartyMenuMonNickname: @ 806E07C
|
|
push {r4-r6,lr}
|
|
adds r4, r1, 0
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r6, r5, 0
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0806E0BC
|
|
bl IsLinkDoubleBattle
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0806E0AA
|
|
adds r0, r5, 0
|
|
movs r1, 0x2
|
|
adds r2, r4, 0
|
|
bl PrintPartyMenuMonNickname
|
|
b _0806E0BC
|
|
_0806E0AA:
|
|
bl IsDoubleBattle
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r6, 0
|
|
adds r2, r4, 0
|
|
bl PrintPartyMenuMonNickname
|
|
_0806E0BC:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end TryPrintPartyMenuMonNickname
|
|
|
|
thumb_func_start PrintPartyMenuMonNicknames
|
|
PrintPartyMenuMonNicknames: @ 806E0C4
|
|
push {r4-r6,lr}
|
|
movs r4, 0
|
|
movs r6, 0x64
|
|
ldr r5, _0806E0E8 @ =gPlayerParty
|
|
_0806E0CC:
|
|
adds r1, r4, 0
|
|
muls r1, r6
|
|
adds r1, r5
|
|
adds r0, r4, 0
|
|
bl TryPrintPartyMenuMonNickname
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x5
|
|
bls _0806E0CC
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806E0E8: .4byte gPlayerParty
|
|
thumb_func_end PrintPartyMenuMonNicknames
|
|
|
|
thumb_func_start GetMonNickname
|
|
GetMonNickname: @ 806E0EC
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
movs r1, 0x2
|
|
adds r2, r4, 0
|
|
bl GetMonData
|
|
adds r0, r4, 0
|
|
bl StringGetEnd10
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetMonNickname
|
|
|
|
thumb_func_start PartyMenuPutStatusTilemap
|
|
PartyMenuPutStatusTilemap: @ 806E104
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r4, _0806E15C @ =gUnknown_08376738
|
|
lsrs r0, 22
|
|
lsls r3, r1, 1
|
|
adds r3, r1
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
subs r1, 0x1
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldrb r0, [r0, 0x1]
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 19
|
|
adds r1, r0
|
|
lsls r1, 1
|
|
ldr r0, _0806E160 @ =0x0600f000
|
|
adds r4, r1, r0
|
|
lsls r2, 26
|
|
lsrs r2, 24
|
|
movs r3, 0
|
|
movs r0, 0xC6
|
|
lsls r0, 1
|
|
adds r2, r0
|
|
ldr r0, _0806E164 @ =0xffffb000
|
|
adds r5, r0, 0
|
|
_0806E142:
|
|
lsls r0, r3, 1
|
|
adds r0, r4
|
|
adds r1, r2, r3
|
|
orrs r1, r5
|
|
strh r1, [r0]
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x3
|
|
bls _0806E142
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806E15C: .4byte gUnknown_08376738
|
|
_0806E160: .4byte 0x0600f000
|
|
_0806E164: .4byte 0xffffb000
|
|
thumb_func_end PartyMenuPutStatusTilemap
|
|
|
|
thumb_func_start PartyMenuClearLevelStatusTilemap
|
|
PartyMenuClearLevelStatusTilemap: @ 806E168
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
bl IsLinkDoubleBattle
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0806E17E
|
|
movs r3, 0x2
|
|
b _0806E186
|
|
_0806E17E:
|
|
bl IsDoubleBattle
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
_0806E186:
|
|
ldr r1, _0806E1C8 @ =gUnknown_08376738
|
|
lsls r2, r4, 2
|
|
lsls r0, r3, 1
|
|
adds r0, r3
|
|
lsls r0, 3
|
|
adds r2, r0
|
|
adds r2, r1
|
|
ldrb r1, [r2]
|
|
subs r1, 0x1
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldrb r0, [r2, 0x1]
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 19
|
|
adds r1, r0
|
|
lsls r1, 1
|
|
ldr r0, _0806E1CC @ =0x0600f000
|
|
adds r1, r0
|
|
movs r3, 0
|
|
movs r2, 0
|
|
_0806E1B0:
|
|
lsls r0, r3, 1
|
|
adds r0, r1
|
|
strh r2, [r0]
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x3
|
|
bls _0806E1B0
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806E1C8: .4byte gUnknown_08376738
|
|
_0806E1CC: .4byte 0x0600f000
|
|
thumb_func_end PartyMenuClearLevelStatusTilemap
|
|
|
|
thumb_func_start PartyMenuWriteTilemap
|
|
PartyMenuWriteTilemap: @ 806E1D0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 19
|
|
adds r1, r2
|
|
lsls r1, 1
|
|
ldr r2, _0806E1F0 @ =0x0600f000
|
|
adds r1, r2
|
|
movs r2, 0x86
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
strh r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0806E1F0: .4byte 0x0600f000
|
|
thumb_func_end PartyMenuWriteTilemap
|
|
|
|
thumb_func_start PartyMenuDoPrintLevel
|
|
PartyMenuDoPrintLevel: @ 806E1F4
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r2, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r3, _0806E278 @ =gUnknown_08376738
|
|
lsls r2, r4, 2
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r2, r0
|
|
adds r2, r3
|
|
ldrb r1, [r2]
|
|
ldrb r2, [r2, 0x1]
|
|
subs r1, 0x1
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r2, 0x1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
movs r0, 0x40
|
|
bl PartyMenuWriteTilemap
|
|
ldr r6, _0806E27C @ =gStringVar1
|
|
movs r0, 0xFC
|
|
strb r0, [r6]
|
|
movs r0, 0x12
|
|
strb r0, [r6, 0x1]
|
|
movs r0, 0x8
|
|
strb r0, [r6, 0x2]
|
|
adds r0, r6, 0x3
|
|
adds r1, r5, 0
|
|
bl ConvertIntToDecimalString
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
ldr r5, _0806E280 @ =gUnknown_02039460
|
|
ldr r2, _0806E284 @ =0x01000020
|
|
mov r0, sp
|
|
adds r1, r5, 0
|
|
bl CpuFastSet
|
|
ldr r0, _0806E288 @ =gWindowConfig_81E6CAC
|
|
ldr r2, _0806E28C @ =0xffffff00
|
|
adds r1, r5, r2
|
|
adds r2, r6, 0
|
|
bl sub_8004E3C
|
|
lsls r4, 10
|
|
ldr r0, _0806E290 @ =0x06014200
|
|
adds r4, r0
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x20
|
|
bl CpuFastSet
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806E278: .4byte gUnknown_08376738
|
|
_0806E27C: .4byte gStringVar1
|
|
_0806E280: .4byte gUnknown_02039460
|
|
_0806E284: .4byte 0x01000020
|
|
_0806E288: .4byte gWindowConfig_81E6CAC
|
|
_0806E28C: .4byte 0xffffff00
|
|
_0806E290: .4byte 0x06014200
|
|
thumb_func_end PartyMenuDoPrintLevel
|
|
|
|
thumb_func_start PartyMenuPrintLevel
|
|
PartyMenuPrintLevel: @ 806E294
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r2, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
movs r1, 0x38
|
|
bl GetMonData
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl PartyMenuDoPrintLevel
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PartyMenuPrintLevel
|
|
|
|
thumb_func_start PartyMenuPrintMonLevelOrStatus
|
|
PartyMenuPrintMonLevelOrStatus: @ 806E2C0
|
|
push {r4-r7,lr}
|
|
adds r5, r1, 0
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
adds r0, r5, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0806E32E
|
|
adds r0, r5, 0
|
|
movs r1, 0x2D
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _0806E32E
|
|
adds r0, r5, 0
|
|
bl GetMonStatusAndPokerus
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
bl IsLinkDoubleBattle
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0806E2FA
|
|
movs r6, 0x2
|
|
b _0806E302
|
|
_0806E2FA:
|
|
bl IsDoubleBattle
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_0806E302:
|
|
cmp r4, 0
|
|
beq _0806E31A
|
|
cmp r4, 0x6
|
|
beq _0806E31A
|
|
subs r2, r4, 0x1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
bl PartyMenuPutStatusTilemap
|
|
b _0806E324
|
|
_0806E31A:
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
bl PartyMenuPrintLevel
|
|
_0806E324:
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
bl PartyMenuPutNicknameTilemap
|
|
_0806E32E:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PartyMenuPrintMonLevelOrStatus
|
|
|
|
thumb_func_start PartyMenuPrintMonsLevelOrStatus
|
|
PartyMenuPrintMonsLevelOrStatus: @ 806E334
|
|
push {r4-r6,lr}
|
|
movs r4, 0
|
|
movs r6, 0x64
|
|
ldr r5, _0806E358 @ =gPlayerParty
|
|
_0806E33C:
|
|
adds r1, r4, 0
|
|
muls r1, r6
|
|
adds r1, r5
|
|
adds r0, r4, 0
|
|
bl PartyMenuPrintMonLevelOrStatus
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x5
|
|
bls _0806E33C
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806E358: .4byte gPlayerParty
|
|
thumb_func_end PartyMenuPrintMonsLevelOrStatus
|
|
|
|
thumb_func_start PartyMenuDoPutNicknameTilemap
|
|
PartyMenuDoPutNicknameTilemap: @ 806E35C
|
|
push {r4-r7,lr}
|
|
ldr r4, [sp, 0x14]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r1, 24
|
|
lsrs r7, r1, 24
|
|
lsls r2, 24
|
|
lsrs r5, r2, 24
|
|
lsls r3, 24
|
|
lsrs r6, r3, 24
|
|
adds r1, r4, 0
|
|
bl sub_8040D8C
|
|
cmp r0, 0
|
|
bne _0806E3BA
|
|
ldr r2, _0806E3A4 @ =gUnknown_08376738
|
|
lsls r1, r6, 2
|
|
lsls r0, r5, 1
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
adds r1, r2
|
|
ldrb r0, [r1]
|
|
adds r0, 0x3
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldrb r0, [r1, 0x1]
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r7, 0
|
|
beq _0806E3A8
|
|
cmp r7, 0xFE
|
|
beq _0806E3B2
|
|
b _0806E3BA
|
|
.align 2, 0
|
|
_0806E3A4: .4byte gUnknown_08376738
|
|
_0806E3A8:
|
|
movs r0, 0x42
|
|
adds r1, r3, 0
|
|
bl PartyMenuWriteTilemap
|
|
b _0806E3BA
|
|
_0806E3B2:
|
|
movs r0, 0x44
|
|
adds r1, r3, 0
|
|
bl PartyMenuWriteTilemap
|
|
_0806E3BA:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PartyMenuDoPutNicknameTilemap
|
|
|
|
thumb_func_start PartyMenuPutNicknameTilemap
|
|
PartyMenuPutNicknameTilemap: @ 806E3C0
|
|
push {r4-r6,lr}
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5,r6}
|
|
sub sp, 0x4
|
|
mov r8, r0
|
|
adds r6, r1, 0
|
|
adds r5, r2, 0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
ldr r0, _0806E41C @ =gStringVar1
|
|
mov r9, r0
|
|
adds r0, r5, 0
|
|
mov r1, r9
|
|
bl GetMonNickname
|
|
adds r0, r5, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
adds r0, r5, 0
|
|
bl GetMonGender
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r0, r9
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
adds r2, r6, 0
|
|
mov r3, r8
|
|
bl PartyMenuDoPutNicknameTilemap
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806E41C: .4byte gStringVar1
|
|
thumb_func_end PartyMenuPutNicknameTilemap
|
|
|
|
thumb_func_start PartyMenuDoPrintHP
|
|
PartyMenuDoPrintHP: @ 806E420
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r1, r2, 0
|
|
adds r5, r3, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
ldr r2, _0806E48C @ =gStringVar1
|
|
adds r0, r2, 0
|
|
movs r2, 0xF
|
|
movs r3, 0x1
|
|
bl sub_8072C14
|
|
adds r2, r0, 0
|
|
movs r0, 0xBA
|
|
strb r0, [r2]
|
|
adds r2, 0x1
|
|
adds r0, r2, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x23
|
|
movs r3, 0x1
|
|
bl sub_8072C14
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
ldr r5, _0806E490 @ =gUnknown_02039460
|
|
ldr r2, _0806E494 @ =0x01000040
|
|
mov r0, sp
|
|
adds r1, r5, 0
|
|
bl CpuFastSet
|
|
ldr r0, _0806E498 @ =gWindowConfig_81E6CAC
|
|
ldr r2, _0806E49C @ =0xffffff00
|
|
adds r1, r5, r2
|
|
ldr r2, _0806E48C @ =gStringVar1
|
|
bl sub_8004E3C
|
|
lsls r4, 10
|
|
ldr r0, _0806E4A0 @ =0x06014300
|
|
adds r4, r0
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x40
|
|
bl CpuFastSet
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806E48C: .4byte gStringVar1
|
|
_0806E490: .4byte gUnknown_02039460
|
|
_0806E494: .4byte 0x01000040
|
|
_0806E498: .4byte gWindowConfig_81E6CAC
|
|
_0806E49C: .4byte 0xffffff00
|
|
_0806E4A0: .4byte 0x06014300
|
|
thumb_func_end PartyMenuDoPrintHP
|
|
|
|
thumb_func_start PartyMenuPrintHP
|
|
PartyMenuPrintHP: @ 806E4A4
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
mov r8, r2
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
mov r0, r8
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
mov r0, r8
|
|
movs r1, 0x3A
|
|
bl GetMonData
|
|
adds r3, r0, 0
|
|
lsls r3, 16
|
|
lsrs r3, 16
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
adds r2, r4, 0
|
|
bl PartyMenuDoPrintHP
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PartyMenuPrintHP
|
|
|
|
thumb_func_start PartyMenuTryPrintHP
|
|
PartyMenuTryPrintHP: @ 806E4E8
|
|
push {r4-r6,lr}
|
|
adds r4, r1, 0
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r6, r5, 0
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0806E534
|
|
adds r0, r4, 0
|
|
movs r1, 0x2D
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _0806E534
|
|
bl IsLinkDoubleBattle
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0806E522
|
|
adds r0, r5, 0
|
|
movs r1, 0x2
|
|
adds r2, r4, 0
|
|
bl PartyMenuPrintHP
|
|
b _0806E534
|
|
_0806E522:
|
|
bl IsDoubleBattle
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r6, 0
|
|
adds r2, r4, 0
|
|
bl PartyMenuPrintHP
|
|
_0806E534:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PartyMenuTryPrintHP
|
|
|
|
thumb_func_start PartyMenuTryPrintMonsHP
|
|
PartyMenuTryPrintMonsHP: @ 806E53C
|
|
push {r4-r6,lr}
|
|
movs r4, 0
|
|
movs r6, 0x64
|
|
ldr r5, _0806E560 @ =gPlayerParty
|
|
_0806E544:
|
|
adds r1, r4, 0
|
|
muls r1, r6
|
|
adds r1, r5
|
|
adds r0, r4, 0
|
|
bl PartyMenuTryPrintHP
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x5
|
|
bls _0806E544
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806E560: .4byte gPlayerParty
|
|
thumb_func_end PartyMenuTryPrintMonsHP
|
|
|
|
thumb_func_start unref_sub_806E564
|
|
unref_sub_806E564: @ 806E564
|
|
bx lr
|
|
thumb_func_end unref_sub_806E564
|
|
|
|
thumb_func_start unref_sub_806E568
|
|
unref_sub_806E568: @ 806E568
|
|
bx lr
|
|
thumb_func_end unref_sub_806E568
|
|
|
|
thumb_func_start nullsub_12
|
|
nullsub_12: @ 806E56C
|
|
bx lr
|
|
thumb_func_end nullsub_12
|
|
|
|
thumb_func_start nullsub_13
|
|
nullsub_13: @ 806E570
|
|
bx lr
|
|
thumb_func_end nullsub_13
|
|
|
|
thumb_func_start PartyMenuDoDrawHPBar
|
|
PartyMenuDoDrawHPBar: @ 806E574
|
|
push {r4-r6,lr}
|
|
sub sp, 0x18
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
lsls r3, 16
|
|
lsrs r3, 16
|
|
ldr r0, _0806E624 @ =0xffff8000
|
|
str r0, [sp, 0x14]
|
|
str r3, [sp]
|
|
str r2, [sp, 0x4]
|
|
movs r0, 0
|
|
str r0, [sp, 0x8]
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
lsls r3, 16
|
|
asrs r3, 16
|
|
adds r0, r2, 0
|
|
adds r1, r3, 0
|
|
bl GetHPBarLevel
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
adds r4, r3, 0
|
|
cmp r3, 0x2
|
|
bls _0806E5BE
|
|
mov r2, sp
|
|
ldrb r1, [r2, 0xC]
|
|
movs r0, 0x20
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2, 0xC]
|
|
_0806E5BE:
|
|
cmp r3, 0x2
|
|
bne _0806E5D2
|
|
mov r2, sp
|
|
ldrb r1, [r2, 0xC]
|
|
movs r0, 0x20
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x5
|
|
orrs r0, r1
|
|
strb r0, [r2, 0xC]
|
|
_0806E5D2:
|
|
cmp r4, 0x1
|
|
bhi _0806E5E6
|
|
mov r2, sp
|
|
ldrb r1, [r2, 0xC]
|
|
movs r0, 0x20
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x6
|
|
orrs r0, r1
|
|
strb r0, [r2, 0xC]
|
|
_0806E5E6:
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
str r0, [sp, 0x10]
|
|
ldr r2, _0806E628 @ =gUnknown_08376858
|
|
lsls r1, r6, 2
|
|
lsls r0, r5, 1
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
adds r1, r2
|
|
ldr r4, [r1]
|
|
add r1, sp, 0x14
|
|
mov r0, sp
|
|
adds r2, r4, 0
|
|
movs r3, 0
|
|
bl sub_80460C8
|
|
subs r4, 0x4
|
|
ldr r1, _0806E62C @ =0x00003109
|
|
adds r0, r1, 0
|
|
strh r0, [r4]
|
|
adds r1, 0x1
|
|
adds r0, r1, 0
|
|
strh r0, [r4, 0x2]
|
|
adds r1, 0x1
|
|
adds r0, r1, 0
|
|
strh r0, [r4, 0x10]
|
|
add sp, 0x18
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806E624: .4byte 0xffff8000
|
|
_0806E628: .4byte gUnknown_08376858
|
|
_0806E62C: .4byte 0x00003109
|
|
thumb_func_end PartyMenuDoDrawHPBar
|
|
|
|
thumb_func_start PartyMenuDrawHPBar
|
|
PartyMenuDrawHPBar: @ 806E630
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
mov r8, r2
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
mov r0, r8
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
mov r0, r8
|
|
movs r1, 0x3A
|
|
bl GetMonData
|
|
adds r3, r0, 0
|
|
lsls r3, 16
|
|
lsrs r3, 16
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
adds r2, r4, 0
|
|
bl PartyMenuDoDrawHPBar
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PartyMenuDrawHPBar
|
|
|
|
thumb_func_start PartyMenuTryDrawHPBar
|
|
PartyMenuTryDrawHPBar: @ 806E674
|
|
push {r4-r6,lr}
|
|
adds r4, r1, 0
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r6, r5, 0
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _0806E6C0
|
|
adds r0, r4, 0
|
|
movs r1, 0x2D
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _0806E6C0
|
|
bl IsLinkDoubleBattle
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0806E6AE
|
|
adds r0, r5, 0
|
|
movs r1, 0x2
|
|
adds r2, r4, 0
|
|
bl PartyMenuDrawHPBar
|
|
b _0806E6C0
|
|
_0806E6AE:
|
|
bl IsDoubleBattle
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r6, 0
|
|
adds r2, r4, 0
|
|
bl PartyMenuDrawHPBar
|
|
_0806E6C0:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end PartyMenuTryDrawHPBar
|
|
|
|
thumb_func_start PartyMenuDrawHPBars
|
|
PartyMenuDrawHPBars: @ 806E6C8
|
|
push {r4-r6,lr}
|
|
movs r4, 0
|
|
movs r6, 0x64
|
|
ldr r5, _0806E6EC @ =gPlayerParty
|
|
_0806E6D0:
|
|
adds r1, r4, 0
|
|
muls r1, r6
|
|
adds r1, r5
|
|
adds r0, r4, 0
|
|
bl PartyMenuTryDrawHPBar
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x5
|
|
bls _0806E6D0
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0806E6EC: .4byte gPlayerParty
|
|
thumb_func_end PartyMenuDrawHPBars
|
|
|
|
thumb_func_start sub_806E6F0
|
|
sub_806E6F0: @ 806E6F0
|
|
push {r4,r5,lr}
|
|
sub sp, 0x64
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
movs r2, 0x64
|
|
bl memcpy
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x64
|
|
bl memcpy
|
|
adds r0, r5, 0
|
|
mov r1, sp
|
|
movs r2, 0x64
|
|
bl memcpy
|
|
add sp, 0x64
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_806E6F0
|
|
|
|
thumb_func_start sub_806E720
|
|
sub_806E720: @ 806E720
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 21
|
|
adds r0, r3
|
|
ldrb r4, [r0]
|
|
lsls r4, 25
|
|
movs r3, 0x80
|
|
lsls r3, 18
|
|
adds r4, r3
|
|
lsrs r4, 24
|
|
ldrb r0, [r0, 0x1]
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r3, 0x1E
|
|
subs r3, r0
|
|
strb r3, [r1]
|
|
movs r0, 0x14
|
|
subs r0, r4
|
|
strb r0, [r2]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_806E720
|
|
|
|
thumb_func_start sub_806E750
|
|
sub_806E750: @ 806E750
|
|
push {r4-r6,lr}
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5,r6}
|
|
sub sp, 0xC
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
mov r9, r2
|
|
adds r6, r3, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
movs r0, 0x9
|
|
add r0, sp
|
|
mov r8, r0
|
|
adds r0, r5, 0
|
|
add r1, sp, 0x8
|
|
mov r2, r8
|
|
adds r3, r4, 0
|
|
bl sub_806E720
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0]
|
|
mov r2, r8
|
|
ldrb r1, [r2]
|
|
lsls r5, 3
|
|
adds r5, r4
|
|
ldrb r2, [r5, 0x1]
|
|
ldrb r3, [r5]
|
|
mov r4, r9
|
|
str r4, [sp]
|
|
ldr r4, [r5, 0x4]
|
|
str r4, [sp, 0x4]
|
|
bl sub_8089C50
|
|
add r0, sp, 0x8
|
|
ldrb r1, [r0]
|
|
adds r1, 0x1
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r0, r8
|
|
ldrb r2, [r0]
|
|
adds r2, 0x1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldrb r3, [r5]
|
|
str r6, [sp]
|
|
ldrb r0, [r5, 0x1]
|
|
subs r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
bl InitMenu
|
|
add sp, 0xC
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_806E750
|
|
|
|
thumb_func_start sub_806E7D0
|
|
sub_806E7D0: @ 806E7D0
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r6, r1, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
mov r5, sp
|
|
adds r5, 0x1
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl sub_806E720
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r5]
|
|
lsls r4, 3
|
|
adds r4, r6
|
|
ldrb r2, [r4, 0x1]
|
|
adds r2, r0, r2
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldrb r3, [r4]
|
|
lsls r3, 1
|
|
adds r3, r1, r3
|
|
adds r3, 0x1
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
bl MenuZeroFillWindowRect
|
|
bl HandleDestroyMenuCursors
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_806E7D0
|
|
|
|
thumb_func_start PartyMenuGetPopupMenuFunc
|
|
PartyMenuGetPopupMenuFunc: @ 806E81C
|
|
lsls r0, 24
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
lsrs r0, 21
|
|
adds r0, r1
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldr r0, [r0, 0x4]
|
|
bx lr
|
|
thumb_func_end PartyMenuGetPopupMenuFunc
|
|
|
|
.section .text_8070968
|
|
|
|
thumb_func_start sub_8070968
|
|
sub_8070968: @ 8070968
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
movs r7, 0
|
|
ldr r0, _08070A10 @ =0x0201c000
|
|
mov r9, r0
|
|
ldr r1, _08070A14 @ =0xfffff264
|
|
add r1, r9
|
|
mov r10, r1
|
|
ldr r0, _08070A18 @ =gStringVar1
|
|
mov r8, r0
|
|
_08070982:
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldr r1, _08070A1C @ =gUnknown_08376D1C
|
|
adds r1, r7, r1
|
|
ldrb r1, [r1]
|
|
bl GetMonData
|
|
adds r6, r7, 0x6
|
|
lsls r6, 1
|
|
add r6, r10
|
|
strh r0, [r6]
|
|
adds r0, r7, 0
|
|
movs r1, 0x3
|
|
bl __udivsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, r0, 3
|
|
adds r4, r0
|
|
adds r4, 0xB
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r7, 0
|
|
movs r1, 0x3
|
|
bl __umodsi3
|
|
adds r5, r0, 0
|
|
lsls r5, 1
|
|
adds r5, 0x1
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
movs r0, 0xFC
|
|
mov r1, r8
|
|
strb r0, [r1]
|
|
movs r0, 0x14
|
|
strb r0, [r1, 0x1]
|
|
movs r0, 0x6
|
|
strb r0, [r1, 0x2]
|
|
movs r0, 0
|
|
ldrsh r1, [r6, r0]
|
|
mov r0, r8
|
|
adds r0, 0x3
|
|
movs r2, 0x1
|
|
movs r3, 0x3
|
|
bl ConvertIntToDecimalStringN
|
|
adds r4, 0x6
|
|
lsls r4, 3
|
|
adds r4, 0x6
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r5, 3
|
|
mov r0, r8
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
movs r3, 0
|
|
bl MenuPrint_PixelCoords
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0x5
|
|
bls _08070982
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08070A10: .4byte 0x0201c000
|
|
_08070A14: .4byte 0xfffff264
|
|
_08070A18: .4byte gStringVar1
|
|
_08070A1C: .4byte gUnknown_08376D1C
|
|
thumb_func_end sub_8070968
|
|
|
|
thumb_func_start sub_8070A20
|
|
sub_8070A20: @ 8070A20
|
|
push {r4-r7,lr}
|
|
adds r6, r1, 0
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
adds r0, r6, 0
|
|
bl GetMonStatusAndPokerus
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
beq _08070A3A
|
|
cmp r0, 0x6
|
|
bne _08070A42
|
|
_08070A3A:
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
bl PartyMenuUpdateLevelOrStatus
|
|
_08070A42:
|
|
bl IsDoubleBattle
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
adds r0, r6, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
adds r0, r6, 0
|
|
movs r1, 0x3A
|
|
bl GetMonData
|
|
adds r3, r0, 0
|
|
lsls r3, 16
|
|
lsrs r3, 16
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
bl PartyMenuDoPrintHP
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
bl PartyMenuTryDrawHPBar
|
|
ldr r4, _08070ABC @ =0x0201c000
|
|
ldrb r0, [r4, 0x4]
|
|
adds r1, r7, 0
|
|
bl GetMonIconSpriteId_maybe
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r1, r6, 0
|
|
bl SetMonIconAnim
|
|
bl IsDoubleBattle
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
lsls r1, r7, 1
|
|
adds r0, r1
|
|
ldr r1, _08070AC0 @ =gUnknown_083769A8
|
|
adds r0, r1
|
|
movs r1, 0x7
|
|
bl task_pc_turn_off
|
|
ldr r0, _08070AC4 @ =0xfffff261
|
|
adds r4, r0
|
|
movs r0, 0x2
|
|
strb r0, [r4]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08070ABC: .4byte 0x0201c000
|
|
_08070AC0: .4byte gUnknown_083769A8
|
|
_08070AC4: .4byte 0xfffff261
|
|
thumb_func_end sub_8070A20
|
|
|
|
thumb_func_start Task_RareCandy3
|
|
Task_RareCandy3: @ 8070AC8
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r0, 0
|
|
bl WaitFanfare
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08070ADC
|
|
b _08070C2C
|
|
_08070ADC:
|
|
ldr r0, _08070B24 @ =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r5, 0x1
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08070AF4
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08070AF4
|
|
b _08070C2C
|
|
_08070AF4:
|
|
movs r0, 0xB
|
|
movs r1, 0
|
|
movs r2, 0x1D
|
|
movs r3, 0x7
|
|
bl MenuZeroFillWindowRect
|
|
ldr r7, _08070B28 @ =0x0201c000
|
|
ldr r0, [r7]
|
|
movs r1, 0x1
|
|
bl sub_803B7C8
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
ldr r1, _08070B2C @ =0xfffff282
|
|
adds r0, r7, r1
|
|
strh r5, [r0]
|
|
ldr r0, _08070B30 @ =0x0000fffe
|
|
cmp r4, r0
|
|
beq _08070BDC
|
|
cmp r4, r0
|
|
bgt _08070B34
|
|
cmp r4, 0
|
|
beq _08070B40
|
|
b _08070BF4
|
|
.align 2, 0
|
|
_08070B24: .4byte gMain
|
|
_08070B28: .4byte 0x0201c000
|
|
_08070B2C: .4byte 0xfffff282
|
|
_08070B30: .4byte 0x0000fffe
|
|
_08070B34:
|
|
ldr r0, _08070B3C @ =0x0000ffff
|
|
cmp r4, r0
|
|
beq _08070B7C
|
|
b _08070BF4
|
|
.align 2, 0
|
|
_08070B3C: .4byte 0x0000ffff
|
|
_08070B40:
|
|
ldr r0, [r7]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl GetEvolutionTargetSpecies
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r2, 0
|
|
beq _08070B74
|
|
ldr r1, _08070B6C @ =gUnknown_03005E94
|
|
ldr r0, _08070B70 @ =sub_80A53F8
|
|
str r0, [r1]
|
|
ldr r0, [r7]
|
|
ldrb r3, [r7, 0x5]
|
|
adds r1, r2, 0
|
|
movs r2, 0x1
|
|
bl BeginEvolutionScene
|
|
adds r0, r6, 0
|
|
bl DestroyTask
|
|
b _08070C2C
|
|
.align 2, 0
|
|
_08070B6C: .4byte gUnknown_03005E94
|
|
_08070B70: .4byte sub_80A53F8
|
|
_08070B74:
|
|
adds r0, r6, 0
|
|
bl sub_8070D90
|
|
b _08070C2C
|
|
_08070B7C:
|
|
ldr r0, [r7]
|
|
ldr r1, _08070BBC @ =gStringVar1
|
|
bl GetMonNickname
|
|
ldr r0, _08070BC0 @ =gStringVar2
|
|
ldr r5, _08070BC4 @ =word_2024E82
|
|
ldrh r2, [r5]
|
|
movs r1, 0xD
|
|
muls r1, r2
|
|
ldr r2, _08070BC8 @ =gMoveNames
|
|
adds r1, r2
|
|
bl StringCopy
|
|
ldr r4, _08070BCC @ =gStringVar4
|
|
ldr r1, _08070BD0 @ =gOtherText_WantsToLearn
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_806E834
|
|
ldrh r0, [r5]
|
|
strh r0, [r7, 0x8]
|
|
ldr r1, _08070BD4 @ =gTasks
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _08070BD8 @ =sub_806F358
|
|
b _08070C2A
|
|
.align 2, 0
|
|
_08070BBC: .4byte gStringVar1
|
|
_08070BC0: .4byte gStringVar2
|
|
_08070BC4: .4byte word_2024E82
|
|
_08070BC8: .4byte gMoveNames
|
|
_08070BCC: .4byte gStringVar4
|
|
_08070BD0: .4byte gOtherText_WantsToLearn
|
|
_08070BD4: .4byte gTasks
|
|
_08070BD8: .4byte sub_806F358
|
|
_08070BDC:
|
|
ldr r0, _08070BEC @ =gTasks
|
|
lsls r1, r6, 2
|
|
adds r1, r6
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _08070BF0 @ =sub_8070C54
|
|
str r0, [r1]
|
|
b _08070C2C
|
|
.align 2, 0
|
|
_08070BEC: .4byte gTasks
|
|
_08070BF0: .4byte sub_8070C54
|
|
_08070BF4:
|
|
ldr r0, _08070C34 @ =0x0201c000
|
|
ldr r0, [r0]
|
|
ldr r1, _08070C38 @ =gStringVar1
|
|
bl GetMonNickname
|
|
ldr r0, _08070C3C @ =gStringVar2
|
|
movs r1, 0xD
|
|
muls r1, r4
|
|
ldr r2, _08070C40 @ =gMoveNames
|
|
adds r1, r2
|
|
bl StringCopy
|
|
ldr r4, _08070C44 @ =gStringVar4
|
|
ldr r1, _08070C48 @ =gOtherText_LearnedMove
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_806E834
|
|
ldr r1, _08070C4C @ =gTasks
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _08070C50 @ =Task_TeamMonTMMove3
|
|
_08070C2A:
|
|
str r1, [r0]
|
|
_08070C2C:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08070C34: .4byte 0x0201c000
|
|
_08070C38: .4byte gStringVar1
|
|
_08070C3C: .4byte gStringVar2
|
|
_08070C40: .4byte gMoveNames
|
|
_08070C44: .4byte gStringVar4
|
|
_08070C48: .4byte gOtherText_LearnedMove
|
|
_08070C4C: .4byte gTasks
|
|
_08070C50: .4byte Task_TeamMonTMMove3
|
|
thumb_func_end Task_RareCandy3
|
|
|
|
thumb_func_start sub_8070C54
|
|
sub_8070C54: @ 8070C54
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r7, _08070C78 @ =0x0201c000
|
|
ldr r0, [r7]
|
|
movs r1, 0
|
|
bl sub_803B7C8
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
ldr r0, _08070C7C @ =0x0000fffe
|
|
cmp r4, r0
|
|
beq _08070D28
|
|
cmp r4, r0
|
|
bgt _08070C80
|
|
cmp r4, 0
|
|
beq _08070C8C
|
|
b _08070D30
|
|
.align 2, 0
|
|
_08070C78: .4byte 0x0201c000
|
|
_08070C7C: .4byte 0x0000fffe
|
|
_08070C80:
|
|
ldr r0, _08070C88 @ =0x0000ffff
|
|
cmp r4, r0
|
|
beq _08070CC8
|
|
b _08070D30
|
|
.align 2, 0
|
|
_08070C88: .4byte 0x0000ffff
|
|
_08070C8C:
|
|
ldr r0, [r7]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl GetEvolutionTargetSpecies
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r2, 0
|
|
beq _08070CC0
|
|
ldr r1, _08070CB8 @ =gUnknown_03005E94
|
|
ldr r0, _08070CBC @ =sub_80A53F8
|
|
str r0, [r1]
|
|
ldr r0, [r7]
|
|
ldrb r3, [r7, 0x5]
|
|
adds r1, r2, 0
|
|
movs r2, 0x1
|
|
bl BeginEvolutionScene
|
|
adds r0, r6, 0
|
|
bl DestroyTask
|
|
b _08070D68
|
|
.align 2, 0
|
|
_08070CB8: .4byte gUnknown_03005E94
|
|
_08070CBC: .4byte sub_80A53F8
|
|
_08070CC0:
|
|
adds r0, r6, 0
|
|
bl sub_8070D90
|
|
b _08070D68
|
|
_08070CC8:
|
|
ldr r0, [r7]
|
|
ldr r1, _08070D08 @ =gStringVar1
|
|
bl GetMonNickname
|
|
ldr r0, _08070D0C @ =gStringVar2
|
|
ldr r5, _08070D10 @ =word_2024E82
|
|
ldrh r2, [r5]
|
|
movs r1, 0xD
|
|
muls r1, r2
|
|
ldr r2, _08070D14 @ =gMoveNames
|
|
adds r1, r2
|
|
bl StringCopy
|
|
ldr r4, _08070D18 @ =gStringVar4
|
|
ldr r1, _08070D1C @ =gOtherText_WantsToLearn
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_806E834
|
|
ldrh r0, [r5]
|
|
strh r0, [r7, 0x8]
|
|
ldr r1, _08070D20 @ =gTasks
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _08070D24 @ =sub_806F358
|
|
b _08070D66
|
|
.align 2, 0
|
|
_08070D08: .4byte gStringVar1
|
|
_08070D0C: .4byte gStringVar2
|
|
_08070D10: .4byte word_2024E82
|
|
_08070D14: .4byte gMoveNames
|
|
_08070D18: .4byte gStringVar4
|
|
_08070D1C: .4byte gOtherText_WantsToLearn
|
|
_08070D20: .4byte gTasks
|
|
_08070D24: .4byte sub_806F358
|
|
_08070D28:
|
|
adds r0, r6, 0
|
|
bl sub_8070C54
|
|
b _08070D68
|
|
_08070D30:
|
|
ldr r0, _08070D70 @ =0x0201c000
|
|
ldr r0, [r0]
|
|
ldr r1, _08070D74 @ =gStringVar1
|
|
bl GetMonNickname
|
|
ldr r0, _08070D78 @ =gStringVar2
|
|
movs r1, 0xD
|
|
muls r1, r4
|
|
ldr r2, _08070D7C @ =gMoveNames
|
|
adds r1, r2
|
|
bl StringCopy
|
|
ldr r4, _08070D80 @ =gStringVar4
|
|
ldr r1, _08070D84 @ =gOtherText_LearnedMove
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_806E834
|
|
ldr r1, _08070D88 @ =gTasks
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _08070D8C @ =Task_TeamMonTMMove3
|
|
_08070D66:
|
|
str r1, [r0]
|
|
_08070D68:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08070D70: .4byte 0x0201c000
|
|
_08070D74: .4byte gStringVar1
|
|
_08070D78: .4byte gStringVar2
|
|
_08070D7C: .4byte gMoveNames
|
|
_08070D80: .4byte gStringVar4
|
|
_08070D84: .4byte gOtherText_LearnedMove
|
|
_08070D88: .4byte gTasks
|
|
_08070D8C: .4byte Task_TeamMonTMMove3
|
|
thumb_func_end sub_8070C54
|
|
|
|
thumb_func_start sub_8070D90
|
|
sub_8070D90: @ 8070D90
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r4, _08070DB4 @ =gTasks
|
|
ldr r3, _08070DB8 @ =0x0201c000
|
|
ldrb r2, [r3, 0x4]
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r1, r4
|
|
ldr r2, [r3, 0x10]
|
|
str r2, [r1]
|
|
bl DestroyTask
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08070DB4: .4byte gTasks
|
|
_08070DB8: .4byte 0x0201c000
|
|
thumb_func_end sub_8070D90
|
|
|
|
thumb_func_start DoEvolutionStoneItemEffect
|
|
DoEvolutionStoneItemEffect: @ 8070DBC
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r2, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r1, 16
|
|
lsrs r6, r1, 16
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
ldr r1, _08070E18 @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _08070E1C @ =TaskDummy
|
|
str r1, [r0]
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
bl sub_806E8D0
|
|
ldr r1, _08070E20 @ =gUnknown_03005E94
|
|
ldr r0, _08070E24 @ =sub_80A53F8
|
|
str r0, [r1]
|
|
ldr r0, _08070E28 @ =0x0201c000
|
|
ldrb r0, [r0, 0x5]
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl ExecuteTableBasedItemEffect__
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08070E38
|
|
ldr r1, _08070E2C @ =gUnknown_0202E8F4
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r0, _08070E30 @ =gOtherText_WontHaveAnyEffect
|
|
movs r1, 0x1
|
|
bl sub_806E834
|
|
ldr r0, _08070E34 @ =sub_806FB0C
|
|
movs r1, 0x5
|
|
bl CreateTask
|
|
b _08070E40
|
|
.align 2, 0
|
|
_08070E18: .4byte gTasks
|
|
_08070E1C: .4byte TaskDummy
|
|
_08070E20: .4byte gUnknown_03005E94
|
|
_08070E24: .4byte sub_80A53F8
|
|
_08070E28: .4byte 0x0201c000
|
|
_08070E2C: .4byte gUnknown_0202E8F4
|
|
_08070E30: .4byte gOtherText_WontHaveAnyEffect
|
|
_08070E34: .4byte sub_806FB0C
|
|
_08070E38:
|
|
adds r0, r6, 0
|
|
movs r1, 0x1
|
|
bl RemoveBagItem
|
|
_08070E40:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end DoEvolutionStoneItemEffect
|
|
|
|
thumb_func_start GetItemEffectType
|
|
GetItemEffectType: @ 8070E48
|
|
push {r4,r5,lr}
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xAF
|
|
bne _08070E5C
|
|
ldr r4, _08070E58 @ =gSaveBlock1 + 0x3676
|
|
b _08070E66
|
|
.align 2, 0
|
|
_08070E58: .4byte gSaveBlock1 + 0x3676
|
|
_08070E5C:
|
|
ldr r1, _08070E8C @ =gItemEffectTable
|
|
subs r0, 0xD
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r4, [r0]
|
|
_08070E66:
|
|
ldrb r1, [r4]
|
|
movs r5, 0x3F
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08070E88
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0
|
|
bne _08070E88
|
|
ldrb r0, [r4, 0x2]
|
|
cmp r0, 0
|
|
bne _08070E88
|
|
ldrb r3, [r4, 0x3]
|
|
movs r0, 0x80
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _08070E90
|
|
_08070E88:
|
|
movs r0, 0
|
|
b _08070F8A
|
|
.align 2, 0
|
|
_08070E8C: .4byte gItemEffectTable
|
|
_08070E90:
|
|
movs r2, 0x40
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08070E9E
|
|
movs r0, 0xA
|
|
b _08070F8A
|
|
_08070E9E:
|
|
adds r0, r2, 0
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _08070EAA
|
|
movs r0, 0x1
|
|
b _08070F8A
|
|
_08070EAA:
|
|
adds r2, r5, 0
|
|
ands r2, r3
|
|
cmp r2, 0
|
|
bne _08070EB8
|
|
lsrs r0, r1, 7
|
|
cmp r0, 0
|
|
beq _08070EFA
|
|
_08070EB8:
|
|
cmp r2, 0x20
|
|
bne _08070EC0
|
|
movs r0, 0x4
|
|
b _08070F8A
|
|
_08070EC0:
|
|
cmp r2, 0x10
|
|
bne _08070EC8
|
|
movs r0, 0x3
|
|
b _08070F8A
|
|
_08070EC8:
|
|
cmp r2, 0x8
|
|
bne _08070ED0
|
|
movs r0, 0x5
|
|
b _08070F8A
|
|
_08070ED0:
|
|
cmp r2, 0x4
|
|
bne _08070ED8
|
|
movs r0, 0x6
|
|
b _08070F8A
|
|
_08070ED8:
|
|
cmp r2, 0x2
|
|
bne _08070EE0
|
|
movs r0, 0x7
|
|
b _08070F8A
|
|
_08070EE0:
|
|
cmp r2, 0x1
|
|
bne _08070EE8
|
|
movs r0, 0x8
|
|
b _08070F8A
|
|
_08070EE8:
|
|
lsrs r0, r1, 7
|
|
cmp r0, 0
|
|
beq _08070EF6
|
|
cmp r2, 0
|
|
bne _08070EF6
|
|
movs r0, 0x9
|
|
b _08070F8A
|
|
_08070EF6:
|
|
movs r0, 0xB
|
|
b _08070F8A
|
|
_08070EFA:
|
|
ldrb r1, [r4, 0x4]
|
|
movs r0, 0x44
|
|
ands r0, r1
|
|
adds r2, r1, 0
|
|
cmp r0, 0
|
|
beq _08070F0A
|
|
movs r0, 0x2
|
|
b _08070F8A
|
|
_08070F0A:
|
|
movs r5, 0x2
|
|
adds r0, r5, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08070F18
|
|
movs r0, 0xC
|
|
b _08070F8A
|
|
_08070F18:
|
|
movs r3, 0x1
|
|
adds r0, r3, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08070F26
|
|
movs r0, 0xD
|
|
b _08070F8A
|
|
_08070F26:
|
|
ldrb r1, [r4, 0x5]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08070F34
|
|
movs r0, 0xE
|
|
b _08070F8A
|
|
_08070F34:
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08070F40
|
|
movs r0, 0xF
|
|
b _08070F8A
|
|
_08070F40:
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08070F4C
|
|
movs r0, 0x10
|
|
b _08070F8A
|
|
_08070F4C:
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08070F58
|
|
movs r0, 0x11
|
|
b _08070F8A
|
|
_08070F58:
|
|
movs r0, 0x80
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08070F64
|
|
movs r0, 0x12
|
|
b _08070F8A
|
|
_08070F64:
|
|
movs r0, 0x20
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08070F70
|
|
movs r0, 0x13
|
|
b _08070F8A
|
|
_08070F70:
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08070F7C
|
|
movs r0, 0x14
|
|
b _08070F8A
|
|
_08070F7C:
|
|
movs r0, 0x18
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _08070F88
|
|
movs r0, 0x16
|
|
b _08070F8A
|
|
_08070F88:
|
|
movs r0, 0x15
|
|
_08070F8A:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetItemEffectType
|
|
|
|
thumb_func_start unref_sub_8070F90
|
|
unref_sub_8070F90: @ 8070F90
|
|
push {lr}
|
|
ldr r0, _08070FAC @ =0x00000801
|
|
bl FlagSet
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
bl FlagSet
|
|
ldr r0, _08070FB0 @ =0x00000802
|
|
bl FlagSet
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08070FAC: .4byte 0x00000801
|
|
_08070FB0: .4byte 0x00000802
|
|
thumb_func_end unref_sub_8070F90
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|