summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/use_pokeblock.s2113
-rw-r--r--data/use_pokeblock.s73
-rw-r--r--include/main.h2
-rw-r--r--include/pokeblock_feed.h10
-rwxr-xr-xinclude/pokemon.h1
-rwxr-xr-x[-rw-r--r--]include/pokenav.h86
-rwxr-xr-x[-rw-r--r--]include/use_pokeblock.h5
-rw-r--r--ld_script.txt4
-rw-r--r--src/pokenav.c1
-rwxr-xr-xsrc/use_pokeblock.c964
-rw-r--r--sym_ewram.txt5
11 files changed, 1071 insertions, 2193 deletions
diff --git a/asm/use_pokeblock.s b/asm/use_pokeblock.s
deleted file mode 100644
index a9913b6d0..000000000
--- a/asm/use_pokeblock.s
+++ /dev/null
@@ -1,2113 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8136130
-sub_8136130: @ 8136130
- push {r4,r5,lr}
- ldr r4, _0813615C @ =gUnknown_02039304
- ldr r2, _08136160 @ =gUnknown_083DFEC4
- ldr r3, [r2]
- ldr r5, _08136164 @ =0x0000d164
- adds r2, r3, r5
- str r2, [r4]
- str r0, [r2, 0x8]
- str r1, [r2, 0x4]
- ldr r0, _08136168 @ =0x0000d162
- adds r3, r0
- movs r0, 0x2
- strb r0, [r3]
- ldr r0, _0813616C @ =sub_8136294
- bl launch_c3_walk_stairs_and_run_once
- ldr r0, _08136170 @ =sub_8136244
- bl SetMainCallback2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813615C: .4byte gUnknown_02039304
-_08136160: .4byte gUnknown_083DFEC4
-_08136164: .4byte 0x0000d164
-_08136168: .4byte 0x0000d162
-_0813616C: .4byte sub_8136294
-_08136170: .4byte sub_8136244
- thumb_func_end sub_8136130
-
- thumb_func_start sub_8136174
-sub_8136174: @ 8136174
- push {r4,r5,lr}
- ldr r5, _081361C4 @ =gUnknown_02039304
- ldr r1, [r5]
- ldr r0, _081361C8 @ =gUnknown_0203930C
- ldr r0, [r0]
- str r0, [r1, 0x8]
- ldr r0, _081361CC @ =gUnknown_02039308
- ldr r0, [r0]
- str r0, [r1, 0x4]
- ldr r4, _081361D0 @ =gUnknown_02039310
- ldrb r0, [r4]
- bl sub_81370E4
- strb r0, [r4]
- ldr r5, [r5]
- movs r1, 0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _0813619E
- movs r1, 0x1
-_0813619E:
- adds r0, r5, 0
- adds r0, 0x56
- strb r1, [r0]
- ldr r0, _081361D4 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _081361D8 @ =0x0000d162
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
- ldr r0, _081361DC @ =sub_8136294
- bl launch_c3_walk_stairs_and_run_once
- ldr r0, _081361E0 @ =sub_81361E4
- bl SetMainCallback2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081361C4: .4byte gUnknown_02039304
-_081361C8: .4byte gUnknown_0203930C
-_081361CC: .4byte gUnknown_02039308
-_081361D0: .4byte gUnknown_02039310
-_081361D4: .4byte gUnknown_083DFEC4
-_081361D8: .4byte 0x0000d162
-_081361DC: .4byte sub_8136294
-_081361E0: .4byte sub_81361E4
- thumb_func_end sub_8136174
-
- thumb_func_start sub_81361E4
-sub_81361E4: @ 81361E4
- push {r4,lr}
- ldr r4, _08136220 @ =gUnknown_02039304
- ldr r0, [r4]
- ldr r0, [r0]
- bl _call_via_r0
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- ldr r4, [r4]
- ldr r1, [r4]
- ldr r0, _08136224 @ =sub_81365C8
- cmp r1, r0
- bne _0813621A
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- adds r0, r4, 0
- adds r0, 0x50
- strb r1, [r0]
- ldr r0, _08136228 @ =sub_813622C
- bl SetMainCallback2
-_0813621A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08136220: .4byte gUnknown_02039304
-_08136224: .4byte sub_81365C8
-_08136228: .4byte sub_813622C
- thumb_func_end sub_81361E4
-
- thumb_func_start sub_813622C
-sub_813622C: @ 813622C
- push {lr}
- bl sub_81368A4
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_813622C
-
- thumb_func_start sub_8136244
-sub_8136244: @ 8136244
- push {lr}
- ldr r0, _08136260 @ =gUnknown_02039304
- ldr r0, [r0]
- ldr r0, [r0]
- bl _call_via_r0
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- .align 2, 0
-_08136260: .4byte gUnknown_02039304
- thumb_func_end sub_8136244
-
- thumb_func_start sub_8136264
-sub_8136264: @ 8136264
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- movs r0, 0x6
- bl sub_80F5CDC
- bl sub_8089668
- pop {r0}
- bx r0
- thumb_func_end sub_8136264
-
- thumb_func_start launch_c3_walk_stairs_and_run_once
-launch_c3_walk_stairs_and_run_once: @ 8136280
- ldr r1, _08136290 @ =gUnknown_02039304
- ldr r1, [r1]
- str r0, [r1]
- adds r1, 0x50
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08136290: .4byte gUnknown_02039304
- thumb_func_end launch_c3_walk_stairs_and_run_once
-
- thumb_func_start sub_8136294
-sub_8136294: @ 8136294
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r1, _081362B4 @ =gUnknown_02039304
- ldr r0, [r1]
- adds r0, 0x50
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x16
- bls _081362A8
- b _0813657A
-_081362A8:
- lsls r0, 2
- ldr r1, _081362B8 @ =_081362BC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081362B4: .4byte gUnknown_02039304
-_081362B8: .4byte _081362BC
- .align 2, 0
-_081362BC:
- .4byte _08136318
- .4byte _08136354
- .4byte _0813635E
- .4byte _08136366
- .4byte _08136374
- .4byte _08136380
- .4byte _0813638C
- .4byte _081363B8
- .4byte _081363C8
- .4byte _081363DC
- .4byte _081363EE
- .4byte _08136404
- .4byte _08136448
- .4byte _08136464
- .4byte _08136488
- .4byte _08136494
- .4byte _0813649A
- .4byte _081364D8
- .4byte _081364FC
- .4byte _08136508
- .4byte _08136520
- .4byte _08136538
- .4byte _0813656C
-_08136318:
- bl is_c1_link_related_active
- ldr r1, _08136344 @ =gUnknown_083DFEC4
- ldr r1, [r1]
- ldr r2, _08136348 @ =0x00006dac
- adds r1, r2
- strb r0, [r1]
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _08136330
- b _0813657A
-_08136330:
- ldr r4, _0813634C @ =gUnknown_02039304
- ldr r0, [r4]
- adds r0, 0x55
- strb r1, [r0]
- ldr r0, _08136350 @ =sub_81365A0
- bl launch_c3_walk_stairs_and_run_once
- ldr r1, [r4]
- b _08136528
- .align 2, 0
-_08136344: .4byte gUnknown_083DFEC4
-_08136348: .4byte 0x00006dac
-_0813634C: .4byte gUnknown_02039304
-_08136350: .4byte sub_81365A0
-_08136354:
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- b _08136524
-_0813635E:
- movs r0, 0
- bl SetVBlankCallback
- b _08136524
-_08136366:
- ldr r0, _08136370 @ =gWindowConfig_81E7080
- bl SetUpWindowConfig
- b _08136524
- .align 2, 0
-_08136370: .4byte gWindowConfig_81E7080
-_08136374:
- ldr r0, _0813637C @ =gWindowConfig_81E7080
- bl MultistepInitMenuWindowBegin
- b _08136524
- .align 2, 0
-_0813637C: .4byte gWindowConfig_81E7080
-_08136380:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- bne _0813638A
- b _0813657A
-_0813638A:
- b _08136524
-_0813638C:
- ldr r0, _081363AC @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r4, _081363B0 @ =0x000076aa
- adds r0, r1, r4
- movs r2, 0
- strb r2, [r0]
- ldr r4, _081363B4 @ =0x000087e0
- adds r0, r1, r4
- str r2, [r0]
- movs r0, 0xC3
- lsls r0, 2
- adds r1, r0
- movs r0, 0x20
- strh r0, [r1]
- ldr r1, [r3]
- b _08136528
- .align 2, 0
-_081363AC: .4byte gUnknown_083DFEC4
-_081363B0: .4byte 0x000076aa
-_081363B4: .4byte 0x000087e0
-_081363B8:
- bl sub_80F2688
- ldr r0, _081363D8 @ =gUnknown_02039304
- ldr r1, [r0]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_081363C8:
- bl sub_80F26BC
- lsls r0, 24
- cmp r0, 0
- beq _081363D4
- b _0813657A
-_081363D4:
- b _08136524
- .align 2, 0
-_081363D8: .4byte gUnknown_02039304
-_081363DC:
- movs r0, 0x1
- bl sub_80F2C80
- ldr r0, _08136400 @ =gUnknown_02039304
- ldr r1, [r0]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_081363EE:
- movs r0, 0x1
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- beq _081363FC
- b _0813657A
-_081363FC:
- b _08136524
- .align 2, 0
-_08136400: .4byte gUnknown_02039304
-_08136404:
- ldr r1, _08136434 @ =gKeyRepeatStartDelay
- movs r0, 0x14
- strh r0, [r1]
- bl CalculatePlayerPartyCount
- ldr r1, _08136438 @ =gUnknown_083DFEC4
- ldr r4, [r1]
- ldr r2, _0813643C @ =0x00008828
- adds r1, r4, r2
- movs r5, 0
- strb r0, [r1]
- ldr r1, _08136440 @ =0x00009344
- adds r0, r4, r1
- strb r5, [r0]
- subs r2, 0xC0
- adds r0, r4, r2
- str r5, [r0]
- bl sub_80F4BD0
- ldr r0, _08136444 @ =0x0000d160
- adds r4, r0
- strh r5, [r4]
- b _08136524
- .align 2, 0
-_08136434: .4byte gKeyRepeatStartDelay
-_08136438: .4byte gUnknown_083DFEC4
-_0813643C: .4byte 0x00008828
-_08136440: .4byte 0x00009344
-_08136444: .4byte 0x0000d160
-_08136448:
- bl sub_80F1778
- lsls r0, 24
- cmp r0, 0
- beq _08136454
- b _0813657A
-_08136454:
- ldr r0, _08136460 @ =REG_BG2VOFS
- movs r1, 0x6
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- b _08136524
- .align 2, 0
-_08136460: .4byte REG_BG2VOFS
-_08136464:
- movs r0, 0
- bl sub_80F2E18
- ldr r0, _0813647C @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _08136480 @ =0x00008768
- adds r0, r1
- ldr r1, [r0]
- ldr r0, _08136484 @ =0x0000ffd8
- strh r0, [r1, 0x26]
- b _08136524
- .align 2, 0
-_0813647C: .4byte gUnknown_083DFEC4
-_08136480: .4byte 0x00008768
-_08136484: .4byte 0x0000ffd8
-_08136488:
- bl sub_80F170C
- lsls r0, 24
- cmp r0, 0
- bne _0813657A
- b _08136524
-_08136494:
- bl sub_80F33A8
- b _08136524
-_0813649A:
- ldr r1, _081364C4 @ =0x0600f800
- movs r2, 0
- str r2, [sp]
- ldr r0, _081364C8 @ =0x040000d4
- mov r4, sp
- str r4, [r0]
- str r1, [r0, 0x4]
- ldr r1, _081364CC @ =0x85000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _081364D0 @ =REG_BG1VOFS
- strh r2, [r0]
- subs r0, 0x2
- strh r2, [r0]
- ldr r1, _081364D4 @ =REG_BG1CNT
- movs r2, 0xF8
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, [r3]
- b _08136528
- .align 2, 0
-_081364C4: .4byte 0x0600f800
-_081364C8: .4byte 0x040000d4
-_081364CC: .4byte 0x85000200
-_081364D0: .4byte REG_BG1VOFS
-_081364D4: .4byte REG_BG1CNT
-_081364D8:
- ldr r0, _081364F0 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r4, _081364F4 @ =0x00008ff0
- adds r0, r1, r4
- ldr r2, _081364F8 @ =0x00009004
- adds r1, r2
- bl sub_80F567C
- bl sub_80F5B38
- b _08136524
- .align 2, 0
-_081364F0: .4byte gUnknown_083DFEC4
-_081364F4: .4byte 0x00008ff0
-_081364F8: .4byte 0x00009004
-_081364FC:
- bl sub_80F5B50
- lsls r0, 24
- cmp r0, 0
- bne _0813657A
- b _08136524
-_08136508:
- ldr r0, _08136518 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r4, _0813651C @ =0x00009004
- adds r0, r4
- bl sub_80F556C
- b _08136524
- .align 2, 0
-_08136518: .4byte gUnknown_083DFEC4
-_0813651C: .4byte 0x00009004
-_08136520:
- bl sub_80F1934
-_08136524:
- ldr r0, _08136534 @ =gUnknown_02039304
- ldr r1, [r0]
-_08136528:
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0813657A
- .align 2, 0
-_08136534: .4byte gUnknown_02039304
-_08136538:
- ldr r1, _08136584 @ =REG_WIN0H
- movs r0, 0xF0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x9B
- strh r0, [r1]
- ldr r0, _08136588 @ =REG_WIN0V
- ldr r2, _0813658C @ =0x00003273
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r1, _08136590 @ =REG_WININ
- ldr r4, _08136594 @ =0x00003f3f
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x1B
- strh r0, [r1]
- subs r1, 0x38
- movs r0, 0x28
- strh r0, [r1]
- subs r1, 0x12
- ldr r2, _08136598 @ =0x00007f40
- adds r0, r2, 0
- strh r0, [r1]
-_0813656C:
- ldr r0, [r3]
- adds r0, 0x55
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _0813659C @ =sub_81365C8
- bl launch_c3_walk_stairs_and_run_once
-_0813657A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08136584: .4byte REG_WIN0H
-_08136588: .4byte REG_WIN0V
-_0813658C: .4byte 0x00003273
-_08136590: .4byte REG_WININ
-_08136594: .4byte 0x00003f3f
-_08136598: .4byte 0x00007f40
-_0813659C: .4byte sub_81365C8
- thumb_func_end sub_8136294
-
- thumb_func_start sub_81365A0
-sub_81365A0: @ 81365A0
- push {r4,lr}
- ldr r1, _081365C4 @ =gUnknown_02039304
- ldr r0, [r1]
- adds r0, 0x55
- ldrb r0, [r0]
- cmp r0, 0
- bne _081365BE
- adds r4, r1, 0
-_081365B0:
- bl sub_8136294
- ldr r0, [r4]
- adds r0, 0x55
- ldrb r0, [r0]
- cmp r0, 0
- beq _081365B0
-_081365BE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081365C4: .4byte gUnknown_02039304
- thumb_func_end sub_81365A0
-
- thumb_func_start sub_81365C8
-sub_81365C8: @ 81365C8
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _081365E0 @ =gUnknown_02039304
- ldr r0, [r4]
- adds r0, 0x50
- ldrb r1, [r0]
- cmp r1, 0
- beq _081365E4
- cmp r1, 0x1
- beq _0813660C
- b _08136626
- .align 2, 0
-_081365E0: .4byte gUnknown_02039304
-_081365E4:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _08136608 @ =sub_8136264
- bl SetVBlankCallback
- ldr r1, [r4]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08136626
- .align 2, 0
-_08136608: .4byte sub_8136264
-_0813660C:
- ldr r0, _08136630 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08136626
- bl sub_80F3C94
- bl sub_80F3D00
- ldr r0, _08136634 @ =sub_8136638
- bl launch_c3_walk_stairs_and_run_once
-_08136626:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08136630: .4byte gPaletteFade
-_08136634: .4byte sub_8136638
- thumb_func_end sub_81365C8
-
- thumb_func_start sub_8136638
-sub_8136638: @ 8136638
- push {r4,lr}
- ldr r0, _08136654 @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x50
- ldrb r0, [r0]
- cmp r0, 0x7
- bls _08136648
- b _081367FA
-_08136648:
- lsls r0, 2
- ldr r1, _08136658 @ =_0813665C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08136654: .4byte gUnknown_02039304
-_08136658: .4byte _0813665C
- .align 2, 0
-_0813665C:
- .4byte _0813667C
- .4byte _08136748
- .4byte _08136754
- .4byte _08136774
- .4byte _081367FA
- .4byte _08136780
- .4byte _08136798
- .4byte _081367E0
-_0813667C:
- ldr r2, _081366A4 @ =gMain
- ldrh r1, [r2, 0x2C]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _081366AC
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_80F5060
- bl move_anim_execute
- ldr r0, _081366A8 @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x1
- b _081367F8
- .align 2, 0
-_081366A4: .4byte gMain
-_081366A8: .4byte gUnknown_02039304
-_081366AC:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081366D4
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl sub_80F5060
- bl move_anim_execute
- ldr r0, _081366D0 @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x1
- b _081367F8
- .align 2, 0
-_081366D0: .4byte gUnknown_02039304
-_081366D4:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081366F4
- movs r0, 0x5
- bl PlaySE
- ldr r0, _081366F0 @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x3
- b _081367F8
- .align 2, 0
-_081366F0: .4byte gUnknown_02039304
-_081366F4:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081366FE
- b _081367FA
-_081366FE:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08136728 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _0813672C @ =0x000087dc
- adds r1, r0, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- ldr r2, _08136730 @ =0x000087da
- adds r0, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- subs r0, 0x1
- cmp r1, r0
- bne _08136738
- ldr r0, _08136734 @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x3
- b _081367F8
- .align 2, 0
-_08136728: .4byte gUnknown_083DFEC4
-_0813672C: .4byte 0x000087dc
-_08136730: .4byte 0x000087da
-_08136734: .4byte gUnknown_02039304
-_08136738:
- ldr r0, _08136744 @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x5
- b _081367F8
- .align 2, 0
-_08136744: .4byte gUnknown_02039304
-_08136748:
- bl gpu_sync_bg_show
- lsls r0, 24
- cmp r0, 0
- bne _081367FA
- b _08136784
-_08136754:
- bl sub_8055870
- adds r4, r0, 0
- cmp r4, 0
- bne _081367FA
- bl sub_80F1934
- bl sub_80F3D00
- ldr r0, _08136770 @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x50
- strb r4, [r0]
- b _081367FA
- .align 2, 0
-_08136770: .4byte gUnknown_02039304
-_08136774:
- ldr r0, _0813677C @ =sub_8136B44
- bl launch_c3_walk_stairs_and_run_once
- b _081367FA
- .align 2, 0
-_0813677C: .4byte sub_8136B44
-_08136780:
- bl sub_8136BB8
-_08136784:
- ldr r0, _08136794 @ =gUnknown_02039304
- ldr r1, [r0]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _081367FA
- .align 2, 0
-_08136794: .4byte gUnknown_02039304
-_08136798:
- bl sub_8136C40
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _081367B8
- cmp r1, 0
- bgt _081367B2
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _081367F0
- b _081367FA
-_081367B2:
- cmp r1, 0x1
- bne _081367FA
- b _081367F0
-_081367B8:
- bl sub_8137058
- lsls r0, 24
- cmp r0, 0
- beq _081367D4
- bl sub_8136D60
- ldr r0, _081367D0 @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x7
- b _081367F8
- .align 2, 0
-_081367D0: .4byte gUnknown_02039304
-_081367D4:
- ldr r0, _081367DC @ =sub_8136808
- bl launch_c3_walk_stairs_and_run_once
- b _081367FA
- .align 2, 0
-_081367DC: .4byte sub_8136808
-_081367E0:
- ldr r0, _08136800 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _081367FA
- bl sub_8136D8C
-_081367F0:
- ldr r0, _08136804 @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0
-_081367F8:
- strb r1, [r0]
-_081367FA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08136800: .4byte gMain
-_08136804: .4byte gUnknown_02039304
- thumb_func_end sub_8136638
-
- thumb_func_start sub_8136808
-sub_8136808: @ 8136808
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _08136820 @ =gUnknown_02039304
- ldr r0, [r5]
- adds r0, 0x50
- ldrb r4, [r0]
- cmp r4, 0
- beq _08136824
- cmp r4, 0x1
- beq _08136874
- b _0813688C
- .align 2, 0
-_08136820: .4byte gUnknown_02039304
-_08136824:
- ldr r0, _08136860 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _08136864 @ =0x000087dc
- adds r0, r1
- ldrb r0, [r0]
- bl sub_81370A4
- ldr r1, _08136868 @ =gUnknown_02039310
- strb r0, [r1]
- ldr r1, _0813686C @ =gUnknown_02039308
- ldr r2, [r5]
- ldr r0, [r2, 0x4]
- str r0, [r1]
- ldr r1, _08136870 @ =gUnknown_0203930C
- ldr r0, [r2, 0x8]
- str r0, [r1]
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, [r5]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0813688C
- .align 2, 0
-_08136860: .4byte gUnknown_083DFEC4
-_08136864: .4byte 0x000087dc
-_08136868: .4byte gUnknown_02039310
-_0813686C: .4byte gUnknown_02039308
-_08136870: .4byte gUnknown_0203930C
-_08136874:
- ldr r0, _08136894 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0813688C
- ldr r0, _08136898 @ =gMain
- ldr r1, _0813689C @ =sub_8136174
- str r1, [r0, 0x8]
- ldr r0, _081368A0 @ =sub_8147ADC
- bl SetMainCallback2
-_0813688C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08136894: .4byte gPaletteFade
-_08136898: .4byte gMain
-_0813689C: .4byte sub_8136174
-_081368A0: .4byte sub_8147ADC
- thumb_func_end sub_8136808
-
- thumb_func_start sub_81368A4
-sub_81368A4: @ 81368A4
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _081368C4 @ =gUnknown_02039304
- ldr r0, [r1]
- adds r0, 0x50
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x6
- bls _081368B8
- b _081369B8
-_081368B8:
- lsls r0, 2
- ldr r1, _081368C8 @ =_081368CC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081368C4: .4byte gUnknown_02039304
-_081368C8: .4byte _081368CC
- .align 2, 0
-_081368CC:
- .4byte _081368E8
- .4byte _08136922
- .4byte _0813692E
- .4byte _0813694C
- .4byte _0813695A
- .4byte _0813696C
- .4byte _08136998
-_081368E8:
- ldr r0, _0813690C @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _08136910 @ =0x000087dc
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- ldr r0, _08136914 @ =gUnknown_02039310
- ldrb r0, [r0]
- cmp r1, r0
- beq _08136918
- ldr r0, [r4]
- adds r0, 0x56
- ldrb r0, [r0]
- bl sub_80F5060
- ldr r1, [r4]
- b _08136986
- .align 2, 0
-_0813690C: .4byte gUnknown_083DFEC4
-_08136910: .4byte 0x000087dc
-_08136914: .4byte gUnknown_02039310
-_08136918:
- ldr r0, [r4]
- adds r0, 0x50
- movs r1, 0x3
- strb r1, [r0]
- b _081369B8
-_08136922:
- bl gpu_sync_bg_show
- lsls r0, 24
- cmp r0, 0
- bne _081369B8
- b _08136982
-_0813692E:
- bl sub_8055870
- adds r4, r0, 0
- cmp r4, 0
- bne _081369B8
- bl sub_80F1934
- ldr r0, _08136948 @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x50
- strb r4, [r0]
- b _081369B8
- .align 2, 0
-_08136948: .4byte gUnknown_02039304
-_0813694C:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- b _08136982
-_0813695A:
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _08136968 @ =0x00007f40
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, [r4]
- b _08136986
- .align 2, 0
-_08136968: .4byte 0x00007f40
-_0813696C:
- ldr r0, _08136990 @ =sub_8136264
- bl SetVBlankCallback
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_08136982:
- ldr r0, _08136994 @ =gUnknown_02039304
- ldr r1, [r0]
-_08136986:
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _081369B8
- .align 2, 0
-_08136990: .4byte sub_8136264
-_08136994: .4byte gUnknown_02039304
-_08136998:
- ldr r0, _081369C0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081369B8
- bl sub_80F3C94
- bl sub_80F3D00
- ldr r0, _081369C4 @ =sub_81369CC
- bl launch_c3_walk_stairs_and_run_once
- ldr r0, _081369C8 @ =sub_8136244
- bl SetMainCallback2
-_081369B8:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081369C0: .4byte gPaletteFade
-_081369C4: .4byte sub_81369CC
-_081369C8: .4byte sub_8136244
- thumb_func_end sub_81368A4
-
- thumb_func_start sub_81369CC
-sub_81369CC: @ 81369CC
- push {r4-r6,lr}
- ldr r1, _081369E8 @ =gUnknown_02039304
- ldr r0, [r1]
- adds r0, 0x50
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x5
- bls _081369DE
- b _08136B32
-_081369DE:
- lsls r0, 2
- ldr r1, _081369EC @ =_081369F0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081369E8: .4byte gUnknown_02039304
-_081369EC: .4byte _081369F0
- .align 2, 0
-_081369F0:
- .4byte _08136A08
- .4byte _08136A48
- .4byte _08136A5C
- .4byte _08136AAC
- .4byte _08136AEC
- .4byte _08136B0E
-_08136A08:
- ldr r3, [r4]
- ldr r2, _08136A38 @ =gPlayerParty
- str r2, [r3, 0xC]
- ldr r0, _08136A3C @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r5, _08136A40 @ =0x000087dc
- adds r0, r1, r5
- movs r5, 0
- ldrsh r0, [r0, r5]
- lsls r0, 2
- adds r1, r0
- ldr r0, _08136A44 @ =0x0000893e
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 27
- lsrs r0, 27
- movs r1, 0x64
- muls r0, r1
- adds r0, r2
- str r0, [r3, 0xC]
- bl move_anim_execute
- b _08136B02
- .align 2, 0
-_08136A38: .4byte gPlayerParty
-_08136A3C: .4byte gUnknown_083DFEC4
-_08136A40: .4byte 0x000087dc
-_08136A44: .4byte 0x0000893e
-_08136A48:
- ldr r0, _08136A58 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08136B32
- b _08136B02
- .align 2, 0
-_08136A58: .4byte gMain
-_08136A5C:
- bl sub_8136EF0
- ldr r6, _08136A98 @ =gUnknown_02039304
- ldr r0, [r6]
- adds r0, 0x5C
- ldr r1, _08136A9C @ =gUnknown_083DFEC4
- ldr r4, [r1]
- ldr r1, _08136AA0 @ =0x00009040
- adds r5, r4, r1
- adds r1, r5, 0
- bl sub_80F567C
- ldr r1, _08136AA4 @ =0x00008fe9
- adds r0, r4, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- ldr r1, _08136AA8 @ =0x00009004
- adds r0, r1
- adds r4, r0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80F5550
- bl sub_8137138
- ldr r1, [r6]
- b _08136B04
- .align 2, 0
-_08136A98: .4byte gUnknown_02039304
-_08136A9C: .4byte gUnknown_083DFEC4
-_08136AA0: .4byte 0x00009040
-_08136AA4: .4byte 0x00008fe9
-_08136AA8: .4byte 0x00009004
-_08136AAC:
- bl sub_80F555C
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08136B32
- ldr r0, _08136AE0 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r5, _08136AE4 @ =0x000087dc
- adds r0, r5
- ldrb r0, [r0]
- bl sub_81370A4
- lsls r0, 24
- lsrs r0, 24
- bl sub_80F7224
- bl sub_80F3D00
- ldr r1, _08136AE8 @ =gUnknown_02039304
- ldr r0, [r1]
- adds r0, 0x52
- strb r4, [r0]
- ldr r1, [r1]
- b _08136B04
- .align 2, 0
-_08136AE0: .4byte gUnknown_083DFEC4
-_08136AE4: .4byte 0x000087dc
-_08136AE8: .4byte gUnknown_02039304
-_08136AEC:
- ldr r1, [r4]
- adds r1, 0x52
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- bls _08136B32
- bl sub_8136C6C
-_08136B02:
- ldr r1, [r4]
-_08136B04:
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08136B32
-_08136B0E:
- ldr r0, _08136B38 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08136B32
- bl sub_8136D00
- lsls r0, 24
- cmp r0, 0
- bne _08136B32
- ldr r0, _08136B3C @ =gScriptItemId
- ldrb r0, [r0]
- bl sub_810CA6C
- ldr r0, _08136B40 @ =sub_8136B44
- bl launch_c3_walk_stairs_and_run_once
-_08136B32:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08136B38: .4byte gMain
-_08136B3C: .4byte gScriptItemId
-_08136B40: .4byte sub_8136B44
- thumb_func_end sub_81369CC
-
- thumb_func_start sub_8136B44
-sub_8136B44: @ 8136B44
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _08136B60 @ =gUnknown_02039304
- ldr r0, [r4]
- adds r2, r0, 0
- adds r2, 0x50
- ldrb r1, [r2]
- cmp r1, 0x1
- beq _08136B80
- cmp r1, 0x1
- bgt _08136B64
- cmp r1, 0
- beq _08136B6E
- b _08136BAE
- .align 2, 0
-_08136B60: .4byte gUnknown_02039304
-_08136B64:
- cmp r1, 0x2
- beq _08136B98
- cmp r1, 0x3
- beq _08136BA8
- b _08136BAE
-_08136B6E:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _08136B9C
-_08136B80:
- ldr r0, _08136B94 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08136BAE
- movs r0, 0x2
- strb r0, [r2]
- b _08136BAE
- .align 2, 0
-_08136B94: .4byte gPaletteFade
-_08136B98:
- bl sub_80F5BDC
-_08136B9C:
- ldr r1, [r4]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08136BAE
-_08136BA8:
- ldr r0, [r0, 0x4]
- bl SetMainCallback2
-_08136BAE:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8136B44
-
- thumb_func_start sub_8136BB8
-sub_8136BB8: @ 8136BB8
- push {r4,lr}
- ldr r0, _08136C28 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _08136C2C @ =0x000087dc
- adds r0, r1
- ldrb r0, [r0]
- bl sub_81370A4
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _08136C30 @ =gPlayerParty
- adds r0, r1
- ldr r4, _08136C34 @ =gUnknown_02039304
- ldr r2, [r4]
- adds r2, 0x10
- movs r1, 0x2
- bl GetMonData
- ldr r0, [r4]
- adds r0, 0x10
- bl StringGetEnd10
- ldr r0, [r4]
- adds r0, 0x10
- ldr r1, _08136C38 @ =gOtherText_GetsAPokeBlock
- bl StringAppend
- ldr r0, _08136C3C @ =gWindowConfig_81E709C
- bl BasicInitMenuWindow
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, [r4]
- adds r0, 0x10
- movs r1, 0x1
- movs r2, 0x11
- bl MenuPrint
- movs r0, 0x17
- movs r1, 0xA
- movs r2, 0x1
- bl DisplayYesNoMenu
- movs r0, 0
- bl MoveMenuCursor
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08136C28: .4byte gUnknown_083DFEC4
-_08136C2C: .4byte 0x000087dc
-_08136C30: .4byte gPlayerParty
-_08136C34: .4byte gUnknown_02039304
-_08136C38: .4byte gOtherText_GetsAPokeBlock
-_08136C3C: .4byte gWindowConfig_81E709C
- thumb_func_end sub_8136BB8
-
- thumb_func_start sub_8136C40
-sub_8136C40: @ 8136C40
- push {r4,lr}
- bl ProcessMenuInputNoWrap
- lsls r0, 24
- asrs r4, r0, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x2
- bhi _08136C60
- bl MenuZeroFillScreen
- ldr r0, _08136C68 @ =gWindowConfig_81E7080
- bl BasicInitMenuWindow
-_08136C60:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08136C68: .4byte gWindowConfig_81E7080
- thumb_func_end sub_8136C40
-
- thumb_func_start sub_8136C6C
-sub_8136C6C: @ 8136C6C
- push {lr}
- ldr r0, _08136C8C @ =gWindowConfig_81E709C
- bl BasicInitMenuWindow
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r3, _08136C90 @ =gUnknown_02039304
- ldr r0, [r3]
- adds r0, 0x53
- movs r1, 0
- b _08136C9C
- .align 2, 0
-_08136C8C: .4byte gWindowConfig_81E709C
-_08136C90: .4byte gUnknown_02039304
-_08136C94:
- ldr r0, [r3]
- adds r0, 0x53
- ldrb r1, [r0]
- adds r1, 0x1
-_08136C9C:
- strb r1, [r0]
- ldr r2, [r3]
- adds r1, r2, 0
- adds r1, 0x53
- ldrb r0, [r1]
- cmp r0, 0x4
- bhi _08136CDC
- adds r0, r2, 0
- adds r0, 0x61
- ldrb r1, [r1]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08136C94
- ldr r0, _08136CD8 @ =gUnknown_02039304
- ldr r2, [r0]
- adds r1, r2, 0
- adds r1, 0x53
- ldrb r0, [r1]
- cmp r0, 0x4
- bhi _08136CDC
- adds r0, r2, 0
- adds r0, 0x10
- ldrb r1, [r1]
- adds r2, 0x61
- adds r2, r1
- ldrb r2, [r2]
- bl sub_8136DC0
- b _08136CEE
- .align 2, 0
-_08136CD8: .4byte gUnknown_02039304
-_08136CDC:
- ldr r0, _08136CFC @ =gUnknown_02039304
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x10
- adds r1, 0x53
- ldrb r1, [r1]
- movs r2, 0
- bl sub_8136DC0
-_08136CEE:
- ldr r0, _08136CFC @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x10
- bl sub_8136DA0
- pop {r0}
- bx r0
- .align 2, 0
-_08136CFC: .4byte gUnknown_02039304
- thumb_func_end sub_8136C6C
-
- thumb_func_start sub_8136D00
-sub_8136D00: @ 8136D00
- push {r4,r5,lr}
- ldr r4, _08136D30 @ =gUnknown_02039304
- adds r3, r4, 0
- movs r5, 0x5
-_08136D08:
- ldr r0, [r3]
- adds r0, 0x53
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r2, [r3]
- adds r1, r2, 0
- adds r1, 0x53
- ldrb r0, [r1]
- cmp r0, 0x4
- bhi _08136D34
- adds r0, r2, 0
- adds r0, 0x61
- ldrb r1, [r1]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08136D3A
- b _08136D08
- .align 2, 0
-_08136D30: .4byte gUnknown_02039304
-_08136D34:
- strb r5, [r1]
- movs r0, 0
- b _08136D5A
-_08136D3A:
- ldr r2, [r4]
- adds r0, r2, 0
- adds r0, 0x10
- adds r1, r2, 0
- adds r1, 0x53
- ldrb r1, [r1]
- adds r2, 0x61
- adds r2, r1
- ldrb r2, [r2]
- bl sub_8136DC0
- ldr r0, [r4]
- adds r0, 0x10
- bl sub_8136DA0
- movs r0, 0x1
-_08136D5A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8136D00
-
- thumb_func_start sub_8136D60
-sub_8136D60: @ 8136D60
- push {lr}
- ldr r0, _08136D84 @ =gWindowConfig_81E709C
- bl BasicInitMenuWindow
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08136D88 @ =gOtherText_WontEat
- movs r1, 0x1
- movs r2, 0x11
- bl MenuPrint
- pop {r0}
- bx r0
- .align 2, 0
-_08136D84: .4byte gWindowConfig_81E709C
-_08136D88: .4byte gOtherText_WontEat
- thumb_func_end sub_8136D60
-
- thumb_func_start sub_8136D8C
-sub_8136D8C: @ 8136D8C
- push {lr}
- bl MenuZeroFillScreen
- ldr r0, _08136D9C @ =gWindowConfig_81E7080
- bl BasicInitMenuWindow
- pop {r0}
- bx r0
- .align 2, 0
-_08136D9C: .4byte gWindowConfig_81E7080
- thumb_func_end sub_8136D8C
-
- thumb_func_start sub_8136DA0
-sub_8136DA0: @ 8136DA0
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0x11
- bl MenuPrint
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8136DA0
-
- thumb_func_start sub_8136DC0
-sub_8136DC0: @ 8136DC0
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r3, r1, 24
- lsls r2, 16
- lsrs r0, r2, 16
- asrs r2, 16
- cmp r2, 0
- beq _08136DFC
- cmp r2, 0
- ble _08136DD8
- movs r0, 0
-_08136DD8:
- lsls r0, 16
- ldr r1, _08136DF4 @ =gUnknown_08406134
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl StringCopy
- ldr r1, _08136DF8 @ =gOtherText_WasEnhanced
- adds r0, r4, 0
- bl StringAppend
- b _08136E04
- .align 2, 0
-_08136DF4: .4byte gUnknown_08406134
-_08136DF8: .4byte gOtherText_WasEnhanced
-_08136DFC:
- ldr r1, _08136E0C @ =gOtherText_NothingChanged
- adds r0, r4, 0
- bl StringCopy
-_08136E04:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08136E0C: .4byte gOtherText_NothingChanged
- thumb_func_end sub_8136DC0
-
- thumb_func_start sub_8136E10
-sub_8136E10: @ 8136E10
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- movs r4, 0
- ldr r7, _08136E3C @ =gUnknown_08406118
-_08136E1A:
- lsls r0, r4, 2
- adds r0, r7
- ldr r1, [r0]
- adds r0, r6, 0
- bl GetMonData
- adds r1, r5, r4
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _08136E1A
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08136E3C: .4byte gUnknown_08406118
- thumb_func_end sub_8136E10
-
- thumb_func_start sub_8136E40
-sub_8136E40: @ 8136E40
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- mov r8, r0
- adds r5, r1, 0
- adds r0, r5, 0
- movs r1, 0x30
- bl GetMonData
- cmp r0, 0xFF
- beq _08136EDC
- mov r0, r8
- adds r1, r5, 0
- bl sub_8136F74
- movs r4, 0
- mov r7, sp
-_08136E64:
- ldr r1, _08136EE8 @ =gUnknown_08406118
- lsls r0, r4, 2
- adds r0, r1
- ldr r6, [r0]
- adds r0, r5, 0
- adds r1, r6, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- strb r0, [r7]
- ldr r1, _08136EEC @ =gUnknown_02039304
- ldr r1, [r1]
- lsls r2, r4, 1
- adds r1, 0x66
- adds r1, r2
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r0, 0
- bge _08136E92
- movs r1, 0
-_08136E92:
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _08136E9C
- movs r1, 0xFF
-_08136E9C:
- strb r1, [r7]
- adds r0, r5, 0
- adds r1, r6, 0
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _08136E64
- adds r0, r5, 0
- movs r1, 0x30
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- mov r2, r8
- ldrb r2, [r2, 0x6]
- adds r1, r0, r2
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _08136ECE
- movs r1, 0xFF
-_08136ECE:
- mov r0, sp
- strb r1, [r0]
- adds r0, r5, 0
- movs r1, 0x30
- mov r2, sp
- bl SetMonData
-_08136EDC:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08136EE8: .4byte gUnknown_08406118
-_08136EEC: .4byte gUnknown_02039304
- thumb_func_end sub_8136E40
-
- thumb_func_start sub_8136EF0
-sub_8136EF0: @ 8136EF0
- push {r4,r5,lr}
- ldr r5, _08136F60 @ =gPlayerParty
- ldr r0, _08136F64 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r2, _08136F68 @ =0x000087dc
- adds r0, r1, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- lsls r0, 2
- adds r1, r0
- ldr r0, _08136F6C @ =0x0000893e
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 27
- lsrs r0, 27
- movs r1, 0x64
- muls r0, r1
- adds r5, r0, r5
- ldr r4, _08136F70 @ =gUnknown_02039304
- ldr r1, [r4]
- adds r1, 0x57
- adds r0, r5, 0
- bl sub_8136E10
- ldr r0, [r4]
- ldr r0, [r0, 0x8]
- adds r1, r5, 0
- bl sub_8136E40
- ldr r1, [r4]
- adds r1, 0x5C
- adds r0, r5, 0
- bl sub_8136E10
- movs r3, 0
-_08136F36:
- ldr r0, [r4]
- adds r2, r0, 0
- adds r2, 0x61
- adds r2, r3
- adds r1, r0, 0
- adds r1, 0x5C
- adds r1, r3
- adds r0, 0x57
- adds r0, r3
- ldrb r1, [r1]
- ldrb r0, [r0]
- subs r1, r0
- strb r1, [r2]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x4
- bls _08136F36
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08136F60: .4byte gPlayerParty
-_08136F64: .4byte gUnknown_083DFEC4
-_08136F68: .4byte 0x000087dc
-_08136F6C: .4byte 0x0000893e
-_08136F70: .4byte gUnknown_02039304
- thumb_func_end sub_8136EF0
-
- thumb_func_start sub_8136F74
-sub_8136F74: @ 8136F74
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r1
- ldr r1, _08136FBC @ =gUnknown_02039304
- ldr r3, [r1]
- ldrb r1, [r0, 0x1]
- adds r2, r3, 0
- adds r2, 0x66
- strh r1, [r2]
- ldrb r2, [r0, 0x5]
- adds r1, r3, 0
- adds r1, 0x68
- strh r2, [r1]
- ldrb r1, [r0, 0x4]
- adds r2, r3, 0
- adds r2, 0x6A
- strh r1, [r2]
- ldrb r2, [r0, 0x3]
- adds r1, r3, 0
- adds r1, 0x6C
- strh r2, [r1]
- ldrb r1, [r0, 0x2]
- adds r0, r3, 0
- adds r0, 0x6E
- strh r1, [r0]
- ldr r0, _08136FC0 @ =gUnknown_02039312
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- ble _08136FC4
- movs r0, 0x1
- b _08136FCA
- .align 2, 0
-_08136FBC: .4byte gUnknown_02039304
-_08136FC0: .4byte gUnknown_02039312
-_08136FC4:
- cmp r0, 0
- bge _08137040
- movs r0, 0xFF
-_08136FCA:
- movs r2, 0
- lsls r0, 24
- mov r9, r0
- ldr r0, _08137050 @ =gUnknown_02039304
- mov r8, r0
-_08136FD4:
- mov r0, r8
- ldr r1, [r0]
- lsls r0, r2, 24
- asrs r6, r0, 24
- lsls r7, r6, 1
- adds r1, 0x66
- adds r1, r7
- movs r2, 0
- ldrsh r4, [r1, r2]
- adds r0, r4, 0
- movs r1, 0xA
- bl __divsi3
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- movs r1, 0xA
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _0813700C
- lsls r0, r5, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r5, r0, 24
-_0813700C:
- ldr r0, _08137054 @ =gUnknown_0840612C
- adds r0, r6, r0
- ldrb r1, [r0]
- mov r0, r10
- bl sub_8040A54
- lsls r0, 24
- asrs r2, r0, 24
- cmp r0, r9
- bne _08137034
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x66
- adds r0, r7
- lsls r1, r5, 24
- asrs r1, 24
- muls r1, r2
- ldrh r2, [r0]
- adds r1, r2
- strh r1, [r0]
-_08137034:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- asrs r0, 24
- cmp r0, 0x4
- ble _08136FD4
-_08137040:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08137050: .4byte gUnknown_02039304
-_08137054: .4byte gUnknown_0840612C
- thumb_func_end sub_8136F74
-
- thumb_func_start sub_8137058
-sub_8137058: @ 8137058
- push {lr}
- ldr r0, _0813708C @ =gPlayerParty
- ldr r1, _08137090 @ =gUnknown_083DFEC4
- ldr r2, [r1]
- ldr r3, _08137094 @ =0x000087dc
- adds r1, r2, r3
- movs r3, 0
- ldrsh r1, [r1, r3]
- lsls r1, 2
- adds r2, r1
- ldr r1, _08137098 @ =0x0000893e
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 27
- lsrs r1, 27
- movs r2, 0x64
- muls r1, r2
- adds r0, r1, r0
- movs r1, 0x30
- bl GetMonData
- cmp r0, 0xFF
- beq _0813709C
- movs r0, 0
- b _0813709E
- .align 2, 0
-_0813708C: .4byte gPlayerParty
-_08137090: .4byte gUnknown_083DFEC4
-_08137094: .4byte 0x000087dc
-_08137098: .4byte 0x0000893e
-_0813709C:
- movs r0, 0x1
-_0813709E:
- pop {r1}
- bx r1
- thumb_func_end sub_8137058
-
- thumb_func_start sub_81370A4
-sub_81370A4: @ 81370A4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
-_081370AC:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _081370C8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _081370D2
- cmp r5, 0
- bne _081370CC
- adds r0, r4, 0
- b _081370DE
- .align 2, 0
-_081370C8: .4byte gPlayerParty
-_081370CC:
- subs r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_081370D2:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _081370AC
- movs r0, 0
-_081370DE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81370A4
-
- thumb_func_start sub_81370E4
-sub_81370E4: @ 81370E4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- movs r6, 0
- cmp r6, r5
- bcs _08137114
-_081370F2:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _08137120 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _0813710A
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0813710A:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _081370F2
-_08137114:
- subs r0, r5, r6
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08137120: .4byte gPlayerParty
- thumb_func_end sub_81370E4
-
- thumb_func_start sub_8137124
-sub_8137124: @ 8137124
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_81370A4
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_8137124
-
- thumb_func_start sub_8137138
-sub_8137138: @ 8137138
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _081371C0 @ =gSpriteSheet_ConditionUpDown
- bl LoadSpriteSheet
- ldr r0, _081371C4 @ =gSpritePalette_ConditionUpDown
- bl LoadSpritePalette
- ldr r2, _081371C8 @ =gUnknown_02039304
- ldr r0, [r2]
- adds r0, 0x54
- movs r1, 0
- strb r1, [r0]
- movs r4, 0
- adds r5, r2, 0
- ldr r6, _081371CC @ =gUnknown_08406158
- adds r0, r6, 0x2
- mov r8, r0
- ldr r7, _081371D0 @ =gSprites + 0x1C
-_08137160:
- ldr r0, [r5]
- adds r0, 0x61
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _081371AC
- lsls r2, r4, 2
- adds r0, r2, r6
- movs r3, 0
- ldrsh r1, [r0, r3]
- add r2, r8
- movs r0, 0
- ldrsh r2, [r2, r0]
- ldr r0, _081371D4 @ =gSpriteTemplate_840618C
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _081371AC
- ldr r0, [r5]
- adds r0, 0x61
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _081371A2
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldr r1, _081371D8 @ =sub_81371DC
- str r1, [r0]
-_081371A2:
- ldr r1, [r5]
- adds r1, 0x54
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_081371AC:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _08137160
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081371C0: .4byte gSpriteSheet_ConditionUpDown
-_081371C4: .4byte gSpritePalette_ConditionUpDown
-_081371C8: .4byte gUnknown_02039304
-_081371CC: .4byte gUnknown_08406158
-_081371D0: .4byte gSprites + 0x1C
-_081371D4: .4byte gSpriteTemplate_840618C
-_081371D8: .4byte sub_81371DC
- thumb_func_end sub_8137138
-
- thumb_func_start sub_81371DC
-sub_81371DC: @ 81371DC
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0x5
- bgt _081371EE
- ldrh r0, [r1, 0x26]
- subs r0, 0x2
- b _081371F6
-_081371EE:
- cmp r0, 0xB
- bgt _081371F8
- ldrh r0, [r1, 0x26]
- adds r0, 0x2
-_081371F6:
- strh r0, [r1, 0x26]
-_081371F8:
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _08137218
- adds r0, r1, 0
- bl DestroySprite
- ldr r0, _0813721C @ =gUnknown_02039304
- ldr r1, [r0]
- adds r1, 0x54
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_08137218:
- pop {r0}
- bx r0
- .align 2, 0
-_0813721C: .4byte gUnknown_02039304
- thumb_func_end sub_81371DC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/data/use_pokeblock.s b/data/use_pokeblock.s
deleted file mode 100644
index 2eabe9ce3..000000000
--- a/data/use_pokeblock.s
+++ /dev/null
@@ -1,73 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-.ifndef GERMAN
- .align 2
-ConditionUpDownPalette:
- .incbin "graphics/misc/condition_up_down.gbapal"
-
- .align 2
-ConditionUpDownTiles:
- .incbin "graphics/misc/condition_up_down.4bpp"
-.endif
-
-gUnknown_08406118:: @ 8406118
- .4byte 22 @ MON_DATA_COOL
- .4byte 47 @ MON_DATA_TOUGH
- .4byte 33 @ MON_DATA_SMART
- .4byte 24 @ MON_DATA_CUTE
- .4byte 23 @ MON_DATA_BEAUTY
-
- .align 2
-gUnknown_0840612C:: @ 840612C
- obj_pal 0x02030400, 0x0001
-
- .align 2
-gUnknown_08406134:: @ 8406134
- .4byte OtherText_Coolness
- .4byte OtherText_Toughness
- .4byte OtherText_Smartness
- .4byte OtherText_Cuteness
- .4byte OtherText_Beauty
-
- .align 2
-gSpriteSheet_ConditionUpDown:: @ 8406148
- obj_tiles ConditionUpDownTiles, 0x200, 0
-
- .align 2
-gSpritePalette_ConditionUpDown:: @ 8406150
- obj_pal ConditionUpDownPalette, 0
-
-gUnknown_08406158:: @ 8406158
- .2byte 156, 30
- .2byte 117, 53
- .2byte 117, 112
- .2byte 197, 112
- .2byte 197, 53
-
- .align 2
-gOamData_840616C:: @ 840616C
- .2byte 0x4000
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_8406174:: @ 8406174
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840617C:: @ 840617C
- obj_image_anim_frame 8, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_8406184:: @ 8406184
- .4byte gSpriteAnim_8406174
- .4byte gSpriteAnim_840617C
-
- .align 2
-gSpriteTemplate_840618C:: @ 840618C
- spr_template 0, 0, gOamData_840616C, gSpriteAnimTable_8406184, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
diff --git a/include/main.h b/include/main.h
index e0cb09370..ff9bb89c7 100644
--- a/include/main.h
+++ b/include/main.h
@@ -46,8 +46,8 @@ struct Main
extern u8 gLinkTransferringData;
extern struct Main gMain;
extern bool8 gSoftResetDisabled;
-extern bool8 gLinkVSyncDisabled;
+extern bool8 gLinkVSyncDisabled;
extern const u8 gGameVersion;
extern const u8 gGameLanguage;
diff --git a/include/pokeblock_feed.h b/include/pokeblock_feed.h
new file mode 100644
index 000000000..65d0d1dc9
--- /dev/null
+++ b/include/pokeblock_feed.h
@@ -0,0 +1,10 @@
+//
+// Created by Scott Norton on 6/28/17.
+//
+
+#ifndef POKERUBY_POKEBLOCK_FEED_H
+#define POKERUBY_POKEBLOCK_FEED_H
+
+void sub_8147ADC(void);
+
+#endif //POKERUBY_POKEBLOCK_FEED_H
diff --git a/include/pokemon.h b/include/pokemon.h
index 2f8a57d38..c69fb87e0 100755
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -574,6 +574,7 @@ void sub_8040B8C(void);
void SetWildMonHeldItem(void);
u8 *sub_8040D08();
bool32 sub_8040D3C(u16 species, u8 *name, u8 language);
+s8 sub_8040A54(struct Pokemon *, u8);
u16 GetMonEVCount(struct Pokemon *);
#endif // GUARD_POKEMON_H
diff --git a/include/pokenav.h b/include/pokenav.h
index ccea77a57..70cc4135f 100644..100755
--- a/include/pokenav.h
+++ b/include/pokenav.h
@@ -6,14 +6,96 @@ struct UnkPokenavStruct_Sub {
/*0x2*/ u8 filler2[6];
};
+struct UnkPokenavStruct_Sub1 {
+ /*0x00*/ void (*unk0)(void);
+ /*0x04*/ MainCallback callback;
+ /*0x08*/ struct Pokeblock *pokeblock;
+ /*0x0C*/ struct Pokemon *pokemon;
+ /*0x10*/ u8 stringBuffer[0x40];
+ /*0x50*/ u8 unk50;
+ /*0x51*/ u8 unk51;
+ /*0x52*/ u8 unk52;
+ /*0x53*/ u8 unk53;
+ /*0x54*/ u8 unk54;
+ /*0x55*/ u8 unk55;
+ /*0x56*/ u8 unk56;
+ /*0x57*/ u8 unk57[5];
+ /*0x5c*/ u8 unk5c[5];
+ /*0x61*/ u8 unk61[5];
+ /*0x66*/ s16 unk66[5];
+};
+
+struct UnkPokenavStruct_Sub2 {
+ /*0x00*/ u8 filler_00[0x26];
+ /*0x26*/ u16 unk26;
+};
+
+struct UnkUsePokeblockSub {
+ /*0*/ u8 fil0[2];
+ /*2*/ u8 partyIdx:5;
+};
+
struct UnkPokenavStruct {
- /*0x0000*/ u8 filler0000[0xCEE8];
+ /*0x0000*/ u8 filler0000[0x30c];
+ /*0x0000*/ u16 unk030C;
+ /*0x0000*/ u8 filler030E[0x6a9e];
+ /*0x6DAC*/ u8 unk6DAC;
+ /*0x6DAD*/ u8 filler6DAD[0x8fd];
+ /*0x76AA*/ u8 unk76AA;
+ /*0x76AB*/ u8 filler76AB[0x10bd];
+ /*0x8768*/ struct UnkPokenavStruct_Sub2 *unk8768;
+ /*0x876C*/ u8 filler876C[0x6e];
+ /*0x87DA*/ s16 unk87DA;
+ /*0x87DC*/ s16 unk87DC;
+ /*0x87DE*/ s16 unk87DE;
+ /*0x87E0*/ void *unk87E0;
+ /*0x87E4*/ u8 filler87E4[0x44];
+ /*0x8828*/ u8 unk8828;
+ /*0x8829*/ u8 filler8829[0x113];
+ /*0x893C*/ struct UnkUsePokeblockSub unk893c[0x1ab];
+ /*0x8fe8*/ u8 fil8fe8[1];
+ /*0x8fe9*/ s8 unk8fe9;
+ /*0x8fea*/ u8 fil8fea[6];
+ /*0x8ff0*/ u8 unk8ff0;
+ /*0x8ff1*/ u8 filler8ff1[0x13];
+ /*0x9004*/ u8 unk9004[3][20];
+ /*0x9040*/ u8 unk9040[0x304];
+ /*0x9344*/ u8 unk9344;
+ /*0x9345*/ u8 filler9345[0x3ba3];
/*0xCEE8*/ struct UnkPokenavStruct_Sub unkCEE8[78];
/*0xD158*/ u16 unkD158;
+ /*0xD15A*/ u8 fillerD15A[6];
+ /*0xD162*/ u16 unkD160;
+ /*0xD162*/ u8 unkD162[2];
+ /*0xD164*/ struct UnkPokenavStruct_Sub1 unkD164;
};
-extern struct UnkPokenavStruct *gUnknown_083DFEC4;
+extern struct UnkPokenavStruct *const gUnknown_083DFEC4;
+bool8 sub_80F170C(void);
+bool8 sub_80F1778(void);
+void sub_80F1934(void);
+void sub_80F2C80(u8);
+void sub_80F2688(void);
+bool8 sub_80F26BC(void);
+bool8 sub_80F2CBC(u8);
+void sub_80F2E18(u8);
+void sub_80F33A8(void);
+void sub_80F3C94(void);
+void sub_80F3D00(void);
+void sub_80F4BD0(void);
+void sub_80F556C(void *);
+void sub_80F567C(void *, void *);
+void sub_80F5B38(void);
+bool8 sub_80F5B50(void);
+void sub_80F5CDC(u8);
void sub_80EBA5C(void);
+void sub_80F5060(bool8);
+void move_anim_execute(void);
+bool8 gpu_sync_bg_show(void);
+void sub_80F5550(void *, void *);
+bool8 sub_80F555C(void);
+void sub_80F7224(u8);
+void sub_80F5BDC(void);
#endif // GUARD_POKENAV_H
diff --git a/include/use_pokeblock.h b/include/use_pokeblock.h
index 41cf66665..978476d89 100644..100755
--- a/include/use_pokeblock.h
+++ b/include/use_pokeblock.h
@@ -1,10 +1,13 @@
//
-// Created by Scott Norton on 6/28/17.
+// Created by Scott Norton on 5/31/17.
//
#ifndef POKERUBY_USE_POKEBLOCK_H
#define POKERUBY_USE_POKEBLOCK_H
+extern void *gUnknown_02030400;
+extern s16 gUnknown_02039312;
+
void sub_8136130(struct Pokeblock *, MainCallback);
#endif //POKERUBY_USE_POKEBLOCK_H
diff --git a/ld_script.txt b/ld_script.txt
index 0d8e2a65f..a51f50947 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -254,7 +254,7 @@ SECTIONS {
src/decoration_inventory.o(.text);
src/roamer.o(.text);
asm/battle_tower.o(.text);
- asm/use_pokeblock.o(.text);
+ src/use_pokeblock.o(.text);
src/battle_anim_8137220.o(.text);
src/player_pc.o(.text);
src/intro.o(.text);
@@ -460,7 +460,7 @@ SECTIONS {
src/decoration_inventory.o(.rodata);
src/roamer.o(.rodata);
data/battle_tower.o(.rodata);
- data/use_pokeblock.o(.rodata);
+ src/use_pokeblock.o(.rodata);
data/battle_anim_8137220.o(.rodata);
src/player_pc.o(.rodata);
src/intro.o(.rodata);
diff --git a/src/pokenav.c b/src/pokenav.c
index 3a386d865..84ed7b14b 100644
--- a/src/pokenav.c
+++ b/src/pokenav.c
@@ -1,4 +1,5 @@
#include "global.h"
+#include "main.h"
#include "pokenav.h"
#include "battle.h"
#include "data2.h"
diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c
new file mode 100755
index 000000000..ce83bc1c2
--- /dev/null
+++ b/src/use_pokeblock.c
@@ -0,0 +1,964 @@
+//
+// Created by Scott Norton on 5/31/17.
+//
+
+#include "global.h"
+#include "main.h"
+#include "rom4.h"
+#include "string_util.h"
+#include "strings.h"
+#include "sprite.h"
+#include "pokemon.h"
+#include "pokenav.h"
+#include "palette.h"
+#include "text.h"
+#include "menu.h"
+#include "sound.h"
+#include "songs.h"
+#include "pokeblock.h"
+#include "pokeblock_feed.h"
+#include "use_pokeblock.h"
+
+#define GFX_TAG_CONDITIONUPDOWN 0
+
+#ifdef GERMAN
+extern const u16 ConditionUpDownPalette[16];
+extern const u32 ConditionUpDownTiles[0x80];
+#else
+const u16 ConditionUpDownPalette[] = INCBIN_U16("graphics/misc/condition_up_down.gbapal");
+const u32 ConditionUpDownTiles[] = INCBIN_U32("graphics/misc/condition_up_down.4bpp");
+#endif
+
+const u32 gUnknown_08406118[] = {
+ MON_DATA_COOL,
+ MON_DATA_TOUGH,
+ MON_DATA_SMART,
+ MON_DATA_CUTE,
+ MON_DATA_BEAUTY
+};
+
+const u8 gUnknown_0840612C[] = {
+ 0, 4, 3, 2, 1
+};
+
+const u8 *const gUnknown_08406134[] = {
+ OtherText_Coolness,
+ OtherText_Toughness,
+ OtherText_Smartness,
+ OtherText_Cuteness,
+ OtherText_Beauty
+};
+
+const struct SpriteSheet gSpriteSheet_ConditionUpDown = {
+ (u8 *)ConditionUpDownTiles,
+ sizeof ConditionUpDownTiles,
+ GFX_TAG_CONDITIONUPDOWN
+};
+
+const struct SpritePalette gSpritePalette_ConditionUpDown = {
+ ConditionUpDownPalette,
+ GFX_TAG_CONDITIONUPDOWN
+};
+
+const s16 gUnknown_08406158[][2] = {
+ {0x9c, 0x1e},
+ {0x75, 0x35},
+ {0x75, 0x70},
+ {0xc5, 0x70},
+ {0xc5, 0x35}
+};
+
+const struct OamData gOamData_840616C = {
+ .shape = 1,
+ .size = 2,
+ .priority = 1
+};
+
+const union AnimCmd gSpriteAnim_8406174[] = {
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END
+};
+
+const union AnimCmd gSpriteAnim_840617C[] = {
+ ANIMCMD_FRAME(8, 5),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gSpriteAnimTable_8406184[] = {
+ gSpriteAnim_8406174,
+ gSpriteAnim_840617C
+};
+
+const struct SpriteTemplate gSpriteTemplate_840618C = {
+ GFX_TAG_CONDITIONUPDOWN,
+ GFX_TAG_CONDITIONUPDOWN,
+ &gOamData_840616C,
+ gSpriteAnimTable_8406184,
+ NULL,
+ gDummySpriteAffineAnimTable,
+ SpriteCallbackDummy
+};
+
+asm(".text\n"
+ ".include \"constants/gba_constants.inc\"");
+
+extern struct UnkPokenavStruct_Sub1 *gUnknown_02039304;
+extern MainCallback gUnknown_02039308;
+extern struct Pokeblock *gUnknown_0203930C;
+extern u8 gUnknown_02039310;
+
+extern u16 gKeyRepeatStartDelay;
+extern u16 gScriptItemId; // FIXME: remove after merge of #349 Pokeblock
+
+void launch_c3_walk_stairs_and_run_once(void (*const)(void));
+void sub_81361E4(void);
+void sub_813622C(void);
+void sub_8136244(void);
+void sub_8136264(void);
+void sub_8136294(void);
+void sub_81365A0(void);
+void sub_81365C8(void);
+void sub_8136638(void);
+void sub_81368A4(void);
+void sub_8089668(void);
+void sub_8136B44(void);
+u8 sub_81370E4(u8);
+void sub_8136BB8(void);
+s8 sub_8136C40(void);
+bool8 sub_8137058(void);
+void sub_8136D60(void);
+void sub_8136808(void);
+void sub_8136D8C(void);
+u8 sub_81370A4(u8);
+void sub_81369CC(void);
+void sub_8136EF0(void);
+void sub_8137138(void);
+void sub_8136C6C(void);
+bool8 sub_8136D00(void);
+void sub_8136DC0(u8 *, u8, s16);
+void sub_8136DA0(const u8 *);
+void sub_8136F74(struct Pokeblock *, struct Pokemon *);
+void sub_81371DC(struct Sprite *);
+
+void sub_8136130(struct Pokeblock *pokeblock, MainCallback callback)
+{
+ gUnknown_02039304 = &gUnknown_083DFEC4->unkD164;
+ gUnknown_02039304->pokeblock = pokeblock;
+ gUnknown_02039304->callback = callback;
+ gUnknown_083DFEC4->unkD162[0] = 2;
+ launch_c3_walk_stairs_and_run_once(sub_8136294);
+ SetMainCallback2(sub_8136244);
+}
+
+void sub_8136174(void)
+{
+ gUnknown_02039304->pokeblock = gUnknown_0203930C;
+ gUnknown_02039304->callback = gUnknown_02039308;
+ gUnknown_02039310 = sub_81370E4(gUnknown_02039310);
+ gUnknown_02039304->unk56 = gUnknown_02039310 < 4 ? 0 : 1;
+ gUnknown_083DFEC4->unkD162[0] = 2;
+ launch_c3_walk_stairs_and_run_once(sub_8136294);
+ SetMainCallback2(sub_81361E4);
+}
+
+void sub_81361E4(void)
+{
+ gUnknown_02039304->unk0();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+ if (gUnknown_02039304->unk0 == sub_81365C8)
+ {
+ REG_DISPCNT = 0;
+ gUnknown_02039304->unk50 = 0;
+ SetMainCallback2(sub_813622C);
+ }
+}
+
+void sub_813622C(void)
+{
+ sub_81368A4();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+}
+
+void sub_8136244(void)
+{
+ gUnknown_02039304->unk0();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+}
+
+void sub_8136264(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+ sub_80F5CDC(6);
+ sub_8089668();
+}
+
+void launch_c3_walk_stairs_and_run_once(void (*const func)(void))
+{
+ gUnknown_02039304->unk0 = func;
+ gUnknown_02039304->unk50 = 0;
+}
+
+void sub_8136294(void)
+{
+ bool32 c1LinkRelatedActive;
+ switch (gUnknown_02039304->unk50)
+ {
+ case 0:
+ c1LinkRelatedActive = is_c1_link_related_active();
+ gUnknown_083DFEC4->unk6DAC = c1LinkRelatedActive;
+ if ((bool8)c1LinkRelatedActive == FALSE)
+ {
+ gUnknown_02039304->unk55 = 0;
+ launch_c3_walk_stairs_and_run_once(sub_81365A0);
+ gUnknown_02039304->unk50++;
+ }
+ break;
+ case 1:
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ gUnknown_02039304->unk50++;
+ break;
+ case 2:
+ SetVBlankCallback(NULL);
+ gUnknown_02039304->unk50++;
+ break;
+ case 3:
+ SetUpWindowConfig(&gWindowConfig_81E7080);
+ gUnknown_02039304->unk50++;
+ break;
+ case 4:
+ MultistepInitMenuWindowBegin(&gWindowConfig_81E7080);
+ gUnknown_02039304->unk50++;
+ break;
+ case 5:
+ if (MultistepInitMenuWindowContinue())
+ {
+ gUnknown_02039304->unk50++;
+ }
+ break;
+ case 6:
+ gUnknown_083DFEC4->unk76AA = 0;
+ gUnknown_083DFEC4->unk87E0 = NULL;
+ gUnknown_083DFEC4->unk030C = 0x20;
+ gUnknown_02039304->unk50++;
+ break;
+ case 7:
+ sub_80F2688();
+ gUnknown_02039304->unk50++;
+ // fallthrough
+ case 8:
+ if (!sub_80F26BC())
+ {
+ gUnknown_02039304->unk50++;
+ }
+ break;
+ case 9:
+ sub_80F2C80(1);
+ gUnknown_02039304->unk50++;
+ // fallthrough
+ case 10:
+ if (!sub_80F2CBC(1))
+ {
+ gUnknown_02039304->unk50++;
+ }
+ break;
+ case 11:
+ gKeyRepeatStartDelay = 20;
+ gUnknown_083DFEC4->unk8828 = CalculatePlayerPartyCount();
+ gUnknown_083DFEC4->unk9344 = 0;
+ gUnknown_083DFEC4->unk8768 = NULL;
+ sub_80F4BD0();
+ gUnknown_083DFEC4->unkD160 = 0;
+ gUnknown_02039304->unk50++;
+ break;
+ case 12:
+ if (!sub_80F1778())
+ {
+ REG_BG2VOFS = 6;
+ REG_BG3VOFS = 6;
+ gUnknown_02039304->unk50++;
+ }
+ break;
+ case 13:
+ sub_80F2E18(0);
+ gUnknown_083DFEC4->unk8768->unk26 = 0xffd8;
+ gUnknown_02039304->unk50++;
+ break;
+ case 14:
+ if (!sub_80F170C())
+ {
+ gUnknown_02039304->unk50++;
+ }
+ break;
+ case 15:
+ sub_80F33A8();
+ gUnknown_02039304->unk50++;
+ break;
+ case 16:
+ DmaClear32(3, BG_SCREEN_ADDR(31), 0x800);
+ REG_BG1VOFS = 0;
+ REG_BG1HOFS = 0;
+ REG_BG1CNT = BGCNT_SCREENBASE(31);
+ gUnknown_02039304->unk50++;
+ break;
+ case 17:
+ sub_80F567C(&gUnknown_083DFEC4->unk8ff0, gUnknown_083DFEC4->unk9004);
+ sub_80F5B38();
+ gUnknown_02039304->unk50++;
+ break;
+ case 18:
+ if (!sub_80F5B50())
+ {
+ gUnknown_02039304->unk50++;
+ }
+ break;
+ case 19:
+ sub_80F556C(gUnknown_083DFEC4->unk9004);
+ gUnknown_02039304->unk50++;
+ break;
+ case 20:
+ sub_80F1934();
+ gUnknown_02039304->unk50++;
+ break;
+ case 21:
+ REG_WIN0H = 0xf0;
+ REG_WIN1H = 0x9b;
+ REG_WIN0V = 0x3273;
+ REG_WIN1V = 0x3273;
+ REG_WININ = 0x3f3f;
+ REG_WINOUT = 0x1b;
+ REG_BG0VOFS = 0x28;
+ REG_DISPCNT = DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON | DISPCNT_WIN1_ON;
+ // fallthrough
+ case 22:
+ gUnknown_02039304->unk55 = 1;
+ launch_c3_walk_stairs_and_run_once(sub_81365C8);
+ break;
+ }
+}
+
+void sub_81365A0(void)
+{
+ while (!gUnknown_02039304->unk55)
+ {
+ sub_8136294();
+ }
+}
+
+void sub_81365C8(void)
+{
+ switch (gUnknown_02039304->unk50)
+ {
+ case 0:
+ BeginNormalPaletteFade(-1, 0, 16, 0, 0);
+ SetVBlankCallback(sub_8136264);
+ gUnknown_02039304->unk50++;
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ {
+ sub_80F3C94();
+ sub_80F3D00();
+ launch_c3_walk_stairs_and_run_once(sub_8136638);
+ }
+ break;
+ }
+}
+
+void sub_8136638(void)
+{
+ switch (gUnknown_02039304->unk50)
+ {
+ case 0:
+ if (gMain.heldKeys & DPAD_UP)
+ {
+ PlaySE(SE_SELECT);
+ sub_80F5060(TRUE);
+ move_anim_execute();
+ gUnknown_02039304->unk50 = 1;
+ }
+ else if (gMain.heldKeys & DPAD_DOWN)
+ {
+ PlaySE(SE_SELECT);
+ sub_80F5060(FALSE);
+ move_anim_execute();
+ gUnknown_02039304->unk50 = 1;
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ gUnknown_02039304->unk50 = 3;
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ if (gUnknown_083DFEC4->unk87DC == gUnknown_083DFEC4->unk87DA - 1)
+ {
+ gUnknown_02039304->unk50 = 3;
+ }
+ else
+ {
+ gUnknown_02039304->unk50 = 5;
+ }
+ }
+ break;
+ case 1:
+ if (!gpu_sync_bg_show())
+ {
+ gUnknown_02039304->unk50++;
+ }
+ break;
+ case 2:
+ if (!sub_8055870())
+ {
+ sub_80F1934();
+ sub_80F3D00();
+ gUnknown_02039304->unk50 = 0;
+ }
+ break;
+ case 3:
+ launch_c3_walk_stairs_and_run_once(sub_8136B44);
+ break;
+ case 4:
+ break;
+ case 5:
+ sub_8136BB8();
+ gUnknown_02039304->unk50++;
+ break;
+ case 6:
+ switch (sub_8136C40())
+ {
+ case 1:
+ case -1:
+ gUnknown_02039304->unk50 = 0;
+ break;
+ case 0:
+ if (sub_8137058())
+ {
+ sub_8136D60();
+ gUnknown_02039304->unk50 = 7;
+ }
+ else
+ {
+ launch_c3_walk_stairs_and_run_once(sub_8136808);
+ }
+ break;
+ }
+ break;
+ case 7:
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ sub_8136D8C();
+ gUnknown_02039304->unk50 = 0;
+ }
+ break;
+ }
+}
+
+void sub_8136808(void)
+{
+ switch (gUnknown_02039304->unk50)
+ {
+ case 0:
+ gUnknown_02039310 = sub_81370A4(gUnknown_083DFEC4->unk87DC);
+ gUnknown_02039308 = gUnknown_02039304->callback;
+ gUnknown_0203930C = gUnknown_02039304->pokeblock;
+ BeginNormalPaletteFade(-1, 0, 0, 16, 0);
+ gUnknown_02039304->unk50++;
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ {
+ gMain.savedCallback = sub_8136174;
+ SetMainCallback2(sub_8147ADC);
+ }
+ break;
+ }
+}
+
+void sub_81368A4(void)
+{
+ switch (gUnknown_02039304->unk50)
+ {
+ case 0:
+ if (gUnknown_083DFEC4->unk87DC != gUnknown_02039310)
+ {
+ sub_80F5060(gUnknown_02039304->unk56);
+ gUnknown_02039304->unk50++;
+ }
+ else
+ {
+ gUnknown_02039304->unk50 = 3;
+ }
+ break;
+ case 1:
+ if (!gpu_sync_bg_show())
+ {
+ gUnknown_02039304->unk50++;
+ }
+ break;
+ case 2:
+ if (!sub_8055870())
+ {
+ sub_80F1934();
+ gUnknown_02039304->unk50 = 0;
+ }
+ break;
+ case 3:
+ BlendPalettes(-1, 16, 0);
+ gUnknown_02039304->unk50++;
+ break;
+ case 4:
+ REG_DISPCNT = DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON | DISPCNT_WIN1_ON;
+ gUnknown_02039304->unk50++;
+ break;
+ case 5:
+ SetVBlankCallback(sub_8136264);
+ BeginNormalPaletteFade(-1, 0, 16, 0, 0);
+ gUnknown_02039304->unk50++;
+ break;
+ case 6:
+ if (!gPaletteFade.active)
+ {
+ sub_80F3C94();
+ sub_80F3D00();
+ launch_c3_walk_stairs_and_run_once(sub_81369CC);
+ SetMainCallback2(sub_8136244);
+ }
+ break;
+ }
+}
+
+void sub_81369CC(void)
+{
+ switch (gUnknown_02039304->unk50)
+ {
+ case 0:
+ gUnknown_02039304->pokemon = &gPlayerParty[0];
+ gUnknown_02039304->pokemon = &gPlayerParty[gUnknown_083DFEC4->unk893c[gUnknown_083DFEC4->unk87DC].partyIdx];
+ move_anim_execute();
+ gUnknown_02039304->unk50++;
+ break;
+ case 1:
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ gUnknown_02039304->unk50++;
+ break;
+ case 2:
+ sub_8136EF0();
+ sub_80F567C(gUnknown_02039304->unk5c, gUnknown_083DFEC4->unk9040);
+ sub_80F5550(gUnknown_083DFEC4->unk9004[gUnknown_083DFEC4->unk8fe9], gUnknown_083DFEC4->unk9040);
+ sub_8137138();
+ gUnknown_02039304->unk50++;
+ break;
+ case 3:
+ if (!sub_80F555C())
+ {
+ sub_80F7224(sub_81370A4(gUnknown_083DFEC4->unk87DC));
+ sub_80F3D00();
+ gUnknown_02039304->unk52 = 0;
+ gUnknown_02039304->unk50++;
+ }
+ break;
+ case 4:
+ if ((++gUnknown_02039304->unk52) > 16)
+ {
+ sub_8136C6C();
+ gUnknown_02039304->unk50++;
+ }
+ break;
+ case 5:
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON) && !sub_8136D00())
+ {
+ sub_810CA6C((u8)gScriptItemId);
+ launch_c3_walk_stairs_and_run_once(sub_8136B44);
+ }
+ break;
+ }
+}
+
+void sub_8136B44(void)
+{
+ switch (gUnknown_02039304->unk50)
+ {
+ case 0:
+ BeginNormalPaletteFade(-1, 0, 0, 16, 0);
+ gUnknown_02039304->unk50++;
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ {
+ gUnknown_02039304->unk50 = 2;
+ }
+ break;
+ case 2:
+ sub_80F5BDC();
+ gUnknown_02039304->unk50++;
+ break;
+ case 3:
+ SetMainCallback2(gUnknown_02039304->callback);
+ break;
+ }
+}
+
+void sub_8136BB8(void)
+{
+ GetMonData(&gPlayerParty[sub_81370A4(gUnknown_083DFEC4->unk87DC)], MON_DATA_NICKNAME, gUnknown_02039304->stringBuffer);
+ StringGetEnd10(gUnknown_02039304->stringBuffer);
+ StringAppend(gUnknown_02039304->stringBuffer, gOtherText_GetsAPokeBlock);
+ BasicInitMenuWindow(&gWindowConfig_81E709C);
+ MenuDrawTextWindow(0, 16, 29, 19);
+ MenuPrint(gUnknown_02039304->stringBuffer, 1, 17);
+ DisplayYesNoMenu(23, 10, 1);
+ MoveMenuCursor(0);
+}
+
+s8 sub_8136C40(void)
+{
+ s8 retval = ProcessMenuInputNoWrap();
+ if ((u8)(retval + 1) < 3)
+ {
+ MenuZeroFillScreen();
+ BasicInitMenuWindow(&gWindowConfig_81E7080);
+ }
+ return retval;
+}
+
+void sub_8136C6C(void)
+{
+ BasicInitMenuWindow(&gWindowConfig_81E709C);
+ MenuDrawTextWindow(0, 16, 29, 19);
+ for (gUnknown_02039304->unk53 = 0; gUnknown_02039304->unk53 < 5 && gUnknown_02039304->unk61[gUnknown_02039304->unk53] == 0; gUnknown_02039304->unk53++);
+ if (gUnknown_02039304->unk53 < 5)
+ {
+ sub_8136DC0(gUnknown_02039304->stringBuffer, gUnknown_02039304->unk53, gUnknown_02039304->unk61[gUnknown_02039304->unk53]);
+ }
+ else
+ {
+ sub_8136DC0(gUnknown_02039304->stringBuffer, gUnknown_02039304->unk53, 0);
+ }
+ sub_8136DA0(gUnknown_02039304->stringBuffer);
+}
+
+#ifdef NONMATCHING
+bool8 sub_8136D00(void)
+{
+ while (1)
+ {
+ if (++gUnknown_02039304->unk53 >= 5)
+ {
+ break;
+ }
+ if (gUnknown_02039304->unk61[gUnknown_02039304->unk53] != 0)
+ {
+ sub_8136DC0(gUnknown_02039304->stringBuffer, gUnknown_02039304->unk53, gUnknown_02039304->unk61[gUnknown_02039304->unk53]);
+ sub_8136DA0(gUnknown_02039304->stringBuffer);
+ return TRUE;
+ }
+ }
+ gUnknown_02039304->unk53 = 5;
+ return FALSE;
+}
+#else
+__attribute__((naked))
+bool8 sub_8136D00(void)
+{
+ asm_unified("\tpush {r4,r5,lr}\n"
+ "\tldr r4, _08136D30 @ =gUnknown_02039304\n"
+ "\tadds r3, r4, 0\n"
+ "\tmovs r5, 0x5\n"
+ "_08136D08:\n"
+ "\tldr r0, [r3]\n"
+ "\tadds r0, 0x53\n"
+ "\tldrb r1, [r0]\n"
+ "\tadds r1, 0x1\n"
+ "\tstrb r1, [r0]\n"
+ "\tldr r2, [r3]\n"
+ "\tadds r1, r2, 0\n"
+ "\tadds r1, 0x53\n"
+ "\tldrb r0, [r1]\n"
+ "\tcmp r0, 0x4\n"
+ "\tbhi _08136D34\n"
+ "\tadds r0, r2, 0\n"
+ "\tadds r0, 0x61\n"
+ "\tldrb r1, [r1]\n"
+ "\tadds r0, r1\n"
+ "\tldrb r0, [r0]\n"
+ "\tcmp r0, 0\n"
+ "\tbne _08136D3A\n"
+ "\tb _08136D08\n"
+ "\t.align 2, 0\n"
+ "_08136D30: .4byte gUnknown_02039304\n"
+ "_08136D34:\n"
+ "\tstrb r5, [r1]\n"
+ "\tmovs r0, 0\n"
+ "\tb _08136D5A\n"
+ "_08136D3A:\n"
+ "\tldr r2, [r4]\n"
+ "\tadds r0, r2, 0\n"
+ "\tadds r0, 0x10\n"
+ "\tadds r1, r2, 0\n"
+ "\tadds r1, 0x53\n"
+ "\tldrb r1, [r1]\n"
+ "\tadds r2, 0x61\n"
+ "\tadds r2, r1\n"
+ "\tldrb r2, [r2]\n"
+ "\tbl sub_8136DC0\n"
+ "\tldr r0, [r4]\n"
+ "\tadds r0, 0x10\n"
+ "\tbl sub_8136DA0\n"
+ "\tmovs r0, 0x1\n"
+ "_08136D5A:\n"
+ "\tpop {r4,r5}\n"
+ "\tpop {r1}\n"
+ "\tbx r1");
+}
+#endif
+
+void sub_8136D60(void)
+{
+ BasicInitMenuWindow(&gWindowConfig_81E709C);
+ MenuDrawTextWindow(0, 16, 29, 19);
+ MenuPrint(gOtherText_WontEat, 1, 17);
+}
+
+void sub_8136D8C(void)
+{
+ MenuZeroFillScreen();
+ BasicInitMenuWindow(&gWindowConfig_81E7080);
+}
+
+void sub_8136DA0(const u8 *message)
+{
+ MenuDrawTextWindow(0, 16, 29, 19);
+ MenuPrint(message, 1, 17);
+}
+
+#ifdef NONMATCHING
+void sub_8136DC0(u8 *dest, u8 a1, s16 a2)
+{
+ u16 v0 = a2;
+ if (a2 != 0)
+ {
+ if ((v0 = max(a2, 0)) == 0);
+ StringCopy(dest, gUnknown_08406134[a1]);
+ StringAppend(dest, gOtherText_WasEnhanced);
+ }
+ else
+ {
+ StringCopy(dest, gOtherText_NothingChanged);
+ }
+}
+#else
+__attribute__((naked))
+void sub_8136DC0(u8 *dest, u8 a1, s16 a2)
+{
+ asm_unified("\tpush {r4,lr}\n"
+ "\tadds r4, r0, 0\n"
+ "\tlsls r1, 24\n"
+ "\tlsrs r3, r1, 24\n"
+ "\tlsls r2, 16\n"
+ "\tlsrs r0, r2, 16\n"
+ "\tasrs r2, 16\n"
+ "\tcmp r2, 0\n"
+ "\tbeq _08136DFC\n"
+ "\tcmp r2, 0\n"
+ "\tble _08136DD8\n"
+ "\tmovs r0, 0\n"
+ "_08136DD8:\n"
+ "\tlsls r0, 16\n"
+ "\tldr r1, _08136DF4 @ =gUnknown_08406134\n"
+ "\tlsls r0, r3, 2\n"
+ "\tadds r0, r1\n"
+ "\tldr r1, [r0]\n"
+ "\tadds r0, r4, 0\n"
+ "\tbl StringCopy\n"
+ "\tldr r1, _08136DF8 @ =gOtherText_WasEnhanced\n"
+ "\tadds r0, r4, 0\n"
+ "\tbl StringAppend\n"
+ "\tb _08136E04\n"
+ "\t.align 2, 0\n"
+ "_08136DF4: .4byte gUnknown_08406134\n"
+ "_08136DF8: .4byte gOtherText_WasEnhanced\n"
+ "_08136DFC:\n"
+ "\tldr r1, _08136E0C @ =gOtherText_NothingChanged\n"
+ "\tadds r0, r4, 0\n"
+ "\tbl StringCopy\n"
+ "_08136E04:\n"
+ "\tpop {r4}\n"
+ "\tpop {r0}\n"
+ "\tbx r0\n"
+ "\t.align 2, 0\n"
+ "_08136E0C: .4byte gOtherText_NothingChanged");
+}
+#endif
+
+void sub_8136E10(struct Pokemon *pokemon, u8 *data)
+{
+ u16 i;
+ for (i=0; i<5; i++)
+ {
+ data[i] = GetMonData(pokemon, gUnknown_08406118[i]);
+ }
+}
+
+void sub_8136E40(struct Pokeblock *pokeblock, struct Pokemon *pokemon)
+{
+ u16 i;
+ s16 cstat;
+ u8 data;
+ if (GetMonData(pokemon, MON_DATA_SHEEN) != 255)
+ {
+ sub_8136F74(pokeblock, pokemon);
+ for (i=0; i<5; i++)
+ {
+ data = GetMonData(pokemon, gUnknown_08406118[i]);
+ cstat = data + gUnknown_02039304->unk66[i];
+ if (cstat < 0)
+ cstat = 0;
+ if (cstat > 255)
+ cstat = 255;
+ data = cstat;
+ SetMonData(pokemon, gUnknown_08406118[i], &data);
+ }
+ cstat = (u8)GetMonData(pokemon, MON_DATA_SHEEN);
+ cstat = cstat + pokeblock->feel;
+ if (cstat > 255)
+ cstat = 255;
+ data = cstat;
+ SetMonData(pokemon, MON_DATA_SHEEN, &data);
+ }
+}
+
+void sub_8136EF0(void)
+{
+ u16 i;
+ struct Pokemon *pokemon = gPlayerParty;
+ pokemon += gUnknown_083DFEC4->unk893c[gUnknown_083DFEC4->unk87DC].partyIdx;
+ sub_8136E10(pokemon, gUnknown_02039304->unk57);
+ sub_8136E40(gUnknown_02039304->pokeblock, pokemon);
+ sub_8136E10(pokemon, gUnknown_02039304->unk5c);
+ for (i=0; i<5; i++)
+ {
+ gUnknown_02039304->unk61[i] = gUnknown_02039304->unk5c[i] - gUnknown_02039304->unk57[i];
+ }
+}
+
+void sub_8136F74(struct Pokeblock *pokeblock, struct Pokemon *pokemon)
+{
+ s8 direction;
+ s8 i;
+ s16 amount;
+ s8 boost;
+ s8 taste;
+ gUnknown_02039304->unk66[0] = pokeblock->spicy;
+ gUnknown_02039304->unk66[1] = pokeblock->sour;
+ gUnknown_02039304->unk66[2] = pokeblock->bitter;
+ gUnknown_02039304->unk66[3] = pokeblock->sweet;
+ gUnknown_02039304->unk66[4] = pokeblock->dry;
+ if (gUnknown_02039312 > 0)
+ direction = 1;
+ else if (gUnknown_02039312 < 0)
+ direction = -1;
+ else
+ return;
+ for (i=0; i<5; i++)
+ {
+ amount = gUnknown_02039304->unk66[i];
+ boost = amount / 10;
+ if (amount % 10 >= 5) // round to the nearest
+ boost++;
+ taste = sub_8040A54(pokemon, gUnknown_0840612C[i]);
+ if (taste == direction)
+ {
+ gUnknown_02039304->unk66[i] += boost * taste;
+ }
+ }
+}
+
+bool8 sub_8137058(void)
+{
+ struct Pokemon *pokemon = gPlayerParty;
+ pokemon += gUnknown_083DFEC4->unk893c[gUnknown_083DFEC4->unk87DC].partyIdx;
+ if (GetMonData(pokemon, MON_DATA_SHEEN) == 255)
+ return TRUE;
+ return FALSE;
+}
+
+u8 sub_81370A4(u8 a0)
+{
+ u8 i;
+ for (i=0; i<PARTY_SIZE; i++)
+ {
+ if (!GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG))
+ {
+ if (a0 == 0)
+ return i;
+ a0--;
+ }
+ }
+ return 0;
+}
+
+u8 sub_81370E4(u8 a0)
+{
+ u8 ct;
+ u8 i;
+ for (i=0, ct=0; i<a0; i++)
+ {
+ if (GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG))
+ {
+ ct++;
+ }
+ }
+ return a0 - ct;
+}
+
+u8 sub_8137124(u8 a0)
+{
+ return sub_81370A4(a0);
+}
+
+void sub_8137138(void)
+{
+ u16 flavor;
+ u8 spriteidx;
+ LoadSpriteSheet(&gSpriteSheet_ConditionUpDown);
+ LoadSpritePalette(&gSpritePalette_ConditionUpDown);
+ gUnknown_02039304->unk54 = 0;
+ for (flavor=0; flavor<5; flavor++)
+ {
+ if (gUnknown_02039304->unk61[flavor] != 0)
+ {
+ spriteidx = CreateSprite(&gSpriteTemplate_840618C, gUnknown_08406158[flavor][0], gUnknown_08406158[flavor][1], 0);
+ if (spriteidx != MAX_SPRITES)
+ {
+ if (gUnknown_02039304->unk61[flavor] != 0)
+ {
+ gSprites[spriteidx].callback = sub_81371DC;
+ }
+ gUnknown_02039304->unk54++;
+ }
+ }
+ }
+}
+
+void sub_81371DC(struct Sprite *sprite)
+{
+ if (sprite->data0 <= 5)
+ sprite->pos2.y -= 2;
+ else if (sprite->data0 <= 11)
+ sprite->pos2.y += 2;
+ if ((++sprite->data0) > 60)
+ {
+ DestroySprite(sprite);
+ gUnknown_02039304->unk54--;
+ }
+}
diff --git a/sym_ewram.txt b/sym_ewram.txt
index f855ea4a4..ecb18decb 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -539,7 +539,10 @@ gTrainerCards: @ 202FFC0
.space 0xE0
gPokemonStorage: @ 20300A0
- .space 0x83D0
+ .space 0x360
+
+gUnknown_02030400: @ 02030400
+ .space 0x8070
gUnknown_02038470: @ 2038470
.space 0x3