summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitattributes4
-rw-r--r--Makefile10
-rw-r--r--asm/pokemon_summary_screen.s14106
-rw-r--r--compare.sh11
-rw-r--r--constants/misc_constants.inc2
-rw-r--r--data/pokemon_summary_screen.s439
-rw-r--r--include/constants/global.h1
-rw-r--r--include/main.h4
-rw-r--r--include/menu_helpers.h2
-rw-r--r--include/pokemon_icon.h2
-rw-r--r--include/pokemon_summary_screen.h53
-rw-r--r--include/strings.h48
-rw-r--r--include/text.h1
-rw-r--r--include/trade.h1
-rw-r--r--include/trainer_pokemon_sprites.h2
-rw-r--r--ld_script.txt4
-rw-r--r--ld_script_modern.txt14
-rw-r--r--replace.sh9
-rw-r--r--src/berry_pouch.c6
-rw-r--r--src/data/text/nature_names.h54
-rw-r--r--src/item_menu.c8
-rw-r--r--src/item_pc.c2
-rw-r--r--src/menu_helpers.c4
-rw-r--r--src/option_menu.c6
-rw-r--r--src/pokemon_storage_system.c6
-rw-r--r--src/pokemon_summary_screen.c5198
-rw-r--r--src/tm_case.c6
-rw-r--r--sym_ewram.txt39
28 files changed, 5404 insertions, 14638 deletions
diff --git a/.gitattributes b/.gitattributes
index 9e4fad21e..2badfa42c 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -12,6 +12,10 @@ Makefile text eol=lf
*.sed text eol=lf
*.sh text eol=lf
*.json text eol=lf
+.gitignore text eol=lf
+.gitattributes text eol=lf
+*.yml text eol=lf
+*.py text eol=lf
*.png binary
*.bin binary
diff --git a/Makefile b/Makefile
index 8568cd060..e7a918189 100644
--- a/Makefile
+++ b/Makefile
@@ -36,7 +36,7 @@ include config.mk
GCC_VER = $(shell $(CC) -dumpversion)
ifeq ($(MODERN),0)
-CC1 := tools/agbcc/bin/agbcc
+CC1 := tools/agbcc/bin/agbcc$(EXE)
override CFLAGS += -mthumb-interwork -Wimplicit -Wparentheses -Werror -O2 -fhex-asm
LIBPATH := -L ../../tools/agbcc/lib
else
@@ -132,7 +132,7 @@ MID_OBJS := $(patsubst $(MID_SUBDIR)/%.mid,$(MID_BUILDDIR)/%.o,$(MID_SRCS))
OBJS := $(C_OBJS) $(ASM_OBJS) $(DATA_ASM_OBJS) $(SONG_OBJS) $(MID_OBJS)
OBJS_REL := $(patsubst $(OBJ_DIR)/%,%,$(OBJS))
-TOOLDIRS := $(filter-out tools/agbcc tools/binutils,$(wildcard tools/*))
+TOOLDIRS := $(filter-out tools/agbcc tools/binutils tools/analyze_source,$(wildcard tools/*))
TOOLBASE = $(TOOLDIRS:tools/%=%)
TOOLS = $(foreach tool,$(TOOLBASE),tools/$(tool)/$(tool)$(EXE))
@@ -209,15 +209,15 @@ $(C_BUILDDIR)/agb_flash.o: CFLAGS := -O -mthumb-interwork
$(C_BUILDDIR)/agb_flash_1m.o: CFLAGS := -O -mthumb-interwork
$(C_BUILDDIR)/agb_flash_mx.o: CFLAGS := -O -mthumb-interwork
-$(C_BUILDDIR)/m4a.o: CC1 := tools/agbcc/bin/old_agbcc
+$(C_BUILDDIR)/m4a.o: CC1 := tools/agbcc/bin/old_agbcc$(EXE)
-$(C_BUILDDIR)/isagbprn.o: CC1 := tools/agbcc/bin/old_agbcc
+$(C_BUILDDIR)/isagbprn.o: CC1 := tools/agbcc/bin/old_agbcc$(EXE)
$(C_BUILDDIR)/isagbprn.o: CFLAGS := -mthumb-interwork
$(C_BUILDDIR)/trainer_tower.o: CFLAGS += -ffreestanding
$(C_BUILDDIR)/flying.o: CFLAGS += -ffreestanding
-$(C_BUILDDIR)/librfu_intr.o: CC1 := tools/agbcc/bin/agbcc_arm
+$(C_BUILDDIR)/librfu_intr.o: CC1 := tools/agbcc/bin/agbcc_arm$(EXE)
$(C_BUILDDIR)/librfu_intr.o: CFLAGS := -O2 -mthumb-interwork -quiet
else
$(C_BUILDDIR)/berry_crush_2.o: CFLAGS += -Wno-address-of-packed-member
diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s
deleted file mode 100644
index f914da889..000000000
--- a/asm/pokemon_summary_screen.s
+++ /dev/null
@@ -1,14106 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start ShowPokemonSummaryScreen
-ShowPokemonSummaryScreen: @ 81344F8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r8, r0
- adds r7, r3, 0
- ldr r0, [sp, 0x20]
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r5, _0813453C @ =gUnknown_203B140
- ldr r0, _08134540 @ =0x00003308
- bl AllocZeroed
- str r0, [r5]
- ldr r4, _08134544 @ =gUnknown_203B144
- movs r0, 0x28
- bl AllocZeroed
- str r0, [r4]
- ldr r5, [r5]
- cmp r5, 0
- bne _08134548
- adds r0, r7, 0
- bl SetMainCallback2
- b _08134702
- .align 2, 0
-_0813453C: .4byte gUnknown_203B140
-_08134540: .4byte 0x00003308
-_08134544: .4byte gUnknown_203B144
-_08134548:
- ldr r0, _08134574 @ =gLastViewedMonIndex
- strb r6, [r0]
- ldr r0, _08134578 @ =gUnknown_203B16D
- movs r1, 0
- strb r1, [r0]
- ldr r0, _0813457C @ =gUnknown_203B16E
- strb r1, [r0]
- ldr r1, _08134580 @ =0x000032f8
- adds r0, r5, r1
- str r7, [r0]
- ldr r2, _08134584 @ =0x000032f4
- adds r0, r5, r2
- mov r3, r8
- str r3, [r0]
- ldr r0, _08134588 @ =gEnemyParty
- cmp r8, r0
- bne _08134590
- ldr r0, _0813458C @ =0x00003024
- adds r1, r5, r0
- movs r0, 0x1
- b _08134596
- .align 2, 0
-_08134574: .4byte gLastViewedMonIndex
-_08134578: .4byte gUnknown_203B16D
-_0813457C: .4byte gUnknown_203B16E
-_08134580: .4byte 0x000032f8
-_08134584: .4byte 0x000032f4
-_08134588: .4byte gEnemyParty
-_0813458C: .4byte 0x00003024
-_08134590:
- ldr r2, _081345C0 @ =0x00003024
- adds r1, r5, r2
- movs r0, 0
-_08134596:
- str r0, [r1]
- ldr r4, _081345C4 @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r3, _081345C8 @ =0x00003210
- adds r0, r3
- movs r5, 0
- mov r1, r9
- strb r1, [r0]
- ldr r0, [r4]
- ldr r1, _081345CC @ =0x00003208
- adds r0, r1
- mov r2, r10
- strb r2, [r0]
- ldr r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3
- bgt _081345D0
- cmp r0, 0x2
- bge _08134634
- b _081345D4
- .align 2, 0
-_081345C0: .4byte 0x00003024
-_081345C4: .4byte gUnknown_203B140
-_081345C8: .4byte 0x00003210
-_081345CC: .4byte 0x00003208
-_081345D0:
- cmp r0, 0x5
- beq _08134604
-_081345D4:
- movs r0, 0x6 @ HELPCONTEXT_POKEMON_INFO
- bl SetHelpContext
- ldr r2, _081345F8 @ =gUnknown_203B140
- ldr r0, [r2]
- ldr r3, _081345FC @ =0x00003214
- adds r0, r3
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- adds r3, 0x8
- adds r0, r3
- strb r1, [r0]
- ldr r0, [r2]
- ldr r2, _08134600 @ =0x00003234
- adds r0, r2
- b _08134654
- .align 2, 0
-_081345F8: .4byte gUnknown_203B140
-_081345FC: .4byte 0x00003214
-_08134600: .4byte 0x00003234
-_08134604:
- movs r0, 0x6 @ HELPCONTEXT_POKEMON_INFO
- bl SetHelpContext
- ldr r0, [r4]
- ldr r3, _08134628 @ =0x00003214
- adds r0, r3
- strb r5, [r0]
- ldr r0, [r4]
- ldr r1, _0813462C @ =0x0000321c
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r4]
- ldr r2, _08134630 @ =0x00003234
- adds r0, r2
- strb r5, [r0]
- b _08134656
- .align 2, 0
-_08134628: .4byte 0x00003214
-_0813462C: .4byte 0x0000321c
-_08134630: .4byte 0x00003234
-_08134634:
- movs r0, 0x8 @ HELPCONTEXT_POKEMON_MOVES
- bl SetHelpContext
- ldr r0, [r4]
- ldr r3, _08134710 @ =0x00003214
- adds r0, r3
- movs r1, 0x3
- strb r1, [r0]
- ldr r0, [r4]
- ldr r1, _08134714 @ =0x0000321c
- adds r0, r1
- strb r5, [r0]
- ldr r0, [r4]
- ldr r2, _08134718 @ =0x00003234
- adds r0, r2
- movs r1, 0x1
-_08134654:
- strb r1, [r0]
-_08134656:
- ldr r5, _0813471C @ =gUnknown_203B140
- ldr r0, [r5]
- ldr r3, _08134720 @ =0x00003270
- adds r0, r3
- movs r2, 0
- strb r2, [r0]
- ldr r0, [r5]
- ldr r1, _08134724 @ =0x00003274
- adds r0, r1
- strb r2, [r0]
- ldr r0, [r5]
- adds r3, 0x8
- adds r0, r3
- strb r2, [r0]
- ldr r0, [r5]
- adds r1, 0x8
- adds r0, r1
- strb r2, [r0]
- ldr r0, [r5]
- subs r3, 0x40
- adds r0, r3
- strb r2, [r0]
- ldr r0, [r5]
- subs r1, 0x40
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
- ldr r0, [r5]
- adds r3, 0x8
- adds r0, r3
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r5]
- adds r3, 0x4
- adds r0, r3
- strb r2, [r0]
- ldr r0, [r5]
- subs r3, 0x1C
- adds r0, r3
- strb r2, [r0]
- ldr r0, [r5]
- ldr r2, _08134728 @ =0x0000322c
- adds r0, r2
- strb r1, [r0]
- ldr r0, [r5]
- ldr r4, _0813472C @ =0x00003290
- adds r0, r4
- bl sub_8138B8C
- ldr r0, [r5]
- adds r0, r4
- movs r1, 0x2D
- bl GetMonData
- ldr r1, [r5]
- movs r3, 0xC8
- lsls r3, 6
- adds r1, r3
- strb r0, [r1]
- ldr r0, [r5]
- adds r0, r4
- movs r1, 0x4
- bl GetMonData
- ldr r1, [r5]
- ldr r2, _08134730 @ =0x00003204
- adds r1, r2
- strb r0, [r1]
- ldr r0, [r5]
- adds r2, r0, r2
- ldrb r1, [r2]
- cmp r1, 0x1
- bne _081346F0
- movs r2, 0xC8
- lsls r2, 6
- adds r0, r2
- strb r1, [r0]
-_081346F0:
- ldr r0, [r5]
- movs r3, 0xCC
- lsls r3, 6
- adds r0, r3
- movs r1, 0xFF
- strb r1, [r0]
- ldr r0, _08134734 @ =sub_8135C34
- bl SetMainCallback2
-_08134702:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08134710: .4byte 0x00003214
-_08134714: .4byte 0x0000321c
-_08134718: .4byte 0x00003234
-_0813471C: .4byte gUnknown_203B140
-_08134720: .4byte 0x00003270
-_08134724: .4byte 0x00003274
-_08134728: .4byte 0x0000322c
-_0813472C: .4byte 0x00003290
-_08134730: .4byte 0x00003204
-_08134734: .4byte sub_8135C34
- thumb_func_end ShowPokemonSummaryScreen
-
- thumb_func_start ShowSelectMovePokemonSummaryScreen
-ShowSelectMovePokemonSummaryScreen: @ 8134738
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, [sp, 0x10]
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r5, 16
- lsrs r5, 16
- movs r4, 0x2
- str r4, [sp]
- bl ShowPokemonSummaryScreen
- ldr r0, _08134764 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _08134768 @ =0x00003260
- adds r0, r1
- strh r5, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08134764: .4byte gUnknown_203B140
-_08134768: .4byte 0x00003260
- thumb_func_end ShowSelectMovePokemonSummaryScreen
-
- thumb_func_start sub_813476C
-sub_813476C: @ 813476C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08134790 @ =gUnknown_203B140
- ldr r1, [r0]
- ldr r3, _08134794 @ =0x0000301c
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0813479C
- ldr r3, _08134798 @ =0x00003224
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- beq _0813479C
- movs r0, 0x1
- b _0813479E
- .align 2, 0
-_08134790: .4byte gUnknown_203B140
-_08134794: .4byte 0x0000301c
-_08134798: .4byte 0x00003224
-_0813479C:
- movs r0, 0
-_0813479E:
- pop {r1}
- bx r1
- thumb_func_end sub_813476C
-
- thumb_func_start sub_81347A4
-sub_81347A4: @ 81347A4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _081347D4 @ =gUnknown_203B140
- ldr r1, [r0]
- movs r2, 0xC8
- lsls r2, 6
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08134830
- movs r0, 0xCC
- lsls r0, 6
- adds r2, r1, r0
- ldrb r1, [r2]
- adds r0, r1, 0
- cmp r0, 0xFF
- beq _081347D8
- cmp r0, r4
- bne _081347D8
- movs r0, 0xFF
- strb r0, [r2]
-_081347D0:
- movs r0, 0x1
- b _08134832
- .align 2, 0
-_081347D4: .4byte gUnknown_203B140
-_081347D8:
- adds r0, r4, 0
- bl sub_813476C
- lsls r0, 24
- cmp r0, 0
- bne _08134830
- cmp r4, 0
- beq _08134810
- cmp r4, 0x1
- bne _08134830
- ldr r0, _08134808 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _081347D0
- ldr r0, _0813480C @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _08134830
- movs r0, 0x80
- lsls r0, 1
- b _0813482A
- .align 2, 0
-_08134808: .4byte gMain
-_0813480C: .4byte gSaveBlock2Ptr
-_08134810:
- ldr r0, _08134838 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _081347D0
- ldr r0, _0813483C @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _08134830
- movs r0, 0x80
- lsls r0, 2
-_0813482A:
- ands r0, r1
- cmp r0, 0
- bne _081347D0
-_08134830:
- movs r0, 0
-_08134832:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08134838: .4byte gMain
-_0813483C: .4byte gSaveBlock2Ptr
- thumb_func_end sub_81347A4
-
- thumb_func_start sub_8134840
-sub_8134840: @ 8134840
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _0813486C @ =gUnknown_203B140
- ldr r0, [r1]
- ldr r2, _08134870 @ =0x00003270
- adds r0, r2
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x5
- bls _08134860
- b _08134B88
-_08134860:
- lsls r0, 2
- ldr r1, _08134874 @ =_08134878
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813486C: .4byte gUnknown_203B140
-_08134870: .4byte 0x00003270
-_08134874: .4byte _08134878
- .align 2, 0
-_08134878:
- .4byte _08134890
- .4byte _081348AC
- .4byte _081348E4
- .4byte _08134ADC
- .4byte _08134B38
- .4byte _08134B60
-_08134890:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _081348A8 @ =gUnknown_203B140
- ldr r0, [r0]
- b _081348D6
- .align 2, 0
-_081348A8: .4byte gUnknown_203B140
-_081348AC:
- ldr r0, _081348C8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081348D4
- bl sub_813B784
- ldr r0, _081348CC @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r2, _081348D0 @ =0x00003270
- adds r0, r2
- b _08134AF6
- .align 2, 0
-_081348C8: .4byte gPaletteFade
-_081348CC: .4byte gUnknown_203B140
-_081348D0: .4byte 0x00003270
-_081348D4:
- ldr r0, [r4]
-_081348D6:
- ldr r1, _081348E0 @ =0x00003270
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- b _08134B9A
- .align 2, 0
-_081348E0: .4byte 0x00003270
-_081348E4:
- bl MenuHelpers_CallLinkSomething
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081348F2
- b _08134B9A
-_081348F2:
- bl sub_800B270
- cmp r0, 0x1
- bne _081348FC
- b _08134B9A
-_081348FC:
- ldr r0, _08134940 @ =sub_813B3F0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0
- beq _0813490C
- b _08134B9A
-_0813490C:
- ldr r5, _08134944 @ =gUnknown_203B140
- ldr r0, [r5]
- ldr r6, _08134948 @ =0x00003214
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _081349F8
- movs r0, 0x1
- bl sub_81347A4
- adds r4, r0, 0
- cmp r4, 0x1
- bne _0813498C
- ldr r0, _0813494C @ =sub_8134BAC
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- beq _08134950
- ldr r0, [r5]
- movs r2, 0xCC
- lsls r2, 6
- adds r0, r2
- strb r4, [r0]
- b _08134B9A
- .align 2, 0
-_08134940: .4byte sub_813B3F0
-_08134944: .4byte gUnknown_203B140
-_08134948: .4byte 0x00003214
-_0813494C: .4byte sub_8134BAC
-_08134950:
- ldr r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _0813495C
- b _08134B9A
-_0813495C:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl HideBg
- ldr r0, [r5]
- ldr r1, _08134988 @ =0x00003224
- adds r0, r1
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- bl sub_8138414
- ldr r1, [r5]
- adds r1, r6
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r5]
- b _08134AA8
- .align 2, 0
-_08134988: .4byte 0x00003224
-_0813498C:
- movs r0, 0
- bl sub_81347A4
- cmp r0, 0x1
- bne _081349F8
- ldr r0, _081349B0 @ =sub_8134BAC
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _081349B4
- ldr r0, [r5]
- movs r1, 0xCC
- lsls r1, 6
- adds r0, r1
- strb r7, [r0]
- b _08134B9A
- .align 2, 0
-_081349B0: .4byte sub_8134BAC
-_081349B4:
- ldr r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0
- bne _081349C0
- b _08134B9A
-_081349C0:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl HideBg
- ldr r0, [r5]
- ldr r2, _081349F0 @ =0x00003224
- adds r0, r2
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- bl sub_8138414
- ldr r1, [r5]
- adds r1, r6
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- ldr r0, [r5]
- ldr r1, _081349F4 @ =0x00003270
- adds r0, r1
- b _08134AAC
- .align 2, 0
-_081349F0: .4byte 0x00003224
-_081349F4: .4byte 0x00003270
-_081349F8:
- ldr r0, _08134A2C @ =sub_8134BAC
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- beq _08134A12
- ldr r0, _08134A30 @ =sub_813B3F0
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _08134A12
- b _08134B9A
-_08134A12:
- ldr r0, _08134A34 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08134A38
- movs r1, 0x1
- negs r1, r1
- mov r0, r8
- bl sub_813B120
- b _08134B9A
- .align 2, 0
-_08134A2C: .4byte sub_8134BAC
-_08134A30: .4byte sub_813B3F0
-_08134A34: .4byte gMain
-_08134A38:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08134A4A
- mov r0, r8
- movs r1, 0x1
- bl sub_813B120
- b _08134B9A
-_08134A4A:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08134ABC
- ldr r4, _08134A70 @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r5, _08134A74 @ =0x00003214
- adds r0, r5
- ldrb r0, [r0]
- cmp r0, 0
- bne _08134A7C
- movs r0, 0x5
- bl PlaySE
- ldr r0, [r4]
- ldr r2, _08134A78 @ =0x00003270
- adds r0, r2
- b _08134ACC
- .align 2, 0
-_08134A70: .4byte gUnknown_203B140
-_08134A74: .4byte 0x00003214
-_08134A78: .4byte 0x00003270
-_08134A7C:
- cmp r0, 0x2
- beq _08134A82
- b _08134B9A
-_08134A82:
- movs r0, 0x5
- bl PlaySE
- ldr r0, [r4]
- ldr r1, _08134AB4 @ =0x00003224
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8138414
- ldr r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r4]
-_08134AA8:
- ldr r2, _08134AB8 @ =0x00003270
- adds r0, r2
-_08134AAC:
- movs r1, 0x3
- strb r1, [r0]
- b _08134B9A
- .align 2, 0
-_08134AB4: .4byte 0x00003224
-_08134AB8: .4byte 0x00003270
-_08134ABC:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08134B9A
- ldr r0, _08134AD4 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _08134AD8 @ =0x00003270
- adds r0, r1
-_08134ACC:
- movs r1, 0x4
- strb r1, [r0]
- b _08134B9A
- .align 2, 0
-_08134AD4: .4byte gUnknown_203B140
-_08134AD8: .4byte 0x00003270
-_08134ADC:
- ldr r3, [r4]
- ldr r2, _08134AFC @ =0x00003214
- adds r0, r3, r2
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _08134B08
- ldr r0, _08134B00 @ =sub_8134BAC
- movs r1, 0
- bl CreateTask
- ldr r0, [r4]
- ldr r1, _08134B04 @ =0x00003270
- adds r0, r1
-_08134AF6:
- movs r1, 0x2
- strb r1, [r0]
- b _08134B9A
- .align 2, 0
-_08134AFC: .4byte 0x00003214
-_08134B00: .4byte sub_8134BAC
-_08134B04: .4byte 0x00003270
-_08134B08:
- ldr r2, _08134B28 @ =gTasks
- ldr r1, _08134B2C @ =0x00003018
- adds r0, r3, r1
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _08134B30 @ =sub_8134E84
- str r1, [r0]
- ldr r2, _08134B34 @ =0x00003270
- adds r1, r3, r2
- movs r0, 0x2
- strb r0, [r1]
- b _08134B9A
- .align 2, 0
-_08134B28: .4byte gTasks
-_08134B2C: .4byte 0x00003018
-_08134B30: .4byte sub_8134E84
-_08134B34: .4byte 0x00003270
-_08134B38:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08134B58 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _08134B5C @ =0x00003270
- adds r0, r1
- movs r1, 0x5
- strb r1, [r0]
- b _08134B9A
- .align 2, 0
-_08134B58: .4byte gUnknown_203B140
-_08134B5C: .4byte 0x00003270
-_08134B60:
- bl Overworld_LinkRecvQueueLengthMoreThan2
- cmp r0, 0x1
- beq _08134B9A
- bl sub_800B270
- cmp r0, 0x1
- beq _08134B9A
- ldr r0, _08134B80 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r2, _08134B84 @ =0x00003270
- adds r0, r2
- movs r1, 0x6
- strb r1, [r0]
- b _08134B9A
- .align 2, 0
-_08134B80: .4byte gUnknown_203B140
-_08134B84: .4byte 0x00003270
-_08134B88:
- ldr r0, _08134BA8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08134B9A
- mov r0, r8
- bl sub_8137E64
-_08134B9A:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08134BA8: .4byte gPaletteFade
- thumb_func_end sub_8134840
-
- thumb_func_start sub_8134BAC
-sub_8134BAC: @ 8134BAC
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r6, _08134BD4 @ =gTasks+0x8
- adds r7, r0, r6
- movs r1, 0
- ldrsh r0, [r7, r1]
- cmp r0, 0x9
- bls _08134BCA
- b _08134E18
-_08134BCA:
- lsls r0, 2
- ldr r1, _08134BD8 @ =_08134BDC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08134BD4: .4byte gTasks+0x8
-_08134BD8: .4byte _08134BDC
- .align 2, 0
-_08134BDC:
- .4byte _08134C04
- .4byte _08134C48
- .4byte _08134CD4
- .4byte _08134CF8
- .4byte _08134D2C
- .4byte _08134D4C
- .4byte _08134D68
- .4byte _08134D88
- .4byte _08134DB0
- .4byte _08134E00
-_08134C04:
- bl sub_8135638
- bl sub_81356EC
- ldr r4, _08134C38 @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r2, _08134C3C @ =0x00003234
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r4]
- ldr r3, _08134C40 @ =0x0000301c
- adds r0, r3
- strb r1, [r0]
- ldr r0, [r4]
- ldr r5, _08134C44 @ =0x00003214
- adds r0, r5
- ldrb r0, [r0]
- bl sub_813B750
- ldr r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8138280
- b _08134E74
- .align 2, 0
-_08134C38: .4byte gUnknown_203B140
-_08134C3C: .4byte 0x00003234
-_08134C40: .4byte 0x0000301c
-_08134C44: .4byte 0x00003214
-_08134C48:
- ldr r0, _08134CC8 @ =gUnknown_203B140
- ldr r1, [r0]
- ldr r2, _08134CCC @ =0x00003214
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _08134C7E
- cmp r0, 0x2
- bne _08134C64
- ldr r3, _08134CD0 @ =0x00003224
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0
- beq _08134C7E
-_08134C64:
- movs r0, 0x1E
- str r0, [sp]
- movs r0, 0x14
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- movs r0, 0
- bl CopyBgTilemapBufferToVram
-_08134C7E:
- movs r4, 0x1E
- str r4, [sp]
- movs r5, 0x2
- str r5, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- movs r6, 0xF
- str r6, [sp]
- str r5, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0x2
- bl FillBgTilemapBufferRect_Palette0
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- str r6, [sp]
- str r5, [sp, 0x4]
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- movs r3, 0x2
- bl FillBgTilemapBufferRect_Palette0
- b _08134E74
- .align 2, 0
-_08134CC8: .4byte gUnknown_203B140
-_08134CCC: .4byte 0x00003214
-_08134CD0: .4byte 0x00003224
-_08134CD4:
- bl sub_8135AA4
- bl sub_8135B90
- bl sub_8138538
- ldr r0, _08134CF0 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _08134CF4 @ =0x00003214
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8137D28
- b _08134E74
- .align 2, 0
-_08134CF0: .4byte gUnknown_203B140
-_08134CF4: .4byte 0x00003214
-_08134CF8:
- ldr r4, _08134D20 @ =gUnknown_203B140
- ldr r0, [r4]
- movs r2, 0xC0
- lsls r2, 6
- adds r0, r2
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r4]
- ldr r3, _08134D24 @ =0x00003001
- adds r0, r3
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r4]
- ldr r1, _08134D28 @ =0x00003002
- adds r0, r1
- b _08134DE2
- .align 2, 0
-_08134D20: .4byte gUnknown_203B140
-_08134D24: .4byte 0x00003001
-_08134D28: .4byte 0x00003002
-_08134D2C:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- beq _08134D38
- b _08134E7A
-_08134D38:
- movs r0, 0x3
- bl CopyBgTilemapBufferToVram
- movs r0, 0x2
- bl CopyBgTilemapBufferToVram
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- b _08134E74
-_08134D4C:
- bl sub_8135514
- ldr r0, _08134D60 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r2, _08134D64 @ =0x00003244
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0]
- b _08134E74
- .align 2, 0
-_08134D60: .4byte gUnknown_203B140
-_08134D64: .4byte 0x00003244
-_08134D68:
- ldr r0, _08134D80 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r3, _08134D84 @ =0x00003224
- adds r0, r3
- ldrb r0, [r0]
- bl sub_81357A0
- lsls r0, 24
- cmp r0, 0
- bne _08134D7E
- b _08134E7A
-_08134D7E:
- b _08134E74
- .align 2, 0
-_08134D80: .4byte gUnknown_203B140
-_08134D84: .4byte 0x00003224
-_08134D88:
- bl sub_8136F4C
- ldr r0, _08134DA8 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _08134DAC @ =0x00003214
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _08134D9E
- bl sub_81374E8
-_08134D9E:
- bl sub_8137BD0
- bl sub_8138A38
- b _08134E74
- .align 2, 0
-_08134DA8: .4byte gUnknown_203B140
-_08134DAC: .4byte 0x00003214
-_08134DB0:
- ldr r4, _08134DEC @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r2, _08134DF0 @ =0x00003003
- adds r0, r2
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r4]
- ldr r3, _08134DF4 @ =0x00003004
- adds r0, r3
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r4]
- ldr r1, _08134DF8 @ =0x00003005
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r4]
- ldr r2, _08134DFC @ =0x00003006
- adds r0, r2
-_08134DE2:
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- b _08134E74
- .align 2, 0
-_08134DEC: .4byte gUnknown_203B140
-_08134DF0: .4byte 0x00003003
-_08134DF4: .4byte 0x00003004
-_08134DF8: .4byte 0x00003005
-_08134DFC: .4byte 0x00003006
-_08134E00:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _08134E7A
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- movs r0, 0
- bl ShowBg
- b _08134E74
-_08134E18:
- bl sub_8138440
- ldr r5, _08134E5C @ =gUnknown_203B140
- ldr r1, [r5]
- ldr r3, _08134E60 @ =0x00003214
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _08134E40
- adds r2, r6, 0
- subs r2, 0x8
- ldr r3, _08134E64 @ =0x00003018
- adds r0, r1, r3
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _08134E68 @ =sub_8138CD8
- str r1, [r0]
-_08134E40:
- adds r0, r4, 0
- bl DestroyTask
- movs r0, 0
- strh r0, [r7]
- ldr r1, [r5]
- ldr r2, _08134E6C @ =0x00003234
- adds r1, r2
- strb r0, [r1]
- ldr r1, [r5]
- ldr r3, _08134E70 @ =0x0000301c
- adds r1, r3
- strb r0, [r1]
- b _08134E7A
- .align 2, 0
-_08134E5C: .4byte gUnknown_203B140
-_08134E60: .4byte 0x00003214
-_08134E64: .4byte 0x00003018
-_08134E68: .4byte sub_8138CD8
-_08134E6C: .4byte 0x00003234
-_08134E70: .4byte 0x0000301c
-_08134E74:
- ldrh r0, [r7]
- adds r0, 0x1
- strh r0, [r7]
-_08134E7A:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8134BAC
-
- thumb_func_start sub_8134E84
-sub_8134E84: @ 8134E84
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r4, _08134EA4 @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r1, _08134EA8 @ =0x00003284
- adds r0, r1
- ldrb r0, [r0]
- adds r5, r4, 0
- cmp r0, 0xB
- bls _08134E9A
- b _08135132
-_08134E9A:
- lsls r0, 2
- ldr r1, _08134EAC @ =_08134EB0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08134EA4: .4byte gUnknown_203B140
-_08134EA8: .4byte 0x00003284
-_08134EAC: .4byte _08134EB0
- .align 2, 0
-_08134EB0:
- .4byte _08134EE0
- .4byte _08134F14
- .4byte _08134FA0
- .4byte _08134FC8
- .4byte _08135010
- .4byte _08135034
- .4byte _08135054
- .4byte _08135080
- .4byte _081350AC
- .4byte _081350D4
- .4byte _081350E4
- .4byte _08135114
-_08134EE0:
- ldr r1, _08134F04 @ =gUnknown_203B140
- ldr r0, [r1]
- ldr r2, _08134F08 @ =0x00003234
- adds r0, r2
- movs r2, 0x1
- strb r2, [r0]
- ldr r0, [r1]
- ldr r3, _08134F0C @ =0x0000301c
- adds r0, r3
- strb r2, [r0]
- ldr r0, [r1]
- ldr r1, _08134F10 @ =0x00003214
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8138280
- b _08135180
- .align 2, 0
-_08134F04: .4byte gUnknown_203B140
-_08134F08: .4byte 0x00003234
-_08134F0C: .4byte 0x0000301c
-_08134F10: .4byte 0x00003214
-_08134F14:
- ldr r0, _08134F94 @ =gUnknown_203B140
- ldr r1, [r0]
- ldr r2, _08134F98 @ =0x00003214
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _08134F4A
- cmp r0, 0x2
- bne _08134F30
- ldr r3, _08134F9C @ =0x00003224
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0
- beq _08134F4A
-_08134F30:
- movs r0, 0x1E
- str r0, [sp]
- movs r0, 0x14
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- movs r0, 0
- bl CopyBgTilemapBufferToVram
-_08134F4A:
- movs r4, 0x1E
- str r4, [sp]
- movs r5, 0x2
- str r5, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- movs r6, 0xF
- str r6, [sp]
- str r5, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0x2
- bl FillBgTilemapBufferRect_Palette0
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- str r6, [sp]
- str r5, [sp, 0x4]
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- movs r3, 0x2
- bl FillBgTilemapBufferRect_Palette0
- b _08135180
- .align 2, 0
-_08134F94: .4byte gUnknown_203B140
-_08134F98: .4byte 0x00003214
-_08134F9C: .4byte 0x00003224
-_08134FA0:
- bl sub_8135638
- ldr r0, _08134FC0 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _08134FC4 @ =0x00003214
- adds r0, r1
- ldrb r0, [r0]
- bl sub_813B750
- bl sub_8135B90
- bl sub_8138538
- bl sub_8135AA4
- b _08135180
- .align 2, 0
-_08134FC0: .4byte gUnknown_203B140
-_08134FC4: .4byte 0x00003214
-_08134FC8:
- ldr r0, _08134FF0 @ =gUnknown_8419C39
- bl sub_8136DA4
- ldr r0, _08134FF4 @ =gMain
- ldr r2, _08134FF8 @ =0x00000439
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08135004
- ldr r0, _08134FFC @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08135004
- ldr r0, _08135000 @ =gUnknown_8419C92
- bl sub_8136DF0
- b _08135180
- .align 2, 0
-_08134FF0: .4byte gUnknown_8419C39
-_08134FF4: .4byte gMain
-_08134FF8: .4byte 0x00000439
-_08134FFC: .4byte gReceivedRemoteLinkPlayers
-_08135000: .4byte gUnknown_8419C92
-_08135004:
- ldr r0, _0813500C @ =gUnknown_8419CA2
- bl sub_8136DF0
- b _08135180
- .align 2, 0
-_0813500C: .4byte gUnknown_8419CA2
-_08135010:
- ldr r4, _0813502C @ =gUnknown_203B140
- ldr r0, [r4]
- movs r3, 0xC0
- lsls r3, 6
- adds r0, r3
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r4]
- ldr r1, _08135030 @ =0x00003001
- adds r0, r1
- b _081350FE
- .align 2, 0
-_0813502C: .4byte gUnknown_203B140
-_08135030: .4byte 0x00003001
-_08135034:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- beq _08135040
- b _0813518E
-_08135040:
- movs r0, 0x2
- bl CopyBgTilemapBufferToVram
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- movs r0, 0x3
- bl CopyBgTilemapBufferToVram
- b _08135180
-_08135054:
- bl sub_8136F4C
- bl sub_8137BD0
- ldr r4, _08135074 @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r2, _08135078 @ =0x00003003
- adds r0, r2
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r4]
- ldr r3, _0813507C @ =0x00003005
- adds r0, r3
- b _081350FE
- .align 2, 0
-_08135074: .4byte gUnknown_203B140
-_08135078: .4byte 0x00003003
-_0813507C: .4byte 0x00003005
-_08135080:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- beq _0813508C
- b _0813518E
-_0813508C:
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- bl sub_8135514
- ldr r0, _081350A4 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _081350A8 @ =0x00003244
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- b _08135180
- .align 2, 0
-_081350A4: .4byte gUnknown_203B140
-_081350A8: .4byte 0x00003244
-_081350AC:
- ldr r0, [r5]
- ldr r2, _081350CC @ =0x00003224
- adds r0, r2
- ldrb r0, [r0]
- bl sub_81357A0
- lsls r0, 24
- cmp r0, 0
- beq _0813518E
- bl sub_81374E8
- ldr r0, [r5]
- ldr r3, _081350D0 @ =0x00003004
- adds r0, r3
- b _081350FE
- .align 2, 0
-_081350CC: .4byte 0x00003224
-_081350D0: .4byte 0x00003004
-_081350D4:
- bl sub_8138A38
- ldr r0, _081350E0 @ =gUnknown_8419C45
- bl sub_8136E50
- b _08135180
- .align 2, 0
-_081350E0: .4byte gUnknown_8419C45
-_081350E4:
- bl sub_81356EC
- ldr r4, _08135108 @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r1, _0813510C @ =0x00003006
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r4]
- ldr r2, _08135110 @ =0x00003002
- adds r0, r2
-_081350FE:
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- b _08135180
- .align 2, 0
-_08135108: .4byte gUnknown_203B140
-_0813510C: .4byte 0x00003006
-_08135110: .4byte 0x00003002
-_08135114:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _0813518E
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- movs r0, 0x2
- bl CopyBgTilemapBufferToVram
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- b _08135180
-_08135132:
- bl sub_8138440
- ldr r3, _08135168 @ =gTasks
- ldr r2, [r4]
- ldr r1, _0813516C @ =0x00003018
- adds r0, r2, r1
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- ldr r1, _08135170 @ =sub_8138CD8
- str r1, [r0]
- ldr r3, _08135174 @ =0x00003284
- adds r2, r3
- movs r1, 0
- strb r1, [r2]
- ldr r0, [r4]
- ldr r2, _08135178 @ =0x00003234
- adds r0, r2
- strb r1, [r0]
- ldr r0, [r4]
- ldr r3, _0813517C @ =0x0000301c
- adds r0, r3
- strb r1, [r0]
- b _0813518E
- .align 2, 0
-_08135168: .4byte gTasks
-_0813516C: .4byte 0x00003018
-_08135170: .4byte sub_8138CD8
-_08135174: .4byte 0x00003284
-_08135178: .4byte 0x00003234
-_0813517C: .4byte 0x0000301c
-_08135180:
- ldr r0, _08135198 @ =gUnknown_203B140
- ldr r1, [r0]
- ldr r0, _0813519C @ =0x00003284
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0813518E:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08135198: .4byte gUnknown_203B140
-_0813519C: .4byte 0x00003284
- thumb_func_end sub_8134E84
-
- thumb_func_start sub_81351A0
-sub_81351A0: @ 81351A0
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r4, _081351C0 @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r1, _081351C4 @ =0x00003284
- adds r0, r1
- ldrb r0, [r0]
- adds r2, r4, 0
- cmp r0, 0xA
- bls _081351B6
- b _08135400
-_081351B6:
- lsls r0, 2
- ldr r1, _081351C8 @ =_081351CC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081351C0: .4byte gUnknown_203B140
-_081351C4: .4byte 0x00003284
-_081351C8: .4byte _081351CC
- .align 2, 0
-_081351CC:
- .4byte _081351F8
- .4byte _0813522C
- .4byte _081352B8
- .4byte _081352BE
- .4byte _08135310
- .4byte _08135328
- .4byte _08135354
- .4byte _0813544C
- .4byte _08135388
- .4byte _081353AC
- .4byte _081353EC
-_081351F8:
- ldr r1, _0813521C @ =gUnknown_203B140
- ldr r0, [r1]
- ldr r2, _08135220 @ =0x00003234
- adds r0, r2
- movs r2, 0x1
- strb r2, [r0]
- ldr r0, [r1]
- ldr r3, _08135224 @ =0x0000301c
- adds r0, r3
- strb r2, [r0]
- ldr r0, [r1]
- ldr r1, _08135228 @ =0x00003214
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8138280
- b _0813544C
- .align 2, 0
-_0813521C: .4byte gUnknown_203B140
-_08135220: .4byte 0x00003234
-_08135224: .4byte 0x0000301c
-_08135228: .4byte 0x00003214
-_0813522C:
- ldr r0, _081352AC @ =gUnknown_203B140
- ldr r1, [r0]
- ldr r2, _081352B0 @ =0x00003214
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _08135262
- cmp r0, 0x2
- bne _08135248
- ldr r3, _081352B4 @ =0x00003224
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0
- beq _08135262
-_08135248:
- movs r0, 0x1E
- str r0, [sp]
- movs r0, 0x14
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- movs r0, 0
- bl CopyBgTilemapBufferToVram
-_08135262:
- movs r4, 0x1E
- str r4, [sp]
- movs r5, 0x2
- str r5, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- movs r6, 0xF
- str r6, [sp]
- str r5, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0x2
- bl FillBgTilemapBufferRect_Palette0
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- str r6, [sp]
- str r5, [sp, 0x4]
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- movs r3, 0x2
- bl FillBgTilemapBufferRect_Palette0
- b _0813544C
- .align 2, 0
-_081352AC: .4byte gUnknown_203B140
-_081352B0: .4byte 0x00003214
-_081352B4: .4byte 0x00003224
-_081352B8:
- bl sub_8135AA4
- b _0813544C
-_081352BE:
- bl sub_8136F4C
- bl sub_81374E8
- bl sub_8137BD0
- ldr r4, _08135300 @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r1, _08135304 @ =0x00003003
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r4]
- ldr r2, _08135308 @ =0x00003004
- adds r0, r2
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r4]
- ldr r3, _0813530C @ =0x00003005
- adds r0, r3
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- b _0813544C
- .align 2, 0
-_08135300: .4byte gUnknown_203B140
-_08135304: .4byte 0x00003003
-_08135308: .4byte 0x00003004
-_0813530C: .4byte 0x00003005
-_08135310:
- ldr r0, _08135320 @ =gUnknown_8419C39
- bl sub_8136DA4
- ldr r0, _08135324 @ =gUnknown_8419C82
- bl sub_8136DF0
- b _0813544C
- .align 2, 0
-_08135320: .4byte gUnknown_8419C39
-_08135324: .4byte gUnknown_8419C82
-_08135328:
- ldr r4, _0813534C @ =gUnknown_203B140
- ldr r0, [r4]
- movs r1, 0xC0
- lsls r1, 6
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r4]
- ldr r2, _08135350 @ =0x00003001
- adds r0, r2
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- b _081353D0
- .align 2, 0
-_0813534C: .4byte gUnknown_203B140
-_08135350: .4byte 0x00003001
-_08135354:
- bl sub_8135514
- ldr r4, _0813537C @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r3, _08135380 @ =0x00003244
- adds r0, r3
- movs r1, 0x1
- strb r1, [r0]
- bl sub_8135638
- ldr r0, [r4]
- ldr r1, _08135384 @ =0x00003214
- adds r0, r1
- ldrb r0, [r0]
- bl sub_813B750
- bl sub_8138A38
- b _0813544C
- .align 2, 0
-_0813537C: .4byte gUnknown_203B140
-_08135380: .4byte 0x00003244
-_08135384: .4byte 0x00003214
-_08135388:
- ldr r0, [r2]
- ldr r2, _081353A4 @ =0x00003224
- adds r0, r2
- ldrb r0, [r0]
- bl sub_81357A0
- lsls r0, 24
- cmp r0, 0
- beq _0813545A
- ldr r0, _081353A8 @ =gUnknown_8419C45
- bl sub_8136E50
- b _0813544C
- .align 2, 0
-_081353A4: .4byte 0x00003224
-_081353A8: .4byte gUnknown_8419C45
-_081353AC:
- ldr r4, _081353E0 @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r3, _081353E4 @ =0x00003006
- adds r0, r3
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r4]
- ldr r1, _081353E8 @ =0x00003002
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- movs r0, 0
- bl CopyBgTilemapBufferToVram
-_081353D0:
- movs r0, 0x2
- bl CopyBgTilemapBufferToVram
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- b _0813544C
- .align 2, 0
-_081353E0: .4byte gUnknown_203B140
-_081353E4: .4byte 0x00003006
-_081353E8: .4byte 0x00003002
-_081353EC:
- bl sub_8135B90
- bl sub_8138538
- movs r0, 0x3
- bl CopyBgTilemapBufferToVram
- bl sub_81356EC
- b _0813544C
-_08135400:
- bl sub_8138440
- ldr r3, _08135434 @ =gTasks
- ldr r2, [r4]
- ldr r1, _08135438 @ =0x00003018
- adds r0, r2, r1
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- ldr r1, _0813543C @ =sub_8134840
- str r1, [r0]
- ldr r3, _08135440 @ =0x00003284
- adds r2, r3
- movs r1, 0
- strb r1, [r2]
- ldr r0, [r4]
- ldr r2, _08135444 @ =0x00003234
- adds r0, r2
- strb r1, [r0]
- ldr r0, [r4]
- ldr r3, _08135448 @ =0x0000301c
- adds r0, r3
- strb r1, [r0]
- b _0813545A
- .align 2, 0
-_08135434: .4byte gTasks
-_08135438: .4byte 0x00003018
-_0813543C: .4byte sub_8134840
-_08135440: .4byte 0x00003284
-_08135444: .4byte 0x00003234
-_08135448: .4byte 0x0000301c
-_0813544C:
- ldr r0, _08135464 @ =gUnknown_203B140
- ldr r1, [r0]
- ldr r0, _08135468 @ =0x00003284
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0813545A:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08135464: .4byte gUnknown_203B140
-_08135468: .4byte 0x00003284
- thumb_func_end sub_81351A0
-
- thumb_func_start sub_813546C
-sub_813546C: @ 813546C
- push {r4-r6,lr}
- movs r4, 0
- ldr r6, _081354BC @ =gUnknown_203B160
-_08135472:
- ldr r1, [r6]
- lsls r5, r4, 1
- adds r0, r1, 0
- adds r0, 0x2C
- adds r0, r5
- lsls r2, r4, 3
- mov r12, r2
- movs r2, 0xC6
- lsls r2, 1
- add r2, r12
- strh r2, [r0]
- lsls r3, r4, 2
- adds r1, r3
- ldr r0, [r1]
- strh r2, [r0, 0x20]
- cmp r4, 0x8
- bhi _081354AC
- ldr r0, _081354C0 @ =gUnknown_203B15C
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x28
- adds r0, r5
- movs r2, 0xCE
- lsls r2, 1
- add r2, r12
- strh r2, [r0]
- adds r1, r3
- ldr r0, [r1]
- strh r2, [r0, 0x20]
-_081354AC:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xA
- bls _08135472
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081354BC: .4byte gUnknown_203B160
-_081354C0: .4byte gUnknown_203B15C
- thumb_func_end sub_813546C
-
- thumb_func_start sub_81354C4
-sub_81354C4: @ 81354C4
- push {r4-r7,lr}
- movs r5, 0
- ldr r7, _0813550C @ =gUnknown_203B160
-_081354CA:
- ldr r1, [r7]
- lsls r6, r5, 1
- adds r0, r1, 0
- adds r0, 0x2C
- adds r0, r6
- lsls r4, r5, 3
- adds r2, r4, 0
- adds r2, 0x9C
- strh r2, [r0]
- lsls r3, r5, 2
- adds r1, r3
- ldr r0, [r1]
- strh r2, [r0, 0x20]
- cmp r5, 0x8
- bhi _081354FC
- ldr r0, _08135510 @ =gUnknown_203B15C
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x28
- adds r0, r6
- adds r2, 0x10
- strh r2, [r0]
- adds r1, r3
- ldr r0, [r1]
- strh r2, [r0, 0x20]
-_081354FC:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xA
- bls _081354CA
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813550C: .4byte gUnknown_203B160
-_08135510: .4byte gUnknown_203B15C
- thumb_func_end sub_81354C4
-
- thumb_func_start sub_8135514
-sub_8135514: @ 8135514
- push {r4-r6,lr}
- movs r4, 0x1
- ldr r6, _0813553C @ =gUnknown_203B140
- ldr r1, [r6]
- ldr r2, _08135540 @ =0x00003224
- adds r0, r1, r2
- ldrb r3, [r0]
- cmp r3, 0x1
- bne _08135528
- movs r4, 0xFF
-_08135528:
- ldr r0, _08135544 @ =0x00003214
- adds r2, r1, r0
- ldrb r0, [r2]
- cmp r0, 0x3
- bne _0813554C
- ldr r2, _08135548 @ =0x0000324c
- adds r1, r2
- movs r0, 0xF0
- strh r0, [r1]
- b _08135632
- .align 2, 0
-_0813553C: .4byte gUnknown_203B140
-_08135540: .4byte 0x00003224
-_08135544: .4byte 0x00003214
-_08135548: .4byte 0x0000324c
-_0813554C:
- lsls r0, r4, 24
- asrs r0, 24
- ldrb r2, [r2]
- adds r0, r2
- cmp r0, 0x3
- bne _08135580
- movs r0, 0
- movs r1, 0
- bl sub_81358DC
- ldr r0, [r6]
- ldr r1, _0813557C @ =0x0000324c
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- movs r0, 0x14
- bl SetGpuReg
- movs r0, 0x18
- movs r1, 0
- bl SetGpuReg
- b _08135632
- .align 2, 0
-_0813557C: .4byte 0x0000324c
-_08135580:
- cmp r3, 0x1
- bne _081355B4
- ldr r2, _081355B0 @ =0x0000324c
- adds r1, r2
- movs r0, 0
- strh r0, [r1]
- movs r0, 0x10
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x14
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x18
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x1
- bl sub_81358DC
- b _081355FC
- .align 2, 0
-_081355B0: .4byte 0x0000324c
-_081355B4:
- movs r0, 0xA
- bl GetGpuReg
- movs r4, 0x3
- adds r5, r4, 0
- ands r5, r0
- movs r0, 0xC
- bl GetGpuReg
- ands r4, r0
- ldr r0, [r6]
- ldr r1, _081355E0 @ =0x0000324c
- adds r0, r1
- movs r1, 0xF0
- strh r1, [r0]
- cmp r5, r4
- bls _081355E4
- movs r0, 0x14
- bl SetGpuReg
- b _081355EC
- .align 2, 0
-_081355E0: .4byte 0x0000324c
-_081355E4:
- movs r0, 0x18
- movs r1, 0xF0
- bl SetGpuReg
-_081355EC:
- movs r0, 0x10
- movs r1, 0xF0
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0
- bl sub_81358DC
-_081355FC:
- ldr r0, _0813561C @ =gUnknown_203B140
- ldr r1, [r0]
- ldr r2, _08135620 @ =0x00003214
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0813562A
- adds r2, 0x10
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08135624
- bl sub_81354C4
- b _08135632
- .align 2, 0
-_0813561C: .4byte gUnknown_203B140
-_08135620: .4byte 0x00003214
-_08135624:
- bl sub_813546C
- b _08135632
-_0813562A:
- cmp r0, 0x2
- bne _08135632
- bl sub_81354C4
-_08135632:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8135514
-
- thumb_func_start sub_8135638
-sub_8135638: @ 8135638
- push {lr}
- ldr r0, _08135654 @ =gUnknown_203B140
- ldr r2, [r0]
- ldr r3, _08135658 @ =0x00003224
- adds r1, r2, r3
- ldrb r1, [r1]
- adds r3, r0, 0
- cmp r1, 0x1
- bne _08135660
- ldr r1, _0813565C @ =0x00003214
- adds r0, r2, r1
- ldrb r0, [r0]
- subs r0, 0x1
- b _08135668
- .align 2, 0
-_08135654: .4byte gUnknown_203B140
-_08135658: .4byte 0x00003224
-_0813565C: .4byte 0x00003214
-_08135660:
- ldr r1, _08135680 @ =0x00003214
- adds r0, r2, r1
- ldrb r0, [r0]
- adds r0, 0x1
-_08135668:
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08135684
- cmp r0, 0x1
- ble _081356E6
- cmp r0, 0x2
- beq _08135692
- cmp r0, 0x3
- beq _081356C8
- b _081356E6
- .align 2, 0
-_08135680: .4byte 0x00003214
-_08135684:
- movs r0, 0x1
- bl sub_813A838
- movs r0, 0x1
- bl sub_813AB70
- b _081356E6
-_08135692:
- ldr r0, [r3]
- ldr r3, _081356C4 @ =0x00003224
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _081356E6
- movs r0, 0x1
- bl sub_8139C44
- movs r0, 0x1
- bl sub_813B084
- movs r0, 0x1
- bl sub_8139D54
- movs r0, 0x1
- bl sub_813A3B8
- movs r0, 0x1
- bl sub_813ACF8
- movs r0, 0x1
- bl sub_813AEB0
- b _081356E6
- .align 2, 0
-_081356C4: .4byte 0x00003224
-_081356C8:
- movs r0, 0x1
- bl sub_813A0E8
- movs r0, 0x1
- bl sub_8139EE4
- movs r0, 0x1
- bl sub_813A3B8
- movs r0, 0x1
- bl sub_813ACF8
- movs r0, 0x1
- bl sub_813AEB0
-_081356E6:
- pop {r0}
- bx r0
- thumb_func_end sub_8135638
-
- thumb_func_start sub_81356EC
-sub_81356EC: @ 81356EC
- push {lr}
- ldr r0, _08135708 @ =gUnknown_203B140
- ldr r2, [r0]
- ldr r3, _0813570C @ =0x00003224
- adds r1, r2, r3
- ldrb r1, [r1]
- adds r3, r0, 0
- cmp r1, 0x1
- bne _08135714
- ldr r1, _08135710 @ =0x00003214
- adds r0, r2, r1
- ldrb r0, [r0]
- subs r0, 0x1
- b _0813571C
- .align 2, 0
-_08135708: .4byte gUnknown_203B140
-_0813570C: .4byte 0x00003224
-_08135710: .4byte 0x00003214
-_08135714:
- ldr r1, _08135730 @ =0x00003214
- adds r0, r2, r1
- ldrb r0, [r0]
- adds r0, 0x1
-_0813571C:
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0813579A
- cmp r0, 0x1
- bgt _08135734
- cmp r0, 0
- beq _0813574A
- b _0813579A
- .align 2, 0
-_08135730: .4byte 0x00003214
-_08135734:
- cmp r0, 0x2
- beq _0813573E
- cmp r0, 0x3
- beq _08135776
- b _0813579A
-_0813573E:
- ldr r0, [r3]
- ldr r3, _08135758 @ =0x00003224
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _0813575C
-_0813574A:
- movs r0, 0
- bl sub_813A838
- movs r0, 0
- bl sub_813AB70
- b _0813579A
- .align 2, 0
-_08135758: .4byte 0x00003224
-_0813575C:
- movs r0, 0
- bl sub_813A0E8
- movs r0, 0
- bl sub_813ACF8
- movs r0, 0
- bl sub_8139EE4
- movs r0, 0
- bl sub_813AEB0
- b _0813579A
-_08135776:
- movs r0, 0
- bl sub_8139C44
- movs r0, 0
- bl sub_813B084
- movs r0, 0
- bl sub_813A3B8
- movs r0, 0
- bl sub_8139D54
- movs r0, 0
- bl sub_813ACF8
- movs r0, 0
- bl sub_813AEB0
-_0813579A:
- pop {r0}
- bx r0
- thumb_func_end sub_81356EC
-
- thumb_func_start sub_81357A0
-sub_81357A0: @ 81357A0
- push {r4-r6,lr}
- movs r3, 0x1
- ldr r0, _081357EC @ =gUnknown_203B140
- ldr r2, [r0]
- ldr r4, _081357F0 @ =0x00003224
- adds r1, r2, r4
- ldrb r1, [r1]
- adds r5, r0, 0
- cmp r1, 0x1
- bne _081357B6
- movs r3, 0xFF
-_081357B6:
- ldr r1, _081357F4 @ =0x00003214
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _08135800
- ldr r4, _081357F8 @ =0x0000324c
- adds r1, r2, r4
- movs r4, 0
- ldrsh r0, [r1, r4]
- cmp r0, 0
- bgt _08135800
- movs r4, 0
- movs r0, 0
- strh r0, [r1]
- ldr r0, _081357FC @ =0x00003238
- adds r2, r0
- ldrb r0, [r2]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r2]
- movs r0, 0
- movs r1, 0
- bl sub_81358DC
- ldr r0, [r5]
- b _0813587E
- .align 2, 0
-_081357EC: .4byte gUnknown_203B140
-_081357F0: .4byte 0x00003224
-_081357F4: .4byte 0x00003214
-_081357F8: .4byte 0x0000324c
-_081357FC: .4byte 0x00003238
-_08135800:
- ldr r2, [r5]
- ldr r4, _0813583C @ =0x00003214
- adds r1, r2, r4
- lsls r0, r3, 24
- asrs r0, 24
- ldrb r1, [r1]
- adds r0, r1
- cmp r0, 0x3
- bne _08135848
- ldr r0, _08135840 @ =0x0000324c
- adds r1, r2, r0
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0xEF
- ble _08135848
- movs r3, 0
- movs r0, 0xF0
- strh r0, [r1]
- adds r4, 0x24
- adds r2, r4
- ldrb r0, [r2]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r2]
- ldr r0, [r5]
- ldr r1, _08135844 @ =0x00003244
- adds r0, r1
- strb r3, [r0]
- movs r0, 0x1
- b _081358D6
- .align 2, 0
-_0813583C: .4byte 0x00003214
-_08135840: .4byte 0x0000324c
-_08135844: .4byte 0x00003244
-_08135848:
- adds r6, r5, 0
- ldr r2, [r6]
- ldr r3, _08135888 @ =0x00003224
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08135898
- ldr r4, _0813588C @ =0x0000324c
- adds r1, r2, r4
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0xEF
- ble _081358D4
- movs r4, 0
- movs r0, 0xF0
- strh r0, [r1]
- ldr r0, _08135890 @ =0x00003238
- adds r2, r0
- ldrb r0, [r2]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r2]
- movs r0, 0
- movs r1, 0
- bl sub_81358DC
- ldr r0, [r6]
-_0813587E:
- ldr r1, _08135894 @ =0x00003244
- adds r0, r1
- strb r4, [r0]
- movs r0, 0x1
- b _081358D6
- .align 2, 0
-_08135888: .4byte 0x00003224
-_0813588C: .4byte 0x0000324c
-_08135890: .4byte 0x00003238
-_08135894: .4byte 0x00003244
-_08135898:
- ldr r3, _081358C8 @ =0x0000324c
- adds r0, r2, r3
- movs r4, 0
- ldrsh r0, [r0, r4]
- cmp r0, 0
- bgt _081358D4
- ldr r0, _081358CC @ =0x00003238
- adds r2, r0
- ldrb r0, [r2]
- movs r1, 0x1
- eors r0, r1
- movs r3, 0
- strb r0, [r2]
- ldr r0, [r5]
- ldr r2, _081358C8 @ =0x0000324c
- adds r1, r0, r2
- movs r2, 0
- strh r3, [r1]
- ldr r3, _081358D0 @ =0x00003244
- adds r0, r3
- strb r2, [r0]
- movs r0, 0x1
- b _081358D6
- .align 2, 0
-_081358C8: .4byte 0x0000324c
-_081358CC: .4byte 0x00003238
-_081358D0: .4byte 0x00003244
-_081358D4:
- movs r0, 0
-_081358D6:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_81357A0
-
- thumb_func_start sub_81358DC
-sub_81358DC: @ 81358DC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- movs r0, 0x8
- bl GetGpuReg
- movs r4, 0x3
- mov r8, r4
- mov r1, r8
- ands r1, r0
- mov r8, r1
- movs r0, 0xA
- bl GetGpuReg
- adds r5, r4, 0
- ands r5, r0
- movs r0, 0xC
- bl GetGpuReg
- adds r6, r4, 0
- ands r6, r0
- ldr r0, _08135938 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r2, _0813593C @ =0x00003224
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08135970
- cmp r7, 0
- bne _0813594E
- movs r0, 0
- mov r8, r0
- mov r1, r9
- cmp r1, 0
- bne _08135940
- cmp r5, r6
- bhi _0813594A
- b _08135944
- .align 2, 0
-_08135938: .4byte gUnknown_203B140
-_0813593C: .4byte 0x00003224
-_08135940:
- cmp r5, r6
- bls _0813594A
-_08135944:
- movs r5, 0x2
- movs r6, 0x1
- b _0813594E
-_0813594A:
- movs r5, 0x1
- movs r6, 0x2
-_0813594E:
- cmp r7, 0x1
- bne _08135970
- movs r2, 0x1
- mov r8, r2
- mov r0, r9
- cmp r0, 0
- bne _08135962
- cmp r5, r6
- bhi _0813596C
- b _08135966
-_08135962:
- cmp r5, r6
- bls _0813596C
-_08135966:
- movs r5, 0x2
- movs r6, 0
- b _08135970
-_0813596C:
- movs r5, 0
- movs r6, 0x2
-_08135970:
- ldr r0, _0813598C @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _08135990 @ =0x00003224
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08135998
- movs r2, 0
- mov r8, r2
- cmp r5, r6
- bls _08135994
- movs r5, 0x1
- movs r6, 0x2
- b _08135998
- .align 2, 0
-_0813598C: .4byte gUnknown_203B140
-_08135990: .4byte 0x00003224
-_08135994:
- movs r5, 0x2
- movs r6, 0x1
-_08135998:
- movs r4, 0
- mov r0, r8
- lsls r0, 2
- mov r9, r0
- movs r7, 0xD
- negs r7, r7
- lsls r1, r5, 2
- mov r12, r1
- ldr r2, _081359D8 @ =gUnknown_203B160
- mov r10, r2
-_081359AC:
- ldr r0, _081359DC @ =gUnknown_203B140
- ldr r1, [r0]
- ldr r2, _081359E0 @ =0x00003214
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _081359E4
- adds r2, 0x10
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _081359E4
- mov r1, r10
- ldr r0, [r1]
- lsls r3, r4, 2
- adds r0, r3
- ldr r2, [r0]
- ldrb r1, [r2, 0x5]
- adds r0, r7, 0
- ands r0, r1
- mov r1, r9
- b _081359F6
- .align 2, 0
-_081359D8: .4byte gUnknown_203B160
-_081359DC: .4byte gUnknown_203B140
-_081359E0: .4byte 0x00003214
-_081359E4:
- mov r2, r10
- ldr r0, [r2]
- lsls r3, r4, 2
- adds r0, r3
- ldr r2, [r0]
- ldrb r1, [r2, 0x5]
- adds r0, r7, 0
- ands r0, r1
- mov r1, r12
-_081359F6:
- orrs r0, r1
- strb r0, [r2, 0x5]
- cmp r4, 0x8
- bhi _08135A48
- ldr r2, _08135A28 @ =gUnknown_203B140
- ldr r1, [r2]
- ldr r2, _08135A2C @ =0x00003214
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08135A34
- adds r2, 0x10
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08135A34
- ldr r0, _08135A30 @ =gUnknown_203B15C
- ldr r0, [r0]
- adds r0, r3
- ldr r2, [r0]
- ldrb r1, [r2, 0x5]
- adds r0, r7, 0
- ands r0, r1
- mov r1, r9
- b _08135A44
- .align 2, 0
-_08135A28: .4byte gUnknown_203B140
-_08135A2C: .4byte 0x00003214
-_08135A30: .4byte gUnknown_203B15C
-_08135A34:
- ldr r0, _08135A9C @ =gUnknown_203B15C
- ldr r0, [r0]
- adds r0, r3
- ldr r2, [r0]
- ldrb r1, [r2, 0x5]
- adds r0, r7, 0
- ands r0, r1
- mov r1, r12
-_08135A44:
- orrs r0, r1
- strb r0, [r2, 0x5]
-_08135A48:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xA
- bls _081359AC
- movs r0, 0x8
- bl GetGpuReg
- ldr r4, _08135AA0 @ =0x0000fffc
- adds r1, r4, 0
- ands r1, r0
- mov r2, r8
- orrs r1, r2
- movs r0, 0x8
- bl SetGpuReg
- movs r0, 0xA
- bl GetGpuReg
- adds r1, r4, 0
- ands r1, r0
- orrs r1, r5
- movs r0, 0xA
- bl SetGpuReg
- movs r0, 0xC
- bl GetGpuReg
- ands r4, r0
- orrs r4, r6
- movs r0, 0xC
- adds r1, r4, 0
- bl SetGpuReg
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08135A9C: .4byte gUnknown_203B15C
-_08135AA0: .4byte 0x0000fffc
- thumb_func_end sub_81358DC
-
- thumb_func_start sub_8135AA4
-sub_8135AA4: @ 8135AA4
- push {lr}
- ldr r0, _08135AC0 @ =gUnknown_203B140
- ldr r2, [r0]
- ldr r3, _08135AC4 @ =0x00003224
- adds r1, r2, r3
- ldrb r1, [r1]
- adds r3, r0, 0
- cmp r1, 0x1
- bne _08135ACC
- ldr r1, _08135AC8 @ =0x00003214
- adds r0, r2, r1
- ldrb r0, [r0]
- subs r0, 0x1
- b _08135AD4
- .align 2, 0
-_08135AC0: .4byte gUnknown_203B140
-_08135AC4: .4byte 0x00003224
-_08135AC8: .4byte 0x00003214
-_08135ACC:
- ldr r1, _08135AE8 @ =0x00003214
- adds r0, r2, r1
- ldrb r0, [r0]
- adds r0, 0x1
-_08135AD4:
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08135B00
- cmp r0, 0x1
- bgt _08135AEC
- cmp r0, 0
- beq _08135AF6
- b _08135B82
- .align 2, 0
-_08135AE8: .4byte 0x00003214
-_08135AEC:
- cmp r0, 0x2
- beq _08135B38
- cmp r0, 0x3
- beq _08135B70
- b _08135B82
-_08135AF6:
- ldr r0, [r3]
- movs r2, 0xC9
- lsls r2, 6
- adds r0, r2
- b _08135B5E
-_08135B00:
- ldr r1, [r3]
- ldr r3, _08135B18 @ =0x00003224
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08135B24
- ldr r2, _08135B1C @ =0x0000323c
- adds r0, r1, r2
- ldrb r0, [r0]
- ldr r1, _08135B20 @ =gUnknown_8E9B950
- b _08135B62
- .align 2, 0
-_08135B18: .4byte 0x00003224
-_08135B1C: .4byte 0x0000323c
-_08135B20: .4byte gUnknown_8E9B950
-_08135B24:
- ldr r3, _08135B30 @ =0x0000323c
- adds r0, r1, r3
- ldrb r0, [r0]
- ldr r1, _08135B34 @ =gUnknown_8E9B598
- b _08135B62
- .align 2, 0
-_08135B30: .4byte 0x0000323c
-_08135B34: .4byte gUnknown_8E9B598
-_08135B38:
- ldr r1, [r3]
- ldr r2, _08135B50 @ =0x00003224
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08135B58
- movs r3, 0xC9
- lsls r3, 6
- adds r0, r1, r3
- ldrb r0, [r0]
- ldr r1, _08135B54 @ =gUnknown_8E9BA9C
- b _08135B62
- .align 2, 0
-_08135B50: .4byte 0x00003224
-_08135B54: .4byte gUnknown_8E9BA9C
-_08135B58:
- movs r2, 0xC9
- lsls r2, 6
- adds r0, r1, r2
-_08135B5E:
- ldrb r0, [r0]
- ldr r1, _08135B6C @ =gUnknown_8E9B750
-_08135B62:
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
- b _08135B82
- .align 2, 0
-_08135B6C: .4byte gUnknown_8E9B750
-_08135B70:
- ldr r0, [r3]
- ldr r3, _08135B88 @ =0x0000323c
- adds r0, r3
- ldrb r0, [r0]
- ldr r1, _08135B8C @ =gUnknown_8E9B950
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
-_08135B82:
- pop {r0}
- bx r0
- .align 2, 0
-_08135B88: .4byte 0x0000323c
-_08135B8C: .4byte gUnknown_8E9B950
- thumb_func_end sub_8135AA4
-
- thumb_func_start sub_8135B90
-sub_8135B90: @ 8135B90
- push {lr}
- ldr r0, _08135BAC @ =gUnknown_203B140
- ldr r2, [r0]
- ldr r3, _08135BB0 @ =0x00003224
- adds r1, r2, r3
- ldrb r1, [r1]
- adds r3, r0, 0
- cmp r1, 0x1
- bne _08135BB8
- ldr r1, _08135BB4 @ =0x00003214
- adds r0, r2, r1
- ldrb r0, [r0]
- subs r0, 0x1
- b _08135BC0
- .align 2, 0
-_08135BAC: .4byte gUnknown_203B140
-_08135BB0: .4byte 0x00003224
-_08135BB4: .4byte 0x00003214
-_08135BB8:
- ldr r1, _08135BD4 @ =0x00003214
- adds r0, r2, r1
- ldrb r0, [r0]
- adds r0, 0x1
-_08135BC0:
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08135C2C
- cmp r0, 0x1
- bgt _08135BD8
- cmp r0, 0
- beq _08135BE2
- b _08135C2C
- .align 2, 0
-_08135BD4: .4byte 0x00003214
-_08135BD8:
- cmp r0, 0x2
- beq _08135BF4
- cmp r0, 0x3
- beq _08135C20
- b _08135C2C
-_08135BE2:
- ldr r0, [r3]
- movs r3, 0xC9
- lsls r3, 6
- adds r0, r3
- ldrb r0, [r0]
- ldr r1, _08135BF0 @ =gUnknown_8E9B750
- b _08135C10
- .align 2, 0
-_08135BF0: .4byte gUnknown_8E9B750
-_08135BF4:
- ldr r0, [r3]
- ldr r1, _08135C04 @ =0x00003224
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08135C0C
- ldr r1, _08135C08 @ =gUnknown_8463C80
- b _08135C0E
- .align 2, 0
-_08135C04: .4byte 0x00003224
-_08135C08: .4byte gUnknown_8463C80
-_08135C0C:
- ldr r1, _08135C1C @ =gUnknown_8463B88
-_08135C0E:
- movs r0, 0x3
-_08135C10:
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
- b _08135C2C
- .align 2, 0
-_08135C1C: .4byte gUnknown_8463B88
-_08135C20:
- ldr r1, _08135C30 @ =gUnknown_8463B88
- movs r0, 0x3
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
-_08135C2C:
- pop {r0}
- bx r0
- .align 2, 0
-_08135C30: .4byte gUnknown_8463B88
- thumb_func_end sub_8135B90
-
- thumb_func_start sub_8135C34
-sub_8135C34: @ 8135C34
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _08135C54 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _08135C58 @ =0x00003274
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0xF
- bls _08135C48
- b _08135EF6
-_08135C48:
- lsls r0, 2
- ldr r1, _08135C5C @ =_08135C60
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08135C54: .4byte gUnknown_203B140
-_08135C58: .4byte 0x00003274
-_08135C5C: .4byte _08135C60
- .align 2, 0
-_08135C60:
- .4byte _08135CA0
- .4byte _08135CA6
- .4byte _08135CAC
- .4byte _08135CB2
- .4byte _08135CB8
- .4byte _08135CBE
- .4byte _08135CC4
- .4byte _08135CD2
- .4byte _08135CD8
- .4byte _08135CDE
- .4byte _08135CE8
- .4byte _08135D30
- .4byte _08135DC4
- .4byte _08135DEC
- .4byte _08135E80
- .4byte _08135E9A
-_08135CA0:
- bl sub_81381AC
- b _08135F00
-_08135CA6:
- bl sub_8136BC4
- b _08135F00
-_08135CAC:
- bl sub_8136BAC
- b _08135F00
-_08135CB2:
- bl sub_8135F20
- b _08135CC8
-_08135CB8:
- bl sub_8136AEC
- b _08135CC8
-_08135CBE:
- bl sub_81381D0
- b _08135F00
-_08135CC4:
- bl sub_8136040
-_08135CC8:
- lsls r0, 24
- cmp r0, 0
- bne _08135CD0
- b _08135F0E
-_08135CD0:
- b _08135F00
-_08135CD2:
- bl sub_8136F4C
- b _08135F00
-_08135CD8:
- bl sub_81374E8
- b _08135F00
-_08135CDE:
- bl sub_8137BD0
- bl sub_8138A38
- b _08135F00
-_08135CE8:
- ldr r0, _08135D0C @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r2, _08135D10 @ =0x00003208
- adds r0, r2
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08135D18
- ldr r1, _08135D14 @ =gUnknown_8463C80
- movs r0, 0x3
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
- b _08135D24
- .align 2, 0
-_08135D0C: .4byte gUnknown_203B140
-_08135D10: .4byte 0x00003208
-_08135D14: .4byte gUnknown_8463C80
-_08135D18:
- ldr r1, _08135D2C @ =gUnknown_8463B88
- movs r0, 0x3
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
-_08135D24:
- bl sub_8138538
- b _08135F00
- .align 2, 0
-_08135D2C: .4byte gUnknown_8463B88
-_08135D30:
- ldr r4, _08135D4C @ =gUnknown_203B140
- ldr r1, [r4]
- movs r2, 0xC8
- lsls r2, 6
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _08135D54
- adds r2, 0x3C
- adds r0, r1, r2
- ldrb r0, [r0]
- ldr r1, _08135D50 @ =gUnknown_8E9BBCC
- b _08135DAC
- .align 2, 0
-_08135D4C: .4byte gUnknown_203B140
-_08135D50: .4byte gUnknown_8E9BBCC
-_08135D54:
- ldr r2, _08135D84 @ =0x00003208
- adds r0, r1, r2
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08135D90
- adds r2, 0x34
- adds r0, r1, r2
- ldrb r0, [r0]
- ldr r1, _08135D88 @ =gUnknown_8E9B950
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
- ldr r0, [r4]
- movs r1, 0xC9
- lsls r1, 6
- adds r0, r1
- ldrb r0, [r0]
- ldr r1, _08135D8C @ =gUnknown_8E9BA9C
- b _08135DAC
- .align 2, 0
-_08135D84: .4byte 0x00003208
-_08135D88: .4byte gUnknown_8E9B950
-_08135D8C: .4byte gUnknown_8E9BA9C
-_08135D90:
- ldr r2, _08135DB8 @ =0x0000323c
- adds r0, r1, r2
- ldrb r0, [r0]
- ldr r1, _08135DBC @ =gUnknown_8E9B598
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
- ldr r0, [r4]
- movs r1, 0xC9
- lsls r1, 6
- adds r0, r1
- ldrb r0, [r0]
- ldr r1, _08135DC0 @ =gUnknown_8E9B750
-_08135DAC:
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
- b _08135F00
- .align 2, 0
-_08135DB8: .4byte 0x0000323c
-_08135DBC: .4byte gUnknown_8E9B598
-_08135DC0: .4byte gUnknown_8E9B750
-_08135DC4:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- ldr r0, _08135DE4 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r2, _08135DE8 @ =0x00003214
- adds r0, r2
- ldrb r0, [r0]
- bl sub_8137D28
- bl sub_8137E28
- b _08135F00
- .align 2, 0
-_08135DE4: .4byte gUnknown_203B140
-_08135DE8: .4byte 0x00003214
-_08135DEC:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r4, _08135E64 @ =gUnknown_203B140
- ldr r0, [r4]
- movs r1, 0xC0
- lsls r1, 6
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r4]
- ldr r2, _08135E68 @ =0x00003001
- adds r0, r2
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r4]
- ldr r1, _08135E6C @ =0x00003002
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r4]
- ldr r2, _08135E70 @ =0x00003006
- adds r0, r2
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r4]
- ldr r1, _08135E74 @ =0x00003003
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r4]
- ldr r2, _08135E78 @ =0x00003004
- adds r0, r2
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r4]
- ldr r1, _08135E7C @ =0x00003005
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- b _08135F00
- .align 2, 0
-_08135E64: .4byte gUnknown_203B140
-_08135E68: .4byte 0x00003001
-_08135E6C: .4byte 0x00003002
-_08135E70: .4byte 0x00003006
-_08135E74: .4byte 0x00003003
-_08135E78: .4byte 0x00003004
-_08135E7C: .4byte 0x00003005
-_08135E80:
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- movs r0, 0x2
- bl CopyBgTilemapBufferToVram
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- movs r0, 0x3
- bl CopyBgTilemapBufferToVram
- b _08135F00
-_08135E9A:
- ldr r0, _08135EBC @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r2, _08135EC0 @ =0x00003208
- adds r0, r2
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08135EC4
- movs r0, 0
- bl sub_8139EE4
- movs r0, 0
- bl sub_813A0E8
- b _08135EE2
- .align 2, 0
-_08135EBC: .4byte gUnknown_203B140
-_08135EC0: .4byte 0x00003208
-_08135EC4:
- movs r0, 0
- bl sub_8139C44
- movs r0, 0
- bl sub_813B084
- movs r0, 0
- bl sub_8139D54
- movs r0, 0
- bl sub_813A838
- movs r0, 0
- bl sub_813AB70
-_08135EE2:
- movs r0, 0
- bl sub_813A3B8
- movs r0, 0
- bl sub_813ACF8
- movs r0, 0
- bl sub_813AEB0
- b _08135F00
-_08135EF6:
- bl sub_81381C0
- bl sub_8136D54
- b _08135F0E
-_08135F00:
- ldr r0, _08135F18 @ =gUnknown_203B140
- ldr r1, [r0]
- ldr r0, _08135F1C @ =0x00003274
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08135F0E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08135F18: .4byte gUnknown_203B140
-_08135F1C: .4byte 0x00003274
- thumb_func_end sub_8135C34
-
- thumb_func_start sub_8135F20
-sub_8135F20: @ 8135F20
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _08135F3C @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _08135F40 @ =0x00003278
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x6
- bhi _0813600E
- lsls r0, 2
- ldr r1, _08135F44 @ =_08135F48
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08135F3C: .4byte gUnknown_203B140
-_08135F40: .4byte 0x00003278
-_08135F44: .4byte _08135F48
- .align 2, 0
-_08135F48:
- .4byte _08135F64
- .4byte _08135FCC
- .4byte _08135FE4
- .4byte _08135FEA
- .4byte _08136000
- .4byte _08136020
- .4byte _08136020
-_08135F64:
- ldr r4, _08135FA8 @ =gUnknown_8E9B310
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0xA0
- bl LoadPalette
- ldr r5, _08135FAC @ =gUnknown_203B140
- ldr r0, [r5]
- ldr r1, _08135FB0 @ =0x00003290
- adds r0, r1
- bl IsMonShiny
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08135FB4
- ldr r0, [r5]
- movs r1, 0xC8
- lsls r1, 6
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08135FB4
- adds r0, r4, 0
- adds r0, 0xC0
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- adds r0, r4, 0
- adds r0, 0xA0
- movs r1, 0x10
- b _08135FD8
- .align 2, 0
-_08135FA8: .4byte gUnknown_8E9B310
-_08135FAC: .4byte gUnknown_203B140
-_08135FB0: .4byte 0x00003290
-_08135FB4:
- ldr r4, _08135FC8 @ =gUnknown_8E9B310
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- adds r4, 0x20
- adds r0, r4, 0
- movs r1, 0x10
- b _08135FD8
- .align 2, 0
-_08135FC8: .4byte gUnknown_8E9B310
-_08135FCC:
- movs r0, 0x60
- movs r1, 0x1
- bl ListMenuLoadStdPalAt
- ldr r0, _08135FE0 @ =gUnknown_84636C0
- movs r1, 0x70
-_08135FD8:
- movs r2, 0x20
- bl LoadPalette
- b _08136020
- .align 2, 0
-_08135FE0: .4byte gUnknown_84636C0
-_08135FE4:
- bl ResetTempTileDataBuffers
- b _08136020
-_08135FEA:
- ldr r1, _08135FFC @ =gUnknown_8E9A460
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- movs r2, 0
- movs r3, 0
- bl DecompressAndCopyTileDataToVram
- b _08136020
- .align 2, 0
-_08135FFC: .4byte gUnknown_8E9A460
-_08136000:
- bl FreeTempTileDataBuffersIfPossible
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08136020
- b _0813602E
-_0813600E:
- ldr r0, _0813601C @ =gUnknown_8463700
- movs r1, 0x80
- movs r2, 0x20
- bl LoadPalette
- movs r0, 0x1
- b _08136030
- .align 2, 0
-_0813601C: .4byte gUnknown_8463700
-_08136020:
- ldr r0, _08136038 @ =gUnknown_203B140
- ldr r1, [r0]
- ldr r0, _0813603C @ =0x00003278
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0813602E:
- movs r0, 0
-_08136030:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08136038: .4byte gUnknown_203B140
-_0813603C: .4byte 0x00003278
- thumb_func_end sub_8135F20
-
- thumb_func_start sub_8136040
-sub_8136040: @ 8136040
- push {r4-r6,lr}
- ldr r1, _08136060 @ =gUnknown_203B140
- ldr r2, [r1]
- movs r6, 0xCA
- lsls r6, 6
- adds r0, r2, r6
- ldrb r4, [r0]
- adds r5, r1, 0
- cmp r4, 0x1
- beq _08136084
- cmp r4, 0x1
- bgt _08136064
- cmp r4, 0
- beq _0813606A
- b _081360A8
- .align 2, 0
-_08136060: .4byte gUnknown_203B140
-_08136064:
- cmp r4, 0x2
- beq _08136096
- b _081360A8
-_0813606A:
- bl sub_81360D4
- ldr r1, [r5]
- movs r2, 0xC8
- lsls r2, 6
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _081360B8
- adds r0, r1, r6
- strb r4, [r0]
- movs r0, 0x1
- b _081360CA
-_08136084:
- movs r1, 0xC8
- lsls r1, 6
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _081360B8
- bl sub_8136350
- b _081360B8
-_08136096:
- movs r1, 0xC8
- lsls r1, 6
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _081360B8
- bl sub_81367B0
- b _081360B8
-_081360A8:
- ldr r0, [r5]
- movs r2, 0xCA
- lsls r2, 6
- adds r0, r2
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- b _081360CA
-_081360B8:
- ldr r0, _081360D0 @ =gUnknown_203B140
- ldr r1, [r0]
- movs r0, 0xCA
- lsls r0, 6
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0
-_081360CA:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081360D0: .4byte gUnknown_203B140
- thumb_func_end sub_8136040
-
- thumb_func_start sub_81360D4
-sub_81360D4: @ 81360D4
- push {r4-r7,lr}
- sub sp, 0x14
- ldr r5, _08136108 @ =gUnknown_203B140
- ldr r0, [r5]
- ldr r1, _0813610C @ =0x00003290
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl SpeciesToPokedexNum
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _08136110 @ =0x0000ffff
- cmp r4, r0
- bne _0813611C
- ldr r0, [r5]
- ldr r2, _08136114 @ =0x00003064
- adds r0, r2
- ldr r1, _08136118 @ =gUnknown_8416202
- bl StringCopy
- b _0813612C
- .align 2, 0
-_08136108: .4byte gUnknown_203B140
-_0813610C: .4byte 0x00003290
-_08136110: .4byte 0x0000ffff
-_08136114: .4byte 0x00003064
-_08136118: .4byte gUnknown_8416202
-_0813611C:
- ldr r0, [r5]
- ldr r3, _08136154 @ =0x00003064
- adds r0, r3
- adds r1, r4, 0
- movs r2, 0x2
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
-_0813612C:
- ldr r0, _08136158 @ =gUnknown_203B144
- ldr r1, [r0]
- movs r0, 0
- strh r0, [r1]
- ldr r6, _0813615C @ =gUnknown_203B140
- ldr r2, [r6]
- movs r1, 0xC8
- lsls r1, 6
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08136168
- ldr r3, _08136160 @ =0x00003290
- adds r0, r2, r3
- ldr r1, _08136164 @ =0x00003028
- adds r2, r1
- movs r1, 0x2
- bl GetMonData
- b _08136342
- .align 2, 0
-_08136154: .4byte 0x00003064
-_08136158: .4byte gUnknown_203B144
-_0813615C: .4byte gUnknown_203B140
-_08136160: .4byte 0x00003290
-_08136164: .4byte 0x00003028
-_08136168:
- ldr r5, _081361F0 @ =0x00003290
- adds r0, r2, r5
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, [r6]
- ldr r2, _081361F4 @ =0x00003028
- adds r0, r2
- adds r1, r4, 0
- bl GetSpeciesName
- ldr r1, [r6]
- ldr r2, _081361F8 @ =gBaseStats
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0, 0x6]
- ldr r3, _081361FC @ =0x00003220
- adds r1, r3
- strb r2, [r1]
- ldr r1, [r6]
- ldrb r0, [r0, 0x7]
- ldr r2, _08136200 @ =0x00003221
- adds r1, r2
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, r5
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- ldr r0, [r6]
- ldr r4, _08136204 @ =0x00003034
- adds r0, r4
- mov r1, sp
- movs r2, 0xA
- bl StringCopyN_Multibyte
- ldr r0, [r6]
- adds r0, r4
- bl StringGetEnd10
- ldr r0, [r6]
- adds r0, r5
- bl GetMonGender
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, [r6]
- adds r0, r5
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r7, 0xFE
- bne _08136210
- ldr r0, [r6]
- ldr r3, _08136208 @ =0x00003084
- adds r0, r3
- ldr r1, _0813620C @ =gText_FemaleSymbol
- bl StringCopy
- b _08136238
- .align 2, 0
-_081361F0: .4byte 0x00003290
-_081361F4: .4byte 0x00003028
-_081361F8: .4byte gBaseStats
-_081361FC: .4byte 0x00003220
-_08136200: .4byte 0x00003221
-_08136204: .4byte 0x00003034
-_08136208: .4byte 0x00003084
-_0813620C: .4byte gText_FemaleSymbol
-_08136210:
- cmp r7, 0
- bne _0813622C
- ldr r0, [r6]
- ldr r1, _08136224 @ =0x00003084
- adds r0, r1
- ldr r1, _08136228 @ =gText_MaleSymbol
- bl StringCopy
- b _08136238
- .align 2, 0
-_08136224: .4byte 0x00003084
-_08136228: .4byte gText_MaleSymbol
-_0813622C:
- ldr r0, [r6]
- ldr r2, _08136308 @ =0x00003084
- adds r0, r2
- ldr r1, _0813630C @ =gString_Dummy
- bl StringCopy
-_08136238:
- cmp r4, 0x20
- beq _08136240
- cmp r4, 0x1D
- bne _08136264
-_08136240:
- ldr r5, _08136310 @ =gUnknown_203B140
- ldr r0, [r5]
- ldr r3, _08136314 @ =0x00003034
- adds r0, r3
- movs r1, 0xB
- muls r1, r4
- ldr r2, _08136318 @ =gSpeciesNames
- adds r1, r2
- bl StringCompare
- cmp r0, 0
- bne _08136264
- ldr r0, [r5]
- ldr r1, _08136308 @ =0x00003084
- adds r0, r1
- ldr r1, _0813630C @ =gString_Dummy
- bl StringCopy
-_08136264:
- ldr r6, _08136310 @ =gUnknown_203B140
- ldr r0, [r6]
- ldr r5, _0813631C @ =0x00003290
- adds r0, r5
- movs r1, 0x7
- mov r2, sp
- bl GetMonData
- ldr r0, [r6]
- movs r4, 0xC1
- lsls r4, 6
- adds r0, r4
- mov r1, sp
- movs r2, 0x7
- bl StringCopyN_Multibyte
- ldr r0, [r6]
- adds r4, r0, r4
- adds r0, r5
- movs r1, 0x3
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl ConvertInternationalString
- ldr r0, [r6]
- adds r0, r5
- movs r1, 0x1
- bl GetMonData
- ldr r1, _08136320 @ =0x0000ffff
- ands r1, r0
- ldr r0, [r6]
- ldr r2, _08136324 @ =0x0000306c
- adds r0, r2
- movs r2, 0x2
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- ldr r0, [r6]
- adds r0, r5
- movs r1, 0x38
- bl GetMonData
- adds r1, r0, 0
- mov r0, sp
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, [r6]
- ldr r4, _08136328 @ =0x00003088
- adds r0, r4
- ldr r1, _0813632C @ =gText_Lv
- bl StringCopy
- ldr r0, [r6]
- adds r0, r4
- mov r1, sp
- movs r2, 0x4
- bl StringAppendN
- ldr r0, [r6]
- adds r0, r5
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _08136338
- ldr r0, [r6]
- ldr r3, _08136330 @ =0x00003074
- adds r0, r3
- ldr r1, _08136334 @ =gUnknown_84161EF
- bl StringCopy
- b _08136342
- .align 2, 0
-_08136308: .4byte 0x00003084
-_0813630C: .4byte gString_Dummy
-_08136310: .4byte gUnknown_203B140
-_08136314: .4byte 0x00003034
-_08136318: .4byte gSpeciesNames
-_0813631C: .4byte 0x00003290
-_08136320: .4byte 0x0000ffff
-_08136324: .4byte 0x0000306c
-_08136328: .4byte 0x00003088
-_0813632C: .4byte gText_Lv
-_08136330: .4byte 0x00003074
-_08136334: .4byte gUnknown_84161EF
-_08136338:
- ldr r1, [r6]
- ldr r2, _0813634C @ =0x00003074
- adds r1, r2
- bl CopyItemName
-_08136342:
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813634C: .4byte 0x00003074
- thumb_func_end sub_81360D4
-
- thumb_func_start sub_8136350
-sub_8136350: @ 8136350
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- ldr r6, _081364F8 @ =gUnknown_203B140
- ldr r0, [r6]
- ldr r7, _081364FC @ =0x00003290
- adds r0, r7
- movs r1, 0x39
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r0, [r6]
- ldr r4, _08136500 @ =0x00003090
- adds r0, r4
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, [r6]
- adds r0, r4
- ldr r1, _08136504 @ =gText_Slash
- bl StringAppend
- ldr r0, [r6]
- adds r0, r7
- movs r1, 0x3A
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r0, sp
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, [r6]
- adds r0, r4
- mov r1, sp
- bl StringAppend
- ldr r0, [r6]
- adds r0, r4
- bl StringLength
- ldr r1, _08136508 @ =gUnknown_203B144
- mov r8, r1
- ldr r2, [r1]
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- movs r0, 0x3F
- subs r0, r1
- strh r0, [r2, 0x2]
- ldr r2, [r6]
- ldr r1, _0813650C @ =0x000032f8
- adds r0, r2, r1
- ldr r1, [r0]
- ldr r0, _08136510 @ =CB2_ReturnToTradeMenuFromSummary
- cmp r1, r0
- beq _081363DA
- b _08136518
-_081363DA:
- ldr r1, _08136514 @ =0x00003024
- adds r0, r2, r1
- ldr r0, [r0]
- cmp r0, 0x1
- beq _081363E6
- b _08136518
-_081363E6:
- adds r0, r2, r7
- movs r1, 0x54
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, [r6]
- adds r4, 0xC
- adds r0, r4
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, [r6]
- adds r0, r4
- bl StringLength
- mov r1, r8
- ldr r2, [r1]
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- movs r5, 0x1B
- subs r1, r5, r1
- strh r1, [r2, 0x4]
- ldr r0, [r6]
- adds r0, r7
- movs r1, 0x55
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, [r6]
- adds r4, 0x5
- adds r0, r4
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, [r6]
- adds r0, r4
- bl StringLength
- mov r1, r8
- ldr r2, [r1]
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- subs r1, r5, r1
- strh r1, [r2, 0x6]
- ldr r0, [r6]
- adds r0, r7
- movs r1, 0x57
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, [r6]
- adds r4, 0x5
- adds r0, r4
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, [r6]
- adds r0, r4
- bl StringLength
- mov r1, r8
- ldr r2, [r1]
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- subs r1, r5, r1
- strh r1, [r2, 0x8]
- ldr r0, [r6]
- adds r0, r7
- movs r1, 0x58
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, [r6]
- adds r4, 0x5
- adds r0, r4
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, [r6]
- adds r0, r4
- bl StringLength
- mov r1, r8
- ldr r2, [r1]
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- subs r1, r5, r1
- strh r1, [r2, 0xA]
- ldr r0, [r6]
- adds r0, r7
- movs r1, 0x56
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, [r6]
- adds r4, 0x5
- adds r0, r4
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, [r6]
- adds r0, r4
- bl StringLength
- mov r1, r8
- ldr r2, [r1]
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- subs r5, r1
- strh r5, [r2, 0xC]
- b _08136630
- .align 2, 0
-_081364F8: .4byte gUnknown_203B140
-_081364FC: .4byte 0x00003290
-_08136500: .4byte 0x00003090
-_08136504: .4byte gText_Slash
-_08136508: .4byte gUnknown_203B144
-_0813650C: .4byte 0x000032f8
-_08136510: .4byte CB2_ReturnToTradeMenuFromSummary
-_08136514: .4byte 0x00003024
-_08136518:
- ldr r4, _0813677C @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r2, _08136780 @ =0x00003290
- mov r9, r2
- add r0, r9
- movs r1, 0x3B
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, [r4]
- ldr r5, _08136784 @ =0x0000309c
- adds r0, r5
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, [r4]
- adds r0, r5
- bl StringLength
- ldr r1, _08136788 @ =gUnknown_203B144
- mov r8, r1
- ldr r2, [r1]
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- movs r6, 0x1B
- subs r1, r6, r1
- strh r1, [r2, 0x4]
- ldr r0, [r4]
- add r0, r9
- movs r1, 0x3C
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, [r4]
- adds r5, 0x5
- adds r0, r5
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, [r4]
- adds r0, r5
- bl StringLength
- mov r1, r8
- ldr r2, [r1]
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- subs r1, r6, r1
- strh r1, [r2, 0x6]
- ldr r0, [r4]
- add r0, r9
- movs r1, 0x3E
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, [r4]
- adds r5, 0x5
- adds r0, r5
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, [r4]
- adds r0, r5
- bl StringLength
- mov r1, r8
- ldr r2, [r1]
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- subs r1, r6, r1
- strh r1, [r2, 0x8]
- ldr r0, [r4]
- add r0, r9
- movs r1, 0x3F
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, [r4]
- adds r5, 0x5
- adds r0, r5
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, [r4]
- adds r0, r5
- bl StringLength
- mov r1, r8
- ldr r2, [r1]
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- subs r1, r6, r1
- strh r1, [r2, 0xA]
- ldr r0, [r4]
- add r0, r9
- movs r1, 0x3D
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, [r4]
- adds r5, 0x5
- adds r0, r5
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, [r4]
- adds r0, r5
- bl StringLength
- mov r1, r8
- ldr r2, [r1]
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- subs r6, r1
- strh r6, [r2, 0xC]
-_08136630:
- ldr r6, _0813677C @ =gUnknown_203B140
- ldr r0, [r6]
- ldr r2, _08136780 @ =0x00003290
- mov r8, r2
- add r0, r8
- movs r1, 0x19
- bl GetMonData
- adds r7, r0, 0
- ldr r0, [r6]
- ldr r4, _0813678C @ =0x000031a4
- adds r0, r4
- adds r1, r7, 0
- movs r2, 0
- movs r3, 0x7
- bl ConvertIntToDecimalStringN
- ldr r0, [r6]
- adds r0, r4
- bl StringLength
- ldr r1, _08136788 @ =gUnknown_203B144
- mov r10, r1
- ldr r2, [r1]
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- movs r0, 0x3F
- mov r9, r0
- mov r0, r9
- subs r1, r0, r1
- strh r1, [r2, 0xE]
- ldr r0, [r6]
- add r0, r8
- movs r1, 0x38
- bl GetMonData
- lsls r0, 24
- lsrs r5, r0, 24
- movs r1, 0
- cmp r5, 0x63
- bhi _081366B8
- ldr r0, [r6]
- ldr r1, _08136780 @ =0x00003290
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _08136790 @ =gExperienceTables
- adds r2, r5, 0x1
- lsls r2, 2
- ldr r3, _08136794 @ =gBaseStats
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r1, [r1, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- muls r0, r1
- adds r2, r0
- adds r2, r4
- ldr r0, [r2]
- subs r1, r0, r7
-_081366B8:
- ldr r0, [r6]
- ldr r4, _08136798 @ =0x000031b0
- adds r0, r4
- movs r2, 0
- movs r3, 0x7
- bl ConvertIntToDecimalStringN
- ldr r0, [r6]
- adds r0, r4
- bl StringLength
- mov r1, r10
- ldr r2, [r1]
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- mov r0, r9
- subs r1, r0, r1
- strh r1, [r2, 0x10]
- ldr r0, [r6]
- add r0, r8
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, [r6]
- add r0, r8
- movs r1, 0x2E
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl GetAbilityBySpecies
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, [r6]
- ldr r1, _0813679C @ =0x000031bc
- adds r0, r1
- movs r1, 0xD
- muls r1, r4
- ldr r2, _081367A0 @ =gAbilityNames
- adds r1, r2
- bl StringCopy
- ldr r0, [r6]
- ldr r2, _081367A4 @ =0x000031cc
- adds r0, r2
- ldr r1, _081367A8 @ =gAbilityDescriptionPointers
- lsls r4, 2
- adds r4, r1
- ldr r1, [r4]
- bl StringCopy
- ldr r0, [r6]
- add r0, r8
- movs r1, 0x37
- bl GetMonData
- bl sub_8138C5C
- ldr r1, [r6]
- ldr r4, _081367AC @ =0x0000326c
- adds r1, r4
- strb r0, [r1]
- ldr r1, [r6]
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0813676A
- mov r2, r8
- adds r0, r1, r2
- movs r1, 0
- bl CheckPartyPokerus
- lsls r0, 24
- cmp r0, 0
- beq _0813676A
- ldr r0, [r6]
- adds r0, r4
- movs r1, 0x6
- strb r1, [r0]
-_0813676A:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813677C: .4byte gUnknown_203B140
-_08136780: .4byte 0x00003290
-_08136784: .4byte 0x0000309c
-_08136788: .4byte gUnknown_203B144
-_0813678C: .4byte 0x000031a4
-_08136790: .4byte gExperienceTables
-_08136794: .4byte gBaseStats
-_08136798: .4byte 0x000031b0
-_0813679C: .4byte 0x000031bc
-_081367A0: .4byte gAbilityNames
-_081367A4: .4byte 0x000031cc
-_081367A8: .4byte gAbilityDescriptionPointers
-_081367AC: .4byte 0x0000326c
- thumb_func_end sub_8136350
-
- thumb_func_start sub_81367B0
-sub_81367B0: @ 81367B0
- push {r4,lr}
- movs r4, 0
-_081367B4:
- adds r0, r4, 0
- bl sub_81367E8
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _081367B4
- ldr r0, _081367E0 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _081367E4 @ =0x00003208
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _081367D8
- movs r0, 0x4
- bl sub_81367E8
-_081367D8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081367E0: .4byte gUnknown_203B140
-_081367E4: .4byte 0x00003208
- thumb_func_end sub_81367B0
-
- thumb_func_start sub_81367E8
-sub_81367E8: @ 81367E8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x3
- bhi _08136812
- ldr r4, _08136884 @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r1, _08136888 @ =0x00003290
- adds r0, r1
- adds r1, r7, 0
- bl sub_8138BEC
- ldr r1, [r4]
- lsls r2, r7, 1
- ldr r3, _0813688C @ =0x00003258
- adds r1, r3
- adds r1, r2
- strh r0, [r1]
-_08136812:
- ldr r6, _08136884 @ =gUnknown_203B140
- ldr r2, [r6]
- lsls r0, r7, 1
- ldr r4, _0813688C @ =0x00003258
- mov r8, r4
- adds r1, r2, r4
- adds r1, r0
- ldrh r1, [r1]
- mov r9, r0
- cmp r1, 0
- bne _081368B0
- movs r0, 0xD
- muls r0, r7
- ldr r1, _08136890 @ =0x00003128
- adds r0, r1
- adds r0, r2, r0
- ldr r1, _08136894 @ =gUnknown_841620E
- bl StringCopy
- movs r0, 0xB
- adds r1, r7, 0
- muls r1, r0
- ldr r2, _08136898 @ =0x000030b8
- adds r1, r2
- ldr r0, [r6]
- adds r0, r1
- ldr r1, _0813689C @ =gUnknown_8416210
- bl StringCopy
- lsls r4, r7, 2
- adds r4, r7
- ldr r3, _081368A0 @ =0x0000316c
- adds r1, r4, r3
- ldr r0, [r6]
- adds r0, r1
- ldr r5, _081368A4 @ =gText_ThreeHyphens
- adds r1, r5, 0
- bl StringCopy
- ldr r0, _081368A8 @ =0x00003188
- adds r4, r0
- ldr r0, [r6]
- adds r0, r4
- adds r1, r5, 0
- bl StringCopy
- ldr r0, _081368AC @ =gUnknown_203B144
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x12
- add r0, r9
- movs r2, 0xFF
- strh r2, [r0]
- adds r1, 0x1C
- add r1, r9
- strh r2, [r1]
- b _08136ADA
- .align 2, 0
-_08136884: .4byte gUnknown_203B140
-_08136888: .4byte 0x00003290
-_0813688C: .4byte 0x00003258
-_08136890: .4byte 0x00003128
-_08136894: .4byte gUnknown_841620E
-_08136898: .4byte 0x000030b8
-_0813689C: .4byte gUnknown_8416210
-_081368A0: .4byte 0x0000316c
-_081368A4: .4byte gText_ThreeHyphens
-_081368A8: .4byte 0x00003188
-_081368AC: .4byte gUnknown_203B144
-_081368B0:
- ldr r3, _08136948 @ =0x00003264
- adds r1, r2, r3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r6]
- ldr r1, _0813694C @ =0x0000324e
- adds r4, r0, r1
- add r4, r9
- ldr r5, _08136950 @ =gBattleMoves
- ldr r2, _08136954 @ =0x00003258
- adds r3, r0, r2
- add r3, r9
- ldrh r2, [r3]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- ldrb r1, [r1, 0x2]
- strh r1, [r4]
- movs r2, 0xD
- adds r1, r7, 0
- muls r1, r2
- ldr r4, _08136958 @ =0x00003128
- adds r1, r4
- adds r0, r1
- ldrh r1, [r3]
- muls r1, r2
- ldr r2, _0813695C @ =gMoveNames
- adds r1, r2
- bl StringCopy
- cmp r7, 0x3
- bls _0813696C
- ldr r1, [r6]
- ldr r2, _08136960 @ =0x00003208
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0813696C
- movs r0, 0xB
- adds r4, r7, 0
- muls r4, r0
- ldr r3, _08136964 @ =0x000030b8
- adds r0, r4, r3
- adds r0, r1, r0
- add r1, r8
- add r1, r9
- ldrh r2, [r1]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- ldrb r1, [r1, 0x4]
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _08136968 @ =0x000030f0
- adds r4, r0
- ldr r0, [r6]
- adds r4, r0, r4
- add r0, r8
- add r0, r9
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x4]
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- b _081369D0
- .align 2, 0
-_08136948: .4byte 0x00003264
-_0813694C: .4byte 0x0000324e
-_08136950: .4byte gBattleMoves
-_08136954: .4byte 0x00003258
-_08136958: .4byte 0x00003128
-_0813695C: .4byte gMoveNames
-_08136960: .4byte 0x00003208
-_08136964: .4byte 0x000030b8
-_08136968: .4byte 0x000030f0
-_0813696C:
- ldr r1, _08136A4C @ =gUnknown_203B140
- mov r8, r1
- movs r0, 0xB
- adds r5, r7, 0
- muls r5, r0
- ldr r2, _08136A50 @ =0x000030b8
- adds r4, r5, r2
- ldr r0, [r1]
- adds r4, r0, r4
- ldr r6, _08136A54 @ =0x00003290
- adds r0, r6
- adds r1, r7, 0
- bl sub_8138C24
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r3, _08136A58 @ =0x000030f0
- adds r5, r3
- mov r4, r8
- ldr r0, [r4]
- adds r5, r0, r5
- ldr r2, _08136A5C @ =0x00003258
- adds r1, r0, r2
- add r1, r9
- ldrh r4, [r1]
- adds r0, r6
- movs r1, 0x15
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- adds r2, r7, 0
- bl CalculatePPWithBonus
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
-_081369D0:
- ldr r6, _08136A4C @ =gUnknown_203B140
- movs r0, 0xB
- adds r5, r7, 0
- muls r5, r0
- ldr r3, _08136A50 @ =0x000030b8
- adds r1, r5, r3
- ldr r0, [r6]
- adds r0, r1
- bl StringLength
- ldr r4, _08136A60 @ =gUnknown_203B144
- mov r8, r4
- ldr r2, [r4]
- adds r2, 0x12
- add r2, r9
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- movs r4, 0xC
- subs r1, r4, r1
- strh r1, [r2]
- ldr r0, _08136A58 @ =0x000030f0
- adds r5, r0
- ldr r0, [r6]
- adds r0, r5
- bl StringLength
- mov r1, r8
- ldr r2, [r1]
- adds r2, 0x1C
- add r2, r9
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- subs r4, r1
- strh r4, [r2]
- ldr r2, _08136A64 @ =gBattleMoves
- ldr r6, [r6]
- ldr r3, _08136A5C @ =0x00003258
- adds r0, r6, r3
- add r0, r9
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- ldrb r0, [r1, 0x1]
- cmp r0, 0x1
- bhi _08136A70
- lsls r4, r7, 2
- adds r0, r4, r7
- ldr r1, _08136A68 @ =0x0000316c
- adds r0, r1
- adds r0, r6, r0
- ldr r1, _08136A6C @ =gText_ThreeHyphens
- bl StringCopy
- b _08136A84
- .align 2, 0
-_08136A4C: .4byte gUnknown_203B140
-_08136A50: .4byte 0x000030b8
-_08136A54: .4byte 0x00003290
-_08136A58: .4byte 0x000030f0
-_08136A5C: .4byte 0x00003258
-_08136A60: .4byte gUnknown_203B144
-_08136A64: .4byte gBattleMoves
-_08136A68: .4byte 0x0000316c
-_08136A6C: .4byte gText_ThreeHyphens
-_08136A70:
- lsls r4, r7, 2
- adds r0, r4, r7
- ldr r2, _08136AB0 @ =0x0000316c
- adds r0, r2
- adds r0, r6, r0
- ldrb r1, [r1, 0x1]
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
-_08136A84:
- ldr r2, _08136AB4 @ =gBattleMoves
- ldr r0, _08136AB8 @ =gUnknown_203B140
- ldr r3, [r0]
- ldr r1, _08136ABC @ =0x00003258
- adds r0, r3, r1
- add r0, r9
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- ldrb r0, [r1, 0x3]
- cmp r0, 0
- bne _08136AC8
- adds r0, r4, r7
- ldr r2, _08136AC0 @ =0x00003188
- adds r0, r2
- adds r0, r3, r0
- ldr r1, _08136AC4 @ =gText_ThreeHyphens
- bl StringCopy
- b _08136ADA
- .align 2, 0
-_08136AB0: .4byte 0x0000316c
-_08136AB4: .4byte gBattleMoves
-_08136AB8: .4byte gUnknown_203B140
-_08136ABC: .4byte 0x00003258
-_08136AC0: .4byte 0x00003188
-_08136AC4: .4byte gText_ThreeHyphens
-_08136AC8:
- adds r0, r4, r7
- ldr r4, _08136AE8 @ =0x00003188
- adds r0, r4
- adds r0, r3, r0
- ldrb r1, [r1, 0x3]
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
-_08136ADA:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08136AE8: .4byte 0x00003188
- thumb_func_end sub_81367E8
-
- thumb_func_start sub_8136AEC
-sub_8136AEC: @ 8136AEC
- push {lr}
- ldr r0, _08136B08 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _08136B0C @ =0x0000327c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x8
- bhi _08136B86
- lsls r0, 2
- ldr r1, _08136B10 @ =_08136B14
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08136B08: .4byte gUnknown_203B140
-_08136B0C: .4byte 0x0000327c
-_08136B10: .4byte _08136B14
- .align 2, 0
-_08136B14:
- .4byte _08136B38
- .4byte _08136B42
- .4byte _08136B4C
- .4byte _08136B52
- .4byte _08136B5C
- .4byte _08136B66
- .4byte _08136B70
- .4byte _08136B7A
- .4byte _08136B80
-_08136B38:
- movs r0, 0xA0
- movs r1, 0xA0
- bl sub_813ADA8
- b _08136B8E
-_08136B42:
- movs r0, 0x96
- movs r1, 0x96
- bl sub_813ABAC
- b _08136B8E
-_08136B4C:
- bl sub_813AFFC
- b _08136B8E
-_08136B52:
- movs r0, 0x64
- movs r1, 0x64
- bl sub_8139F64
- b _08136B8E
-_08136B5C:
- movs r0, 0x6E
- movs r1, 0x6E
- bl sub_813A254
- b _08136B8E
-_08136B66:
- movs r0, 0x78
- movs r1, 0x78
- bl sub_813A45C
- b _08136B8E
-_08136B70:
- movs r0, 0x82
- movs r1, 0x82
- bl sub_813A874
- b _08136B8E
-_08136B7A:
- bl sub_8139CB0
- b _08136B8E
-_08136B80:
- bl sub_8139DBC
- b _08136B8E
-_08136B86:
- bl sub_813995C
- movs r0, 0x1
- b _08136B9E
-_08136B8E:
- ldr r0, _08136BA4 @ =gUnknown_203B140
- ldr r1, [r0]
- ldr r0, _08136BA8 @ =0x0000327c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0
-_08136B9E:
- pop {r1}
- bx r1
- .align 2, 0
-_08136BA4: .4byte gUnknown_203B140
-_08136BA8: .4byte 0x0000327c
- thumb_func_end sub_8136AEC
-
- thumb_func_start sub_8136BAC
-sub_8136BAC: @ 8136BAC
- push {lr}
- bl ResetSpriteData
- bl ResetPaletteFade
- bl FreeAllSpritePalettes
- bl ScanlineEffect_Stop
- pop {r0}
- bx r0
- thumb_func_end sub_8136BAC
-
- thumb_func_start sub_8136BC4
-sub_8136BC4: @ 8136BC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- movs r3, 0xC0
- lsls r3, 19
- movs r4, 0xC0
- lsls r4, 9
- add r0, sp, 0x4
- mov r8, r0
- mov r2, sp
- movs r6, 0
- ldr r1, _08136D38 @ =0x040000d4
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _08136D3C @ =0x81000800
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_08136BEA:
- strh r6, [r2]
- mov r0, sp
- 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 _08136BEA
- strh r6, [r2]
- mov r2, sp
- str r2, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r4, 1
- mov r2, r12
- orrs r0, r2
- 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, 0x4]
- ldr r2, _08136D38 @ =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
- mov r0, sp
- 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]
- movs r0, 0
- movs r1, 0
- bl SetGpuReg
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, _08136D40 @ =gUnknown_8463EFC
- movs r0, 0
- movs r2, 0x4
- bl InitBgsFromTemplates
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- bl DeactivateAllTextPrinters
- ldr r1, _08136D44 @ =0x00005040
- movs r0, 0
- bl SetGpuReg
- ldr r4, _08136D48 @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r2, _08136D4C @ =0x00003214
- adds r0, r2
- ldrb r0, [r0]
- bl sub_813B750
- movs r1, 0xF8
- lsls r1, 5
- movs r0, 0x48
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0xF
- bl SetGpuReg
- ldr r1, _08136D50 @ =0x00002087
- movs r0, 0x46
- bl SetGpuReg
- movs r1, 0xBC
- lsls r1, 2
- movs r0, 0x42
- bl SetGpuReg
- ldr r1, [r4]
- movs r0, 0x1
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- movs r0, 0x80
- lsls r0, 5
- adds r1, r0
- movs r0, 0x2
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- movs r2, 0x80
- lsls r2, 6
- adds r1, r2
- movs r0, 0x3
- bl SetBgTilemapBuffer
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- movs r0, 0x3
- bl ShowBg
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08136D38: .4byte 0x040000d4
-_08136D3C: .4byte 0x81000800
-_08136D40: .4byte gUnknown_8463EFC
-_08136D44: .4byte 0x00005040
-_08136D48: .4byte gUnknown_203B140
-_08136D4C: .4byte 0x00003214
-_08136D50: .4byte 0x00002087
- thumb_func_end sub_8136BC4
-
- thumb_func_start sub_8136D54
-sub_8136D54: @ 8136D54
- push {r4,lr}
- ldr r4, _08136D70 @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r1, _08136D74 @ =0x00003208
- adds r0, r1
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08136D7C
- ldr r0, _08136D78 @ =sub_81393D4
- b _08136D7E
- .align 2, 0
-_08136D70: .4byte gUnknown_203B140
-_08136D74: .4byte 0x00003208
-_08136D78: .4byte sub_81393D4
-_08136D7C:
- ldr r0, _08136D98 @ =sub_8134840
-_08136D7E:
- movs r1, 0
- bl CreateTask
- ldr r1, [r4]
- ldr r2, _08136D9C @ =0x00003018
- adds r1, r2
- strb r0, [r1]
- ldr r0, _08136DA0 @ =sub_8137EE8
- bl SetMainCallback2
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08136D98: .4byte sub_8134840
-_08136D9C: .4byte 0x00003018
-_08136DA0: .4byte sub_8137EE8
- thumb_func_end sub_8136D54
-
- thumb_func_start sub_8136DA4
-sub_8136DA4: @ 8136DA4
- push {r4-r6,lr}
- sub sp, 0xC
- adds r6, r0, 0
- ldr r5, _08136DE8 @ =gUnknown_203B140
- ldr r0, [r5]
- movs r4, 0xC0
- lsls r4, 6
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- ldr r1, _08136DEC @ =gUnknown_8463FA7
- str r1, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- str r6, [sp, 0x8]
- movs r1, 0x2
- movs r2, 0x4
- movs r3, 0x1
- bl AddTextPrinterParameterized3
- ldr r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- bl PutWindowTilemap
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08136DE8: .4byte gUnknown_203B140
-_08136DEC: .4byte gUnknown_8463FA7
- thumb_func_end sub_8136DA4
-
- thumb_func_start sub_8136DF0
-sub_8136DF0: @ 8136DF0
- push {r4-r6,lr}
- sub sp, 0xC
- adds r6, r0, 0
- ldr r5, _08136E44 @ =gUnknown_203B140
- ldr r0, [r5]
- ldr r4, _08136E48 @ =0x00003001
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0
- adds r1, r6, 0
- movs r2, 0
- bl GetStringWidth
- ldr r1, [r5]
- adds r1, r4
- ldrb r1, [r1]
- movs r2, 0x54
- subs r2, r0
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _08136E4C @ =gUnknown_8463FA7
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r1, 0
- movs r1, 0
- movs r3, 0
- bl AddTextPrinterParameterized3
- ldr r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- bl PutWindowTilemap
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08136E44: .4byte gUnknown_203B140
-_08136E48: .4byte 0x00003001
-_08136E4C: .4byte gUnknown_8463FA7
- thumb_func_end sub_8136DF0
-
- thumb_func_start sub_8136E50
-sub_8136E50: @ 8136E50
- push {r4-r7,lr}
- sub sp, 0xC
- ldr r6, _08136EEC @ =gUnknown_203B140
- ldr r0, [r6]
- ldr r7, _08136EF0 @ =0x00003002
- adds r0, r7
- ldrb r0, [r0]
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r2, [r6]
- movs r1, 0xC8
- lsls r1, 6
- adds r0, r2, r1
- ldrb r5, [r0]
- cmp r5, 0
- bne _08136F28
- ldr r3, _08136EF4 @ =0x00003214
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _08136E9A
- adds r0, r2, r7
- ldrb r0, [r0]
- ldr r1, _08136EF8 @ =gUnknown_8463FA7
- str r1, [sp]
- movs r1, 0x1
- negs r1, r1
- str r1, [sp, 0x4]
- ldr r3, _08136EFC @ =0x00003088
- adds r1, r2, r3
- str r1, [sp, 0x8]
- movs r1, 0x2
- movs r2, 0x4
- movs r3, 0x2
- bl AddTextPrinterParameterized3
-_08136E9A:
- ldr r2, [r6]
- adds r0, r2, r7
- ldrb r0, [r0]
- ldr r4, _08136EF8 @ =gUnknown_8463FA7
- str r4, [sp]
- movs r1, 0x1
- negs r1, r1
- str r1, [sp, 0x4]
- ldr r1, _08136F00 @ =0x00003034
- adds r2, r1
- str r2, [sp, 0x8]
- movs r1, 0x2
- movs r2, 0x28
- movs r3, 0x2
- bl AddTextPrinterParameterized3
- ldr r0, [r6]
- ldr r3, _08136F04 @ =0x00003290
- adds r0, r3
- bl GetMonGender
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFE
- bne _08136F0C
- ldr r2, [r6]
- adds r0, r2, r7
- ldrb r0, [r0]
- adds r1, r4, 0x6
- str r1, [sp]
- str r5, [sp, 0x4]
- ldr r1, _08136F08 @ =0x00003084
- adds r2, r1
- str r2, [sp, 0x8]
- movs r1, 0x2
- movs r2, 0x69
- movs r3, 0x2
- bl AddTextPrinterParameterized3
- b _08136F28
- .align 2, 0
-_08136EEC: .4byte gUnknown_203B140
-_08136EF0: .4byte 0x00003002
-_08136EF4: .4byte 0x00003214
-_08136EF8: .4byte gUnknown_8463FA7
-_08136EFC: .4byte 0x00003088
-_08136F00: .4byte 0x00003034
-_08136F04: .4byte 0x00003290
-_08136F08: .4byte 0x00003084
-_08136F0C:
- ldr r2, [r6]
- adds r0, r2, r7
- ldrb r0, [r0]
- adds r1, r4, 0x3
- str r1, [sp]
- str r5, [sp, 0x4]
- ldr r3, _08136F40 @ =0x00003084
- adds r2, r3
- str r2, [sp, 0x8]
- movs r1, 0x2
- movs r2, 0x69
- movs r3, 0x2
- bl AddTextPrinterParameterized3
-_08136F28:
- ldr r0, _08136F44 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _08136F48 @ =0x00003002
- adds r0, r1
- ldrb r0, [r0]
- bl PutWindowTilemap
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08136F40: .4byte 0x00003084
-_08136F44: .4byte gUnknown_203B140
-_08136F48: .4byte 0x00003002
- thumb_func_end sub_8136E50
-
- thumb_func_start sub_8136F4C
-sub_8136F4C: @ 8136F4C
- push {r4,lr}
- ldr r4, _08136F74 @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r1, _08136F78 @ =0x00003003
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r0, [r4]
- ldr r1, _08136F7C @ =0x00003214
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08136F90
- cmp r0, 0x1
- bgt _08136F80
- cmp r0, 0
- beq _08136F8A
- b _08136F94
- .align 2, 0
-_08136F74: .4byte gUnknown_203B140
-_08136F78: .4byte 0x00003003
-_08136F7C: .4byte 0x00003214
-_08136F80:
- cmp r0, 0x3
- bgt _08136F94
- bl sub_8137270
- b _08136F94
-_08136F8A:
- bl sub_8136FB0
- b _08136F94
-_08136F90:
- bl sub_81370EC
-_08136F94:
- ldr r0, _08136FA8 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _08136FAC @ =0x00003003
- adds r0, r1
- ldrb r0, [r0]
- bl PutWindowTilemap
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08136FA8: .4byte gUnknown_203B140
-_08136FAC: .4byte 0x00003003
- thumb_func_end sub_8136F4C
-
- thumb_func_start sub_8136FB0
-sub_8136FB0: @ 8136FB0
- push {r4-r7,lr}
- sub sp, 0xC
- ldr r6, _08137060 @ =gUnknown_203B140
- ldr r1, [r6]
- ldr r2, _08137064 @ =0x00003003
- adds r0, r1, r2
- ldrb r0, [r0]
- ldr r5, _08137068 @ =gUnknown_8463FA4
- str r5, [sp]
- movs r4, 0x1
- negs r4, r4
- str r4, [sp, 0x4]
- ldr r7, _0813706C @ =0x00003028
- adds r1, r7
- str r1, [sp, 0x8]
- movs r1, 0x2
- movs r2, 0x2F
- movs r3, 0x13
- bl AddTextPrinterParameterized3
- ldr r3, [r6]
- movs r1, 0xC8
- lsls r1, 6
- adds r0, r3, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08137074
- ldr r2, _08137064 @ =0x00003003
- adds r0, r3, r2
- ldrb r0, [r0]
- ldr r1, _08137070 @ =gUnknown_203B144
- ldr r1, [r1]
- ldrb r2, [r1]
- adds r2, 0x2F
- lsls r2, 24
- lsrs r2, 24
- str r5, [sp]
- str r4, [sp, 0x4]
- adds r7, 0x3C
- adds r1, r3, r7
- str r1, [sp, 0x8]
- movs r1, 0x2
- movs r3, 0x5
- bl AddTextPrinterParameterized3
- ldr r1, [r6]
- ldr r2, _08137064 @ =0x00003003
- adds r0, r1, r2
- ldrb r0, [r0]
- str r5, [sp]
- str r4, [sp, 0x4]
- subs r7, 0x24
- adds r1, r7
- str r1, [sp, 0x8]
- movs r1, 0x2
- movs r2, 0x2F
- movs r3, 0x31
- bl AddTextPrinterParameterized3
- ldr r1, [r6]
- ldr r2, _08137064 @ =0x00003003
- adds r0, r1, r2
- ldrb r0, [r0]
- str r5, [sp]
- str r4, [sp, 0x4]
- adds r7, 0x2C
- adds r1, r7
- str r1, [sp, 0x8]
- movs r1, 0x2
- movs r2, 0x2F
- movs r3, 0x40
- bl AddTextPrinterParameterized3
- ldr r1, [r6]
- ldr r2, _08137064 @ =0x00003003
- adds r0, r1, r2
- ldrb r0, [r0]
- str r5, [sp]
- str r4, [sp, 0x4]
- adds r7, 0x8
- adds r1, r7
- str r1, [sp, 0x8]
- movs r1, 0x2
- movs r2, 0x2F
- movs r3, 0x4F
- bl AddTextPrinterParameterized3
- b _081370CA
- .align 2, 0
-_08137060: .4byte gUnknown_203B140
-_08137064: .4byte 0x00003003
-_08137068: .4byte gUnknown_8463FA4
-_0813706C: .4byte 0x00003028
-_08137070: .4byte gUnknown_203B144
-_08137074:
- ldr r1, _081370D4 @ =0x00003290
- adds r0, r3, r1
- movs r1, 0x20
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0x3
- cmp r0, 0x5
- bls _08137096
- movs r3, 0x2
- cmp r0, 0xA
- bls _08137096
- movs r3, 0
- cmp r0, 0x28
- bhi _08137096
- movs r3, 0x1
-_08137096:
- ldr r0, _081370D8 @ =gUnknown_203B140
- ldr r1, [r0]
- ldr r2, _081370DC @ =0x00003204
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _081370A6
- movs r3, 0
-_081370A6:
- ldr r7, _081370E0 @ =0x00003003
- adds r0, r1, r7
- ldrb r0, [r0]
- ldr r1, _081370E4 @ =gUnknown_8463FA4
- str r1, [sp]
- movs r1, 0x1
- negs r1, r1
- str r1, [sp, 0x4]
- ldr r2, _081370E8 @ =gUnknown_8463EC4
- lsls r1, r3, 2
- adds r1, r2
- ldr r1, [r1]
- str r1, [sp, 0x8]
- movs r1, 0x2
- movs r2, 0x7
- movs r3, 0x2D
- bl AddTextPrinterParameterized3
-_081370CA:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081370D4: .4byte 0x00003290
-_081370D8: .4byte gUnknown_203B140
-_081370DC: .4byte 0x00003204
-_081370E0: .4byte 0x00003003
-_081370E4: .4byte gUnknown_8463FA4
-_081370E8: .4byte gUnknown_8463EC4
- thumb_func_end sub_8136FB0
-
- thumb_func_start sub_81370EC
-sub_81370EC: @ 81370EC
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0xC
- ldr r0, _08137240 @ =gUnknown_203B140
- mov r9, r0
- ldr r3, [r0]
- ldr r4, _08137244 @ =0x00003003
- adds r0, r3, r4
- ldrb r0, [r0]
- ldr r1, _08137248 @ =gUnknown_203B144
- mov r8, r1
- ldr r1, [r1]
- ldrb r2, [r1, 0x2]
- adds r2, 0xE
- lsls r2, 24
- lsrs r2, 24
- ldr r6, _0813724C @ =gUnknown_8463FA4
- str r6, [sp]
- movs r5, 0x1
- negs r5, r5
- str r5, [sp, 0x4]
- ldr r1, _08137250 @ =0x00003090
- adds r3, r1
- str r3, [sp, 0x8]
- movs r1, 0x2
- movs r3, 0x4
- bl AddTextPrinterParameterized3
- mov r2, r9
- ldr r3, [r2]
- adds r0, r3, r4
- ldrb r0, [r0]
- mov r2, r8
- ldr r1, [r2]
- ldrb r2, [r1, 0x4]
- adds r2, 0x32
- lsls r2, 24
- lsrs r2, 24
- str r6, [sp]
- str r5, [sp, 0x4]
- ldr r1, _08137254 @ =0x0000309c
- adds r3, r1
- str r3, [sp, 0x8]
- movs r1, 0x2
- movs r3, 0x16
- bl AddTextPrinterParameterized3
- mov r2, r9
- ldr r3, [r2]
- adds r0, r3, r4
- ldrb r0, [r0]
- mov r2, r8
- ldr r1, [r2]
- ldrb r2, [r1, 0x6]
- adds r2, 0x32
- lsls r2, 24
- lsrs r2, 24
- str r6, [sp]
- str r5, [sp, 0x4]
- ldr r1, _08137258 @ =0x000030a1
- adds r3, r1
- str r3, [sp, 0x8]
- movs r1, 0x2
- movs r3, 0x23
- bl AddTextPrinterParameterized3
- mov r2, r9
- ldr r3, [r2]
- adds r0, r3, r4
- ldrb r0, [r0]
- mov r2, r8
- ldr r1, [r2]
- ldrb r2, [r1, 0x8]
- adds r2, 0x32
- lsls r2, 24
- lsrs r2, 24
- str r6, [sp]
- str r5, [sp, 0x4]
- ldr r1, _0813725C @ =0x000030a6
- adds r3, r1
- str r3, [sp, 0x8]
- movs r1, 0x2
- movs r3, 0x30
- bl AddTextPrinterParameterized3
- mov r2, r9
- ldr r3, [r2]
- adds r0, r3, r4
- ldrb r0, [r0]
- mov r2, r8
- ldr r1, [r2]
- ldrb r2, [r1, 0xA]
- adds r2, 0x32
- lsls r2, 24
- lsrs r2, 24
- str r6, [sp]
- str r5, [sp, 0x4]
- ldr r1, _08137260 @ =0x000030ab
- adds r3, r1
- str r3, [sp, 0x8]
- movs r1, 0x2
- movs r3, 0x3D
- bl AddTextPrinterParameterized3
- mov r2, r9
- ldr r3, [r2]
- adds r0, r3, r4
- ldrb r0, [r0]
- mov r2, r8
- ldr r1, [r2]
- ldrb r2, [r1, 0xC]
- adds r2, 0x32
- lsls r2, 24
- lsrs r2, 24
- str r6, [sp]
- str r5, [sp, 0x4]
- ldr r1, _08137264 @ =0x000030b0
- adds r3, r1
- str r3, [sp, 0x8]
- movs r1, 0x2
- movs r3, 0x4A
- bl AddTextPrinterParameterized3
- mov r2, r9
- ldr r3, [r2]
- adds r0, r3, r4
- ldrb r0, [r0]
- mov r2, r8
- ldr r1, [r2]
- ldrb r2, [r1, 0xE]
- adds r2, 0xF
- lsls r2, 24
- lsrs r2, 24
- str r6, [sp]
- str r5, [sp, 0x4]
- ldr r1, _08137268 @ =0x000031a4
- adds r3, r1
- str r3, [sp, 0x8]
- movs r1, 0x2
- movs r3, 0x57
- bl AddTextPrinterParameterized3
- mov r2, r9
- ldr r3, [r2]
- adds r4, r3, r4
- ldrb r0, [r4]
- mov r2, r8
- ldr r1, [r2]
- ldrb r2, [r1, 0x10]
- adds r2, 0xF
- lsls r2, 24
- lsrs r2, 24
- str r6, [sp]
- str r5, [sp, 0x4]
- ldr r1, _0813726C @ =0x000031b0
- adds r3, r1
- str r3, [sp, 0x8]
- movs r1, 0x2
- movs r3, 0x64
- bl AddTextPrinterParameterized3
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08137240: .4byte gUnknown_203B140
-_08137244: .4byte 0x00003003
-_08137248: .4byte gUnknown_203B144
-_0813724C: .4byte gUnknown_8463FA4
-_08137250: .4byte 0x00003090
-_08137254: .4byte 0x0000309c
-_08137258: .4byte 0x000030a1
-_0813725C: .4byte 0x000030a6
-_08137260: .4byte 0x000030ab
-_08137264: .4byte 0x000030b0
-_08137268: .4byte 0x000031a4
-_0813726C: .4byte 0x000031b0
- thumb_func_end sub_81370EC
-
- thumb_func_start sub_8137270
-sub_8137270: @ 8137270
- push {r4,lr}
- sub sp, 0xC
- movs r4, 0
-_08137276:
- adds r0, r4, 0
- bl sub_81372E4
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _08137276
- ldr r0, _081372A8 @ =gUnknown_203B140
- ldr r1, [r0]
- ldr r2, _081372AC @ =0x00003214
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _081372CE
- subs r2, 0xC
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _081372B0
- movs r0, 0x4
- bl sub_81372E4
- b _081372CE
- .align 2, 0
-_081372A8: .4byte gUnknown_203B140
-_081372AC: .4byte 0x00003214
-_081372B0:
- ldr r2, _081372D8 @ =0x00003003
- adds r0, r1, r2
- ldrb r0, [r0]
- ldr r1, _081372DC @ =gUnknown_8463EF0
- str r1, [sp]
- movs r1, 0x1
- negs r1, r1
- str r1, [sp, 0x4]
- ldr r1, _081372E0 @ =gFameCheckerText_Cancel
- str r1, [sp, 0x8]
- movs r1, 0x2
- movs r2, 0x3
- movs r3, 0x75
- bl AddTextPrinterParameterized3
-_081372CE:
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081372D8: .4byte 0x00003003
-_081372DC: .4byte gUnknown_8463EF0
-_081372E0: .4byte gFameCheckerText_Cancel
- thumb_func_end sub_8137270
-
- thumb_func_start sub_81372E4
-sub_81372E4: @ 81372E4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0
- mov r9, r0
- ldr r1, _0813739C @ =gUnknown_203B140
- mov r10, r1
- ldr r0, [r1]
- ldr r5, _081373A0 @ =0x00003290
- adds r0, r5
- adds r1, r7, 0
- bl sub_8138C24
- lsls r0, 24
- lsrs r6, r0, 24
- mov r2, r10
- ldr r0, [r2]
- lsls r3, r7, 1
- str r3, [sp, 0xC]
- ldr r2, _081373A4 @ =0x00003258
- adds r1, r0, r2
- adds r1, r3
- ldrh r4, [r1]
- adds r0, r5
- movs r1, 0x15
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- adds r2, r7, 0
- bl CalculatePPWithBonus
- lsls r0, 24
- mov r8, r0
- lsrs r5, r0, 24
- cmp r7, 0x4
- bne _0813733E
- adds r6, r5, 0
-_0813733E:
- mov r3, r10
- ldr r2, [r3]
- ldr r1, _081373A8 @ =0x00003003
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r4, r7, 3
- subs r3, r4, r7
- lsls r3, 26
- movs r1, 0xA0
- lsls r1, 19
- adds r3, r1
- lsrs r3, 24
- mov r12, r3
- ldr r1, _081373AC @ =gUnknown_8463EF0
- str r1, [sp]
- movs r1, 0x1
- negs r1, r1
- str r1, [sp, 0x4]
- movs r1, 0xD
- muls r1, r7
- ldr r3, _081373B0 @ =0x00003128
- adds r1, r3
- adds r2, r1
- str r2, [sp, 0x8]
- movs r1, 0x2
- movs r2, 0x3
- mov r3, r12
- bl AddTextPrinterParameterized3
- mov r1, r10
- ldr r0, [r1]
- ldr r2, _081373A4 @ =0x00003258
- adds r0, r2
- ldr r3, [sp, 0xC]
- adds r0, r3
- ldrh r0, [r0]
- adds r1, r4, 0
- cmp r0, 0
- beq _081373EA
- cmp r6, r5
- beq _081373EA
- cmp r6, 0
- bne _081373B4
- movs r5, 0x3
- mov r9, r5
- b _081373EA
- .align 2, 0
-_0813739C: .4byte gUnknown_203B140
-_081373A0: .4byte 0x00003290
-_081373A4: .4byte 0x00003258
-_081373A8: .4byte 0x00003003
-_081373AC: .4byte gUnknown_8463EF0
-_081373B0: .4byte 0x00003128
-_081373B4:
- cmp r5, 0x3
- bne _081373C6
- cmp r6, 0x2
- beq _081373D8
- cmp r6, 0x1
- bne _081373EA
- movs r2, 0x1
- mov r9, r2
- b _081373EA
-_081373C6:
- cmp r5, 0x2
- bne _081373D0
- cmp r6, 0x1
- bne _081373EA
- b _081373E6
-_081373D0:
- mov r5, r8
- lsrs r0, r5, 26
- cmp r6, r0
- bhi _081373DE
-_081373D8:
- movs r0, 0x2
- mov r9, r0
- b _081373EA
-_081373DE:
- mov r2, r8
- lsrs r0, r2, 25
- cmp r6, r0
- bhi _081373EA
-_081373E6:
- movs r3, 0x1
- mov r9, r3
-_081373EA:
- ldr r5, _081374C4 @ =gUnknown_203B140
- mov r10, r5
- ldr r0, [r5]
- ldr r4, _081374C8 @ =0x00003003
- adds r0, r4
- ldrb r0, [r0]
- subs r1, r7
- lsls r1, 26
- movs r2, 0x80
- lsls r2, 21
- adds r1, r2
- lsrs r1, 24
- mov r8, r1
- mov r3, r9
- lsls r1, r3, 1
- add r1, r9
- ldr r2, _081374CC @ =gUnknown_8463EF0
- adds r6, r1, r2
- str r6, [sp]
- movs r5, 0x1
- negs r5, r5
- mov r9, r5
- str r5, [sp, 0x4]
- ldr r1, _081374D0 @ =gUnknown_8416238
- str r1, [sp, 0x8]
- movs r1, 0x2
- movs r2, 0x24
- mov r3, r8
- bl AddTextPrinterParameterized3
- mov r0, r10
- ldr r3, [r0]
- adds r4, r3, r4
- ldrb r0, [r4]
- ldr r2, _081374D4 @ =gUnknown_203B144
- ldr r1, [r2]
- lsls r5, r7, 1
- adds r1, 0x12
- adds r1, r5
- ldrb r2, [r1]
- adds r2, 0x2E
- lsls r2, 24
- lsrs r2, 24
- str r6, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- movs r1, 0xB
- adds r4, r7, 0
- muls r4, r1
- ldr r7, _081374D8 @ =0x000030b8
- adds r1, r4, r7
- adds r3, r1
- str r3, [sp, 0x8]
- movs r1, 0x2
- mov r3, r8
- bl AddTextPrinterParameterized3
- mov r0, r10
- ldr r1, [r0]
- ldr r2, _081374DC @ =0x00003258
- adds r0, r1, r2
- adds r0, r5
- ldrh r0, [r0]
- cmp r0, 0
- beq _081374B4
- ldr r3, _081374C8 @ =0x00003003
- adds r0, r1, r3
- ldrb r0, [r0]
- str r6, [sp]
- mov r7, r9
- str r7, [sp, 0x4]
- ldr r1, _081374E0 @ =gText_Slash
- str r1, [sp, 0x8]
- movs r1, 0x2
- movs r2, 0x3A
- mov r3, r8
- bl AddTextPrinterParameterized3
- mov r0, r10
- ldr r3, [r0]
- ldr r1, _081374C8 @ =0x00003003
- adds r0, r3, r1
- ldrb r0, [r0]
- ldr r2, _081374D4 @ =gUnknown_203B144
- ldr r1, [r2]
- adds r1, 0x1C
- adds r1, r5
- ldrb r2, [r1]
- adds r2, 0x40
- lsls r2, 24
- lsrs r2, 24
- str r6, [sp]
- str r7, [sp, 0x4]
- ldr r5, _081374E4 @ =0x000030f0
- adds r1, r4, r5
- adds r3, r1
- str r3, [sp, 0x8]
- movs r1, 0x2
- mov r3, r8
- bl AddTextPrinterParameterized3
-_081374B4:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081374C4: .4byte gUnknown_203B140
-_081374C8: .4byte 0x00003003
-_081374CC: .4byte gUnknown_8463EF0
-_081374D0: .4byte gUnknown_8416238
-_081374D4: .4byte gUnknown_203B144
-_081374D8: .4byte 0x000030b8
-_081374DC: .4byte 0x00003258
-_081374E0: .4byte gText_Slash
-_081374E4: .4byte 0x000030f0
- thumb_func_end sub_81372E4
-
- thumb_func_start sub_81374E8
-sub_81374E8: @ 81374E8
- push {r4,lr}
- ldr r4, _08137510 @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r1, _08137514 @ =0x00003004
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r0, [r4]
- ldr r1, _08137518 @ =0x00003214
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0813752C
- cmp r0, 0x1
- bgt _0813751C
- cmp r0, 0
- beq _08137526
- b _08137536
- .align 2, 0
-_08137510: .4byte gUnknown_203B140
-_08137514: .4byte 0x00003004
-_08137518: .4byte 0x00003214
-_0813751C:
- cmp r0, 0x2
- beq _08137536
- cmp r0, 0x3
- beq _08137532
- b _08137536
-_08137526:
- bl sub_8137554
- b _08137536
-_0813752C:
- bl sub_8137A90
- b _08137536
-_08137532:
- bl sub_8137AF8
-_08137536:
- ldr r0, _0813754C @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _08137550 @ =0x00003004
- adds r0, r1
- ldrb r0, [r0]
- bl PutWindowTilemap
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813754C: .4byte gUnknown_203B140
-_08137550: .4byte 0x00003004
- thumb_func_end sub_81374E8
-
- thumb_func_start sub_8137554
-sub_8137554: @ 8137554
- push {lr}
- ldr r0, _0813756C @ =gUnknown_203B140
- ldr r0, [r0]
- movs r1, 0xC8
- lsls r1, 6
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08137570
- bl sub_8137944
- b _08137574
- .align 2, 0
-_0813756C: .4byte gUnknown_203B140
-_08137570:
- bl sub_8137970
-_08137574:
- pop {r0}
- bx r0
- thumb_func_end sub_8137554
-
- thumb_func_start sub_8137578
-sub_8137578: @ 8137578
- push {r4-r7,lr}
- sub sp, 0xD4
- bl DynamicPlaceholderTextUtil_Reset
- ldr r7, _081375E8 @ =gUnknown_203B140
- ldr r0, [r7]
- ldr r4, _081375EC @ =0x00003290
- adds r0, r4
- bl GetNature
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _081375F0 @ =gNatureNamePointers
- lsls r0, r6, 2
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- ldr r0, [r7]
- adds r0, r4
- movs r1, 0x24
- bl GetMonData
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _081375B2
- movs r1, 0x5
-_081375B2:
- add r0, sp, 0x14
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- movs r0, 0x1
- add r1, sp, 0x14
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- ldr r0, [r7]
- adds r0, r4
- movs r1, 0x23
- bl GetMonData
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_813B838
- cmp r0, 0x1
- bne _081375F4
- add r4, sp, 0x1C
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetMapNameGeneric_
- b _08137626
- .align 2, 0
-_081375E8: .4byte gUnknown_203B140
-_081375EC: .4byte 0x00003290
-_081375F0: .4byte gNatureNamePointers
-_081375F4:
- ldr r0, [r7]
- ldr r1, _08137614 @ =0x00003024
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0x1
- beq _08137608
- bl sub_8138B4C
- cmp r0, 0x1
- bne _0813761C
-_08137608:
- add r4, sp, 0x1C
- ldr r1, _08137618 @ =gUnknown_8419C13
- adds r0, r4, 0
- bl StringCopy
- b _08137626
- .align 2, 0
-_08137614: .4byte 0x00003024
-_08137618: .4byte gUnknown_8419C13
-_0813761C:
- add r4, sp, 0x1C
- ldr r1, _08137660 @ =gUnknown_8419C0B
- adds r0, r4, 0
- bl StringCopy
-_08137626:
- adds r1, r4, 0
- movs r0, 0x2
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- ldr r4, _08137664 @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r1, _08137668 @ =0x00003290
- adds r0, r1
- movs r1, 0x24
- bl GetMonData
- cmp r0, 0
- bne _0813769C
- ldr r0, [r4]
- ldr r1, _08137668 @ =0x00003290
- adds r0, r1
- movs r1, 0x50
- bl GetMonData
- cmp r0, 0x1
- bne _0813767C
- adds r0, r6, 0
- bl sub_813B7E0
- cmp r0, 0
- beq _08137670
- add r4, sp, 0x3C
- ldr r1, _0813766C @ =gUnknown_841996D
- b _081376CE
- .align 2, 0
-_08137660: .4byte gUnknown_8419C0B
-_08137664: .4byte gUnknown_203B140
-_08137668: .4byte 0x00003290
-_0813766C: .4byte gUnknown_841996D
-_08137670:
- add r4, sp, 0x3C
- ldr r1, _08137678 @ =gUnknown_841992F
- b _081376CE
- .align 2, 0
-_08137678: .4byte gUnknown_841992F
-_0813767C:
- adds r0, r6, 0
- bl sub_813B7E0
- cmp r0, 0
- beq _08137690
- add r4, sp, 0x3C
- ldr r1, _0813768C @ =gUnknown_84198D5
- b _081376CE
- .align 2, 0
-_0813768C: .4byte gUnknown_84198D5
-_08137690:
- add r4, sp, 0x3C
- ldr r1, _08137698 @ =gUnknown_84198B4
- b _081376CE
- .align 2, 0
-_08137698: .4byte gUnknown_84198B4
-_0813769C:
- cmp r5, 0xFF
- bne _081376C0
- adds r0, r6, 0
- bl sub_813B7E0
- cmp r0, 0
- beq _081376B4
- add r4, sp, 0x3C
- ldr r1, _081376B0 @ =gUnknown_84197ED
- b _081376CE
- .align 2, 0
-_081376B0: .4byte gUnknown_84197ED
-_081376B4:
- add r4, sp, 0x3C
- ldr r1, _081376BC @ =gUnknown_84197B8
- b _081376CE
- .align 2, 0
-_081376BC: .4byte gUnknown_84197B8
-_081376C0:
- adds r0, r6, 0
- bl sub_813B7E0
- cmp r0, 0
- beq _081376DC
- add r4, sp, 0x3C
- ldr r1, _081376D8 @ =gUnknown_8419841
-_081376CE:
- adds r0, r4, 0
- bl DynamicPlaceholderTextUtil_ExpandPlaceholders
- b _081376E6
- .align 2, 0
-_081376D8: .4byte gUnknown_8419841
-_081376DC:
- add r4, sp, 0x3C
- ldr r1, _08137714 @ =gUnknown_8419822
- adds r0, r4, 0
- bl DynamicPlaceholderTextUtil_ExpandPlaceholders
-_081376E6:
- ldr r0, _08137718 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _0813771C @ =0x00003004
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- ldr r1, _08137720 @ =gUnknown_8463FA4
- str r1, [sp, 0x8]
- movs r1, 0x1
- negs r1, r1
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x3
- bl AddTextPrinterParameterized4
- add sp, 0xD4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08137714: .4byte gUnknown_8419822
-_08137718: .4byte gUnknown_203B140
-_0813771C: .4byte 0x00003004
-_08137720: .4byte gUnknown_8463FA4
- thumb_func_end sub_8137578
-
- thumb_func_start sub_8137724
-sub_8137724: @ 8137724
- push {r4-r6,lr}
- sub sp, 0xD4
- bl DynamicPlaceholderTextUtil_Reset
- ldr r5, _081377A0 @ =gUnknown_203B140
- ldr r0, [r5]
- ldr r4, _081377A4 @ =0x00003290
- adds r0, r4
- bl GetNature
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _081377A8 @ =gNatureNamePointers
- lsls r0, r6, 2
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- ldr r0, [r5]
- adds r0, r4
- movs r1, 0x24
- bl GetMonData
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _0813775E
- movs r1, 0x5
-_0813775E:
- add r0, sp, 0x14
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- movs r0, 0x1
- add r1, sp, 0x14
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- ldr r0, [r5]
- adds r0, r4
- movs r1, 0x23
- bl GetMonData
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_813B838
- cmp r0, 0
- beq _08137790
- bl sub_813B7F8
- cmp r0, 0
- bne _08137830
-_08137790:
- bl sub_8138B4C
- cmp r0, 0x1
- bne _081377AC
- bl sub_8137578
- b _0813792C
- .align 2, 0
-_081377A0: .4byte gUnknown_203B140
-_081377A4: .4byte 0x00003290
-_081377A8: .4byte gNatureNamePointers
-_081377AC:
- cmp r5, 0xFF
- bne _081377D0
- adds r0, r6, 0
- bl sub_813B7E0
- cmp r0, 0
- beq _081377C4
- add r4, sp, 0x3C
- ldr r1, _081377C0 @ =gUnknown_84197ED
- b _081377DE
- .align 2, 0
-_081377C0: .4byte gUnknown_84197ED
-_081377C4:
- add r4, sp, 0x3C
- ldr r1, _081377CC @ =gUnknown_84197B8
- b _081377DE
- .align 2, 0
-_081377CC: .4byte gUnknown_84197B8
-_081377D0:
- adds r0, r6, 0
- bl sub_813B7E0
- cmp r0, 0
- beq _081377EC
- add r4, sp, 0x3C
- ldr r1, _081377E8 @ =gUnknown_841979D
-_081377DE:
- adds r0, r4, 0
- bl DynamicPlaceholderTextUtil_ExpandPlaceholders
- b _081377F6
- .align 2, 0
-_081377E8: .4byte gUnknown_841979D
-_081377EC:
- add r4, sp, 0x3C
- ldr r1, _08137820 @ =gUnknown_8419782
- adds r0, r4, 0
- bl DynamicPlaceholderTextUtil_ExpandPlaceholders
-_081377F6:
- ldr r0, _08137824 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _08137828 @ =0x00003004
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- ldr r1, _0813782C @ =gUnknown_8463FA4
- str r1, [sp, 0x8]
- movs r1, 0x1
- negs r1, r1
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x3
- bl AddTextPrinterParameterized4
- b _0813792C
- .align 2, 0
-_08137820: .4byte gUnknown_8419782
-_08137824: .4byte gUnknown_203B140
-_08137828: .4byte 0x00003004
-_0813782C: .4byte gUnknown_8463FA4
-_08137830:
- adds r0, r5, 0
- bl sub_813B838
- cmp r0, 0x1
- bne _08137846
- add r4, sp, 0x1C
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetMapNameGeneric_
- b _08137850
-_08137846:
- add r4, sp, 0x1C
- ldr r1, _0813788C @ =gUnknown_8419C0B
- adds r0, r4, 0
- bl StringCopy
-_08137850:
- adds r1, r4, 0
- movs r0, 0x2
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- ldr r4, _08137890 @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r1, _08137894 @ =0x00003290
- adds r0, r1
- movs r1, 0x24
- bl GetMonData
- cmp r0, 0
- bne _081378BC
- ldr r0, [r4]
- ldr r1, _08137894 @ =0x00003290
- adds r0, r1
- movs r1, 0x50
- bl GetMonData
- cmp r0, 0x1
- bne _081378A8
- adds r0, r6, 0
- bl sub_813B7E0
- cmp r0, 0
- beq _0813789C
- add r4, sp, 0x3C
- ldr r1, _08137898 @ =gUnknown_84199F4
- b _081378EE
- .align 2, 0
-_0813788C: .4byte gUnknown_8419C0B
-_08137890: .4byte gUnknown_203B140
-_08137894: .4byte 0x00003290
-_08137898: .4byte gUnknown_84199F4
-_0813789C:
- add r4, sp, 0x3C
- ldr r1, _081378A4 @ =gUnknown_84199AB
- b _081378EE
- .align 2, 0
-_081378A4: .4byte gUnknown_84199AB
-_081378A8:
- adds r0, r6, 0
- bl sub_813B7E0
- cmp r0, 0
- bne _081378EA
- add r4, sp, 0x3C
- ldr r1, _081378B8 @ =gUnknown_8419860
- b _081378EE
- .align 2, 0
-_081378B8: .4byte gUnknown_8419860
-_081378BC:
- cmp r5, 0xFF
- bne _081378E0
- adds r0, r6, 0
- bl sub_813B7E0
- cmp r0, 0
- beq _081378D4
- add r4, sp, 0x3C
- ldr r1, _081378D0 @ =gUnknown_84197ED
- b _081378EE
- .align 2, 0
-_081378D0: .4byte gUnknown_84197ED
-_081378D4:
- add r4, sp, 0x3C
- ldr r1, _081378DC @ =gUnknown_84197B8
- b _081378EE
- .align 2, 0
-_081378DC: .4byte gUnknown_84197B8
-_081378E0:
- adds r0, r6, 0
- bl sub_813B7E0
- cmp r0, 0
- beq _081378FC
-_081378EA:
- add r4, sp, 0x3C
- ldr r1, _081378F8 @ =gUnknown_841988A
-_081378EE:
- adds r0, r4, 0
- bl DynamicPlaceholderTextUtil_ExpandPlaceholders
- b _08137906
- .align 2, 0
-_081378F8: .4byte gUnknown_841988A
-_081378FC:
- add r4, sp, 0x3C
- ldr r1, _08137934 @ =gUnknown_8419860
- adds r0, r4, 0
- bl DynamicPlaceholderTextUtil_ExpandPlaceholders
-_08137906:
- ldr r0, _08137938 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _0813793C @ =0x00003004
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- ldr r1, _08137940 @ =gUnknown_8463FA4
- str r1, [sp, 0x8]
- movs r1, 0x1
- negs r1, r1
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x3
- bl AddTextPrinterParameterized4
-_0813792C:
- add sp, 0xD4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08137934: .4byte gUnknown_8419860
-_08137938: .4byte gUnknown_203B140
-_0813793C: .4byte 0x00003004
-_08137940: .4byte gUnknown_8463FA4
- thumb_func_end sub_8137724
-
- thumb_func_start sub_8137944
-sub_8137944: @ 8137944
- push {lr}
- ldr r0, _08137960 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _08137964 @ =0x00003290
- adds r0, r1
- bl sub_813847C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08137968
- bl sub_8137578
- b _0813796C
- .align 2, 0
-_08137960: .4byte gUnknown_203B140
-_08137964: .4byte 0x00003290
-_08137968:
- bl sub_8137724
-_0813796C:
- pop {r0}
- bx r0
- thumb_func_end sub_8137944
-
- thumb_func_start sub_8137970
-sub_8137970: @ 8137970
- push {r4-r7,lr}
- sub sp, 0x14
- movs r5, 0
- ldr r7, _081379C4 @ =gUnknown_203B140
- ldr r0, [r7]
- ldr r6, _081379C8 @ =0x00003290
- adds r0, r6
- movs r1, 0x23
- bl GetMonData
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, [r7]
- ldr r1, _081379CC @ =0x000032f4
- adds r0, r2, r1
- ldr r1, [r0]
- ldr r0, _081379D0 @ =gEnemyParty
- cmp r1, r0
- beq _081379E4
- cmp r4, 0xFF
- beq _081379F4
- adds r0, r2, r6
- movs r1, 0x50
- bl GetMonData
- cmp r0, 0x1
- beq _081379F4
- ldr r0, [r7]
- adds r0, r6
- movs r1, 0x25
- bl GetMonData
- lsls r0, 24
- movs r2, 0xFC
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0x1
- bls _081379D4
- movs r5, 0x1
- b _081379DE
- .align 2, 0
-_081379C4: .4byte gUnknown_203B140
-_081379C8: .4byte 0x00003290
-_081379CC: .4byte 0x000032f4
-_081379D0: .4byte gEnemyParty
-_081379D4:
- cmp r4, 0xFD
- bne _081379DA
- movs r5, 0x2
-_081379DA:
- cmp r5, 0
- beq _08137A1E
-_081379DE:
- cmp r5, 0x2
- bne _08137A36
- b _08137A1E
-_081379E4:
- cmp r4, 0xFF
- beq _081379F4
- adds r0, r2, r6
- movs r1, 0x50
- bl GetMonData
- cmp r0, 0x1
- bne _081379F8
-_081379F4:
- movs r5, 0x4
- b _08137A36
-_081379F8:
- ldr r0, [r7]
- adds r0, r6
- movs r1, 0x25
- bl GetMonData
- lsls r0, 24
- movs r2, 0xFC
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0x1
- bls _08137A18
- cmp r4, 0xFD
- bne _08137A1E
- movs r5, 0x5
- b _08137A1E
-_08137A18:
- cmp r4, 0xFD
- bne _08137A1E
- movs r5, 0x2
-_08137A1E:
- ldr r0, _08137A78 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _08137A7C @ =0x00003290
- adds r0, r1
- bl sub_813847C
- lsls r0, 24
- cmp r0, 0
- bne _08137A36
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_08137A36:
- ldr r0, _08137A78 @ =gUnknown_203B140
- ldr r1, [r0]
- ldr r2, _08137A80 @ =0x00003204
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _08137A46
- movs r5, 0
-_08137A46:
- ldr r2, _08137A84 @ =0x00003004
- adds r0, r1, r2
- ldrb r0, [r0]
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- ldr r1, _08137A88 @ =gUnknown_8463FA4
- str r1, [sp, 0x8]
- movs r1, 0x1
- negs r1, r1
- str r1, [sp, 0xC]
- ldr r2, _08137A8C @ =gUnknown_8463ED4
- lsls r1, r5, 2
- adds r1, r2
- ldr r1, [r1]
- str r1, [sp, 0x10]
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x3
- bl AddTextPrinterParameterized4
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08137A78: .4byte gUnknown_203B140
-_08137A7C: .4byte 0x00003290
-_08137A80: .4byte 0x00003204
-_08137A84: .4byte 0x00003004
-_08137A88: .4byte gUnknown_8463FA4
-_08137A8C: .4byte gUnknown_8463ED4
- thumb_func_end sub_8137970
-
- thumb_func_start sub_8137A90
-sub_8137A90: @ 8137A90
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0xC
- ldr r0, _08137AE4 @ =gUnknown_203B140
- mov r8, r0
- ldr r0, [r0]
- ldr r6, _08137AE8 @ =0x00003004
- adds r0, r6
- ldrb r0, [r0]
- ldr r5, _08137AEC @ =gUnknown_8463FA4
- str r5, [sp]
- movs r4, 0x1
- negs r4, r4
- str r4, [sp, 0x4]
- ldr r1, _08137AF0 @ =gUnknown_8419C4D
- str r1, [sp, 0x8]
- movs r1, 0x2
- movs r2, 0x1A
- movs r3, 0x7
- bl AddTextPrinterParameterized3
- mov r1, r8
- ldr r0, [r1]
- adds r0, r6
- ldrb r0, [r0]
- str r5, [sp]
- str r4, [sp, 0x4]
- ldr r1, _08137AF4 @ =gUnknown_8419C59
- str r1, [sp, 0x8]
- movs r1, 0x2
- movs r2, 0x1A
- movs r3, 0x14
- bl AddTextPrinterParameterized3
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08137AE4: .4byte gUnknown_203B140
-_08137AE8: .4byte 0x00003004
-_08137AEC: .4byte gUnknown_8463FA4
-_08137AF0: .4byte gUnknown_8419C4D
-_08137AF4: .4byte gUnknown_8419C59
- thumb_func_end sub_8137A90
-
- thumb_func_start sub_8137AF8
-sub_8137AF8: @ 8137AF8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- ldr r0, _08137BAC @ =gUnknown_203B16D
- mov r8, r0
- ldrb r1, [r0]
- cmp r1, 0x4
- bhi _08137B9E
- ldr r7, _08137BB0 @ =gUnknown_203B140
- ldr r3, [r7]
- ldr r2, _08137BB4 @ =0x00003208
- adds r0, r3, r2
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _08137B1C
- cmp r1, 0x4
- beq _08137B9E
-_08137B1C:
- ldr r4, _08137BB8 @ =0x00003004
- adds r0, r3, r4
- ldrb r0, [r0]
- ldr r6, _08137BBC @ =gUnknown_8463FA4
- str r6, [sp]
- movs r5, 0x1
- negs r5, r5
- str r5, [sp, 0x4]
- mov r1, r8
- ldrb r2, [r1]
- lsls r1, r2, 2
- adds r1, r2
- ldr r2, _08137BC0 @ =0x0000316c
- adds r1, r2
- adds r1, r3, r1
- str r1, [sp, 0x8]
- movs r1, 0x2
- movs r2, 0x39
- movs r3, 0x1
- bl AddTextPrinterParameterized3
- ldr r3, [r7]
- adds r0, r3, r4
- ldrb r0, [r0]
- str r6, [sp]
- str r5, [sp, 0x4]
- mov r1, r8
- ldrb r2, [r1]
- lsls r1, r2, 2
- adds r1, r2
- ldr r2, _08137BC4 @ =0x00003188
- adds r1, r2
- adds r3, r1
- str r3, [sp, 0x8]
- movs r1, 0x2
- movs r2, 0x39
- movs r3, 0xF
- bl AddTextPrinterParameterized3
- ldr r2, [r7]
- adds r4, r2, r4
- ldrb r0, [r4]
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- str r6, [sp, 0x8]
- str r5, [sp, 0xC]
- ldr r3, _08137BC8 @ =gMoveDescriptionPointers
- mov r4, r8
- ldrb r1, [r4]
- lsls r1, 1
- ldr r4, _08137BCC @ =0x00003258
- adds r2, r4
- adds r2, r1
- ldrh r1, [r2]
- subs r1, 0x1
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- str r1, [sp, 0x10]
- movs r1, 0x2
- movs r2, 0x7
- movs r3, 0x2A
- bl AddTextPrinterParameterized4
-_08137B9E:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08137BAC: .4byte gUnknown_203B16D
-_08137BB0: .4byte gUnknown_203B140
-_08137BB4: .4byte 0x00003208
-_08137BB8: .4byte 0x00003004
-_08137BBC: .4byte gUnknown_8463FA4
-_08137BC0: .4byte 0x0000316c
-_08137BC4: .4byte 0x00003188
-_08137BC8: .4byte gMoveDescriptionPointers
-_08137BCC: .4byte 0x00003258
- thumb_func_end sub_8137AF8
-
- thumb_func_start sub_8137BD0
-sub_8137BD0: @ 8137BD0
- push {lr}
- ldr r0, _08137BE8 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _08137BEC @ =0x00003214
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08137BF0
- bl sub_8137C18
- b _08137BFC
- .align 2, 0
-_08137BE8: .4byte gUnknown_203B140
-_08137BEC: .4byte 0x00003214
-_08137BF0:
- cmp r0, 0x1
- ble _08137BFC
- cmp r0, 0x3
- bgt _08137BFC
- bl sub_8137C90
-_08137BFC:
- ldr r0, _08137C10 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _08137C14 @ =0x00003005
- adds r0, r1
- ldrb r0, [r0]
- bl PutWindowTilemap
- pop {r0}
- bx r0
- .align 2, 0
-_08137C10: .4byte gUnknown_203B140
-_08137C14: .4byte 0x00003005
- thumb_func_end sub_8137BD0
-
- thumb_func_start sub_8137C18
-sub_8137C18: @ 8137C18
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0xC
- ldr r5, _08137C7C @ =gUnknown_203B140
- ldr r0, [r5]
- ldr r4, _08137C80 @ =0x00003005
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r1, [r5]
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, _08137C84 @ =gUnknown_8463FA4
- mov r8, r2
- str r2, [sp]
- movs r6, 0x1
- negs r6, r6
- str r6, [sp, 0x4]
- ldr r2, _08137C88 @ =0x000031bc
- adds r1, r2
- str r1, [sp, 0x8]
- movs r1, 0x2
- movs r2, 0x42
- movs r3, 0x1
- bl AddTextPrinterParameterized3
- ldr r1, [r5]
- adds r4, r1, r4
- ldrb r0, [r4]
- mov r2, r8
- str r2, [sp]
- str r6, [sp, 0x4]
- ldr r2, _08137C8C @ =0x000031cc
- adds r1, r2
- str r1, [sp, 0x8]
- movs r1, 0x2
- movs r2, 0x2
- movs r3, 0xF
- bl AddTextPrinterParameterized3
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08137C7C: .4byte gUnknown_203B140
-_08137C80: .4byte 0x00003005
-_08137C84: .4byte gUnknown_8463FA4
-_08137C88: .4byte 0x000031bc
-_08137C8C: .4byte 0x000031cc
- thumb_func_end sub_8137C18
-
- thumb_func_start sub_8137C90
-sub_8137C90: @ 8137C90
- push {r4,r5,lr}
- ldr r0, _08137D14 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _08137D18 @ =0x00003005
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r4, 0
-_08137CA4:
- ldr r5, _08137D14 @ =gUnknown_203B140
- ldr r1, [r5]
- lsls r2, r4, 1
- ldr r3, _08137D1C @ =0x00003258
- adds r0, r1, r3
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, 0
- beq _08137CDE
- ldr r3, _08137D18 @ =0x00003005
- adds r0, r1, r3
- ldrb r0, [r0]
- ldr r3, _08137D20 @ =0x0000324e
- adds r1, r3
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- lsls r3, r4, 3
- subs r3, r4
- lsls r3, 18
- movs r2, 0xA0
- lsls r2, 11
- adds r3, r2
- lsrs r3, 16
- movs r2, 0x3
- bl BlitMoveInfoIcon
-_08137CDE:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _08137CA4
- ldr r1, [r5]
- ldr r3, _08137D24 @ =0x00003208
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _08137D0E
- ldr r2, _08137D18 @ =0x00003005
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r3, 0x4E
- adds r1, r3
- ldrb r1, [r1]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0x3
- movs r3, 0x75
- bl BlitMoveInfoIcon
-_08137D0E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08137D14: .4byte gUnknown_203B140
-_08137D18: .4byte 0x00003005
-_08137D1C: .4byte 0x00003258
-_08137D20: .4byte 0x0000324e
-_08137D24: .4byte 0x00003208
- thumb_func_end sub_8137C90
-
- thumb_func_start sub_8137D28
-sub_8137D28: @ 8137D28
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bhi _08137E16
- lsls r0, 2
- ldr r1, _08137D3C @ =_08137D40
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08137D3C: .4byte _08137D40
- .align 2, 0
-_08137D40:
- .4byte _08137D58
- .4byte _08137D8C
- .4byte _08137DA4
- .4byte _08137DBC
- .4byte _08137E16
- .4byte _08137E04
-_08137D58:
- ldr r0, _08137D78 @ =gUnknown_8419C1D
- bl sub_8136DA4
- ldr r0, _08137D7C @ =gUnknown_203B140
- ldr r0, [r0]
- movs r1, 0xC8
- lsls r1, 6
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08137D84
- ldr r0, _08137D80 @ =gUnknown_8419C62
- bl sub_8136DF0
- b _08137DF2
- .align 2, 0
-_08137D78: .4byte gUnknown_8419C1D
-_08137D7C: .4byte gUnknown_203B140
-_08137D80: .4byte gUnknown_8419C62
-_08137D84:
- ldr r0, _08137D88 @ =gUnknown_8419C72
- b _08137DEE
- .align 2, 0
-_08137D88: .4byte gUnknown_8419C72
-_08137D8C:
- ldr r0, _08137D9C @ =gUnknown_8419C2A
- bl sub_8136DA4
- ldr r0, _08137DA0 @ =gUnknown_8419C7B
- bl sub_8136DF0
- b _08137DF2
- .align 2, 0
-_08137D9C: .4byte gUnknown_8419C2A
-_08137DA0: .4byte gUnknown_8419C7B
-_08137DA4:
- ldr r0, _08137DB4 @ =gUnknown_8419C39
- bl sub_8136DA4
- ldr r0, _08137DB8 @ =gUnknown_8419C82
- bl sub_8136DF0
- b _08137DF2
- .align 2, 0
-_08137DB4: .4byte gUnknown_8419C39
-_08137DB8: .4byte gUnknown_8419C82
-_08137DBC:
- ldr r0, _08137DDC @ =gUnknown_8419C39
- bl sub_8136DA4
- ldr r0, _08137DE0 @ =gMain
- ldr r1, _08137DE4 @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08137DEC
- ldr r0, _08137DE8 @ =gUnknown_8419C92
- bl sub_8136DF0
- b _08137DF2
- .align 2, 0
-_08137DDC: .4byte gUnknown_8419C39
-_08137DE0: .4byte gMain
-_08137DE4: .4byte 0x00000439
-_08137DE8: .4byte gUnknown_8419C92
-_08137DEC:
- ldr r0, _08137DFC @ =gUnknown_8419CA2
-_08137DEE:
- bl sub_8136DF0
-_08137DF2:
- ldr r0, _08137E00 @ =gUnknown_8419C45
- bl sub_8136E50
- b _08137E16
- .align 2, 0
-_08137DFC: .4byte gUnknown_8419CA2
-_08137E00: .4byte gUnknown_8419C45
-_08137E04:
- ldr r0, _08137E1C @ =gUnknown_8419C39
- bl sub_8136DA4
- ldr r0, _08137E20 @ =gUnknown_8419CA9
- bl sub_8136DF0
- ldr r0, _08137E24 @ =gUnknown_8419C45
- bl sub_8136E50
-_08137E16:
- pop {r0}
- bx r0
- .align 2, 0
-_08137E1C: .4byte gUnknown_8419C39
-_08137E20: .4byte gUnknown_8419CA9
-_08137E24: .4byte gUnknown_8419C45
- thumb_func_end sub_8137D28
-
- thumb_func_start sub_8137E28
-sub_8137E28: @ 8137E28
- push {r4,lr}
- ldr r4, _08137E58 @ =gUnknown_203B140
- ldr r0, [r4]
- movs r1, 0xC0
- lsls r1, 6
- adds r0, r1
- ldrb r0, [r0]
- bl PutWindowTilemap
- ldr r0, [r4]
- ldr r1, _08137E5C @ =0x00003001
- adds r0, r1
- ldrb r0, [r0]
- bl PutWindowTilemap
- ldr r0, [r4]
- ldr r1, _08137E60 @ =0x00003002
- adds r0, r1
- ldrb r0, [r0]
- bl PutWindowTilemap
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08137E58: .4byte gUnknown_203B140
-_08137E5C: .4byte 0x00003001
-_08137E60: .4byte 0x00003002
- thumb_func_end sub_8137E28
-
- thumb_func_start sub_8137E64
-sub_8137E64: @ 8137E64
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_813AF90
- bl FreeAllSpritePalettes
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08137E82
- bl StopCryAndClearCrySongs
-_08137E82:
- ldr r4, _08137ED4 @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r1, _08137ED8 @ =0x00003214
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8138414
- bl FreeAllWindowBuffers
- adds r0, r5, 0
- bl DestroyTask
- ldr r0, [r4]
- ldr r1, _08137EDC @ =0x000032f8
- adds r0, r1
- ldr r0, [r0]
- bl SetMainCallback2
- bl GetLastViewedMonIndex
- ldr r1, _08137EE0 @ =gLastViewedMonIndex
- strb r0, [r1]
- ldr r0, [r4]
- cmp r0, 0
- beq _08137EBC
- bl Free
- movs r0, 0
- str r0, [r4]
-_08137EBC:
- ldr r4, _08137EE4 @ =gUnknown_203B144
- ldr r0, [r4]
- cmp r0, 0
- beq _08137ECC
- bl Free
- movs r0, 0
- str r0, [r4]
-_08137ECC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08137ED4: .4byte gUnknown_203B140
-_08137ED8: .4byte 0x00003214
-_08137EDC: .4byte 0x000032f8
-_08137EE0: .4byte gLastViewedMonIndex
-_08137EE4: .4byte gUnknown_203B144
- thumb_func_end sub_8137E64
-
- thumb_func_start sub_8137EE8
-sub_8137EE8: @ 8137EE8
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_8137EE8
-
- thumb_func_start sub_8137F00
-sub_8137F00: @ 8137F00
- push {r4-r6,lr}
- movs r5, 0
- ldr r6, _08137F60 @ =gUnknown_203B160
-_08137F06:
- ldr r3, [r6]
- lsls r4, r5, 1
- adds r0, r3, 0
- adds r0, 0x2C
- adds r1, r0, r4
- ldrh r2, [r1]
- cmp r2, 0xEF
- bhi _08137F28
- adds r0, r2, 0
- adds r0, 0x3C
- strh r0, [r1]
- lsls r0, r5, 2
- adds r0, r3, r0
- ldr r1, [r0]
- adds r0, r2, 0
- adds r0, 0x78
- strh r0, [r1, 0x20]
-_08137F28:
- cmp r5, 0x8
- bhi _08137F4E
- ldr r0, _08137F64 @ =gUnknown_203B15C
- ldr r3, [r0]
- adds r0, r3, 0
- adds r0, 0x28
- adds r1, r0, r4
- ldrh r2, [r1]
- cmp r2, 0xEF
- bhi _08137F4E
- adds r0, r2, 0
- adds r0, 0x3C
- strh r0, [r1]
- lsls r0, r5, 2
- adds r0, r3, r0
- ldr r1, [r0]
- adds r0, r2, 0
- adds r0, 0x78
- strh r0, [r1, 0x20]
-_08137F4E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xA
- bls _08137F06
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08137F60: .4byte gUnknown_203B160
-_08137F64: .4byte gUnknown_203B15C
- thumb_func_end sub_8137F00
-
- thumb_func_start sub_8137F68
-sub_8137F68: @ 8137F68
- push {r4-r7,lr}
- movs r5, 0
- ldr r0, _08137FEC @ =gUnknown_203B160
- mov r12, r0
-_08137F70:
- mov r1, r12
- ldr r0, [r1]
- lsls r1, r5, 1
- adds r0, 0x2C
- adds r3, r0, r1
- ldrh r4, [r3]
- lsls r0, r5, 3
- adds r2, r0, 0
- adds r2, 0x9C
- adds r6, r1, 0
- adds r7, r0, 0
- cmp r4, r2
- ble _08137FAA
- adds r0, r4, 0
- subs r0, 0x3C
- strh r0, [r3]
- ldrh r0, [r3]
- cmp r0, r2
- bge _08137F98
- strh r2, [r3]
-_08137F98:
- mov r0, r12
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r0, r1, r0
- ldr r2, [r0]
- adds r1, 0x2C
- adds r1, r6
- ldrh r0, [r1]
- strh r0, [r2, 0x20]
-_08137FAA:
- cmp r5, 0x8
- bhi _08137FDC
- ldr r1, _08137FF0 @ =gUnknown_203B15C
- ldr r0, [r1]
- adds r0, 0x28
- adds r2, r0, r6
- ldrh r0, [r2]
- adds r3, r7, 0
- adds r3, 0xAC
- cmp r0, r3
- ble _08137FDC
- subs r0, 0x3C
- strh r0, [r2]
- ldrh r0, [r2]
- cmp r0, r3
- bge _08137FCC
- strh r3, [r2]
-_08137FCC:
- ldr r1, [r1]
- lsls r0, r5, 2
- adds r0, r1, r0
- ldr r2, [r0]
- adds r1, 0x28
- adds r1, r6
- ldrh r0, [r1]
- strh r0, [r2, 0x20]
-_08137FDC:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xA
- bls _08137F70
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08137FEC: .4byte gUnknown_203B160
-_08137FF0: .4byte gUnknown_203B15C
- thumb_func_end sub_8137F68
-
- thumb_func_start sub_8137FF4
-sub_8137FF4: @ 8137FF4
- push {r4,r5,lr}
- ldr r4, _08138038 @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r3, _0813803C @ =0x0000324c
- adds r1, r0, r3
- ldrh r2, [r1]
- movs r5, 0
- ldrsh r0, [r1, r5]
- cmp r0, 0xEF
- bgt _08138054
- adds r0, r2, 0
- adds r0, 0x3C
- strh r0, [r1]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF0
- ble _0813801A
- movs r0, 0xF0
- strh r0, [r1]
-_0813801A:
- ldr r1, [r4]
- ldr r2, _08138040 @ =0x00003238
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08138044
- adds r0, r1, r3
- ldrh r1, [r0]
- negs r1, r1
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x18
- bl SetGpuReg
- b _08138054
- .align 2, 0
-_08138038: .4byte gUnknown_203B140
-_0813803C: .4byte 0x0000324c
-_08138040: .4byte 0x00003238
-_08138044:
- adds r0, r1, r3
- ldrh r1, [r0]
- negs r1, r1
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x14
- bl SetGpuReg
-_08138054:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8137FF4
-
- thumb_func_start sub_813805C
-sub_813805C: @ 813805C
- push {r4,r5,lr}
- ldr r4, _081380A0 @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r3, _081380A4 @ =0x0000324c
- adds r1, r0, r3
- ldrh r2, [r1]
- movs r5, 0
- ldrsh r0, [r1, r5]
- cmp r0, 0x3B
- ble _081380DC
- adds r0, r2, 0
- subs r0, 0x3C
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- bge _08138080
- movs r0, 0
- strh r0, [r1]
-_08138080:
- ldr r1, [r4]
- ldr r2, _081380A8 @ =0x00003238
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _081380AC
- adds r0, r1, r3
- ldrh r1, [r0]
- negs r1, r1
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x14
- bl SetGpuReg
- b _081380BC
- .align 2, 0
-_081380A0: .4byte gUnknown_203B140
-_081380A4: .4byte 0x0000324c
-_081380A8: .4byte 0x00003238
-_081380AC:
- adds r0, r1, r3
- ldrh r1, [r0]
- negs r1, r1
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x18
- bl SetGpuReg
-_081380BC:
- ldr r0, _081380E4 @ =gUnknown_203B140
- ldr r1, [r0]
- ldr r5, _081380E8 @ =0x00003214
- adds r0, r1, r5
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _081380DC
- ldr r2, _081380EC @ =0x0000324c
- adds r0, r1, r2
- ldrh r1, [r0]
- negs r1, r1
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x10
- bl SetGpuReg
-_081380DC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081380E4: .4byte gUnknown_203B140
-_081380E8: .4byte 0x00003214
-_081380EC: .4byte 0x0000324c
- thumb_func_end sub_813805C
-
- thumb_func_start sub_81380F0
-sub_81380F0: @ 81380F0
- push {lr}
- ldr r0, _08138110 @ =gUnknown_203B140
- ldr r1, [r0]
- ldr r2, _08138114 @ =0x00003224
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08138118
- subs r2, 0x10
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _08138122
- bl sub_8137FF4
- b _08138130
- .align 2, 0
-_08138110: .4byte gUnknown_203B140
-_08138114: .4byte 0x00003224
-_08138118:
- ldr r2, _08138128 @ =0x00003214
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _0813812C
-_08138122:
- bl sub_813805C
- b _08138130
- .align 2, 0
-_08138128: .4byte 0x00003214
-_0813812C:
- bl sub_8137FF4
-_08138130:
- pop {r0}
- bx r0
- thumb_func_end sub_81380F0
-
- thumb_func_start sub_8138134
-sub_8138134: @ 8138134
- push {lr}
- ldr r0, _08138174 @ =gUnknown_203B140
- ldr r1, [r0]
- ldr r2, _08138178 @ =0x00003214
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08138152
- adds r2, 0x10
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08138152
- bl sub_8137F68
-_08138152:
- ldr r0, _08138174 @ =gUnknown_203B140
- ldr r1, [r0]
- ldr r2, _08138178 @ =0x00003214
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0813816E
- adds r2, 0x10
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0813816E
- bl sub_8137F00
-_0813816E:
- pop {r0}
- bx r0
- .align 2, 0
-_08138174: .4byte gUnknown_203B140
-_08138178: .4byte 0x00003214
- thumb_func_end sub_8138134
-
- thumb_func_start sub_813817C
-sub_813817C: @ 813817C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- ldr r0, _081381A4 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _081381A8 @ =0x00003244
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _081381A0
- bl sub_81380F0
- bl sub_8138134
-_081381A0:
- pop {r0}
- bx r0
- .align 2, 0
-_081381A4: .4byte gUnknown_203B140
-_081381A8: .4byte 0x00003244
- thumb_func_end sub_813817C
-
- thumb_func_start sub_81381AC
-sub_81381AC: @ 81381AC
- push {lr}
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- bl SetHBlankCallback
- pop {r0}
- bx r0
- thumb_func_end sub_81381AC
-
- thumb_func_start sub_81381C0
-sub_81381C0: @ 81381C0
- push {lr}
- ldr r0, _081381CC @ =sub_813817C
- bl SetVBlankCallback
- pop {r0}
- bx r0
- .align 2, 0
-_081381CC: .4byte sub_813817C
- thumb_func_end sub_81381C0
-
- thumb_func_start sub_81381D0
-sub_81381D0: @ 81381D0
- push {r4,r5,lr}
- ldr r0, _08138218 @ =gUnknown_8463F9C
- bl InitWindows
- movs r4, 0
-_081381DA:
- lsls r0, r4, 3
- ldr r1, _0813821C @ =gUnknown_8463F0C
- adds r0, r1
- bl AddWindow
- ldr r2, _08138220 @ =gUnknown_203B140
- ldr r1, [r2]
- movs r3, 0xC0
- lsls r3, 6
- adds r1, r3
- adds r1, r4
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081381DA
- movs r4, 0
- adds r5, r2, 0
-_08138200:
- ldr r0, [r5]
- ldr r1, _08138224 @ =0x00003214
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08138254
- cmp r0, 0x1
- bgt _08138228
- cmp r0, 0
- beq _08138238
- b _08138268
- .align 2, 0
-_08138218: .4byte gUnknown_8463F9C
-_0813821C: .4byte gUnknown_8463F0C
-_08138220: .4byte gUnknown_203B140
-_08138224: .4byte 0x00003214
-_08138228:
- cmp r0, 0x3
- bgt _08138268
- lsls r0, r4, 3
- ldr r1, _08138234 @ =gUnknown_8463F7C
- b _08138258
- .align 2, 0
-_08138234: .4byte gUnknown_8463F7C
-_08138238:
- lsls r0, r4, 3
- ldr r1, _0813824C @ =gUnknown_8463F3C
- adds r0, r1
- bl AddWindow
- ldr r1, [r5]
- adds r1, r4
- ldr r3, _08138250 @ =0x00003003
- adds r1, r3
- b _08138266
- .align 2, 0
-_0813824C: .4byte gUnknown_8463F3C
-_08138250: .4byte 0x00003003
-_08138254:
- lsls r0, r4, 3
- ldr r1, _08138278 @ =gUnknown_8463F5C
-_08138258:
- adds r0, r1
- bl AddWindow
- ldr r1, [r5]
- adds r1, r4
- ldr r2, _0813827C @ =0x00003003
- adds r1, r2
-_08138266:
- strb r0, [r1]
-_08138268:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _08138200
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08138278: .4byte gUnknown_8463F5C
-_0813827C: .4byte 0x00003003
- thumb_func_end sub_81381D0
-
- thumb_func_start sub_8138280
-sub_8138280: @ 8138280
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0xA
- bl GetGpuReg
- movs r4, 0x3
- adds r5, r4, 0
- ands r5, r0
- movs r0, 0xC
- bl GetGpuReg
- adds r3, r4, 0
- ands r3, r0
- movs r4, 0
- ldr r2, _08138314 @ =gUnknown_203B140
- movs r0, 0xC0
- lsls r0, 6
- mov r12, r0
- movs r7, 0xFF
- mov r8, r2
-_081382AE:
- ldr r0, [r2]
- add r0, r12
- adds r0, r4
- ldrb r1, [r0]
- orrs r1, r7
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- bls _081382AE
- mov r2, r8
- ldr r1, [r2]
- ldr r4, _08138318 @ =0x00003224
- adds r0, r1, r4
- ldrb r2, [r0]
- cmp r2, 0x1
- bne _081382DC
- subs r4, 0x10
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _081382EA
-_081382DC:
- cmp r2, 0
- bne _08138354
- ldr r2, _0813831C @ =0x00003214
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _08138354
-_081382EA:
- cmp r3, r5
- bls _08138324
- movs r4, 0
-_081382F0:
- lsls r0, r4, 3
- ldr r1, _08138320 @ =gUnknown_8463F24
- adds r0, r1
- bl AddWindow
- ldr r1, _08138314 @ =gUnknown_203B140
- ldr r1, [r1]
- movs r2, 0xC0
- lsls r2, 6
- adds r1, r2
- adds r1, r4
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081382F0
- b _081383AC
- .align 2, 0
-_08138314: .4byte gUnknown_203B140
-_08138318: .4byte 0x00003224
-_0813831C: .4byte 0x00003214
-_08138320: .4byte gUnknown_8463F24
-_08138324:
- movs r4, 0
-_08138326:
- lsls r0, r4, 3
- ldr r1, _0813834C @ =gUnknown_8463F0C
- adds r0, r1
- bl AddWindow
- ldr r1, _08138350 @ =gUnknown_203B140
- ldr r1, [r1]
- movs r2, 0xC0
- lsls r2, 6
- adds r1, r2
- adds r1, r4
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _08138326
- b _081383AC
- .align 2, 0
-_0813834C: .4byte gUnknown_8463F0C
-_08138350: .4byte gUnknown_203B140
-_08138354:
- cmp r3, r5
- bls _08138388
- movs r4, 0
-_0813835A:
- lsls r0, r4, 3
- ldr r1, _08138380 @ =gUnknown_8463F0C
- adds r0, r1
- bl AddWindow
- ldr r1, _08138384 @ =gUnknown_203B140
- ldr r1, [r1]
- movs r2, 0xC0
- lsls r2, 6
- adds r1, r2
- adds r1, r4
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _0813835A
- b _081383AC
- .align 2, 0
-_08138380: .4byte gUnknown_8463F0C
-_08138384: .4byte gUnknown_203B140
-_08138388:
- movs r4, 0
-_0813838A:
- lsls r0, r4, 3
- ldr r1, _081383C0 @ =gUnknown_8463F24
- adds r0, r1
- bl AddWindow
- ldr r1, _081383C4 @ =gUnknown_203B140
- ldr r1, [r1]
- movs r2, 0xC0
- lsls r2, 6
- adds r1, r2
- adds r1, r4
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _0813838A
-_081383AC:
- movs r4, 0
- ldr r5, _081383C4 @ =gUnknown_203B140
-_081383B0:
- cmp r6, 0x1
- beq _081383E4
- cmp r6, 0x1
- bgt _081383C8
- cmp r6, 0
- beq _081383D8
- b _081383E4
- .align 2, 0
-_081383C0: .4byte gUnknown_8463F24
-_081383C4: .4byte gUnknown_203B140
-_081383C8:
- cmp r6, 0x3
- bgt _081383E4
- lsls r0, r4, 3
- ldr r1, _081383D4 @ =gUnknown_8463F7C
- b _081383E8
- .align 2, 0
-_081383D4: .4byte gUnknown_8463F7C
-_081383D8:
- lsls r0, r4, 3
- ldr r1, _081383E0 @ =gUnknown_8463F3C
- b _081383E8
- .align 2, 0
-_081383E0: .4byte gUnknown_8463F3C
-_081383E4:
- lsls r0, r4, 3
- ldr r1, _0813840C @ =gUnknown_8463F5C
-_081383E8:
- adds r0, r1
- bl AddWindow
- ldr r1, [r5]
- adds r1, r4
- ldr r2, _08138410 @ =0x00003003
- adds r1, r2
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _081383B0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813840C: .4byte gUnknown_8463F5C
-_08138410: .4byte 0x00003003
- thumb_func_end sub_8138280
-
- thumb_func_start sub_8138414
-sub_8138414: @ 8138414
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _0813843C @ =gUnknown_203B140
-_0813841A:
- ldr r0, [r5]
- movs r1, 0xC0
- lsls r1, 6
- adds r0, r1
- adds r0, r4
- ldrb r0, [r0]
- bl RemoveWindow
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- bls _0813841A
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813843C: .4byte gUnknown_203B140
- thumb_func_end sub_8138414
-
- thumb_func_start sub_8138440
-sub_8138440: @ 8138440
- push {lr}
- ldr r0, _0813845C @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _08138460 @ =0x00003214
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08138470
- cmp r0, 0x1
- bgt _08138464
- cmp r0, 0
- beq _0813846C
- b _08138476
- .align 2, 0
-_0813845C: .4byte gUnknown_203B140
-_08138460: .4byte 0x00003214
-_08138464:
- cmp r0, 0x3
- bgt _08138476
- movs r0, 0x8 @ HELPCONTEXT_POKEMON_MOVES
- b _08138472
-_0813846C:
- movs r0, 0x6 @ HELPCONTEXT_POKEMON_INFO
- b _08138472
-_08138470:
- movs r0, 0x7 @ HELPCONTEXT_POKEMON_SKILLS
-_08138472:
- bl SetHelpContext
-_08138476:
- pop {r0}
- bx r0
- thumb_func_end sub_8138440
-
- thumb_func_start sub_813847C
-sub_813847C: @ 813847C
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r5, _081384BC @ =gUnknown_203B140
- ldr r0, [r5]
- ldr r1, _081384C0 @ =0x000032f4
- adds r0, r1
- ldr r1, [r0]
- ldr r0, _081384C4 @ =gEnemyParty
- cmp r1, r0
- bne _081384D0
- bl GetMultiplayerId
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _081384C8 @ =gLinkPlayers
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r0, r2, 0x4
- adds r0, r1, r0
- ldrh r4, [r0]
- ldr r0, [r5]
- ldr r3, _081384CC @ =0x0000304c
- adds r0, r3
- adds r2, 0x8
- adds r1, r2
- bl StringCopy
- b _081384E8
- .align 2, 0
-_081384BC: .4byte gUnknown_203B140
-_081384C0: .4byte 0x000032f4
-_081384C4: .4byte gEnemyParty
-_081384C8: .4byte gLinkPlayers
-_081384CC: .4byte 0x0000304c
-_081384D0:
- bl GetPlayerTrainerId
- adds r4, r0, 0
- ldr r0, _0813851C @ =0x0000ffff
- ands r4, r0
- ldr r0, [r5]
- ldr r1, _08138520 @ =0x0000304c
- adds r0, r1
- ldr r1, _08138524 @ =gSaveBlock2Ptr
- ldr r1, [r1]
- bl StringCopy
-_081384E8:
- adds r0, r6, 0
- movs r1, 0x1
- bl GetMonData
- ldr r1, _0813851C @ =0x0000ffff
- ands r1, r0
- cmp r4, r1
- bne _08138518
- ldr r4, _08138528 @ =gUnknown_203B140
- ldr r2, [r4]
- ldr r5, _0813852C @ =0x00003058
- adds r2, r5
- adds r0, r6, 0
- movs r1, 0x7
- bl GetMonData
- ldr r1, [r4]
- ldr r2, _08138520 @ =0x0000304c
- adds r0, r1, r2
- adds r1, r5
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- beq _08138530
-_08138518:
- movs r0, 0
- b _08138532
- .align 2, 0
-_0813851C: .4byte 0x0000ffff
-_08138520: .4byte 0x0000304c
-_08138524: .4byte gSaveBlock2Ptr
-_08138528: .4byte gUnknown_203B140
-_0813852C: .4byte 0x00003058
-_08138530:
- movs r0, 0x1
-_08138532:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_813847C
-
- thumb_func_start sub_8138538
-sub_8138538: @ 8138538
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- ldr r0, _08138560 @ =gUnknown_203B140
- ldr r1, [r0]
- ldr r2, _08138564 @ =0x00003214
- adds r0, r1, r2
- ldrb r7, [r0]
- cmp r7, 0x1
- bne _08138554
- b _081386EC
-_08138554:
- cmp r7, 0x1
- bgt _08138568
- cmp r7, 0
- beq _08138576
- b _08138A16
- .align 2, 0
-_08138560: .4byte gUnknown_203B140
-_08138564: .4byte 0x00003214
-_08138568:
- cmp r7, 0x2
- bne _0813856E
- b _081387E0
-_0813856E:
- cmp r7, 0x3
- bne _08138574
- b _081388E0
-_08138574:
- b _08138A16
-_08138576:
- movs r2, 0xC8
- lsls r2, 6
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08138678
- movs r1, 0xB5
- lsls r1, 1
- movs r4, 0x1
- str r4, [sp]
- str r4, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r0, 0x3
- movs r2, 0xD
- movs r3, 0
- bl FillBgTilemapBufferRect
- movs r1, 0xBD
- lsls r1, 1
- str r4, [sp]
- str r4, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r0, 0x3
- movs r2, 0xD
- movs r3, 0x1
- bl FillBgTilemapBufferRect
- ldr r1, _08138660 @ =0x00000169
- str r4, [sp]
- str r4, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r0, 0x3
- movs r2, 0xE
- movs r3, 0
- bl FillBgTilemapBufferRect
- ldr r1, _08138664 @ =0x00000179
- str r4, [sp]
- str r4, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r0, 0x3
- movs r2, 0xE
- movs r3, 0x1
- bl FillBgTilemapBufferRect
- ldr r6, _08138668 @ =0x0000016b
- str r4, [sp]
- str r4, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r0, 0x3
- adds r1, r6, 0
- movs r2, 0xF
- movs r3, 0
- bl FillBgTilemapBufferRect
- ldr r5, _0813866C @ =0x0000017b
- str r4, [sp]
- str r4, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r0, 0x3
- adds r1, r5, 0
- movs r2, 0xF
- movs r3, 0x1
- bl FillBgTilemapBufferRect
- ldr r1, _08138670 @ =0x0000016d
- str r4, [sp]
- str r4, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r0, 0x3
- movs r2, 0x10
- movs r3, 0
- bl FillBgTilemapBufferRect
- ldr r1, _08138674 @ =0x0000017d
- str r4, [sp]
- str r4, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r0, 0x3
- movs r2, 0x10
- movs r3, 0x1
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r0, 0x3
- adds r1, r6, 0
- movs r2, 0x11
- movs r3, 0
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r0, 0x3
- adds r1, r5, 0
- movs r2, 0x11
- movs r3, 0x1
- bl FillBgTilemapBufferRect
- movs r1, 0xB7
- lsls r1, 1
- str r4, [sp]
- str r4, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r0, 0x3
- movs r2, 0x12
- movs r3, 0
- bl FillBgTilemapBufferRect
- movs r1, 0xBF
- lsls r1, 1
- str r4, [sp]
- str r4, [sp, 0x4]
- str r7, [sp, 0x8]
- b _081388CC
- .align 2, 0
-_08138660: .4byte 0x00000169
-_08138664: .4byte 0x00000179
-_08138668: .4byte 0x0000016b
-_0813866C: .4byte 0x0000017b
-_08138670: .4byte 0x0000016d
-_08138674: .4byte 0x0000017d
-_08138678:
- movs r1, 0xB5
- lsls r1, 1
- movs r4, 0x1
- str r4, [sp]
- str r4, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r0, 0x3
- movs r2, 0xD
- movs r3, 0
- bl FillBgTilemapBufferRect
- movs r1, 0xBD
- lsls r1, 1
- str r4, [sp]
- str r4, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r0, 0x3
- movs r2, 0xD
- movs r3, 0x1
- bl FillBgTilemapBufferRect
- ldr r1, _081386E0 @ =0x00000189
- str r4, [sp]
- str r4, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r0, 0x3
- movs r2, 0xE
- movs r3, 0
- bl FillBgTilemapBufferRect
- ldr r1, _081386E4 @ =0x00000199
- str r4, [sp]
- str r4, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r0, 0x3
- movs r2, 0xE
- movs r3, 0x1
- bl FillBgTilemapBufferRect
- ldr r1, _081386E8 @ =0x0000015b
- movs r0, 0x4
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r0, 0x3
- movs r2, 0xF
- movs r3, 0
- bl FillBgTilemapBufferRect
- b _08138A16
- .align 2, 0
-_081386E0: .4byte 0x00000189
-_081386E4: .4byte 0x00000199
-_081386E8: .4byte 0x0000015b
-_081386EC:
- movs r1, 0xC5
- lsls r1, 1
- str r7, [sp]
- str r7, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- movs r0, 0x3
- movs r2, 0xD
- movs r3, 0
- bl FillBgTilemapBufferRect
- movs r1, 0xCD
- lsls r1, 1
- str r7, [sp]
- str r7, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x3
- movs r2, 0xD
- movs r3, 0x1
- bl FillBgTilemapBufferRect
- movs r1, 0xAD
- lsls r1, 1
- str r7, [sp]
- str r7, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x3
- movs r2, 0xE
- movs r3, 0
- bl FillBgTilemapBufferRect
- movs r1, 0xB6
- lsls r1, 1
- str r7, [sp]
- str r7, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x3
- movs r2, 0xE
- movs r3, 0x1
- bl FillBgTilemapBufferRect
- movs r1, 0xB5
- lsls r1, 1
- str r7, [sp]
- str r7, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x3
- movs r2, 0xF
- movs r3, 0
- bl FillBgTilemapBufferRect
- movs r1, 0xBD
- lsls r1, 1
- str r7, [sp]
- str r7, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x3
- movs r2, 0xF
- movs r3, 0x1
- bl FillBgTilemapBufferRect
- ldr r1, _081387D0 @ =0x00000169
- str r7, [sp]
- str r7, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x3
- movs r2, 0x10
- movs r3, 0
- bl FillBgTilemapBufferRect
- ldr r1, _081387D4 @ =0x00000179
- str r7, [sp]
- str r7, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x3
- movs r2, 0x10
- movs r3, 0x1
- bl FillBgTilemapBufferRect
- ldr r1, _081387D8 @ =0x0000016b
- str r7, [sp]
- str r7, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x3
- movs r2, 0x11
- movs r3, 0
- bl FillBgTilemapBufferRect
- ldr r1, _081387DC @ =0x0000017b
- str r7, [sp]
- str r7, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x3
- movs r2, 0x11
- movs r3, 0x1
- bl FillBgTilemapBufferRect
- movs r1, 0xB7
- lsls r1, 1
- str r7, [sp]
- str r7, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x3
- movs r2, 0x12
- movs r3, 0
- bl FillBgTilemapBufferRect
- movs r1, 0xBF
- lsls r1, 1
- str r7, [sp]
- str r7, [sp, 0x4]
- str r4, [sp, 0x8]
- b _081388CC
- .align 2, 0
-_081387D0: .4byte 0x00000169
-_081387D4: .4byte 0x00000179
-_081387D8: .4byte 0x0000016b
-_081387DC: .4byte 0x0000017b
-_081387E0:
- movs r0, 0xC5
- lsls r0, 1
- mov r10, r0
- movs r4, 0x1
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r5, 0
- str r5, [sp, 0x8]
- movs r0, 0x3
- mov r1, r10
- movs r2, 0xD
- movs r3, 0
- bl FillBgTilemapBufferRect
- movs r2, 0xCD
- lsls r2, 1
- mov r9, r2
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x3
- mov r1, r9
- movs r2, 0xD
- movs r3, 0x1
- bl FillBgTilemapBufferRect
- movs r0, 0xAD
- lsls r0, 1
- mov r8, r0
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x3
- mov r1, r8
- movs r2, 0xE
- movs r3, 0
- bl FillBgTilemapBufferRect
- movs r6, 0xB6
- lsls r6, 1
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x3
- adds r1, r6, 0
- movs r2, 0xE
- movs r3, 0x1
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x3
- mov r1, r10
- movs r2, 0xF
- movs r3, 0
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x3
- mov r1, r9
- movs r2, 0xF
- movs r3, 0x1
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x3
- mov r1, r8
- movs r2, 0x10
- movs r3, 0
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x3
- adds r1, r6, 0
- movs r2, 0x10
- movs r3, 0x1
- bl FillBgTilemapBufferRect
- movs r1, 0xB5
- lsls r1, 1
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x3
- movs r2, 0x11
- movs r3, 0
- bl FillBgTilemapBufferRect
- movs r1, 0xBD
- lsls r1, 1
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x3
- movs r2, 0x11
- movs r3, 0x1
- bl FillBgTilemapBufferRect
- ldr r1, _081388D8 @ =0x00000189
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x3
- movs r2, 0x12
- movs r3, 0
- bl FillBgTilemapBufferRect
- ldr r1, _081388DC @ =0x00000199
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
-_081388CC:
- movs r0, 0x3
- movs r2, 0x12
- movs r3, 0x1
- bl FillBgTilemapBufferRect
- b _08138A16
- .align 2, 0
-_081388D8: .4byte 0x00000189
-_081388DC: .4byte 0x00000199
-_081388E0:
- ldr r2, _0813891C @ =0x00003208
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _08138920
- movs r1, 0xAD
- lsls r1, 1
- movs r6, 0x4
- str r6, [sp]
- movs r5, 0x1
- str r5, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- movs r0, 0x3
- movs r2, 0xD
- movs r3, 0
- bl FillBgTilemapBufferRect
- movs r1, 0xB6
- lsls r1, 1
- str r6, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x3
- movs r2, 0xD
- movs r3, 0x1
- bl FillBgTilemapBufferRect
- b _081389CA
- .align 2, 0
-_0813891C: .4byte 0x00003208
-_08138920:
- movs r0, 0xC5
- lsls r0, 1
- mov r10, r0
- movs r4, 0x1
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r5, 0
- str r5, [sp, 0x8]
- movs r0, 0x3
- mov r1, r10
- movs r2, 0xD
- movs r3, 0
- bl FillBgTilemapBufferRect
- movs r2, 0xCD
- lsls r2, 1
- mov r9, r2
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x3
- mov r1, r9
- movs r2, 0xD
- movs r3, 0x1
- bl FillBgTilemapBufferRect
- movs r0, 0xAD
- lsls r0, 1
- mov r8, r0
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x3
- mov r1, r8
- movs r2, 0xE
- movs r3, 0
- bl FillBgTilemapBufferRect
- movs r6, 0xB6
- lsls r6, 1
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x3
- adds r1, r6, 0
- movs r2, 0xE
- movs r3, 0x1
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x3
- mov r1, r10
- movs r2, 0xF
- movs r3, 0
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x3
- mov r1, r9
- movs r2, 0xF
- movs r3, 0x1
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x3
- mov r1, r8
- movs r2, 0x10
- movs r3, 0
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x3
- adds r1, r6, 0
- movs r2, 0x10
- movs r3, 0x1
- bl FillBgTilemapBufferRect
-_081389CA:
- ldr r1, _08138A28 @ =0x0000018b
- movs r4, 0x1
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r5, 0
- str r5, [sp, 0x8]
- movs r0, 0x3
- movs r2, 0x11
- movs r3, 0
- bl FillBgTilemapBufferRect
- ldr r1, _08138A2C @ =0x0000019b
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x3
- movs r2, 0x11
- movs r3, 0x1
- bl FillBgTilemapBufferRect
- ldr r1, _08138A30 @ =0x00000189
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x3
- movs r2, 0x12
- movs r3, 0
- bl FillBgTilemapBufferRect
- ldr r1, _08138A34 @ =0x00000199
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x3
- movs r2, 0x12
- movs r3, 0x1
- bl FillBgTilemapBufferRect
-_08138A16:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08138A28: .4byte 0x0000018b
-_08138A2C: .4byte 0x0000019b
-_08138A30: .4byte 0x00000189
-_08138A34: .4byte 0x00000199
- thumb_func_end sub_8138538
-
- thumb_func_start sub_8138A38
-sub_8138A38: @ 8138A38
- push {r4-r6,lr}
- ldr r6, _08138A54 @ =gUnknown_203B140
- ldr r1, [r6]
- ldr r2, _08138A58 @ =0x00003214
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x2
- bgt _08138A5C
- cmp r0, 0x1
- bge _08138B0E
- cmp r0, 0
- beq _08138A62
- b _08138B0E
- .align 2, 0
-_08138A54: .4byte gUnknown_203B140
-_08138A58: .4byte 0x00003214
-_08138A5C:
- cmp r0, 0x3
- beq _08138ABC
- b _08138B0E
-_08138A62:
- movs r3, 0xC8
- lsls r3, 6
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _08138B0E
- ldr r2, _08138AB0 @ =0x00003003
- adds r0, r1, r2
- ldrb r0, [r0]
- ldr r4, _08138AB4 @ =0x00003220
- adds r1, r4
- ldrb r1, [r1]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0x2F
- movs r3, 0x23
- bl BlitMoveInfoIcon
- ldr r1, [r6]
- adds r4, r1, r4
- ldr r3, _08138AB8 @ =0x00003221
- adds r0, r1, r3
- ldrb r2, [r0]
- ldrb r0, [r4]
- cmp r0, r2
- beq _08138B0E
- ldr r3, _08138AB0 @ =0x00003003
- adds r0, r1, r3
- ldrb r0, [r0]
- adds r1, r2, 0x1
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0x53
- movs r3, 0x23
- bl BlitMoveInfoIcon
- b _08138B0E
- .align 2, 0
-_08138AB0: .4byte 0x00003003
-_08138AB4: .4byte 0x00003220
-_08138AB8: .4byte 0x00003221
-_08138ABC:
- ldr r5, _08138B14 @ =0x00003006
- adds r0, r1, r5
- ldrb r0, [r0]
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r1, [r6]
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r4, _08138B18 @ =0x00003220
- adds r1, r4
- ldrb r1, [r1]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- movs r3, 0x3
- bl BlitMoveInfoIcon
- ldr r2, [r6]
- adds r4, r2, r4
- ldr r1, _08138B1C @ =0x00003221
- adds r0, r2, r1
- ldrb r1, [r0]
- ldrb r0, [r4]
- cmp r0, r1
- beq _08138B04
- adds r0, r2, r5
- ldrb r0, [r0]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0x24
- movs r3, 0x3
- bl BlitMoveInfoIcon
-_08138B04:
- ldr r0, [r6]
- adds r0, r5
- ldrb r0, [r0]
- bl PutWindowTilemap
-_08138B0E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08138B14: .4byte 0x00003006
-_08138B18: .4byte 0x00003220
-_08138B1C: .4byte 0x00003221
- thumb_func_end sub_8138A38
-
- thumb_func_start GetLastViewedMonIndex
-GetLastViewedMonIndex: @ 8138B20
- ldr r0, _08138B28 @ =gLastViewedMonIndex
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08138B28: .4byte gLastViewedMonIndex
- thumb_func_end GetLastViewedMonIndex
-
- thumb_func_start GetMoveSlotToReplace
-GetMoveSlotToReplace: @ 8138B2C
- ldr r0, _08138B34 @ =gUnknown_203B16E
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08138B34: .4byte gUnknown_203B16E
- thumb_func_end GetMoveSlotToReplace
-
- thumb_func_start sub_8138B38
-sub_8138B38: @ 8138B38
- ldr r1, _08138B44 @ =gUnknown_203B140
- ldr r1, [r1]
- ldr r2, _08138B48 @ =0x00003208
- adds r1, r2
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08138B44: .4byte gUnknown_203B140
-_08138B48: .4byte 0x00003208
- thumb_func_end sub_8138B38
-
- thumb_func_start sub_8138B4C
-sub_8138B4C: @ 8138B4C
- push {lr}
- bl IsUpdateLinkStateCBActive
- cmp r0, 0
- bne _08138B84
- bl IsMultiBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08138B84
- ldr r0, _08138B7C @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08138B84
- ldr r0, _08138B80 @ =gLastViewedMonIndex
- ldrb r0, [r0]
- cmp r0, 0x3
- bhi _08138B76
- cmp r0, 0x1
- bne _08138B84
-_08138B76:
- movs r0, 0x1
- b _08138B86
- .align 2, 0
-_08138B7C: .4byte gReceivedRemoteLinkPlayers
-_08138B80: .4byte gLastViewedMonIndex
-_08138B84:
- movs r0, 0
-_08138B86:
- pop {r1}
- bx r1
- thumb_func_end sub_8138B4C
-
- thumb_func_start sub_8138B8C
-sub_8138B8C: @ 8138B8C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _08138BBC @ =gUnknown_203B140
- ldr r1, [r0]
- ldr r2, _08138BC0 @ =0x0000321c
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08138BC4
- adds r2, 0xD8
- adds r0, r1, r2
- ldr r4, [r0]
- bl GetLastViewedMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r1, r0
- adds r1, r4
- adds r0, r5, 0
- movs r2, 0x64
- bl memcpy
- b _08138BE2
- .align 2, 0
-_08138BBC: .4byte gUnknown_203B140
-_08138BC0: .4byte 0x0000321c
-_08138BC4:
- ldr r2, _08138BE8 @ =0x000032f4
- adds r0, r1, r2
- ldr r4, [r0]
- bl GetLastViewedMonIndex
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 4
- adds r4, r1
- adds r0, r4, 0
- adds r1, r5, 0
- bl BoxMonToMon
-_08138BE2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08138BE8: .4byte 0x000032f4
- thumb_func_end sub_8138B8C
-
- thumb_func_start sub_8138BEC
-sub_8138BEC: @ 8138BEC
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- adds r2, r1, 0
- cmp r1, 0x1
- beq _08138C0C
- cmp r1, 0x1
- bgt _08138C02
- cmp r1, 0
- beq _08138C08
- b _08138C14
-_08138C02:
- cmp r2, 0x2
- beq _08138C10
- b _08138C14
-_08138C08:
- movs r1, 0xD
- b _08138C16
-_08138C0C:
- movs r1, 0xE
- b _08138C16
-_08138C10:
- movs r1, 0xF
- b _08138C16
-_08138C14:
- movs r1, 0x10
-_08138C16:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_8138BEC
-
- thumb_func_start sub_8138C24
-sub_8138C24: @ 8138C24
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- adds r2, r1, 0
- cmp r1, 0x1
- beq _08138C44
- cmp r1, 0x1
- bgt _08138C3A
- cmp r1, 0
- beq _08138C40
- b _08138C4C
-_08138C3A:
- cmp r2, 0x2
- beq _08138C48
- b _08138C4C
-_08138C40:
- movs r1, 0x11
- b _08138C4E
-_08138C44:
- movs r1, 0x12
- b _08138C4E
-_08138C48:
- movs r1, 0x13
- b _08138C4E
-_08138C4C:
- movs r1, 0x14
-_08138C4E:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_8138C24
-
- thumb_func_start sub_8138C5C
-sub_8138C5C: @ 8138C5C
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, _08138C78 @ =gUnknown_203B140
- ldr r0, [r6]
- ldr r5, _08138C7C @ =0x00003290
- adds r0, r5
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _08138C80
- movs r0, 0x7
- b _08138CD2
- .align 2, 0
-_08138C78: .4byte gUnknown_203B140
-_08138C7C: .4byte 0x00003290
-_08138C80:
- movs r0, 0x88
- ands r0, r4
- cmp r0, 0
- beq _08138C8C
- movs r0, 0x1
- b _08138CD2
-_08138C8C:
- movs r0, 0x40
- ands r0, r4
- cmp r0, 0
- beq _08138C98
- movs r0, 0x2
- b _08138CD2
-_08138C98:
- movs r0, 0x7
- ands r0, r4
- cmp r0, 0
- beq _08138CA4
- movs r0, 0x3
- b _08138CD2
-_08138CA4:
- movs r0, 0x20
- ands r0, r4
- cmp r0, 0
- beq _08138CB0
- movs r0, 0x4
- b _08138CD2
-_08138CB0:
- movs r0, 0x10
- ands r0, r4
- cmp r0, 0
- beq _08138CBC
- movs r0, 0x5
- b _08138CD2
-_08138CBC:
- ldr r0, [r6]
- adds r0, r5
- movs r1, 0
- bl CheckPartyPokerus
- lsls r0, 24
- cmp r0, 0
- bne _08138CD0
- movs r0, 0
- b _08138CD2
-_08138CD0:
- movs r0, 0x6
-_08138CD2:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8138C5C
-
- thumb_func_start sub_8138CD8
-sub_8138CD8: @ 8138CD8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r6, _08138CFC @ =gUnknown_203B140
- ldr r0, [r6]
- ldr r7, _08138D00 @ =0x00003288
- adds r3, r0, r7
- ldrb r1, [r3]
- cmp r1, 0x1
- bne _08138CF0
- b _08138FE8
-_08138CF0:
- cmp r1, 0x1
- bgt _08138D04
- cmp r1, 0
- beq _08138D12
- b _08139094
- .align 2, 0
-_08138CFC: .4byte gUnknown_203B140
-_08138D00: .4byte 0x00003288
-_08138D04:
- cmp r1, 0x2
- bne _08138D0A
- b _08139010
-_08138D0A:
- cmp r1, 0x3
- bne _08138D10
- b _08139034
-_08138D10:
- b _08139094
-_08138D12:
- bl MenuHelpers_CallLinkSomething
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08138D20
- b _08139094
-_08138D20:
- bl sub_800B270
- cmp r0, 0x1
- bne _08138D2A
- b _08139094
-_08138D2A:
- ldr r0, _08138D78 @ =gMain
- mov r9, r0
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08138DD0
- ldr r4, _08138D7C @ =gUnknown_203B16D
- ldrb r0, [r4]
- cmp r0, 0
- beq _08138D84
- ldr r0, [r6]
- adds r0, r7
- movs r1, 0x2
- strb r1, [r0]
- movs r0, 0x5
- bl PlaySE
- ldrb r4, [r4]
- cmp r4, 0
- bne _08138D5A
- b _08139094
-_08138D5A:
- ldr r0, [r6]
- ldr r2, _08138D80 @ =0x00003258
- adds r1, r0, r2
-_08138D60:
- subs r4, 0x1
- lsls r0, r4, 1
- adds r0, r1, r0
- ldrh r0, [r0]
- cmp r0, 0
- beq _08138D6E
- b _08139024
-_08138D6E:
- lsls r0, r4, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08138D60
- b _08139094
- .align 2, 0
-_08138D78: .4byte gMain
-_08138D7C: .4byte gUnknown_203B16D
-_08138D80: .4byte 0x00003258
-_08138D84:
- movs r0, 0x4
- strb r0, [r4]
- ldr r0, [r6]
- adds r0, r7
- movs r1, 0x2
- strb r1, [r0]
- movs r0, 0x5
- bl PlaySE
- ldr r1, [r6]
- ldr r3, _08138DC8 @ =0x00003268
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08138DA4
- b _08139094
-_08138DA4:
- ldrb r4, [r4]
- cmp r4, 0
- bne _08138DAC
- b _08139094
-_08138DAC:
- ldr r6, _08138DCC @ =0x00003258
- adds r1, r6
-_08138DB0:
- subs r4, 0x1
- lsls r0, r4, 1
- adds r0, r1, r0
- ldrh r0, [r0]
- cmp r0, 0
- beq _08138DBE
- b _08139024
-_08138DBE:
- lsls r0, r4, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08138DB0
- b _08139094
- .align 2, 0
-_08138DC8: .4byte 0x00003268
-_08138DCC: .4byte 0x00003258
-_08138DD0:
- movs r0, 0x80
- ands r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _08138E80
- ldr r3, _08138E0C @ =gUnknown_203B16D
- ldrb r0, [r3]
- mov r12, r3
- cmp r0, 0x3
- bhi _08138E68
- movs r5, 0x4
- ldr r0, [r6]
- adds r0, r7
- movs r4, 0x2
- strb r4, [r0]
- ldr r1, [r6]
- ldr r6, _08138E10 @ =0x00003268
- adds r0, r1, r6
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08138E16
- ldrb r0, [r3]
- cmp r0, 0x3
- bne _08138E14
- strb r2, [r3]
- adds r0, r1, r7
- strb r4, [r0]
- b _08138E78
- .align 2, 0
-_08138E0C: .4byte gUnknown_203B16D
-_08138E10: .4byte 0x00003268
-_08138E14:
- movs r5, 0x3
-_08138E16:
- mov r0, r12
- ldrb r4, [r0]
- ldr r2, _08138E58 @ =gUnknown_203B140
- cmp r4, r5
- bcs _08138E3C
- ldr r0, [r2]
- ldr r3, _08138E5C @ =0x00003258
- adds r1, r0, r3
-_08138E26:
- adds r4, 0x1
- lsls r0, r4, 1
- adds r0, r1, r0
- ldrh r0, [r0]
- cmp r0, 0
- beq _08138E34
- b _08139024
-_08138E34:
- lsls r0, r4, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _08138E26
-_08138E3C:
- ldr r0, [r2]
- ldr r6, _08138E60 @ =0x00003268
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0
- bne _08138E4A
- b _08139024
-_08138E4A:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08138E64 @ =gUnknown_203B16D
- movs r0, 0
- strb r0, [r1]
- b _08139094
- .align 2, 0
-_08138E58: .4byte gUnknown_203B140
-_08138E5C: .4byte 0x00003258
-_08138E60: .4byte 0x00003268
-_08138E64: .4byte gUnknown_203B16D
-_08138E68:
- cmp r0, 0x4
- beq _08138E6E
- b _08139094
-_08138E6E:
- strb r2, [r3]
- ldr r0, [r6]
- adds r0, r7
- movs r1, 0x2
- strb r1, [r0]
-_08138E78:
- movs r0, 0x5
- bl PlaySE
- b _08139094
-_08138E80:
- movs r0, 0x1
- mov r8, r0
- movs r5, 0x1
- ands r5, r1
- cmp r5, 0
- beq _08138F6C
- movs r0, 0x5
- bl PlaySE
- ldr r3, _08138EB8 @ =gUnknown_203B16D
- ldrb r5, [r3]
- cmp r5, 0x4
- bne _08138EC8
- strb r4, [r3]
- ldr r0, _08138EBC @ =gUnknown_203B16E
- strb r4, [r0]
- ldr r0, [r6]
- ldr r1, _08138EC0 @ =0x00003268
- adds r0, r1
- strb r4, [r0]
- movs r0, 0x1
- bl sub_813A0E8
- ldr r0, [r6]
- ldr r2, _08138EC4 @ =0x00003224
- adds r0, r2
- strb r4, [r0]
- b _08138FB8
- .align 2, 0
-_08138EB8: .4byte gUnknown_203B16D
-_08138EBC: .4byte gUnknown_203B16E
-_08138EC0: .4byte 0x00003268
-_08138EC4: .4byte 0x00003224
-_08138EC8:
- ldr r1, [r6]
- ldr r0, _08138F04 @ =0x00003268
- adds r2, r1, r0
- ldrb r0, [r2]
- cmp r0, 0x1
- beq _08138F18
- ldr r3, _08138F08 @ =0x00003024
- adds r0, r1, r3
- ldr r0, [r0]
- cmp r0, 0
- beq _08138EE0
- b _08139094
-_08138EE0:
- ldr r0, _08138F0C @ =0x00000439
- add r0, r9
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08138EF0
- b _08139094
-_08138EF0:
- ldr r0, _08138F10 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _08138EFA
- b _08139094
-_08138EFA:
- ldr r0, _08138F14 @ =gUnknown_203B16E
- strb r5, [r0]
- mov r6, r8
- strb r6, [r2]
- b _08139094
- .align 2, 0
-_08138F04: .4byte 0x00003268
-_08138F08: .4byte 0x00003024
-_08138F0C: .4byte 0x00000439
-_08138F10: .4byte gReceivedRemoteLinkPlayers
-_08138F14: .4byte gUnknown_203B16E
-_08138F18:
- strb r4, [r2]
- ldr r1, _08138F38 @ =gUnknown_203B16E
- ldrb r0, [r3]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08138F26
- b _08139094
-_08138F26:
- ldr r0, [r6]
- ldr r1, _08138F3C @ =0x0000321c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08138F40
- bl sub_81390B0
- b _08138F44
- .align 2, 0
-_08138F38: .4byte gUnknown_203B16E
-_08138F3C: .4byte 0x0000321c
-_08138F40:
- bl sub_81391EC
-_08138F44:
- ldr r4, _08138F60 @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r2, _08138F64 @ =0x00003290
- adds r0, r2
- bl sub_8139328
- bl sub_81367B0
- ldr r0, [r4]
- ldr r3, _08138F68 @ =0x00003288
- adds r0, r3
- movs r1, 0x2
- b _08139092
- .align 2, 0
-_08138F60: .4byte gUnknown_203B140
-_08138F64: .4byte 0x00003290
-_08138F68: .4byte 0x00003288
-_08138F6C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08138F76
- b _08139094
-_08138F76:
- ldr r0, [r6]
- ldr r1, _08138F90 @ =0x00003268
- adds r2, r0, r1
- ldrb r0, [r2]
- cmp r0, 0x1
- bne _08138F9C
- ldr r0, _08138F94 @ =gUnknown_203B16E
- ldr r1, _08138F98 @ =gUnknown_203B16D
- ldrb r1, [r1]
- strb r1, [r0]
- strb r5, [r2]
- b _08139094
- .align 2, 0
-_08138F90: .4byte 0x00003268
-_08138F94: .4byte gUnknown_203B16E
-_08138F98: .4byte gUnknown_203B16D
-_08138F9C:
- ldr r1, _08138FD8 @ =gUnknown_203B16D
- ldrb r0, [r1]
- cmp r0, 0x4
- bne _08138FAA
- strb r5, [r1]
- ldr r0, _08138FDC @ =gUnknown_203B16E
- strb r5, [r0]
-_08138FAA:
- movs r0, 0x1
- bl sub_813A0E8
- ldr r0, [r6]
- ldr r2, _08138FE0 @ =0x00003224
- adds r0, r2
- strb r5, [r0]
-_08138FB8:
- ldr r0, [r6]
- ldr r4, _08138FE4 @ =0x00003214
- adds r0, r4
- ldrb r0, [r0]
- bl sub_8138414
- ldr r1, [r6]
- adds r1, r4
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, r7
- mov r3, r8
- strb r3, [r0]
- b _08139094
- .align 2, 0
-_08138FD8: .4byte gUnknown_203B16D
-_08138FDC: .4byte gUnknown_203B16E
-_08138FE0: .4byte 0x00003224
-_08138FE4: .4byte 0x00003214
-_08138FE8:
- ldr r2, _08139004 @ =gTasks
- ldr r6, _08139008 @ =0x00003018
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _0813900C @ =sub_81351A0
- str r1, [r0]
- movs r0, 0
- strb r0, [r3]
- b _08139094
- .align 2, 0
-_08139004: .4byte gTasks
-_08139008: .4byte 0x00003018
-_0813900C: .4byte sub_81351A0
-_08139010:
- bl sub_8136F4C
- bl sub_81374E8
- bl sub_8137BD0
- ldr r0, [r6]
- adds r0, r7
- movs r1, 0x3
- b _08139092
-_08139024:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08139030 @ =gUnknown_203B16D
- strb r4, [r0]
- b _08139094
- .align 2, 0
-_08139030: .4byte gUnknown_203B16D
-_08139034:
- bl MenuHelpers_CallLinkSomething
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08139094
- bl sub_800B270
- cmp r0, 0x1
- beq _08139094
- ldr r0, [r6]
- ldr r1, _081390A0 @ =0x00003003
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r6]
- ldr r2, _081390A4 @ =0x00003004
- adds r0, r2
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r6]
- ldr r3, _081390A8 @ =0x00003005
- adds r0, r3
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r6]
- ldr r1, _081390AC @ =0x00003006
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- movs r0, 0x3
- bl CopyBgTilemapBufferToVram
- ldr r0, [r6]
- adds r0, r7
- movs r1, 0
-_08139092:
- strb r1, [r0]
-_08139094:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081390A0: .4byte 0x00003003
-_081390A4: .4byte 0x00003004
-_081390A8: .4byte 0x00003005
-_081390AC: .4byte 0x00003006
- thumb_func_end sub_8138CD8
-
- thumb_func_start sub_81390B0
-sub_81390B0: @ 81390B0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- ldr r0, _081391D8 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _081391DC @ =0x000032f4
- adds r0, r1
- ldr r6, [r0]
- bl GetLastViewedMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- adds r6, r0
- ldr r3, _081391E0 @ =gUnknown_203B16D
- ldrb r1, [r3]
- adds r1, 0xD
- adds r0, r6, 0
- bl GetMonData
- mov r1, sp
- adds r1, 0x2
- str r1, [sp, 0x8]
- strh r0, [r1]
- ldr r3, _081391E4 @ =gUnknown_203B16E
- mov r8, r3
- ldrb r1, [r3]
- adds r1, 0xD
- adds r0, r6, 0
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- ldr r0, _081391E0 @ =gUnknown_203B16D
- ldrb r1, [r0]
- adds r1, 0x11
- adds r0, r6, 0
- bl GetMonData
- movs r1, 0x5
- add r1, sp
- mov r10, r1
- strb r0, [r1]
- mov r3, r8
- ldrb r1, [r3]
- adds r1, 0x11
- adds r0, r6, 0
- bl GetMonData
- add r7, sp, 0x4
- strb r0, [r7]
- adds r0, r6, 0
- movs r1, 0x15
- bl GetMonData
- mov r4, sp
- adds r4, 0x6
- strb r0, [r4]
- ldr r5, _081391E8 @ =gPPUpGetMask
- ldr r0, _081391E0 @ =gUnknown_203B16D
- ldrb r1, [r0]
- adds r0, r1, r5
- ldrb r0, [r0]
- mov r9, r0
- ldrb r3, [r4]
- adds r2, r3, 0
- mov r0, r9
- ands r2, r0
- lsls r1, 1
- asrs r2, r1
- lsls r2, 24
- lsrs r2, 24
- mov r1, r8
- ldrb r0, [r1]
- adds r1, r0, r5
- ldrb r1, [r1]
- ands r1, r3
- lsls r0, 1
- asrs r1, r0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r9
- bics r3, r0
- strb r3, [r4]
- mov r3, r8
- ldrb r0, [r3]
- adds r0, r5
- ldrb r3, [r0]
- ldrb r0, [r4]
- bics r0, r3
- strb r0, [r4]
- mov r3, r8
- ldrb r0, [r3]
- lsls r0, 1
- lsls r2, r0
- ldr r3, _081391E0 @ =gUnknown_203B16D
- ldrb r0, [r3]
- lsls r0, 1
- lsls r1, r0
- adds r2, r1
- ldrb r0, [r4]
- orrs r0, r2
- strb r0, [r4]
- ldrb r1, [r3]
- adds r1, 0xD
- adds r0, r6, 0
- mov r2, sp
- bl SetMonData
- mov r0, r8
- ldrb r1, [r0]
- adds r1, 0xD
- adds r0, r6, 0
- ldr r2, [sp, 0x8]
- bl SetMonData
- ldr r3, _081391E0 @ =gUnknown_203B16D
- ldrb r1, [r3]
- adds r1, 0x11
- adds r0, r6, 0
- adds r2, r7, 0
- bl SetMonData
- mov r0, r8
- ldrb r1, [r0]
- adds r1, 0x11
- adds r0, r6, 0
- mov r2, r10
- bl SetMonData
- adds r0, r6, 0
- movs r1, 0x15
- adds r2, r4, 0
- bl SetMonData
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081391D8: .4byte gUnknown_203B140
-_081391DC: .4byte 0x000032f4
-_081391E0: .4byte gUnknown_203B16D
-_081391E4: .4byte gUnknown_203B16E
-_081391E8: .4byte gPPUpGetMask
- thumb_func_end sub_81390B0
-
- thumb_func_start sub_81391EC
-sub_81391EC: @ 81391EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- ldr r0, _08139314 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _08139318 @ =0x000032f4
- adds r0, r1
- ldr r6, [r0]
- bl GetLastViewedMonIndex
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 4
- adds r6, r1
- ldr r3, _0813931C @ =gUnknown_203B16D
- ldrb r1, [r3]
- adds r1, 0xD
- adds r0, r6, 0
- bl GetBoxMonData
- mov r1, sp
- adds r1, 0x2
- str r1, [sp, 0x8]
- strh r0, [r1]
- ldr r3, _08139320 @ =gUnknown_203B16E
- mov r8, r3
- ldrb r1, [r3]
- adds r1, 0xD
- adds r0, r6, 0
- bl GetBoxMonData
- mov r1, sp
- strh r0, [r1]
- ldr r0, _0813931C @ =gUnknown_203B16D
- ldrb r1, [r0]
- adds r1, 0x11
- adds r0, r6, 0
- bl GetBoxMonData
- movs r1, 0x5
- add r1, sp
- mov r10, r1
- strb r0, [r1]
- mov r3, r8
- ldrb r1, [r3]
- adds r1, 0x11
- adds r0, r6, 0
- bl GetBoxMonData
- add r7, sp, 0x4
- strb r0, [r7]
- adds r0, r6, 0
- movs r1, 0x15
- bl GetBoxMonData
- mov r4, sp
- adds r4, 0x6
- strb r0, [r4]
- ldr r5, _08139324 @ =gPPUpGetMask
- ldr r0, _0813931C @ =gUnknown_203B16D
- ldrb r1, [r0]
- adds r0, r1, r5
- ldrb r0, [r0]
- mov r9, r0
- ldrb r3, [r4]
- adds r2, r3, 0
- mov r0, r9
- ands r2, r0
- lsls r1, 1
- asrs r2, r1
- lsls r2, 24
- lsrs r2, 24
- mov r1, r8
- ldrb r0, [r1]
- adds r1, r0, r5
- ldrb r1, [r1]
- ands r1, r3
- lsls r0, 1
- asrs r1, r0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r9
- bics r3, r0
- strb r3, [r4]
- mov r3, r8
- ldrb r0, [r3]
- adds r0, r5
- ldrb r3, [r0]
- ldrb r0, [r4]
- bics r0, r3
- strb r0, [r4]
- mov r3, r8
- ldrb r0, [r3]
- lsls r0, 1
- lsls r2, r0
- ldr r3, _0813931C @ =gUnknown_203B16D
- ldrb r0, [r3]
- lsls r0, 1
- lsls r1, r0
- adds r2, r1
- ldrb r0, [r4]
- orrs r0, r2
- strb r0, [r4]
- ldrb r1, [r3]
- adds r1, 0xD
- adds r0, r6, 0
- mov r2, sp
- bl SetBoxMonData
- mov r0, r8
- ldrb r1, [r0]
- adds r1, 0xD
- adds r0, r6, 0
- ldr r2, [sp, 0x8]
- bl SetBoxMonData
- ldr r3, _0813931C @ =gUnknown_203B16D
- ldrb r1, [r3]
- adds r1, 0x11
- adds r0, r6, 0
- adds r2, r7, 0
- bl SetBoxMonData
- mov r0, r8
- ldrb r1, [r0]
- adds r1, 0x11
- adds r0, r6, 0
- mov r2, r10
- bl SetBoxMonData
- adds r0, r6, 0
- movs r1, 0x15
- adds r2, r4, 0
- bl SetBoxMonData
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08139314: .4byte gUnknown_203B140
-_08139318: .4byte 0x000032f4
-_0813931C: .4byte gUnknown_203B16D
-_08139320: .4byte gUnknown_203B16E
-_08139324: .4byte gPPUpGetMask
- thumb_func_end sub_81391EC
-
- thumb_func_start sub_8139328
-sub_8139328: @ 8139328
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _08139358 @ =gUnknown_203B140
- ldr r1, [r0]
- ldr r2, _0813935C @ =0x0000321c
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08139360
- adds r2, 0xD8
- adds r0, r1, r2
- ldr r4, [r0]
- bl GetLastViewedMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r1, r0
- adds r1, r4
- adds r0, r5, 0
- movs r2, 0x64
- bl memcpy
- b _0813937E
- .align 2, 0
-_08139358: .4byte gUnknown_203B140
-_0813935C: .4byte 0x0000321c
-_08139360:
- ldr r2, _08139384 @ =0x000032f4
- adds r0, r1, r2
- ldr r4, [r0]
- bl GetLastViewedMonIndex
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 4
- adds r4, r1
- adds r0, r4, 0
- adds r1, r5, 0
- bl BoxMonToMon
-_0813937E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08139384: .4byte 0x000032f4
- thumb_func_end sub_8139328
-
- thumb_func_start sub_8139388
-sub_8139388: @ 8139388
- push {r4,lr}
- ldr r4, _081393BC @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r1, _081393C0 @ =0x00003290
- adds r0, r1
- ldr r1, _081393C4 @ =gUnknown_203B16D
- ldrb r1, [r1]
- bl sub_8138BEC
- lsls r0, 16
- lsrs r0, 16
- bl IsMoveHm
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081393CC
- ldr r0, [r4]
- ldr r1, _081393C8 @ =0x00003208
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _081393CC
- movs r0, 0
- b _081393CE
- .align 2, 0
-_081393BC: .4byte gUnknown_203B140
-_081393C0: .4byte 0x00003290
-_081393C4: .4byte gUnknown_203B16D
-_081393C8: .4byte 0x00003208
-_081393CC:
- movs r0, 0x1
-_081393CE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8139388
-
- thumb_func_start sub_81393D4
-sub_81393D4: @ 81393D4
- push {r4,r5,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _081393F8 @ =gUnknown_203B140
- ldr r0, [r1]
- ldr r3, _081393FC @ =0x00003288
- adds r0, r3
- ldrb r0, [r0]
- adds r5, r1, 0
- cmp r0, 0x6
- bls _081393EE
- b _08139748
-_081393EE:
- lsls r0, 2
- ldr r1, _08139400 @ =_08139404
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081393F8: .4byte gUnknown_203B140
-_081393FC: .4byte 0x00003288
-_08139400: .4byte _08139404
- .align 2, 0
-_08139404:
- .4byte _08139420
- .4byte _08139444
- .4byte _0813946C
- .4byte _08139604
- .4byte _08139628
- .4byte _081396A8
- .4byte _08139710
-_08139420:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _0813943C @ =gUnknown_203B140
- ldr r1, [r0]
- ldr r4, _08139440 @ =0x00003288
- adds r1, r4
- b _08139728
- .align 2, 0
-_0813943C: .4byte gUnknown_203B140
-_08139440: .4byte 0x00003288
-_08139444:
- ldr r0, _08139460 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08139452
- b _0813975A
-_08139452:
- bl sub_813B784
- ldr r0, _08139464 @ =gUnknown_203B140
- ldr r1, [r0]
- ldr r0, _08139468 @ =0x00003288
- adds r1, r0
- b _08139728
- .align 2, 0
-_08139460: .4byte gPaletteFade
-_08139464: .4byte gUnknown_203B140
-_08139468: .4byte 0x00003288
-_0813946C:
- ldr r0, _081394BC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _081394DC
- ldr r4, _081394C0 @ =gUnknown_203B16D
- ldrb r0, [r4]
- cmp r0, 0
- beq _081394CC
- ldr r0, [r5]
- ldr r1, _081394C4 @ =0x00003288
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0]
- movs r0, 0x5
- bl PlaySE
- ldrb r4, [r4]
- cmp r4, 0
- bne _0813949C
- b _0813975A
-_0813949C:
- ldr r0, [r5]
- ldr r2, _081394C8 @ =0x00003258
- adds r1, r0, r2
-_081394A2:
- subs r4, 0x1
- lsls r0, r4, 1
- adds r0, r1, r0
- ldrh r0, [r0]
- cmp r0, 0
- beq _081394B0
- b _08139738
-_081394B0:
- lsls r0, r4, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _081394A2
- b _0813975A
- .align 2, 0
-_081394BC: .4byte gMain
-_081394C0: .4byte gUnknown_203B16D
-_081394C4: .4byte 0x00003288
-_081394C8: .4byte 0x00003258
-_081394CC:
- movs r0, 0x4
- strb r0, [r4]
- ldr r0, [r5]
- ldr r3, _081394D8 @ =0x00003288
- adds r0, r3
- b _08139556
- .align 2, 0
-_081394D8: .4byte 0x00003288
-_081394DC:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08139568
- ldr r3, _08139538 @ =gUnknown_203B16D
- ldrb r0, [r3]
- cmp r0, 0x3
- bhi _08139548
- movs r2, 0x4
- ldr r0, [r5]
- ldr r4, _0813953C @ =0x00003288
- adds r0, r4
- movs r1, 0x3
- strb r1, [r0]
- ldr r1, [r5]
- subs r4, 0x20
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08139506
- movs r2, 0x3
-_08139506:
- ldrb r4, [r3]
- cmp r4, r2
- bcs _08139526
- ldr r0, _08139540 @ =0x00003258
- adds r1, r0
-_08139510:
- adds r4, 0x1
- lsls r0, r4, 1
- adds r0, r1, r0
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813951E
- b _08139738
-_0813951E:
- lsls r0, r4, 24
- lsrs r4, r0, 24
- cmp r4, r2
- bcc _08139510
-_08139526:
- ldr r0, [r5]
- ldr r1, _08139544 @ =0x00003268
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08139534
- b _0813975A
-_08139534:
- b _08139738
- .align 2, 0
-_08139538: .4byte gUnknown_203B16D
-_0813953C: .4byte 0x00003288
-_08139540: .4byte 0x00003258
-_08139544: .4byte 0x00003268
-_08139548:
- cmp r0, 0x4
- beq _0813954E
- b _0813975A
-_0813954E:
- strb r2, [r3]
- ldr r0, [r5]
- ldr r2, _08139564 @ =0x00003288
- adds r0, r2
-_08139556:
- movs r1, 0x3
- strb r1, [r0]
- movs r0, 0x5
- bl PlaySE
- b _0813975A
- .align 2, 0
-_08139564: .4byte 0x00003288
-_08139568:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081395D4
- bl sub_8139388
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08139584
- ldr r0, _081395A4 @ =gUnknown_203B16D
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _081395B8
-_08139584:
- movs r0, 0x5
- bl PlaySE
- ldr r2, _081395A8 @ =gUnknown_203B16E
- ldr r0, _081395A4 @ =gUnknown_203B16D
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r1, _081395AC @ =gSpecialVar_0x8005
- ldrb r0, [r2]
- strh r0, [r1]
- ldr r0, _081395B0 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r3, _081395B4 @ =0x00003288
- adds r0, r3
- b _081395F0
- .align 2, 0
-_081395A4: .4byte gUnknown_203B16D
-_081395A8: .4byte gUnknown_203B16E
-_081395AC: .4byte gSpecialVar_0x8005
-_081395B0: .4byte gUnknown_203B140
-_081395B4: .4byte 0x00003288
-_081395B8:
- movs r0, 0x1A
- bl PlaySE
- ldr r0, _081395CC @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r4, _081395D0 @ =0x00003288
- adds r0, r4
- movs r1, 0x5
- strb r1, [r0]
- b _0813975A
- .align 2, 0
-_081395CC: .4byte gUnknown_203B140
-_081395D0: .4byte 0x00003288
-_081395D4:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _081395DE
- b _0813975A
-_081395DE:
- ldr r1, _081395F8 @ =gUnknown_203B16E
- movs r0, 0x4
- strb r0, [r1]
- ldr r1, _081395FC @ =gSpecialVar_0x8005
- movs r0, 0x4
- strh r0, [r1]
- ldr r0, [r5]
- ldr r1, _08139600 @ =0x00003288
- adds r0, r1
-_081395F0:
- movs r1, 0x6
- strb r1, [r0]
- b _0813975A
- .align 2, 0
-_081395F8: .4byte gUnknown_203B16E
-_081395FC: .4byte gSpecialVar_0x8005
-_08139600: .4byte 0x00003288
-_08139604:
- bl sub_8136F4C
- bl sub_81374E8
- bl sub_8137BD0
- ldr r0, _08139620 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r2, _08139624 @ =0x00003288
- adds r0, r2
- movs r1, 0x4
- strb r1, [r0]
- b _0813975A
- .align 2, 0
-_08139620: .4byte gUnknown_203B140
-_08139624: .4byte 0x00003288
-_08139628:
- bl MenuHelpers_CallLinkSomething
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08139636
- b _0813975A
-_08139636:
- bl sub_800B270
- cmp r0, 0x1
- bne _08139640
- b _0813975A
-_08139640:
- ldr r4, _08139690 @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r3, _08139694 @ =0x00003003
- adds r0, r3
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r4]
- ldr r1, _08139698 @ =0x00003004
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r4]
- ldr r2, _0813969C @ =0x00003005
- adds r0, r2
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r4]
- ldr r3, _081396A0 @ =0x00003006
- adds r0, r3
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- movs r0, 0x3
- bl CopyBgTilemapBufferToVram
- ldr r0, [r4]
- ldr r4, _081396A4 @ =0x00003288
- adds r0, r4
- b _081396F8
- .align 2, 0
-_08139690: .4byte gUnknown_203B140
-_08139694: .4byte 0x00003003
-_08139698: .4byte 0x00003004
-_0813969C: .4byte 0x00003005
-_081396A0: .4byte 0x00003006
-_081396A4: .4byte 0x00003288
-_081396A8:
- ldr r0, [r5]
- ldr r4, _08139700 @ =0x00003004
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- ldr r1, _08139704 @ =gUnknown_8463FA4
- str r1, [sp, 0x8]
- movs r1, 0x1
- negs r1, r1
- str r1, [sp, 0xC]
- ldr r1, _08139708 @ =gUnknown_8419CB9
- str r1, [sp, 0x10]
- movs r1, 0x2
- movs r2, 0x7
- movs r3, 0x2A
- bl AddTextPrinterParameterized4
- ldr r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- movs r0, 0x3
- bl CopyBgTilemapBufferToVram
- ldr r0, [r5]
- ldr r1, _0813970C @ =0x00003288
- adds r0, r1
-_081396F8:
- movs r1, 0x2
- strb r1, [r0]
- b _0813975A
- .align 2, 0
-_08139700: .4byte 0x00003004
-_08139704: .4byte gUnknown_8463FA4
-_08139708: .4byte gUnknown_8419CB9
-_0813970C: .4byte 0x00003288
-_08139710:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08139730 @ =gUnknown_203B140
- ldr r1, [r0]
- ldr r2, _08139734 @ =0x00003288
- adds r1, r2
-_08139728:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0813975A
- .align 2, 0
-_08139730: .4byte gUnknown_203B140
-_08139734: .4byte 0x00003288
-_08139738:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08139744 @ =gUnknown_203B16D
- strb r4, [r0]
- b _0813975A
- .align 2, 0
-_08139744: .4byte gUnknown_203B16D
-_08139748:
- ldr r0, _08139764 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0813975A
- adds r0, r2, 0
- bl sub_8137E64
-_0813975A:
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08139764: .4byte gPaletteFade
- thumb_func_end sub_81393D4
-
- thumb_func_start sub_8139768
-sub_8139768: @ 8139768
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r0, _081397A4 @ =gUnknown_203B140
- ldr r1, [r0]
- ldr r2, _081397A8 @ =0x00003020
- adds r1, r2
- ldrb r1, [r1]
- adds r6, r0, 0
- cmp r1, 0x1
- bhi _08139858
- ldr r3, _081397AC @ =gUnknown_203B170
- ldr r2, [r3]
- ldrb r0, [r2, 0x4]
- adds r1, r0, 0x1
- strb r1, [r2, 0x4]
- lsls r0, 24
- lsrs r0, 24
- adds r5, r3, 0
- cmp r0, 0x1
- bls _08139858
- ldr r3, [r5]
- ldrb r0, [r3, 0x8]
- cmp r0, 0x1
- beq _081397D8
- cmp r0, 0x1
- bgt _081397B0
- cmp r0, 0
- beq _081397B6
- b _0813981C
- .align 2, 0
-_081397A4: .4byte gUnknown_203B140
-_081397A8: .4byte 0x00003020
-_081397AC: .4byte gUnknown_203B170
-_081397B0:
- cmp r0, 0x2
- beq _081397FC
- b _0813981C
-_081397B6:
- ldr r2, _081397D4 @ =gUnknown_8463FBE
- ldrb r0, [r3]
- adds r1, r0, 0x1
- strb r1, [r3]
- lsls r0, 24
- lsrs r0, 24
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- movs r1, 0x3
- b _0813983A
- .align 2, 0
-_081397D4: .4byte gUnknown_8463FBE
-_081397D8:
- ldr r2, _081397F8 @ =gUnknown_8463FC1
- ldrb r0, [r3]
- adds r1, r0, 0x1
- strb r1, [r3]
- lsls r0, 24
- lsrs r0, 24
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- movs r1, 0x5
- b _0813983A
- .align 2, 0
-_081397F8: .4byte gUnknown_8463FC1
-_081397FC:
- ldr r2, _08139818 @ =gUnknown_8463FC6
- ldrb r0, [r3]
- adds r1, r0, 0x1
- strb r1, [r3]
- lsls r0, 24
- lsrs r0, 24
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r1, [r4, 0x22]
- adds r0, r1
- b _08139836
- .align 2, 0
-_08139818: .4byte gUnknown_8463FC6
-_0813981C:
- ldr r3, _08139860 @ =gUnknown_8463FCD
- ldr r2, [r5]
- ldrb r0, [r2]
- adds r1, r0, 0x1
- strb r1, [r2]
- lsls r0, 24
- lsrs r0, 24
- adds r0, r3
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r2, [r4, 0x22]
- adds r0, r2
-_08139836:
- strh r0, [r4, 0x22]
- movs r1, 0x7
-_0813983A:
- ldr r2, [r5]
- ldrb r0, [r2]
- cmp r0, r1
- bcc _08139852
- movs r0, 0
- strb r0, [r2]
- ldr r1, [r6]
- ldr r0, _08139864 @ =0x00003020
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08139852:
- ldr r1, [r5]
- movs r0, 0
- strb r0, [r1, 0x4]
-_08139858:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08139860: .4byte gUnknown_8463FCD
-_08139864: .4byte 0x00003020
- thumb_func_end sub_8139768
-
- thumb_func_start sub_8139868
-sub_8139868: @ 8139868
- push {r4-r6,lr}
- adds r3, r0, 0
- ldr r5, _081398C0 @ =gUnknown_203B140
- ldr r0, [r5]
- ldr r6, _081398C4 @ =0x00003020
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x1
- bhi _0813994C
- ldr r4, _081398C8 @ =gUnknown_203B170
- ldr r2, [r4]
- ldrb r0, [r2, 0x8]
- cmp r0, 0x1
- beq _081398D0
- cmp r0, 0x1
- ble _0813988C
- cmp r0, 0x2
- beq _08139908
-_0813988C:
- ldrb r0, [r2, 0x4]
- adds r1, r0, 0x1
- strb r1, [r2, 0x4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x77
- bls _0813994C
- ldr r2, _081398CC @ =gUnknown_8463FD4
- ldr r1, [r4]
- ldrb r0, [r1]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r2, [r3, 0x20]
- adds r0, r2
- movs r2, 0
- strh r0, [r3, 0x20]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xA
- bls _0813994C
- b _0813993A
- .align 2, 0
-_081398C0: .4byte gUnknown_203B140
-_081398C4: .4byte 0x00003020
-_081398C8: .4byte gUnknown_203B170
-_081398CC: .4byte gUnknown_8463FD4
-_081398D0:
- ldrb r0, [r2, 0x4]
- adds r1, r0, 0x1
- strb r1, [r2, 0x4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x59
- bls _0813994C
- ldr r2, _08139904 @ =gUnknown_8463FDF
- ldr r1, [r4]
- ldrb r0, [r1]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r2, [r3, 0x20]
- adds r0, r2
- movs r2, 0
- strh r0, [r3, 0x20]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xA
- bls _0813994C
- b _0813993A
- .align 2, 0
-_08139904: .4byte gUnknown_8463FDF
-_08139908:
- ldrb r0, [r2, 0x4]
- adds r1, r0, 0x1
- strb r1, [r2, 0x4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3B
- bls _0813994C
- ldr r2, _08139954 @ =gUnknown_8463FEA
- ldr r1, [r4]
- ldrb r0, [r1]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r2, [r3, 0x20]
- adds r0, r2
- movs r2, 0
- strh r0, [r3, 0x20]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xE
- bls _0813994C
-_0813993A:
- ldr r0, [r4]
- strb r2, [r0]
- ldr r0, [r4]
- strb r2, [r0, 0x4]
- ldr r1, [r5]
- adds r1, r6
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0813994C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08139954: .4byte gUnknown_8463FEA
- thumb_func_end sub_8139868
-
- thumb_func_start nullsub_96
-nullsub_96: @ 8139958
- bx lr
- thumb_func_end nullsub_96
-
- thumb_func_start sub_813995C
-sub_813995C: @ 813995C
- push {r4-r7,lr}
- sub sp, 0x14
- ldr r4, _081399CC @ =gUnknown_203B170
- movs r0, 0xC
- bl AllocZeroed
- str r0, [r4]
- ldr r5, _081399D0 @ =gUnknown_203B140
- ldr r0, [r5]
- ldr r4, _081399D4 @ =0x00003290
- adds r0, r4
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r0, [r5]
- adds r0, r4
- movs r1, 0
- bl GetMonData
- adds r6, r0, 0
- ldr r0, [r5]
- adds r0, r4
- movs r1, 0x1
- bl GetMonData
- adds r4, r0, 0
- ldr r5, [r5]
- ldr r1, _081399D8 @ =0x000032f8
- adds r0, r5, r1
- ldr r1, [r0]
- ldr r0, _081399DC @ =CB2_ReturnToTradeMenuFromSummary
- cmp r1, r0
- bne _081399E8
- ldr r1, _081399E0 @ =0x00003024
- adds r0, r5, r1
- ldr r5, [r0]
- cmp r5, 0x1
- bne _08139A24
- movs r0, 0x3C
- str r0, [sp]
- movs r0, 0x41
- str r0, [sp, 0x4]
- movs r0, 0xC
- str r0, [sp, 0x8]
- ldr r0, _081399E4 @ =0x0000ffff
- str r0, [sp, 0xC]
- str r5, [sp, 0x10]
- adds r0, r7, 0
- adds r1, r4, 0
- adds r2, r6, 0
- movs r3, 0x1
- bl CreateMonPicSprite
- b _08139A40
- .align 2, 0
-_081399CC: .4byte gUnknown_203B170
-_081399D0: .4byte gUnknown_203B140
-_081399D4: .4byte 0x00003290
-_081399D8: .4byte 0x000032f8
-_081399DC: .4byte CB2_ReturnToTradeMenuFromSummary
-_081399E0: .4byte 0x00003024
-_081399E4: .4byte 0x0000ffff
-_081399E8:
- ldr r0, _08139A1C @ =gLastViewedMonIndex
- ldrb r1, [r0]
- movs r0, 0x3
- bl sub_804455C
- lsls r0, 24
- cmp r0, 0
- beq _08139A24
- movs r0, 0x3C
- str r0, [sp]
- movs r0, 0x41
- str r0, [sp, 0x4]
- movs r0, 0xC
- str r0, [sp, 0x8]
- ldr r0, _08139A20 @ =0x0000ffff
- str r0, [sp, 0xC]
- movs r0, 0x1
- str r0, [sp, 0x10]
- adds r0, r7, 0
- adds r1, r4, 0
- adds r2, r6, 0
- movs r3, 0x1
- bl CreateMonPicSprite
- b _08139A40
- .align 2, 0
-_08139A1C: .4byte gLastViewedMonIndex
-_08139A20: .4byte 0x0000ffff
-_08139A24:
- movs r0, 0x3C
- str r0, [sp]
- movs r0, 0x41
- str r0, [sp, 0x4]
- movs r0, 0xC
- str r0, [sp, 0x8]
- ldr r0, _08139A70 @ =0x0000ffff
- str r0, [sp, 0xC]
- adds r0, r7, 0
- adds r1, r4, 0
- adds r2, r6, 0
- movs r3, 0x1
- bl CreateMonPicSprite_HandleDeoxys
-_08139A40:
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r1, _08139A74 @ =gSprites
- adds r4, r0, r1
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r7, 0
- bl IsPokeSpriteNotFlipped
- lsls r0, 24
- cmp r0, 0
- bne _08139A78
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _08139A86
- .align 2, 0
-_08139A70: .4byte 0x0000ffff
-_08139A74: .4byte gSprites
-_08139A78:
- adds r2, r4, 0
- adds r2, 0x3F
- ldrb r1, [r2]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_08139A86:
- ldr r0, _08139AA4 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _08139AA8 @ =0x00003010
- adds r0, r1
- strb r5, [r0]
- movs r0, 0x1
- bl sub_8139C44
- adds r0, r5, 0
- bl sub_8139AAC
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08139AA4: .4byte gUnknown_203B140
-_08139AA8: .4byte 0x00003010
- thumb_func_end sub_813995C
-
- thumb_func_start sub_8139AAC
-sub_8139AAC: @ 8139AAC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r1, _08139AF4 @ =gUnknown_203B140
- ldr r0, [r1]
- ldr r2, _08139AF8 @ =0x00003020
- adds r0, r2
- movs r6, 0
- strb r6, [r0]
- ldr r2, [r1]
- movs r3, 0xC8
- lsls r3, 6
- adds r0, r2, r3
- ldrb r4, [r0]
- adds r7, r1, 0
- cmp r4, 0x1
- bne _08139B3C
- ldr r1, _08139AFC @ =0x00003290
- adds r0, r2, r1
- movs r1, 0x20
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x5
- bhi _08139B04
- ldr r0, _08139B00 @ =gUnknown_203B170
- ldr r1, [r0]
- movs r0, 0x2
- strb r0, [r1, 0x8]
- b _08139B1E
- .align 2, 0
-_08139AF4: .4byte gUnknown_203B140
-_08139AF8: .4byte 0x00003020
-_08139AFC: .4byte 0x00003290
-_08139B00: .4byte gUnknown_203B170
-_08139B04:
- cmp r0, 0xA
- bhi _08139B14
- ldr r0, _08139B10 @ =gUnknown_203B170
- ldr r0, [r0]
- strb r4, [r0, 0x8]
- b _08139B1E
- .align 2, 0
-_08139B10: .4byte gUnknown_203B170
-_08139B14:
- cmp r1, 0x28
- bhi _08139B1E
- ldr r0, _08139B30 @ =gUnknown_203B170
- ldr r0, [r0]
- strb r6, [r0, 0x8]
-_08139B1E:
- ldr r0, _08139B34 @ =gSprites
- mov r2, r8
- lsls r1, r2, 4
- add r1, r8
- lsls r1, 2
- adds r0, 0x1C
- adds r1, r0
- ldr r0, _08139B38 @ =sub_8139868
- b _08139C28
- .align 2, 0
-_08139B30: .4byte gUnknown_203B170
-_08139B34: .4byte gSprites
-_08139B38: .4byte sub_8139868
-_08139B3C:
- ldr r3, _08139B60 @ =0x0000326c
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0
- beq _08139B6C
- cmp r0, 0x6
- beq _08139B6C
- cmp r0, 0x7
- beq _08139C2A
- ldr r0, _08139B64 @ =gSprites
- mov r2, r8
- lsls r1, r2, 4
- add r1, r8
- lsls r1, 2
- adds r0, 0x1C
- adds r1, r0
- ldr r0, _08139B68 @ =nullsub_96
- b _08139C28
- .align 2, 0
-_08139B60: .4byte 0x0000326c
-_08139B64: .4byte gSprites
-_08139B68: .4byte nullsub_96
-_08139B6C:
- ldr r0, [r7]
- ldr r4, _08139B98 @ =0x00003290
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, [r7]
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r6, r0
- bne _08139BA0
- ldr r0, _08139B9C @ =gUnknown_203B170
- ldr r1, [r0]
- movs r0, 0x3
- b _08139C16
- .align 2, 0
-_08139B98: .4byte 0x00003290
-_08139B9C: .4byte gUnknown_203B170
-_08139BA0:
- bl __floatsidf
- str r0, [sp]
- str r1, [sp, 0x4]
- ldr r3, _08139BD8+4 @ =0x9999999a
- ldr r2, _08139BD8 @ =0x3fe99999
- bl __muldf3
- adds r5, r1, 0
- adds r4, r0, 0
- adds r0, r6, 0
- bl __floatsidf
- adds r7, r1, 0
- adds r6, r0, 0
- adds r1, r5, 0
- adds r0, r4, 0
- adds r3, r7, 0
- adds r2, r6, 0
- bl __ledf2
- cmp r0, 0
- bgt _08139BE4
- ldr r0, _08139BE0 @ =gUnknown_203B170
- ldr r1, [r0]
- movs r0, 0x2
- b _08139C16
- .align 2, 0
-@ _08139BD8: .double 0.8
-_08139BD8: .4byte 0x3fe99999
-_08139BDC: .4byte 0x9999999a
-_08139BE0: .4byte gUnknown_203B170
-_08139BE4:
- ldr r3, _08139C04+4 @ =0x33333333
- ldr r2, _08139C04 @ =0x3fe33333
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- bl __muldf3
- adds r3, r7, 0
- adds r2, r6, 0
- bl __ledf2
- cmp r0, 0
- bgt _08139C10
- ldr r0, _08139C0C @ =gUnknown_203B170
- ldr r1, [r0]
- movs r0, 0x1
- b _08139C16
- .align 2, 0
-@ _08139C04: .double 0.6
-_08139C04: .4byte 0x3fe33333
-_08139C08: .4byte 0x33333333
-_08139C0C: .4byte gUnknown_203B170
-_08139C10:
- ldr r0, _08139C38 @ =gUnknown_203B170
- ldr r1, [r0]
- movs r0, 0
-_08139C16:
- strb r0, [r1, 0x8]
- ldr r0, _08139C3C @ =gSprites
- mov r3, r8
- lsls r1, r3, 4
- add r1, r8
- lsls r1, 2
- adds r0, 0x1C
- adds r1, r0
- ldr r0, _08139C40 @ =sub_8139768
-_08139C28:
- str r0, [r1]
-_08139C2A:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08139C38: .4byte gUnknown_203B170
-_08139C3C: .4byte gSprites
-_08139C40: .4byte sub_8139768
- thumb_func_end sub_8139AAC
-
- thumb_func_start sub_8139C44
-sub_8139C44: @ 8139C44
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08139C74 @ =gSprites
- ldr r1, _08139C78 @ =gUnknown_203B140
- ldr r1, [r1]
- ldr r2, _08139C7C @ =0x00003010
- adds r1, r2
- ldrb r1, [r1]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- adds r2, 0x3E
- movs r1, 0x1
- ands r0, r1
- lsls r0, 2
- ldrb r3, [r2]
- movs r1, 0x5
- negs r1, r1
- ands r1, r3
- orrs r1, r0
- strb r1, [r2]
- bx lr
- .align 2, 0
-_08139C74: .4byte gSprites
-_08139C78: .4byte gUnknown_203B140
-_08139C7C: .4byte 0x00003010
- thumb_func_end sub_8139C44
-
- thumb_func_start sub_8139C80
-sub_8139C80: @ 8139C80
- push {r4,lr}
- ldr r0, _08139CA4 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _08139CA8 @ =0x00003010
- adds r0, r1
- ldrb r0, [r0]
- bl FreeAndDestroyMonPicSprite
- ldr r4, _08139CAC @ =gUnknown_203B170
- ldr r0, [r4]
- bl Free
- movs r0, 0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08139CA4: .4byte gUnknown_203B140
-_08139CA8: .4byte 0x00003010
-_08139CAC: .4byte gUnknown_203B170
- thumb_func_end sub_8139C80
-
- thumb_func_start sub_8139CB0
-sub_8139CB0: @ 8139CB0
- push {r4,lr}
- ldr r0, _08139CD4 @ =gUnknown_203B140
- ldr r1, [r0]
- movs r2, 0xC8
- lsls r2, 6
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08139CD8
- adds r2, 0x90
- adds r0, r1, r2
- movs r1, 0x26
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- b _08139CDA
- .align 2, 0
-_08139CD4: .4byte gUnknown_203B140
-_08139CD8:
- movs r0, 0
-_08139CDA:
- bl ItemIdToBallId
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl LoadBallGfx
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- ldr r1, _08139D40 @ =gBallSpriteTemplates
- adds r0, r1
- movs r1, 0x6A
- movs r2, 0x58
- movs r3, 0
- bl CreateSprite
- ldr r2, _08139D44 @ =gUnknown_203B140
- ldr r1, [r2]
- ldr r3, _08139D48 @ =0x0000300c
- adds r1, r3
- strb r0, [r1]
- ldr r4, _08139D4C @ =gSprites
- ldr r2, [r2]
- adds r2, r3
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08139D50 @ =SpriteCallbackDummy
- str r1, [r0]
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x5]
- movs r0, 0x1
- bl sub_8139D54
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08139D40: .4byte gBallSpriteTemplates
-_08139D44: .4byte gUnknown_203B140
-_08139D48: .4byte 0x0000300c
-_08139D4C: .4byte gSprites
-_08139D50: .4byte SpriteCallbackDummy
- thumb_func_end sub_8139CB0
-
- thumb_func_start sub_8139D54
-sub_8139D54: @ 8139D54
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08139D84 @ =gSprites
- ldr r1, _08139D88 @ =gUnknown_203B140
- ldr r1, [r1]
- ldr r2, _08139D8C @ =0x0000300c
- adds r1, r2
- ldrb r1, [r1]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- adds r2, 0x3E
- movs r1, 0x1
- ands r0, r1
- lsls r0, 2
- ldrb r3, [r2]
- movs r1, 0x5
- negs r1, r1
- ands r1, r3
- orrs r1, r0
- strb r1, [r2]
- bx lr
- .align 2, 0
-_08139D84: .4byte gSprites
-_08139D88: .4byte gUnknown_203B140
-_08139D8C: .4byte 0x0000300c
- thumb_func_end sub_8139D54
-
- thumb_func_start sub_8139D90
-sub_8139D90: @ 8139D90
- push {lr}
- ldr r0, _08139DB0 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _08139DB4 @ =0x0000300c
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08139DB8 @ =gSprites
- adds r0, r1
- bl DestroySpriteAndFreeResources2
- pop {r0}
- bx r0
- .align 2, 0
-_08139DB0: .4byte gUnknown_203B140
-_08139DB4: .4byte 0x0000300c
-_08139DB8: .4byte gSprites
- thumb_func_end sub_8139D90
-
- thumb_func_start sub_8139DBC
-sub_8139DBC: @ 8139DBC
- push {r4-r6,lr}
- sub sp, 0xC
- ldr r6, _08139E08 @ =gUnknown_203B140
- ldr r0, [r6]
- ldr r4, _08139E0C @ =0x00003290
- adds r0, r4
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, [r6]
- adds r0, r4
- movs r1, 0
- bl GetMonData
- adds r4, r0, 0
- adds r0, r5, 0
- bl SafeLoadMonIconPalette
- ldr r2, [r6]
- ldr r1, _08139E10 @ =0x000032f8
- adds r0, r2, r1
- ldr r1, [r0]
- ldr r0, _08139E14 @ =CB2_ReturnToTradeMenuFromSummary
- cmp r1, r0
- bne _08139E2C
- ldr r1, _08139E18 @ =0x00003024
- adds r0, r2, r1
- ldr r0, [r0]
- cmp r0, 0x1
- bne _08139E20
- ldr r1, _08139E1C @ =SpriteCallbackDummy
- movs r0, 0
- str r0, [sp]
- str r4, [sp, 0x4]
- b _08139E58
- .align 2, 0
-_08139E08: .4byte gUnknown_203B140
-_08139E0C: .4byte 0x00003290
-_08139E10: .4byte 0x000032f8
-_08139E14: .4byte CB2_ReturnToTradeMenuFromSummary
-_08139E18: .4byte 0x00003024
-_08139E1C: .4byte SpriteCallbackDummy
-_08139E20:
- ldr r1, _08139E28 @ =SpriteCallbackDummy
- movs r0, 0
- b _08139E52
- .align 2, 0
-_08139E28: .4byte SpriteCallbackDummy
-_08139E2C:
- ldr r0, _08139E48 @ =gLastViewedMonIndex
- ldrb r1, [r0]
- movs r0, 0x3
- bl sub_804455C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08139E50
- ldr r1, _08139E4C @ =SpriteCallbackDummy
- movs r0, 0
- str r0, [sp]
- str r4, [sp, 0x4]
- b _08139E58
- .align 2, 0
-_08139E48: .4byte gLastViewedMonIndex
-_08139E4C: .4byte SpriteCallbackDummy
-_08139E50:
- ldr r1, _08139E98 @ =SpriteCallbackDummy
-_08139E52:
- str r0, [sp]
- str r4, [sp, 0x4]
- movs r0, 0x1
-_08139E58:
- str r0, [sp, 0x8]
- adds r0, r5, 0
- movs r2, 0x18
- movs r3, 0x20
- bl CreateMonIcon
- ldr r1, [r6]
- ldr r2, _08139E9C @ =0x00003014
- adds r1, r2
- strb r0, [r1]
- adds r0, r5, 0
- bl IsPokeSpriteNotFlipped
- lsls r0, 24
- cmp r0, 0
- bne _08139EA8
- ldr r2, _08139EA0 @ =gSprites
- ldr r0, _08139EA4 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _08139E9C @ =0x00003014
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- b _08139EC6
- .align 2, 0
-_08139E98: .4byte SpriteCallbackDummy
-_08139E9C: .4byte 0x00003014
-_08139EA0: .4byte gSprites
-_08139EA4: .4byte gUnknown_203B140
-_08139EA8:
- ldr r2, _08139ED8 @ =gSprites
- ldr r0, _08139EDC @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _08139EE0 @ =0x00003014
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3F
- ldrb r2, [r0]
- movs r1, 0x2
- negs r1, r1
- ands r1, r2
-_08139EC6:
- strb r1, [r0]
- movs r0, 0x1
- bl sub_8139EE4
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08139ED8: .4byte gSprites
-_08139EDC: .4byte gUnknown_203B140
-_08139EE0: .4byte 0x00003014
- thumb_func_end sub_8139DBC
-
- thumb_func_start sub_8139EE4
-sub_8139EE4: @ 8139EE4
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08139F14 @ =gSprites
- ldr r1, _08139F18 @ =gUnknown_203B140
- ldr r1, [r1]
- ldr r2, _08139F1C @ =0x00003014
- adds r1, r2
- ldrb r1, [r1]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- adds r2, 0x3E
- movs r1, 0x1
- ands r0, r1
- lsls r0, 2
- ldrb r3, [r2]
- movs r1, 0x5
- negs r1, r1
- ands r1, r3
- orrs r1, r0
- strb r1, [r2]
- bx lr
- .align 2, 0
-_08139F14: .4byte gSprites
-_08139F18: .4byte gUnknown_203B140
-_08139F1C: .4byte 0x00003014
- thumb_func_end sub_8139EE4
-
- thumb_func_start sub_8139F20
-sub_8139F20: @ 8139F20
- push {r4,lr}
- ldr r4, _08139F54 @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r1, _08139F58 @ =0x00003290
- adds r0, r1
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl SafeFreeMonIconPalette
- ldr r0, [r4]
- ldr r1, _08139F5C @ =0x00003014
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08139F60 @ =gSprites
- adds r0, r1
- bl DestroyMonIcon
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08139F54: .4byte gUnknown_203B140
-_08139F58: .4byte 0x00003290
-_08139F5C: .4byte 0x00003014
-_08139F60: .4byte gSprites
- thumb_func_end sub_8139F20
-
- thumb_func_start sub_8139F64
-sub_8139F64: @ 8139F64
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x34
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x30]
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- movs r6, 0x80
- lsls r6, 4
- adds r0, r6, 0
- bl AllocZeroed
- str r0, [sp, 0x18]
- adds r0, r6, 0
- bl AllocZeroed
- add r5, sp, 0x18
- str r0, [r5, 0x4]
- movs r0, 0xC
- bl AllocZeroed
- ldr r4, _0813A0BC @ =gUnknown_203B148
- str r0, [r4]
- movs r0, 0xC
- bl AllocZeroed
- str r0, [r4, 0x4]
- movs r0, 0xC
- bl AllocZeroed
- str r0, [r4, 0x8]
- movs r0, 0xC
- bl AllocZeroed
- str r0, [r4, 0xC]
- ldr r0, _0813A0C0 @ =gUnknown_8463740
- ldr r1, [sp, 0x18]
- bl LZ77UnCompWram
- ldr r0, _0813A0C4 @ =gUnknown_846386C
- ldr r1, [r5, 0x4]
- bl LZ77UnCompWram
- movs r7, 0
- add r0, sp, 0x20
- mov r8, r0
- add r6, sp, 0x28
-_08139FCC:
- movs r4, 0x1
- ands r4, r7
- lsls r0, r4, 2
- add r0, sp
- adds r0, 0x18
- ldr r0, [r0]
- str r0, [sp, 0x20]
- ldr r1, [sp, 0x30]
- adds r5, r1, r7
- lsls r0, r5, 16
- movs r1, 0x80
- lsls r1, 4
- orrs r0, r1
- mov r1, r8
- str r0, [r1, 0x4]
- ldr r0, _0813A0C8 @ =gUnknown_8463720
- str r0, [sp, 0x28]
- ldr r1, _0813A0CC @ =0xffff0000
- ldr r0, [r6, 0x4]
- ands r0, r1
- mov r1, r9
- orrs r0, r1
- str r0, [r6, 0x4]
- mov r0, sp
- movs r1, 0
- mov r10, r1
- strh r5, [r0]
- mov r1, r9
- strh r1, [r0, 0x2]
- ldr r0, _0813A0D0 @ =gUnknown_846398C
- str r0, [sp, 0x4]
- ldr r0, _0813A0D4 @ =gUnknown_84639A4
- str r0, [sp, 0x8]
- mov r0, r10
- str r0, [sp, 0xC]
- ldr r0, _0813A0D8 @ =gDummySpriteAffineAnimTable
- str r0, [sp, 0x10]
- ldr r0, _0813A0DC @ =sub_813A124
- str r0, [sp, 0x14]
- mov r0, r8
- bl LoadSpriteSheet
- adds r0, r6, 0
- bl LoadSpritePalette
- lsls r1, r4, 6
- adds r1, 0x98
- ldr r0, _0813A0E0 @ =gUnknown_203B16D
- ldrb r0, [r0]
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 18
- movs r0, 0x88
- lsls r0, 14
- adds r2, r0
- asrs r2, 16
- mov r0, sp
- adds r3, r4, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0813A0BC @ =gUnknown_203B148
- lsls r1, r7, 2
- adds r3, r1, r2
- ldr r2, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0813A0E4 @ =gSprites
- adds r1, r0
- str r1, [r2]
- strh r7, [r2, 0x4]
- ldr r0, [r3]
- strh r5, [r0, 0x6]
- ldr r0, [r3]
- mov r1, r9
- strh r1, [r0, 0x8]
- ldr r0, [r3]
- ldr r0, [r0]
- adds r0, 0x43
- strb r7, [r0]
- cmp r7, 0x1
- bls _0813A07E
- ldr r0, [r3]
- ldr r0, [r0]
- movs r1, 0x1
- bl StartSpriteAnim
-_0813A07E:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x3
- bls _08139FCC
- movs r0, 0x1
- bl sub_813A0E8
- ldr r0, [sp, 0x18]
- cmp r0, 0
- beq _0813A09C
- bl Free
- mov r0, r10
- str r0, [sp, 0x18]
-_0813A09C:
- ldr r0, [sp, 0x1C]
- cmp r0, 0
- beq _0813A0AA
- bl Free
- mov r1, r10
- str r1, [sp, 0x1C]
-_0813A0AA:
- add sp, 0x34
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A0BC: .4byte gUnknown_203B148
-_0813A0C0: .4byte gUnknown_8463740
-_0813A0C4: .4byte gUnknown_846386C
-_0813A0C8: .4byte gUnknown_8463720
-_0813A0CC: .4byte 0xffff0000
-_0813A0D0: .4byte gUnknown_846398C
-_0813A0D4: .4byte gUnknown_84639A4
-_0813A0D8: .4byte gDummySpriteAffineAnimTable
-_0813A0DC: .4byte sub_813A124
-_0813A0E0: .4byte gUnknown_203B16D
-_0813A0E4: .4byte gSprites
- thumb_func_end sub_8139F64
-
- thumb_func_start sub_813A0E8
-sub_813A0E8: @ 813A0E8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0
- ldr r6, _0813A120 @ =gUnknown_203B148
- movs r1, 0x1
- ands r0, r1
- lsls r4, r0, 2
- movs r5, 0x5
- negs r5, r5
-_0813A0FC:
- lsls r0, r3, 2
- adds r0, r6
- ldr r0, [r0]
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r5, 0
- ands r0, r2
- orrs r0, r4
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _0813A0FC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A120: .4byte gUnknown_203B148
- thumb_func_end sub_813A0E8
-
- thumb_func_start sub_813A124
-sub_813A124: @ 813A124
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r6, 0
- ldr r3, _0813A19C @ =gUnknown_203B140
- ldr r4, _0813A1A0 @ =gUnknown_203B148
-_0813A132:
- ldr r0, [r3]
- ldr r1, _0813A1A4 @ =0x00003268
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0813A142
- cmp r6, 0x1
- bhi _0813A158
-_0813A142:
- lsls r0, r6, 2
- adds r0, r4
- ldr r0, [r0]
- ldr r2, [r0]
- ldr r0, _0813A1A8 @ =gUnknown_203B16D
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, 0x22
- strh r0, [r2, 0x22]
-_0813A158:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bls _0813A132
- ldr r1, [r3]
- ldr r2, _0813A1A4 @ =0x00003268
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0813A1AC
- subs r2, 0x54
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _0813A20E
- ldr r4, _0813A1A0 @ =gUnknown_203B148
- ldr r0, [r4]
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- ldr r0, [r4, 0x4]
- ldr r0, [r0]
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- b _0813A20E
- .align 2, 0
-_0813A19C: .4byte gUnknown_203B140
-_0813A1A0: .4byte gUnknown_203B148
-_0813A1A4: .4byte 0x00003268
-_0813A1A8: .4byte gUnknown_203B16D
-_0813A1AC:
- movs r6, 0
- ldr r0, _0813A1F0 @ =gUnknown_203B148
- mov r9, r0
- mov r8, r6
- movs r7, 0x4
- movs r1, 0x5
- negs r1, r1
- mov r12, r1
-_0813A1BC:
- lsls r0, r6, 2
- add r0, r9
- ldr r0, [r0]
- ldr r3, [r0]
- ldrh r0, [r3, 0x2E]
- adds r1, r0, 0x1
- strh r1, [r3, 0x2E]
- adds r4, r3, 0
- adds r4, 0x3E
- ldrb r2, [r4]
- movs r0, 0x4
- ands r0, r2
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _0813A1F4
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _0813A204
- mov r0, r12
- ands r0, r2
- strb r0, [r4]
- mov r2, r8
- strh r2, [r3, 0x2E]
- b _0813A204
- .align 2, 0
-_0813A1F0: .4byte gUnknown_203B148
-_0813A1F4:
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _0813A204
- adds r0, r2, 0
- orrs r0, r7
- strb r0, [r4]
- strh r5, [r3, 0x2E]
-_0813A204:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x1
- bls _0813A1BC
-_0813A20E:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_813A124
-
- thumb_func_start sub_813A21C
-sub_813A21C: @ 813A21C
- push {r4-r6,lr}
- movs r5, 0
- ldr r6, _0813A250 @ =gUnknown_203B148
-_0813A222:
- lsls r0, r5, 2
- adds r4, r0, r6
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0
- beq _0813A232
- bl DestroySpriteAndFreeResources
-_0813A232:
- ldr r0, [r4]
- cmp r0, 0
- beq _0813A240
- bl Free
- movs r0, 0
- str r0, [r4]
-_0813A240:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _0813A222
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A250: .4byte gUnknown_203B148
- thumb_func_end sub_813A21C
-
- thumb_func_start sub_813A254
-sub_813A254: @ 813A254
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x28
- lsls r0, 16
- lsrs r7, r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- ldr r0, _0813A310 @ =gUnknown_203B158
- mov r8, r0
- movs r0, 0x8
- bl AllocZeroed
- mov r1, r8
- str r0, [r1]
- movs r4, 0x80
- lsls r4, 3
- adds r0, r4, 0
- bl AllocZeroed
- adds r5, r0, 0
- ldr r0, _0813A314 @ =gUnknown_8E9BF48
- adds r1, r5, 0
- bl LZ77UnCompWram
- mov r1, r8
- ldr r0, [r1]
- cmp r0, 0
- beq _0813A2F0
- str r5, [sp, 0x18]
- add r0, sp, 0x18
- lsls r1, r7, 16
- orrs r1, r4
- str r1, [r0, 0x4]
- ldr r1, _0813A318 @ =gUnknown_8E9BF28
- str r1, [sp, 0x20]
- ldr r2, _0813A31C @ =0xffff0000
- add r4, sp, 0x20
- ldr r1, [r4, 0x4]
- ands r1, r2
- orrs r1, r6
- str r1, [r4, 0x4]
- mov r1, sp
- movs r2, 0
- strh r7, [r1]
- strh r6, [r1, 0x2]
- ldr r1, _0813A320 @ =gUnknown_84639AC
- str r1, [sp, 0x4]
- ldr r1, _0813A324 @ =gUnknown_84639F4
- str r1, [sp, 0x8]
- str r2, [sp, 0xC]
- ldr r1, _0813A328 @ =gDummySpriteAffineAnimTable
- str r1, [sp, 0x10]
- ldr r1, _0813A32C @ =SpriteCallbackDummy
- str r1, [sp, 0x14]
- bl LoadSpriteSheet
- adds r0, r4, 0
- bl LoadSpritePalette
- mov r0, sp
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r1, r8
- ldr r2, [r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0813A330 @ =gSprites
- adds r1, r0
- str r1, [r2]
- strh r7, [r2, 0x4]
- strh r6, [r2, 0x6]
-_0813A2F0:
- movs r0, 0x1
- bl sub_813A3B8
- bl sub_813A35C
- cmp r5, 0
- beq _0813A304
- adds r0, r5, 0
- bl Free
-_0813A304:
- add sp, 0x28
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A310: .4byte gUnknown_203B158
-_0813A314: .4byte gUnknown_8E9BF48
-_0813A318: .4byte gUnknown_8E9BF28
-_0813A31C: .4byte 0xffff0000
-_0813A320: .4byte gUnknown_84639AC
-_0813A324: .4byte gUnknown_84639F4
-_0813A328: .4byte gDummySpriteAffineAnimTable
-_0813A32C: .4byte SpriteCallbackDummy
-_0813A330: .4byte gSprites
- thumb_func_end sub_813A254
-
- thumb_func_start sub_813A334
-sub_813A334: @ 813A334
- push {r4,lr}
- ldr r4, _0813A358 @ =gUnknown_203B158
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0
- beq _0813A344
- bl DestroySpriteAndFreeResources
-_0813A344:
- ldr r0, [r4]
- cmp r0, 0
- beq _0813A352
- bl Free
- movs r0, 0
- str r0, [r4]
-_0813A352:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A358: .4byte gUnknown_203B158
- thumb_func_end sub_813A334
-
- thumb_func_start sub_813A35C
-sub_813A35C: @ 813A35C
- push {r4,lr}
- ldr r4, _0813A38C @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r1, _0813A390 @ =0x00003290
- adds r0, r1
- movs r1, 0x37
- bl GetMonData
- bl sub_8138C5C
- ldr r1, [r4]
- ldr r2, _0813A394 @ =0x0000326c
- adds r1, r2
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- cmp r1, 0
- bne _0813A398
- movs r0, 0x1
- bl sub_813A3B8
- b _0813A3AE
- .align 2, 0
-_0813A38C: .4byte gUnknown_203B140
-_0813A390: .4byte 0x00003290
-_0813A394: .4byte 0x0000326c
-_0813A398:
- ldr r0, _0813A3B4 @ =gUnknown_203B158
- ldr r0, [r0]
- ldr r0, [r0]
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- bl StartSpriteAnim
- movs r0, 0
- bl sub_813A3B8
-_0813A3AE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A3B4: .4byte gUnknown_203B158
- thumb_func_end sub_813A35C
-
- thumb_func_start sub_813A3B8
-sub_813A3B8: @ 813A3B8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _0813A3EC @ =gUnknown_203B140
- ldr r2, [r1]
- ldr r4, _0813A3F0 @ =0x0000326c
- adds r0, r2, r4
- ldrb r0, [r0]
- adds r5, r1, 0
- cmp r0, 0
- beq _0813A3DA
- movs r1, 0xC8
- lsls r1, 6
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0813A3F8
-_0813A3DA:
- ldr r3, _0813A3F4 @ =gUnknown_203B158
- ldr r0, [r3]
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- b _0813A416
- .align 2, 0
-_0813A3EC: .4byte gUnknown_203B140
-_0813A3F0: .4byte 0x0000326c
-_0813A3F4: .4byte gUnknown_203B158
-_0813A3F8:
- ldr r4, _0813A438 @ =gUnknown_203B158
- ldr r0, [r4]
- ldr r2, [r0]
- adds r2, 0x3E
- movs r0, 0x1
- adds r1, r3, 0
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- adds r3, r4, 0
-_0813A416:
- ldr r0, [r5]
- ldr r4, _0813A43C @ =0x00003214
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _0813A440
- ldr r1, [r3]
- ldr r2, [r1]
- movs r3, 0x22
- ldrsh r0, [r2, r3]
- cmp r0, 0x2D
- beq _0813A456
- movs r0, 0x10
- strh r0, [r2, 0x20]
- ldr r1, [r1]
- movs r0, 0x2D
- b _0813A454
- .align 2, 0
-_0813A438: .4byte gUnknown_203B158
-_0813A43C: .4byte 0x00003214
-_0813A440:
- ldr r1, [r3]
- ldr r2, [r1]
- movs r4, 0x22
- ldrsh r0, [r2, r4]
- cmp r0, 0x26
- beq _0813A456
- movs r0, 0x10
- strh r0, [r2, 0x20]
- ldr r1, [r1]
- movs r0, 0x26
-_0813A454:
- strh r0, [r1, 0x22]
-_0813A456:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_813A3B8
-
- thumb_func_start sub_813A45C
-sub_813A45C: @ 813A45C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x40
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- lsls r1, 16
- lsrs r7, r1, 16
- movs r0, 0
- str r0, [sp, 0x38]
- ldr r4, _0813A4BC @ =gUnknown_203B15C
- movs r0, 0x40
- bl AllocZeroed
- str r0, [r4]
- movs r0, 0xC0
- lsls r0, 1
- bl AllocZeroed
- mov r9, r0
- ldr r0, _0813A4C0 @ =gUnknown_8E9B4B8
- mov r1, r9
- bl LZ77UnCompWram
- ldr r5, _0813A4C4 @ =gUnknown_203B140
- ldr r0, [r5]
- ldr r4, _0813A4C8 @ =0x00003290
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- adds r6, r0, 0
- ldr r0, [r5]
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- adds r1, r0, 0
- lsrs r0, r1, 2
- cmp r0, r6
- bls _0813A4CC
- movs r1, 0x2
- str r1, [sp, 0x38]
- b _0813A4D6
- .align 2, 0
-_0813A4BC: .4byte gUnknown_203B15C
-_0813A4C0: .4byte gUnknown_8E9B4B8
-_0813A4C4: .4byte gUnknown_203B140
-_0813A4C8: .4byte 0x00003290
-_0813A4CC:
- lsrs r0, r1, 1
- cmp r0, r6
- bls _0813A4D6
- movs r2, 0x1
- str r2, [sp, 0x38]
-_0813A4D6:
- mov r3, r9
- cmp r3, 0
- beq _0813A540
- str r3, [sp, 0x18]
- movs r2, 0xC0
- lsls r2, 1
- add r0, sp, 0x18
- mov r6, r10
- lsls r1, r6, 16
- orrs r1, r2
- str r1, [r0, 0x4]
- ldr r3, _0813A600 @ =gUnknown_8463FFC
- ldr r1, [r3]
- str r1, [sp, 0x20]
- ldr r6, _0813A604 @ =0xffff0000
- add r1, sp, 0x20
- mov r8, r1
- ldr r1, [r1, 0x4]
- ands r1, r6
- orrs r1, r7
- mov r2, r8
- str r1, [r2, 0x4]
- ldr r1, [r3, 0x4]
- str r1, [sp, 0x28]
- adds r2, r7, 0x1
- lsls r2, 16
- lsrs r2, 16
- add r5, sp, 0x28
- ldr r1, [r5, 0x4]
- ands r1, r6
- orrs r1, r2
- str r1, [r5, 0x4]
- ldr r1, [r3, 0x8]
- str r1, [sp, 0x30]
- adds r2, r7, 0x2
- lsls r2, 16
- lsrs r2, 16
- add r4, sp, 0x30
- ldr r1, [r4, 0x4]
- ands r1, r6
- orrs r1, r2
- str r1, [r4, 0x4]
- bl LoadSpriteSheet
- mov r0, r8
- bl LoadSpritePalette
- adds r0, r5, 0
- bl LoadSpritePalette
- adds r0, r4, 0
- bl LoadSpritePalette
-_0813A540:
- movs r4, 0
- ldr r3, [sp, 0x38]
- adds r3, r7, r3
- str r3, [sp, 0x3C]
- mov r8, r4
- ldr r5, _0813A608 @ =gUnknown_203B15C
-_0813A54C:
- mov r0, sp
- mov r6, r10
- strh r6, [r0]
- ldrh r1, [r0, 0x3C]
- strh r1, [r0, 0x2]
- ldr r0, _0813A60C @ =gUnknown_8463A14
- str r0, [sp, 0x4]
- ldr r0, _0813A610 @ =gUnknown_8463A7C
- str r0, [sp, 0x8]
- mov r2, r8
- str r2, [sp, 0xC]
- ldr r0, _0813A614 @ =gDummySpriteAffineAnimTable
- str r0, [sp, 0x10]
- ldr r0, _0813A618 @ =SpriteCallbackDummy
- str r0, [sp, 0x14]
- ldr r1, [r5]
- lsls r0, r4, 1
- adds r1, 0x28
- adds r1, r0
- lsls r0, r4, 3
- adds r0, 0xAC
- strh r0, [r1]
- movs r3, 0
- ldrsh r1, [r1, r3]
- mov r0, sp
- movs r2, 0x24
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [r5]
- lsls r3, r4, 2
- adds r2, r3
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0813A61C @ =gSprites
- adds r1, r0
- str r1, [r2]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r6, 0x5
- negs r6, r6
- adds r2, r6, 0
- ands r0, r2
- strb r0, [r1]
- ldr r0, [r5]
- adds r0, r3
- ldr r2, [r0]
- ldrb r1, [r2, 0x5]
- subs r6, 0x8
- adds r0, r6, 0
- ands r1, r0
- movs r0, 0x8
- orrs r1, r0
- strb r1, [r2, 0x5]
- ldr r0, [r5]
- mov r1, r10
- strh r1, [r0, 0x3C]
- strh r7, [r0, 0x3E]
- adds r0, r3
- ldr r0, [r0]
- movs r1, 0x8
- bl StartSpriteAnim
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x8
- bls _0813A54C
- bl sub_813A620
- movs r0, 0x1
- bl sub_813A838
- mov r2, r9
- cmp r2, 0
- beq _0813A5F0
- mov r0, r9
- bl Free
-_0813A5F0:
- add sp, 0x40
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A600: .4byte gUnknown_8463FFC
-_0813A604: .4byte 0xffff0000
-_0813A608: .4byte gUnknown_203B15C
-_0813A60C: .4byte gUnknown_8463A14
-_0813A610: .4byte gUnknown_8463A7C
-_0813A614: .4byte gDummySpriteAffineAnimTable
-_0813A618: .4byte SpriteCallbackDummy
-_0813A61C: .4byte gSprites
- thumb_func_end sub_813A45C
-
- thumb_func_start sub_813A620
-sub_813A620: @ 813A620
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0
- mov r10, r0
- ldr r5, _0813A688 @ =gUnknown_203B140
- ldr r1, [r5]
- movs r2, 0xC8
- lsls r2, 6
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0813A642
- b _0813A7EA
-_0813A642:
- ldr r4, _0813A68C @ =0x00003290
- adds r0, r1, r4
- movs r1, 0x39
- bl GetMonData
- mov r9, r0
- ldr r0, [r5]
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- adds r4, r0, 0
- movs r1, 0x5
- bl __udivsi3
- cmp r0, r9
- bcs _0813A666
- lsrs r0, r4, 1
-_0813A666:
- mov r3, r9
- lsls r0, r3, 16
- asrs r0, 16
- lsls r1, r4, 16
- asrs r1, 16
- bl GetHPBarLevel
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _0813A690
- cmp r0, 0x2
- bgt _0813A684
- cmp r0, 0x1
- beq _0813A694
-_0813A684:
- movs r6, 0
- b _0813A696
- .align 2, 0
-_0813A688: .4byte gUnknown_203B140
-_0813A68C: .4byte 0x00003290
-_0813A690:
- movs r6, 0x1
- b _0813A696
-_0813A694:
- movs r6, 0x2
-_0813A696:
- movs r0, 0
- mov r8, r0
-_0813A69A:
- movs r0, 0x78
- bl IndexOfSpritePaletteTag
- ldr r5, _0813A6FC @ =gUnknown_203B15C
- ldr r1, [r5]
- mov r3, r8
- lsls r2, r3, 2
- adds r1, r2
- ldr r3, [r1]
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- lsls r0, 4
- ldrb r2, [r3, 0x5]
- movs r1, 0xF
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x5]
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x8
- bls _0813A69A
- cmp r9, r4
- bne _0813A700
- movs r0, 0x2
- mov r8, r0
- cmp r0, 0x7
- bls _0813A6DA
- b _0813A7CA
-_0813A6DA:
- adds r4, r5, 0
-_0813A6DC:
- ldr r0, [r4]
- mov r2, r8
- lsls r1, r2, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x8
- bl StartSpriteAnim
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x7
- bls _0813A6DC
- b _0813A7CA
- .align 2, 0
-_0813A6FC: .4byte gUnknown_203B15C
-_0813A700:
- lsls r0, r4, 2
- movs r1, 0x6
- bl __udivsi3
- adds r6, r0, 0
- movs r7, 0
- mov r3, r9
- lsls r0, r3, 2
- adds r4, r0, 0
- movs r5, 0
- b _0813A724
-_0813A716:
- subs r4, r6
- sbcs r5, r7
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
-_0813A724:
- cmp r5, r7
- bgt _0813A716
- cmp r5, r7
- bne _0813A730
- cmp r4, r6
- bhi _0813A716
-_0813A730:
- mov r0, r10
- adds r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- movs r0, 0x2
- mov r8, r0
- lsrs r1, r4, 31
- str r1, [sp, 0x4]
- lsls r2, r5, 1
- str r2, [sp]
- cmp r8, r10
- bcs _0813A76E
- ldr r3, _0813A7A8 @ =gUnknown_203B15C
- mov r9, r3
-_0813A74E:
- mov r1, r9
- ldr r0, [r1]
- mov r2, r8
- lsls r1, r2, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x8
- bl StartSpriteAnim
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r8, r10
- bcc _0813A74E
-_0813A76E:
- ldr r3, [sp, 0x4]
- ldr r0, [sp]
- orrs r3, r0
- lsls r2, r4, 1
- adds r2, r4
- adcs r3, r5
- lsrs r5, r2, 31
- lsls r4, r3, 1
- adds r1, r5, 0
- orrs r1, r4
- lsls r0, r2, 1
- adds r3, r7, 0
- adds r2, r6, 0
- bl __divdi3
- adds r2, r1, 0
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r4, _0813A7A8 @ =gUnknown_203B15C
- ldr r0, [r4]
- mov r2, r10
- lsls r3, r2, 2
- adds r0, r3
- ldr r0, [r0]
- bl StartSpriteAnim
- mov r0, r10
- b _0813A7BE
- .align 2, 0
-_0813A7A8: .4byte gUnknown_203B15C
-_0813A7AC:
- ldr r0, [r4]
- mov r3, r8
- lsls r1, r3, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- bl StartSpriteAnim
- mov r0, r8
-_0813A7BE:
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x7
- bls _0813A7AC
-_0813A7CA:
- ldr r4, _0813A7FC @ =gUnknown_203B15C
- ldr r0, [r4]
- ldr r0, [r0]
- movs r1, 0x9
- bl StartSpriteAnim
- ldr r0, [r4]
- ldr r0, [r0, 0x4]
- movs r1, 0xA
- bl StartSpriteAnim
- ldr r0, [r4]
- ldr r0, [r0, 0x20]
- movs r1, 0xB
- bl StartSpriteAnim
-_0813A7EA:
- 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
-_0813A7FC: .4byte gUnknown_203B15C
- thumb_func_end sub_813A620
-
- thumb_func_start sub_813A800
-sub_813A800: @ 813A800
- push {r4,r5,lr}
- movs r4, 0
-_0813A804:
- ldr r5, _0813A834 @ =gUnknown_203B15C
- ldr r0, [r5]
- lsls r1, r4, 2
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _0813A816
- bl DestroySpriteAndFreeResources
-_0813A816:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x8
- bls _0813A804
- ldr r0, [r5]
- cmp r0, 0
- beq _0813A82E
- bl Free
- movs r0, 0
- str r0, [r5]
-_0813A82E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A834: .4byte gUnknown_203B15C
- thumb_func_end sub_813A800
-
- thumb_func_start sub_813A838
-sub_813A838: @ 813A838
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0
- ldr r6, _0813A870 @ =gUnknown_203B15C
- movs r1, 0x1
- ands r0, r1
- lsls r4, r0, 2
- movs r5, 0x5
- negs r5, r5
-_0813A84C:
- ldr r0, [r6]
- lsls r1, r3, 2
- adds r0, r1
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r5, 0
- ands r0, r2
- orrs r0, r4
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x8
- bls _0813A84C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A870: .4byte gUnknown_203B15C
- thumb_func_end sub_813A838
-
- thumb_func_start sub_813A874
-sub_813A874: @ 813A874
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x28
- lsls r0, 16
- lsrs r7, r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- ldr r0, _0813A970 @ =gUnknown_203B160
- mov r8, r0
- movs r0, 0x48
- bl AllocZeroed
- mov r1, r8
- str r0, [r1]
- movs r4, 0xC0
- lsls r4, 1
- adds r0, r4, 0
- bl AllocZeroed
- adds r5, r0, 0
- ldr r0, _0813A974 @ =gUnknown_8E9B3F0
- adds r1, r5, 0
- bl LZ77UnCompWram
- cmp r5, 0
- beq _0813A8D0
- str r5, [sp, 0x18]
- add r0, sp, 0x18
- lsls r1, r7, 16
- orrs r1, r4
- str r1, [r0, 0x4]
- ldr r1, _0813A978 @ =gUnknown_8E9B578
- str r1, [sp, 0x20]
- ldr r2, _0813A97C @ =0xffff0000
- add r4, sp, 0x20
- ldr r1, [r4, 0x4]
- ands r1, r2
- orrs r1, r6
- str r1, [r4, 0x4]
- bl LoadSpriteSheet
- adds r0, r4, 0
- bl LoadSpritePalette
-_0813A8D0:
- movs r4, 0
- mov r9, r4
-_0813A8D4:
- mov r0, sp
- strh r7, [r0]
- strh r6, [r0, 0x2]
- ldr r0, _0813A980 @ =gUnknown_8463A14
- str r0, [sp, 0x4]
- ldr r0, _0813A984 @ =gUnknown_8463A7C
- str r0, [sp, 0x8]
- mov r3, r9
- str r3, [sp, 0xC]
- ldr r0, _0813A988 @ =gDummySpriteAffineAnimTable
- str r0, [sp, 0x10]
- ldr r0, _0813A98C @ =SpriteCallbackDummy
- str r0, [sp, 0x14]
- mov r0, r8
- ldr r1, [r0]
- lsls r0, r4, 1
- adds r1, 0x2C
- adds r1, r0
- lsls r0, r4, 3
- adds r0, 0x9C
- strh r0, [r1]
- movs r3, 0
- ldrsh r1, [r1, r3]
- mov r0, sp
- movs r2, 0x84
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r1, r8
- ldr r2, [r1]
- lsls r1, r4, 2
- adds r2, r1
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0813A990 @ =gSprites
- adds r1, r0
- str r1, [r2]
- ldrb r2, [r1, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r0, r3, 0
- ands r2, r0
- movs r0, 0x8
- orrs r2, r0
- strb r2, [r1, 0x5]
- mov r1, r8
- ldr r0, [r1]
- adds r1, r0, 0
- adds r1, 0x42
- strh r7, [r1]
- adds r0, 0x44
- strh r6, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xA
- bls _0813A8D4
- bl sub_813A994
- movs r0, 0x1
- bl sub_813AB70
- cmp r5, 0
- beq _0813A960
- adds r0, r5, 0
- bl Free
-_0813A960:
- add sp, 0x28
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A970: .4byte gUnknown_203B160
-_0813A974: .4byte gUnknown_8E9B3F0
-_0813A978: .4byte gUnknown_8E9B578
-_0813A97C: .4byte 0xffff0000
-_0813A980: .4byte gUnknown_8463A14
-_0813A984: .4byte gUnknown_8463A7C
-_0813A988: .4byte gDummySpriteAffineAnimTable
-_0813A98C: .4byte SpriteCallbackDummy
-_0813A990: .4byte gSprites
- thumb_func_end sub_813A874
-
- thumb_func_start sub_813A994
-sub_813A994: @ 813A994
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r7, 0
- ldr r6, _0813AAD4 @ =gUnknown_203B140
- ldr r1, [r6]
- movs r2, 0xC8
- lsls r2, 6
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0813A9B4
- b _0813AB24
-_0813A9B4:
- ldr r4, _0813AAD8 @ =0x00003290
- adds r0, r1, r4
- movs r1, 0x19
- bl GetMonData
- mov r8, r0
- ldr r0, [r6]
- adds r0, r4
- movs r1, 0x38
- bl GetMonData
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, [r6]
- adds r0, r4
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r5, 0x63
- bls _0813A9E2
- b _0813AAE8
-_0813A9E2:
- ldr r3, _0813AADC @ =gExperienceTables
- adds r1, r5, 0x1
- lsls r1, 2
- ldr r2, _0813AAE0 @ =gBaseStats
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- muls r2, r0
- adds r1, r2
- adds r1, r3
- lsls r0, r5, 2
- adds r0, r2
- adds r0, r3
- ldr r1, [r1]
- ldr r0, [r0]
- subs r1, r0
- mov r10, r1
- mov r1, r8
- subs r1, r0
- mov r9, r1
- mov r2, r10
- lsls r0, r2, 2
- lsrs r0, 3
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- lsls r0, r1, 2
- adds r4, r0, 0
- movs r5, 0
- ldr r1, [sp, 0x4]
- cmp r5, r1
- ble _0813AA3E
-_0813AA2A:
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- subs r4, r0
- sbcs r5, r1
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r5, r1
- bgt _0813AA2A
- ldr r1, [sp, 0x4]
-_0813AA3E:
- cmp r5, r1
- bne _0813AA48
- ldr r2, [sp]
- cmp r4, r2
- bhi _0813AA2A
-_0813AA48:
- adds r0, r7, 0x2
- lsls r0, 24
- lsrs r7, r0, 24
- movs r6, 0x2
- cmp r6, r7
- bcs _0813AA72
- ldr r0, _0813AAE4 @ =gUnknown_203B160
- mov r8, r0
-_0813AA58:
- mov r1, r8
- ldr r0, [r1]
- lsls r1, r6, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x8
- bl StartSpriteAnim
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, r7
- bcc _0813AA58
-_0813AA72:
- cmp r7, 0x9
- bls _0813AA86
- cmp r10, r9
- beq _0813AB24
- ldr r0, _0813AAE4 @ =gUnknown_203B160
- ldr r0, [r0]
- ldr r0, [r0, 0x24]
- movs r1, 0x7
- bl StartSpriteAnim
-_0813AA86:
- lsrs r3, r4, 29
- lsls r2, r5, 3
- adds r1, r3, 0
- orrs r1, r2
- lsls r0, r4, 3
- ldr r2, [sp]
- ldr r3, [sp, 0x4]
- bl __divdi3
- adds r2, r1, 0
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r4, _0813AAE4 @ =gUnknown_203B160
- ldr r0, [r4]
- lsls r3, r7, 2
- adds r0, r3
- ldr r0, [r0]
- bl StartSpriteAnim
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x9
- bhi _0813AB04
-_0813AAB8:
- ldr r0, [r4]
- lsls r1, r6, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- bl StartSpriteAnim
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x9
- bls _0813AAB8
- b _0813AB04
- .align 2, 0
-_0813AAD4: .4byte gUnknown_203B140
-_0813AAD8: .4byte 0x00003290
-_0813AADC: .4byte gExperienceTables
-_0813AAE0: .4byte gBaseStats
-_0813AAE4: .4byte gUnknown_203B160
-_0813AAE8:
- movs r6, 0x2
- ldr r4, _0813AB34 @ =gUnknown_203B160
-_0813AAEC:
- ldr r0, [r4]
- lsls r1, r6, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- bl StartSpriteAnim
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x9
- bls _0813AAEC
-_0813AB04:
- ldr r4, _0813AB34 @ =gUnknown_203B160
- ldr r0, [r4]
- ldr r0, [r0]
- movs r1, 0x9
- bl StartSpriteAnim
- ldr r0, [r4]
- ldr r0, [r0, 0x4]
- movs r1, 0xA
- bl StartSpriteAnim
- ldr r0, [r4]
- ldr r0, [r0, 0x28]
- movs r1, 0xB
- bl StartSpriteAnim
-_0813AB24:
- 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
-_0813AB34: .4byte gUnknown_203B160
- thumb_func_end sub_813A994
-
- thumb_func_start sub_813AB38
-sub_813AB38: @ 813AB38
- push {r4,r5,lr}
- movs r4, 0
-_0813AB3C:
- ldr r5, _0813AB6C @ =gUnknown_203B160
- ldr r0, [r5]
- lsls r1, r4, 2
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _0813AB4E
- bl DestroySpriteAndFreeResources
-_0813AB4E:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xA
- bls _0813AB3C
- ldr r0, [r5]
- cmp r0, 0
- beq _0813AB66
- bl Free
- movs r0, 0
- str r0, [r5]
-_0813AB66:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813AB6C: .4byte gUnknown_203B160
- thumb_func_end sub_813AB38
-
- thumb_func_start sub_813AB70
-sub_813AB70: @ 813AB70
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0
- ldr r6, _0813ABA8 @ =gUnknown_203B160
- movs r1, 0x1
- ands r0, r1
- lsls r4, r0, 2
- movs r5, 0x5
- negs r5, r5
-_0813AB84:
- ldr r0, [r6]
- lsls r1, r3, 2
- adds r0, r1
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r5, 0
- ands r0, r2
- orrs r0, r4
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xA
- bls _0813AB84
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813ABA8: .4byte gUnknown_203B160
- thumb_func_end sub_813AB70
-
- thumb_func_start sub_813ABAC
-sub_813ABAC: @ 813ABAC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x28
- lsls r0, 16
- lsrs r7, r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- ldr r0, _0813AC68 @ =gUnknown_203B164
- mov r8, r0
- movs r0, 0x8
- bl AllocZeroed
- mov r1, r8
- str r0, [r1]
- movs r0, 0x20
- bl AllocZeroed
- adds r5, r0, 0
- ldr r0, _0813AC6C @ =gUnknown_8463B20
- adds r1, r5, 0
- bl LZ77UnCompWram
- mov r1, r8
- ldr r0, [r1]
- cmp r0, 0
- beq _0813AC46
- str r5, [sp, 0x18]
- movs r2, 0x20
- add r0, sp, 0x18
- lsls r1, r7, 16
- orrs r1, r2
- str r1, [r0, 0x4]
- ldr r1, _0813AC70 @ =gUnknown_8463B00
- str r1, [sp, 0x20]
- ldr r2, _0813AC74 @ =0xffff0000
- add r4, sp, 0x20
- ldr r1, [r4, 0x4]
- ands r1, r2
- orrs r1, r6
- str r1, [r4, 0x4]
- mov r1, sp
- movs r2, 0
- strh r7, [r1]
- strh r6, [r1, 0x2]
- ldr r1, _0813AC78 @ =gUnknown_8463AEC
- str r1, [sp, 0x4]
- ldr r1, _0813AC7C @ =gUnknown_8463AFC
- str r1, [sp, 0x8]
- str r2, [sp, 0xC]
- ldr r1, _0813AC80 @ =gDummySpriteAffineAnimTable
- str r1, [sp, 0x10]
- ldr r1, _0813AC84 @ =SpriteCallbackDummy
- str r1, [sp, 0x14]
- bl LoadSpriteSheet
- adds r0, r4, 0
- bl LoadSpritePalette
- mov r0, sp
- movs r1, 0x72
- movs r2, 0x5C
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r1, r8
- ldr r2, [r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0813AC88 @ =gSprites
- adds r1, r0
- str r1, [r2]
- strh r7, [r2, 0x4]
- strh r6, [r2, 0x6]
-_0813AC46:
- movs r0, 0x1
- bl sub_813ACF8
- bl sub_813ACB4
- cmp r5, 0
- beq _0813AC5A
- adds r0, r5, 0
- bl Free
-_0813AC5A:
- add sp, 0x28
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813AC68: .4byte gUnknown_203B164
-_0813AC6C: .4byte gUnknown_8463B20
-_0813AC70: .4byte gUnknown_8463B00
-_0813AC74: .4byte 0xffff0000
-_0813AC78: .4byte gUnknown_8463AEC
-_0813AC7C: .4byte gUnknown_8463AFC
-_0813AC80: .4byte gDummySpriteAffineAnimTable
-_0813AC84: .4byte SpriteCallbackDummy
-_0813AC88: .4byte gSprites
- thumb_func_end sub_813ABAC
-
- thumb_func_start sub_813AC8C
-sub_813AC8C: @ 813AC8C
- push {r4,lr}
- ldr r4, _0813ACB0 @ =gUnknown_203B164
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0
- beq _0813AC9C
- bl DestroySpriteAndFreeResources
-_0813AC9C:
- ldr r0, [r4]
- cmp r0, 0
- beq _0813ACAA
- bl Free
- movs r0, 0
- str r0, [r4]
-_0813ACAA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813ACB0: .4byte gUnknown_203B164
- thumb_func_end sub_813AC8C
-
- thumb_func_start sub_813ACB4
-sub_813ACB4: @ 813ACB4
- push {r4,lr}
- ldr r4, _0813ACE4 @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r1, _0813ACE8 @ =0x00003290
- adds r0, r1
- movs r1, 0
- bl CheckPartyPokerus
- lsls r0, 24
- cmp r0, 0
- bne _0813ACEC
- ldr r0, [r4]
- ldr r1, _0813ACE8 @ =0x00003290
- adds r0, r1
- movs r1, 0
- bl CheckPartyHasHadPokerus
- lsls r0, 24
- cmp r0, 0
- beq _0813ACEC
- movs r0, 0
- bl sub_813ACF8
- b _0813ACF2
- .align 2, 0
-_0813ACE4: .4byte gUnknown_203B140
-_0813ACE8: .4byte 0x00003290
-_0813ACEC:
- movs r0, 0x1
- bl sub_813ACF8
-_0813ACF2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813ACB4
-
- thumb_func_start sub_813ACF8
-sub_813ACF8: @ 813ACF8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _0813AD44 @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r1, _0813AD48 @ =0x00003290
- adds r0, r1
- movs r1, 0
- bl CheckPartyPokerus
- lsls r0, 24
- cmp r0, 0
- bne _0813AD50
- ldr r0, [r4]
- ldr r1, _0813AD48 @ =0x00003290
- adds r0, r1
- movs r1, 0
- bl CheckPartyHasHadPokerus
- lsls r0, 24
- cmp r0, 0
- beq _0813AD50
- ldr r0, _0813AD4C @ =gUnknown_203B164
- ldr r0, [r0]
- ldr r2, [r0]
- adds r2, 0x3E
- movs r0, 0x1
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- b _0813ADA2
- .align 2, 0
-_0813AD44: .4byte gUnknown_203B140
-_0813AD48: .4byte 0x00003290
-_0813AD4C: .4byte gUnknown_203B164
-_0813AD50:
- ldr r2, _0813AD88 @ =gUnknown_203B164
- ldr r0, [r2]
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r1]
- ldr r0, _0813AD8C @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _0813AD90 @ =0x00003214
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _0813AD94
- ldr r0, [r2]
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r0, [r1]
- orrs r0, r3
- strb r0, [r1]
- ldr r2, [r2]
- ldr r1, [r2]
- movs r0, 0x10
- strh r0, [r1, 0x20]
- ldr r1, [r2]
- movs r0, 0x2C
- b _0813ADA0
- .align 2, 0
-_0813AD88: .4byte gUnknown_203B164
-_0813AD8C: .4byte gUnknown_203B140
-_0813AD90: .4byte 0x00003214
-_0813AD94:
- ldr r2, [r2]
- ldr r1, [r2]
- movs r0, 0x72
- strh r0, [r1, 0x20]
- ldr r1, [r2]
- movs r0, 0x5C
-_0813ADA0:
- strh r0, [r1, 0x22]
-_0813ADA2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_813ACF8
-
- thumb_func_start sub_813ADA8
-sub_813ADA8: @ 813ADA8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x28
- lsls r0, 16
- lsrs r7, r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- ldr r0, _0813AE64 @ =gUnknown_203B168
- mov r8, r0
- movs r0, 0x8
- bl AllocZeroed
- mov r1, r8
- str r0, [r1]
- movs r0, 0x40
- bl AllocZeroed
- adds r5, r0, 0
- ldr r0, _0813AE68 @ =gUnknown_8463B64
- adds r1, r5, 0
- bl LZ77UnCompWram
- mov r1, r8
- ldr r0, [r1]
- cmp r0, 0
- beq _0813AE42
- str r5, [sp, 0x18]
- movs r2, 0x40
- add r0, sp, 0x18
- lsls r1, r7, 16
- orrs r1, r2
- str r1, [r0, 0x4]
- ldr r1, _0813AE6C @ =gUnknown_8463B44
- str r1, [sp, 0x20]
- ldr r2, _0813AE70 @ =0xffff0000
- add r4, sp, 0x20
- ldr r1, [r4, 0x4]
- ands r1, r2
- orrs r1, r6
- str r1, [r4, 0x4]
- mov r1, sp
- movs r2, 0
- strh r7, [r1]
- strh r6, [r1, 0x2]
- ldr r1, _0813AE74 @ =gUnknown_8463B30
- str r1, [sp, 0x4]
- ldr r1, _0813AE78 @ =gUnknown_8463B40
- str r1, [sp, 0x8]
- str r2, [sp, 0xC]
- ldr r1, _0813AE7C @ =gDummySpriteAffineAnimTable
- str r1, [sp, 0x10]
- ldr r1, _0813AE80 @ =SpriteCallbackDummy
- str r1, [sp, 0x14]
- bl LoadSpriteSheet
- adds r0, r4, 0
- bl LoadSpritePalette
- mov r0, sp
- movs r1, 0x6A
- movs r2, 0x28
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r1, r8
- ldr r2, [r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0813AE84 @ =gSprites
- adds r1, r0
- str r1, [r2]
- strh r7, [r2, 0x4]
- strh r6, [r2, 0x6]
-_0813AE42:
- movs r0, 0x1
- bl sub_813AEB0
- bl sub_813AF50
- cmp r5, 0
- beq _0813AE56
- adds r0, r5, 0
- bl Free
-_0813AE56:
- add sp, 0x28
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813AE64: .4byte gUnknown_203B168
-_0813AE68: .4byte gUnknown_8463B64
-_0813AE6C: .4byte gUnknown_8463B44
-_0813AE70: .4byte 0xffff0000
-_0813AE74: .4byte gUnknown_8463B30
-_0813AE78: .4byte gUnknown_8463B40
-_0813AE7C: .4byte gDummySpriteAffineAnimTable
-_0813AE80: .4byte SpriteCallbackDummy
-_0813AE84: .4byte gSprites
- thumb_func_end sub_813ADA8
-
- thumb_func_start sub_813AE88
-sub_813AE88: @ 813AE88
- push {r4,lr}
- ldr r4, _0813AEAC @ =gUnknown_203B168
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0
- beq _0813AE98
- bl DestroySpriteAndFreeResources
-_0813AE98:
- ldr r0, [r4]
- cmp r0, 0
- beq _0813AEA6
- bl Free
- movs r0, 0
- str r0, [r4]
-_0813AEA6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813AEAC: .4byte gUnknown_203B168
- thumb_func_end sub_813AE88
-
- thumb_func_start sub_813AEB0
-sub_813AEB0: @ 813AEB0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _0813AEF8 @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r1, _0813AEFC @ =0x00003290
- adds r0, r1
- bl IsMonShiny
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0813AF04
- ldr r0, [r4]
- movs r1, 0xC8
- lsls r1, 6
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0813AF04
- ldr r4, _0813AF00 @ =gUnknown_203B168
- ldr r0, [r4]
- ldr r2, [r0]
- adds r2, 0x3E
- movs r0, 0x1
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- adds r3, r4, 0
- b _0813AF14
- .align 2, 0
-_0813AEF8: .4byte gUnknown_203B140
-_0813AEFC: .4byte 0x00003290
-_0813AF00: .4byte gUnknown_203B168
-_0813AF04:
- ldr r3, _0813AF30 @ =gUnknown_203B168
- ldr r0, [r3]
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
-_0813AF14:
- ldr r0, _0813AF34 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _0813AF38 @ =0x00003214
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _0813AF3C
- ldr r2, [r3]
- ldr r1, [r2]
- movs r0, 0x8
- strh r0, [r1, 0x20]
- ldr r1, [r2]
- movs r0, 0x18
- b _0813AF48
- .align 2, 0
-_0813AF30: .4byte gUnknown_203B168
-_0813AF34: .4byte gUnknown_203B140
-_0813AF38: .4byte 0x00003214
-_0813AF3C:
- ldr r2, [r3]
- ldr r1, [r2]
- movs r0, 0x6A
- strh r0, [r1, 0x20]
- ldr r1, [r2]
- movs r0, 0x28
-_0813AF48:
- strh r0, [r1, 0x22]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_813AEB0
-
- thumb_func_start sub_813AF50
-sub_813AF50: @ 813AF50
- push {r4,lr}
- ldr r4, _0813AF7C @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r1, _0813AF80 @ =0x00003290
- adds r0, r1
- bl IsMonShiny
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0813AF84
- ldr r0, [r4]
- movs r1, 0xC8
- lsls r1, 6
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0813AF84
- movs r0, 0
- bl sub_813AEB0
- b _0813AF8A
- .align 2, 0
-_0813AF7C: .4byte gUnknown_203B140
-_0813AF80: .4byte 0x00003290
-_0813AF84:
- movs r0, 0x1
- bl sub_813AEB0
-_0813AF8A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813AF50
-
- thumb_func_start sub_813AF90
-sub_813AF90: @ 813AF90
- push {lr}
- bl sub_813A21C
- bl sub_813A800
- bl sub_813AB38
- bl sub_8139C80
- bl sub_8139F20
- bl sub_8139D90
- bl sub_813B068
- bl sub_813A334
- bl sub_813AC8C
- bl sub_813AE88
- bl ResetSpriteData
- pop {r0}
- bx r0
- thumb_func_end sub_813AF90
-
- thumb_func_start sub_813AFC4
-sub_813AFC4: @ 813AFC4
- push {lr}
- bl sub_8139CB0
- movs r0, 0
- bl sub_8139D54
- bl sub_8139DBC
- bl sub_813995C
- movs r0, 0
- bl sub_8139C44
- bl sub_813A620
- bl sub_813A994
- bl sub_813B0E4
- bl sub_813A35C
- bl sub_813ACB4
- bl sub_813AF50
- pop {r0}
- bx r0
- thumb_func_end sub_813AFC4
-
- thumb_func_start sub_813AFFC
-sub_813AFFC: @ 813AFFC
- push {r4-r6,lr}
- ldr r5, _0813B058 @ =gUnknown_203B140
- ldr r0, [r5]
- ldr r1, _0813B05C @ =0x00003290
- adds r0, r1
- movs r1, 0x8
- bl GetMonData
- adds r6, r0, 0
- ldr r0, [r5]
- ldr r4, _0813B060 @ =0x000032fc
- adds r0, r4
- ldr r0, [r0]
- bl DestroySpriteAndFreeResources
- ldr r2, _0813B064 @ =gUnknown_84636E0
- movs r0, 0x8C
- movs r1, 0x8C
- bl CreateMonMarkingSprite_SelectCombo
- adds r2, r0, 0
- ldr r0, [r5]
- adds r0, r4
- str r2, [r0]
- cmp r2, 0
- beq _0813B04A
- lsls r1, r6, 24
- lsrs r1, 24
- adds r0, r2, 0
- bl StartSpriteAnim
- ldr r0, [r5]
- adds r0, r4
- ldr r2, [r0]
- movs r1, 0x14
- strh r1, [r2, 0x20]
- ldr r1, [r0]
- movs r0, 0x5B
- strh r0, [r1, 0x22]
-_0813B04A:
- movs r0, 0x1
- bl sub_813B084
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B058: .4byte gUnknown_203B140
-_0813B05C: .4byte 0x00003290
-_0813B060: .4byte 0x000032fc
-_0813B064: .4byte gUnknown_84636E0
- thumb_func_end sub_813AFFC
-
- thumb_func_start sub_813B068
-sub_813B068: @ 813B068
- push {lr}
- ldr r0, _0813B07C @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _0813B080 @ =0x000032fc
- adds r0, r1
- ldr r0, [r0]
- bl DestroySpriteAndFreeResources
- pop {r0}
- bx r0
- .align 2, 0
-_0813B07C: .4byte gUnknown_203B140
-_0813B080: .4byte 0x000032fc
- thumb_func_end sub_813B068
-
- thumb_func_start sub_813B084
-sub_813B084: @ 813B084
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _0813B0B0 @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r1, _0813B0B4 @ =0x00003290
- adds r0, r1
- movs r1, 0x8
- bl GetMonData
- cmp r0, 0
- bne _0813B0BC
- ldr r0, [r4]
- ldr r1, _0813B0B8 @ =0x000032fc
- adds r0, r1
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- b _0813B0DA
- .align 2, 0
-_0813B0B0: .4byte gUnknown_203B140
-_0813B0B4: .4byte 0x00003290
-_0813B0B8: .4byte 0x000032fc
-_0813B0BC:
- ldr r0, [r4]
- ldr r1, _0813B0E0 @ =0x000032fc
- adds r0, r1
- ldr r2, [r0]
- adds r2, 0x3E
- movs r0, 0x1
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
-_0813B0DA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B0E0: .4byte 0x000032fc
- thumb_func_end sub_813B084
-
- thumb_func_start sub_813B0E4
-sub_813B0E4: @ 813B0E4
- push {r4,lr}
- ldr r4, _0813B114 @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r1, _0813B118 @ =0x00003290
- adds r0, r1
- movs r1, 0x8
- bl GetMonData
- adds r1, r0, 0
- ldr r0, [r4]
- ldr r2, _0813B11C @ =0x000032fc
- adds r0, r2
- ldr r0, [r0]
- lsls r1, 24
- lsrs r1, 24
- bl StartSpriteAnim
- movs r0, 0
- bl sub_813B084
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B114: .4byte gUnknown_203B140
-_0813B118: .4byte 0x00003290
-_0813B11C: .4byte 0x000032fc
- thumb_func_end sub_813B0E4
-
- thumb_func_start sub_813B120
-sub_813B120: @ 813B120
- push {r4-r6,lr}
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r1, _0813B154 @ =gUnknown_203B140
- ldr r2, [r1]
- ldr r3, _0813B158 @ =0x0000321c
- adds r0, r2, r3
- ldrb r3, [r0]
- adds r6, r1, 0
- cmp r3, 0x1
- bne _0813B198
- ldr r1, _0813B15C @ =0x00003214
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0813B160
- lsls r1, r5, 24
- asrs r1, 24
- movs r5, 0x2
- eors r1, r3
- negs r0, r1
- orrs r0, r1
- asrs r0, 31
- ands r5, r0
- b _0813B16C
- .align 2, 0
-_0813B154: .4byte gUnknown_203B140
-_0813B158: .4byte 0x0000321c
-_0813B15C: .4byte 0x00003214
-_0813B160:
- lsls r0, r5, 24
- asrs r0, 24
- movs r5, 0x3
- cmp r0, 0x1
- bne _0813B16C
- movs r5, 0x1
-_0813B16C:
- ldr r0, [r6]
- ldr r2, _0813B190 @ =0x000032f4
- adds r0, r2
- ldr r4, [r0]
- bl GetLastViewedMonIndex
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, [r6]
- ldr r3, _0813B194 @ =0x00003210
- adds r0, r3
- ldrb r2, [r0]
- adds r3, r5, 0
- adds r0, r4, 0
- bl SeekToNextMonInBox
- b _0813B1CC
- .align 2, 0
-_0813B190: .4byte 0x000032f4
-_0813B194: .4byte 0x00003210
-_0813B198:
- bl IsUpdateLinkStateCBActive
- cmp r0, 0
- bne _0813B1C4
- ldr r0, _0813B1C0 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0813B1C4
- bl IsMultiBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0813B1C4
- lsls r0, r5, 24
- asrs r0, 24
- bl sub_813B38C
- b _0813B1CC
- .align 2, 0
-_0813B1C0: .4byte gReceivedRemoteLinkPlayers
-_0813B1C4:
- lsls r0, r5, 24
- asrs r0, 24
- bl sub_813B20C
-_0813B1CC:
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _0813B1F4
- ldr r0, _0813B1FC @ =gLastViewedMonIndex
- strb r2, [r0]
- ldr r0, _0813B200 @ =sub_813B3F0
- movs r1, 0
- bl CreateTask
- ldr r0, _0813B204 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _0813B208 @ =0x0000328c
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_0813B1F4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B1FC: .4byte gLastViewedMonIndex
-_0813B200: .4byte sub_813B3F0
-_0813B204: .4byte gUnknown_203B140
-_0813B208: .4byte 0x0000328c
- thumb_func_end sub_813B120
-
- thumb_func_start sub_813B20C
-sub_813B20C: @ 813B20C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _0813B258 @ =gUnknown_203B140
- ldr r0, [r2]
- ldr r3, _0813B25C @ =0x000032f4
- adds r1, r0, r3
- ldr r7, [r1]
- movs r6, 0
- ldr r1, _0813B260 @ =0x00003214
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0813B26C
- lsls r0, r4, 24
- asrs r3, r0, 24
- movs r1, 0x1
- negs r1, r1
- adds r5, r0, 0
- ldr r6, _0813B264 @ =gLastViewedMonIndex
- cmp r3, r1
- bne _0813B23E
- ldrb r0, [r6]
- cmp r0, 0
- beq _0813B294
-_0813B23E:
- asrs r0, r5, 24
- cmp r0, 0x1
- bne _0813B252
- ldr r0, [r2]
- ldr r2, _0813B268 @ =0x00003210
- adds r0, r2
- ldrb r1, [r6]
- ldrb r0, [r0]
- cmp r1, r0
- bcs _0813B294
-_0813B252:
- ldrb r0, [r6]
- adds r0, r4
- b _0813B2BC
- .align 2, 0
-_0813B258: .4byte gUnknown_203B140
-_0813B25C: .4byte 0x000032f4
-_0813B260: .4byte 0x00003214
-_0813B264: .4byte gLastViewedMonIndex
-_0813B268: .4byte 0x00003210
-_0813B26C:
- lsls r5, r4, 24
-_0813B26E:
- lsls r0, r6, 24
- asrs r0, 24
- asrs r1, r5, 24
- adds r0, r1
- lsls r0, 24
- ldr r4, _0813B29C @ =gLastViewedMonIndex
- lsrs r6, r0, 24
- asrs r0, 24
- ldrb r3, [r4]
- adds r1, r0, r3
- cmp r1, 0
- blt _0813B294
- ldr r0, _0813B2A0 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r2, _0813B2A4 @ =0x00003210
- adds r0, r2
- ldrb r0, [r0]
- cmp r1, r0
- ble _0813B2A8
-_0813B294:
- movs r0, 0x1
- negs r0, r0
- b _0813B2C0
- .align 2, 0
-_0813B29C: .4byte gLastViewedMonIndex
-_0813B2A0: .4byte gUnknown_203B140
-_0813B2A4: .4byte 0x00003210
-_0813B2A8:
- movs r0, 0x64
- muls r0, r1
- adds r0, r7, r0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0813B26E
- ldrb r0, [r4]
- adds r0, r6
-_0813B2BC:
- lsls r0, 24
- asrs r0, 24
-_0813B2C0:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_813B20C
-
- thumb_func_start sub_813B2C8
-sub_813B2C8: @ 813B2C8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0813B2FC
- ldr r0, _0813B2F4 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _0813B2F8 @ =0x00003214
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0813B2F0
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0813B2FC
-_0813B2F0:
- movs r0, 0x1
- b _0813B2FE
- .align 2, 0
-_0813B2F4: .4byte gUnknown_203B140
-_0813B2F8: .4byte 0x00003214
-_0813B2FC:
- movs r0, 0
-_0813B2FE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_813B2C8
-
- thumb_func_start sub_813B304
-sub_813B304: @ 813B304
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
-_0813B30A:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- beq _0813B33C
- ldr r0, _0813B334 @ =gUnknown_8463FB8
- adds r5, r4, r0
- ldrb r1, [r5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0813B338 @ =gPlayerParty
- adds r0, r1
- bl sub_813B2C8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0813B30A
- movs r0, 0
- ldrsb r0, [r5, r0]
- b _0813B340
- .align 2, 0
-_0813B334: .4byte gUnknown_8463FB8
-_0813B338: .4byte gPlayerParty
-_0813B33C:
- movs r0, 0x1
- negs r0, r0
-_0813B340:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_813B304
-
- thumb_func_start sub_813B348
-sub_813B348: @ 813B348
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
-_0813B34E:
- cmp r4, 0
- beq _0813B380
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0813B378 @ =gUnknown_8463FB8
- adds r5, r4, r0
- ldrb r1, [r5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0813B37C @ =gPlayerParty
- adds r0, r1
- bl sub_813B2C8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0813B34E
- movs r0, 0
- ldrsb r0, [r5, r0]
- b _0813B384
- .align 2, 0
-_0813B378: .4byte gUnknown_8463FB8
-_0813B37C: .4byte gPlayerParty
-_0813B380:
- movs r0, 0x1
- negs r0, r0
-_0813B384:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_813B348
-
- thumb_func_start sub_813B38C
-sub_813B38C: @ 813B38C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r6, 0
- movs r5, 0
- b _0813B39E
-_0813B398:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_0813B39E:
- cmp r5, 0x5
- bhi _0813B3B6
- ldr r4, _0813B3D4 @ =gUnknown_8463FB8
- adds r4, r5, r4
- bl GetLastViewedMonIndex
- ldrb r1, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- bne _0813B398
- adds r6, r5, 0
-_0813B3B6:
- lsls r0, r7, 24
- asrs r1, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0813B3C6
- cmp r6, 0
- beq _0813B3CE
-_0813B3C6:
- cmp r1, 0x1
- bne _0813B3D8
- cmp r6, 0x5
- bne _0813B3E0
-_0813B3CE:
- movs r0, 0x1
- negs r0, r0
- b _0813B3EA
- .align 2, 0
-_0813B3D4: .4byte gUnknown_8463FB8
-_0813B3D8:
- adds r0, r6, 0
- bl sub_813B348
- b _0813B3E6
-_0813B3E0:
- adds r0, r6, 0
- bl sub_813B304
-_0813B3E6:
- lsls r0, 24
- asrs r0, 24
-_0813B3EA:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_813B38C
-
- thumb_func_start sub_813B3F0
-sub_813B3F0: @ 813B3F0
- push {r4,r5,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _0813B414 @ =gUnknown_203B140
- ldr r0, [r1]
- ldr r4, _0813B418 @ =0x0000328c
- adds r2, r0, r4
- ldrb r0, [r2]
- adds r5, r1, 0
- cmp r0, 0xB
- bls _0813B40A
- b _0813B73C
-_0813B40A:
- lsls r0, 2
- ldr r1, _0813B41C @ =_0813B420
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813B414: .4byte gUnknown_203B140
-_0813B418: .4byte 0x0000328c
-_0813B41C: .4byte _0813B420
- .align 2, 0
-_0813B420:
- .4byte _0813B450
- .4byte _0813B478
- .4byte _0813B486
- .4byte _0813B4DC
- .4byte _0813B568
- .4byte _0813B5FC
- .4byte _0813B602
- .4byte _0813B620
- .4byte _0813B636
- .4byte _0813B654
- .4byte _0813B678
- .4byte _0813B70C
-_0813B450:
- bl StopCryAndClearCrySongs
- ldr r0, _0813B468 @ =gUnknown_203B16D
- movs r1, 0
- strb r1, [r0]
- ldr r0, _0813B46C @ =gUnknown_203B16E
- strb r1, [r0]
- ldr r0, _0813B470 @ =gUnknown_203B140
- ldr r1, [r0]
- ldr r0, _0813B474 @ =0x0000328c
- adds r1, r0
- b _0813B72C
- .align 2, 0
-_0813B468: .4byte gUnknown_203B16D
-_0813B46C: .4byte gUnknown_203B16E
-_0813B470: .4byte gUnknown_203B140
-_0813B474: .4byte 0x0000328c
-_0813B478:
- bl sub_8139C80
- bl sub_8139F20
- bl sub_8139D90
- b _0813B724
-_0813B486:
- ldr r0, [r5]
- ldr r4, _0813B4D0 @ =0x00003290
- adds r0, r4
- bl sub_8138B8C
- ldr r0, [r5]
- adds r0, r4
- movs r1, 0x2D
- bl GetMonData
- ldr r1, [r5]
- movs r2, 0xC8
- lsls r2, 6
- adds r1, r2
- strb r0, [r1]
- ldr r0, [r5]
- adds r0, r4
- movs r1, 0x4
- bl GetMonData
- ldr r1, [r5]
- ldr r2, _0813B4D4 @ =0x00003204
- adds r1, r2
- strb r0, [r1]
- ldr r0, [r5]
- adds r2, r0, r2
- ldrb r1, [r2]
- cmp r1, 0x1
- bne _0813B4C6
- subs r4, 0x90
- adds r0, r4
- strb r1, [r0]
-_0813B4C6:
- ldr r1, [r5]
- ldr r0, _0813B4D8 @ =0x0000328c
- adds r1, r0
- b _0813B72C
- .align 2, 0
-_0813B4D0: .4byte 0x00003290
-_0813B4D4: .4byte 0x00003204
-_0813B4D8: .4byte 0x0000328c
-_0813B4DC:
- movs r0, 0x1E
- str r0, [sp]
- movs r0, 0x14
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- ldr r4, _0813B52C @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r1, _0813B530 @ =0x00003290
- adds r0, r1
- bl IsMonShiny
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0813B538
- ldr r0, [r4]
- movs r2, 0xC8
- lsls r2, 6
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0813B538
- ldr r4, _0813B534 @ =gUnknown_8E9B3D0
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- subs r4, 0x20
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0x20
- bl LoadPalette
- b _0813B550
- .align 2, 0
-_0813B52C: .4byte gUnknown_203B140
-_0813B530: .4byte 0x00003290
-_0813B534: .4byte gUnknown_8E9B3D0
-_0813B538:
- ldr r4, _0813B55C @ =gUnknown_8E9B310
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- adds r4, 0x20
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0x20
- bl LoadPalette
-_0813B550:
- ldr r0, _0813B560 @ =gUnknown_203B140
- ldr r1, [r0]
- ldr r4, _0813B564 @ =0x0000328c
- adds r1, r4
- b _0813B72C
- .align 2, 0
-_0813B55C: .4byte gUnknown_8E9B310
-_0813B560: .4byte gUnknown_203B140
-_0813B564: .4byte 0x0000328c
-_0813B568:
- ldr r4, _0813B5A8 @ =gUnknown_203B140
- ldr r1, [r4]
- ldr r2, _0813B5AC @ =0x00003214
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0813B5DC
- subs r2, 0x14
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0813B5B8
- adds r2, 0x3C
- adds r0, r1, r2
- ldrb r0, [r0]
- ldr r1, _0813B5B0 @ =gUnknown_8E9BBCC
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
- ldr r0, [r4]
- movs r4, 0xC9
- lsls r4, 6
- adds r0, r4
- ldrb r0, [r0]
- ldr r1, _0813B5B4 @ =gUnknown_8E9B750
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
- b _0813B5DC
- .align 2, 0
-_0813B5A8: .4byte gUnknown_203B140
-_0813B5AC: .4byte 0x00003214
-_0813B5B0: .4byte gUnknown_8E9BBCC
-_0813B5B4: .4byte gUnknown_8E9B750
-_0813B5B8:
- ldr r2, _0813B5E8 @ =0x0000323c
- adds r0, r1, r2
- ldrb r0, [r0]
- ldr r1, _0813B5EC @ =gUnknown_8E9B598
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
- ldr r0, [r4]
- movs r4, 0xC9
- lsls r4, 6
- adds r0, r4
- ldrb r0, [r0]
- ldr r1, _0813B5F0 @ =gUnknown_8E9B750
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
-_0813B5DC:
- ldr r0, _0813B5F4 @ =gUnknown_203B140
- ldr r1, [r0]
- ldr r0, _0813B5F8 @ =0x0000328c
- adds r1, r0
- b _0813B72C
- .align 2, 0
-_0813B5E8: .4byte 0x0000323c
-_0813B5EC: .4byte gUnknown_8E9B598
-_0813B5F0: .4byte gUnknown_8E9B750
-_0813B5F4: .4byte gUnknown_203B140
-_0813B5F8: .4byte 0x0000328c
-_0813B5FC:
- bl sub_81360D4
- b _0813B724
-_0813B602:
- ldr r0, [r5]
- movs r4, 0xC8
- lsls r4, 6
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0813B614
- bl sub_8136350
-_0813B614:
- ldr r1, [r5]
- ldr r0, _0813B61C @ =0x0000328c
- adds r1, r0
- b _0813B72C
- .align 2, 0
-_0813B61C: .4byte 0x0000328c
-_0813B620:
- ldr r0, [r5]
- movs r1, 0xC8
- lsls r1, 6
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0813B632
- bl sub_81367B0
-_0813B632:
- ldr r1, [r5]
- b _0813B728
-_0813B636:
- bl sub_8136F4C
- bl sub_81374E8
- bl sub_8137BD0
- ldr r0, _0813B64C @ =gUnknown_203B140
- ldr r1, [r0]
- ldr r4, _0813B650 @ =0x0000328c
- adds r1, r4
- b _0813B72C
- .align 2, 0
-_0813B64C: .4byte gUnknown_203B140
-_0813B650: .4byte 0x0000328c
-_0813B654:
- bl sub_8138A38
- bl sub_8138538
- ldr r4, _0813B670 @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r1, _0813B674 @ =0x00003214
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8137D28
- ldr r1, [r4]
- b _0813B728
- .align 2, 0
-_0813B670: .4byte gUnknown_203B140
-_0813B674: .4byte 0x00003214
-_0813B678:
- ldr r0, [r5]
- movs r4, 0xC0
- lsls r4, 6
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r5]
- ldr r1, _0813B6F8 @ =0x00003001
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r5]
- ldr r2, _0813B6FC @ =0x00003002
- adds r0, r2
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r5]
- adds r4, 0x6
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r5]
- ldr r1, _0813B700 @ =0x00003003
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r5]
- ldr r2, _0813B704 @ =0x00003004
- adds r0, r2
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r5]
- subs r4, 0x1
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0x2
- bl CopyWindowToVram
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- movs r0, 0x2
- bl CopyBgTilemapBufferToVram
- movs r0, 0x3
- bl CopyBgTilemapBufferToVram
- ldr r1, [r5]
- ldr r0, _0813B708 @ =0x0000328c
- adds r1, r0
- b _0813B72C
- .align 2, 0
-_0813B6F8: .4byte 0x00003001
-_0813B6FC: .4byte 0x00003002
-_0813B700: .4byte 0x00003003
-_0813B704: .4byte 0x00003004
-_0813B708: .4byte 0x0000328c
-_0813B70C:
- bl Overworld_LinkRecvQueueLengthMoreThan2
- cmp r0, 0
- bne _0813B746
- bl sub_800B270
- cmp r0, 0
- bne _0813B746
- bl sub_813AFC4
- bl sub_813B784
-_0813B724:
- ldr r0, _0813B734 @ =gUnknown_203B140
- ldr r1, [r0]
-_0813B728:
- ldr r2, _0813B738 @ =0x0000328c
- adds r1, r2
-_0813B72C:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0813B746
- .align 2, 0
-_0813B734: .4byte gUnknown_203B140
-_0813B738: .4byte 0x0000328c
-_0813B73C:
- movs r0, 0
- strb r0, [r2]
- adds r0, r3, 0
- bl DestroyTask
-_0813B746:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_813B3F0
-
- thumb_func_start sub_813B750
-sub_813B750: @ 813B750
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r5, 0x80
- lsls r5, 7
- movs r0, 0
- adds r1, r5, 0
- bl ClearGpuRegBits
- cmp r4, 0x2
- bgt _0813B77E
- cmp r4, 0
- blt _0813B77E
- movs r0, 0
- bl GetGpuReg
- adds r1, r5, 0
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0
- bl SetGpuReg
-_0813B77E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_813B750
-
- thumb_func_start sub_813B784
-sub_813B784: @ 813B784
- push {r4,r5,lr}
- ldr r4, _0813B7BC @ =gUnknown_203B140
- ldr r0, [r4]
- ldr r5, _0813B7C0 @ =0x00003290
- adds r0, r5
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0813B7DA
- ldr r0, [r4]
- adds r0, r5
- bl ShouldPlayNormalPokeCry
- cmp r0, 0x1
- bne _0813B7C4
- ldr r0, [r4]
- adds r0, r5
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- movs r2, 0
- bl PlayCry3
- b _0813B7DA
- .align 2, 0
-_0813B7BC: .4byte gUnknown_203B140
-_0813B7C0: .4byte 0x00003290
-_0813B7C4:
- ldr r0, [r4]
- adds r0, r5
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- movs r2, 0xB
- bl PlayCry3
-_0813B7DA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_813B784
-
- thumb_func_start sub_813B7E0
-sub_813B7E0: @ 813B7E0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- beq _0813B7EE
- cmp r0, 0x15
- bne _0813B7F2
-_0813B7EE:
- movs r0, 0x1
- b _0813B7F4
-_0813B7F2:
- movs r0, 0
-_0813B7F4:
- pop {r1}
- bx r1
- thumb_func_end sub_813B7E0
-
- thumb_func_start sub_813B7F8
-sub_813B7F8: @ 813B7F8
- push {lr}
- ldr r0, _0813B828 @ =gUnknown_203B140
- ldr r0, [r0]
- ldr r1, _0813B82C @ =0x00003290
- adds r0, r1
- movs r1, 0x25
- bl GetMonData
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xFC
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0x1
- bls _0813B824
- cmp r1, 0x2
- beq _0813B824
- cmp r1, 0x1
- beq _0813B824
- cmp r1, 0x3
- bne _0813B830
-_0813B824:
- movs r0, 0x1
- b _0813B832
- .align 2, 0
-_0813B828: .4byte gUnknown_203B140
-_0813B82C: .4byte 0x00003290
-_0813B830:
- movs r0, 0
-_0813B832:
- pop {r1}
- bx r1
- thumb_func_end sub_813B7F8
-
- thumb_func_start sub_813B838
-sub_813B838: @ 813B838
- push {lr}
- lsls r0, 24
- movs r1, 0xA8
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x6C
- bls _0813B84C
- movs r0, 0
- b _0813B84E
-_0813B84C:
- movs r0, 0x1
-_0813B84E:
- pop {r1}
- bx r1
- thumb_func_end sub_813B838
-
- thumb_func_start sub_813B854
-sub_813B854: @ 813B854
- push {lr}
- sub sp, 0x4
- ldr r3, _0813B86C @ =CB2_ReturnToField
- movs r0, 0
- str r0, [sp]
- movs r1, 0
- movs r2, 0
- bl ShowPokemonSummaryScreen
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0813B86C: .4byte CB2_ReturnToField
- thumb_func_end sub_813B854
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/compare.sh b/compare.sh
new file mode 100644
index 000000000..10279b616
--- /dev/null
+++ b/compare.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+# Compares baserom.gba and pokefirered.gba
+
+# create baserom_compare.dump if necessary
+if [ ! -f baserom_compare.dump ]; then
+ hexdump -C baserom.gba > baserom_compare.dump # can create an empty baserom_compare.dump if no baserom.gba
+fi
+
+hexdump -C pokefirered.gba > pokefirered_compare.dump
+
+diff -u baserom_compare.dump pokefirered_compare.dump | less
diff --git a/constants/misc_constants.inc b/constants/misc_constants.inc
index 959465a5a..1f4a6a23a 100644
--- a/constants/misc_constants.inc
+++ b/constants/misc_constants.inc
@@ -3,8 +3,6 @@
.set NULL, 0
- .set MOVE_NAME_LENGTH, 13
-
.set SPRITE_SIZE_8x8, (OAM_SIZE_0 >> 28) | (OAM_SQUARE >> 14)
.set SPRITE_SIZE_16x16, (OAM_SIZE_1 >> 28) | (OAM_SQUARE >> 14)
.set SPRITE_SIZE_32x32, (OAM_SIZE_2 >> 28) | (OAM_SQUARE >> 14)
diff --git a/data/pokemon_summary_screen.s b/data/pokemon_summary_screen.s
deleted file mode 100644
index 3400c9ae0..000000000
--- a/data/pokemon_summary_screen.s
+++ /dev/null
@@ -1,439 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
- .section .rodata
- .align 2
-
-gUnknown_84636C0:: @ 84636C0
- .incbin "graphics/interface/pokesummary_unk_84636C0.gbapal"
-
-gUnknown_84636E0:: @ 84636E0
- .incbin "graphics/interface/pokesummary_unk_84636E0.gbapal"
-
-gUnknown_8463700:: @ 8463700
- .incbin "graphics/interface/pokesummary_unk_8463700.gbapal"
-
-gUnknown_8463720:: @ 8463720
- .incbin "graphics/interface/pokesummary_unk_8463720.gbapal"
-
-gUnknown_8463740:: @ 8463740
- .incbin "graphics/interface/pokesummary_unk_8463740.4bpp.lz"
-
-gUnknown_846386C:: @ 846386C
- .incbin "graphics/interface/pokesummary_unk_846386C.4bpp.lz"
-
-gUnknown_846398C:: @ 846398C
- .4byte 0xc0004000, 0x00000000
-
-gUnknown_8463994:: @ 8463994
- obj_image_anim_frame 0x0000, 20
- obj_image_anim_jump 0
-
-gUnknown_846399C:: @ 846399C
- obj_image_anim_frame 0x0020, 20
- obj_image_anim_jump 0
-
-gUnknown_84639A4:: @ 84639A4
- .4byte gUnknown_8463994
- .4byte gUnknown_846399C
-
-gUnknown_84639AC:: @ 84639AC
- .4byte 0x40004000, 0x00000000
-
-gUnknown_84639B4:: @ 84639B4
- obj_image_anim_frame 0x0000, 20
- obj_image_anim_jump 0
-
-gUnknown_84639BC:: @ 84639BC
- obj_image_anim_frame 0x0004, 20
- obj_image_anim_jump 0
-
-gUnknown_84639C4:: @ 84639C4
- obj_image_anim_frame 0x0008, 20
- obj_image_anim_jump 0
-
-gUnknown_84639CC:: @ 84639CC
- obj_image_anim_frame 0x000c, 20
- obj_image_anim_jump 0
-
-gUnknown_84639D4:: @ 84639D4
- obj_image_anim_frame 0x0010, 20
- obj_image_anim_jump 0
-
-gUnknown_84639DC:: @ 84639DC
- obj_image_anim_frame 0x0014, 20
- obj_image_anim_jump 0
-
-gUnknown_84639E4:: @ 84639E4
- obj_image_anim_frame 0x0018, 20
- obj_image_anim_jump 0
-
-gUnknown_84639EC:: @ 84639EC
- obj_image_anim_frame 0x001c, 20
- obj_image_anim_jump 0
-
-gUnknown_84639F4:: @ 84639F4
- .4byte gUnknown_84639B4
- .4byte gUnknown_84639BC
- .4byte gUnknown_84639C4
- .4byte gUnknown_84639CC
- .4byte gUnknown_84639D4
- .4byte gUnknown_84639DC
- .4byte gUnknown_84639E4
- .4byte gUnknown_84639EC
-
-gUnknown_8463A14:: @ 8463A14
- .4byte 0x00000000, 0x00000000
-
-gUnknown_8463A1C:: @ 8463A1C
- obj_image_anim_frame 0x0000, 20
- obj_image_anim_jump 0
-
-gUnknown_8463A24:: @ 8463A24
- obj_image_anim_frame 0x0001, 20
- obj_image_anim_jump 0
-
-gUnknown_8463A2C:: @ 8463A2C
- obj_image_anim_frame 0x0002, 20
- obj_image_anim_jump 0
-
-gUnknown_8463A34:: @ 8463A34
- obj_image_anim_frame 0x0003, 20
- obj_image_anim_jump 0
-
-gUnknown_8463A3C:: @ 8463A3C
- obj_image_anim_frame 0x0004, 20
- obj_image_anim_jump 0
-
-gUnknown_8463A44:: @ 8463A44
- obj_image_anim_frame 0x0005, 20
- obj_image_anim_jump 0
-
-gUnknown_8463A4C:: @ 8463A4C
- obj_image_anim_frame 0x0006, 20
- obj_image_anim_jump 0
-
-gUnknown_8463A54:: @ 8463A54
- obj_image_anim_frame 0x0007, 20
- obj_image_anim_jump 0
-
-gUnknown_8463A5C:: @ 8463A5C
- obj_image_anim_frame 0x0008, 20
- obj_image_anim_jump 0
-
-gUnknown_8463A64:: @ 8463A64
- obj_image_anim_frame 0x0009, 20
- obj_image_anim_jump 0
-
-gUnknown_8463A6C:: @ 8463A6C
- obj_image_anim_frame 0x000a, 20
- obj_image_anim_jump 0
-
-gUnknown_8463A74:: @ 8463A74
- obj_image_anim_frame 0x000b, 20
- obj_image_anim_jump 0
-
-gUnknown_8463A7C:: @ 8463A7C
- .4byte gUnknown_8463A1C
- .4byte gUnknown_8463A24
- .4byte gUnknown_8463A2C
- .4byte gUnknown_8463A34
- .4byte gUnknown_8463A3C
- .4byte gUnknown_8463A44
- .4byte gUnknown_8463A4C
- .4byte gUnknown_8463A54
- .4byte gUnknown_8463A5C
- .4byte gUnknown_8463A64
- .4byte gUnknown_8463A6C
- .4byte gUnknown_8463A74
-
-gUnknown_8463AAC:: @ 8463AAC
- .incbin "graphics/interface/pokesummary_unk_8463AAC.gbapal"
-
-gUnknown_8463ACC:: @ 8463ACC
- .incbin "graphics/interface/pokesummary_unk_8463ACC.gbapal"
-
-gUnknown_8463AEC:: @ 8463AEC
- .4byte 0x00000000, 0x00000000
-
-gUnknown_8463AF4:: @ 8463AF4
- obj_image_anim_frame 0x0000, 20
- obj_image_anim_jump 0
-
-gUnknown_8463AFC:: @ 8463AFC
- .4byte gUnknown_8463AF4
-
-gUnknown_8463B00:: @ 8463B00
- .incbin "graphics/interface/pokesummary_unk_8463B00.gbapal"
-
-gUnknown_8463B20:: @ 8463B20
- .incbin "graphics/interface/pokesummary_unk_8463B20.4bpp.lz"
-
-gUnknown_8463B30:: @ 8463B30
- .4byte 0x00000000, 0x00000000
-
-gUnknown_8463B38:: @ 8463B38
- obj_image_anim_frame 0x0001, 20
- obj_image_anim_jump 0
-
-gUnknown_8463B40:: @ 8463B40
- .4byte gUnknown_8463B38
-
-gUnknown_8463B44:: @ 8463B44
- .incbin "graphics/interface/pokesummary_unk_8463B44.gbapal"
-
-gUnknown_8463B64:: @ 8463B64
- .incbin "graphics/interface/pokesummary_unk_8463B64.4bpp.lz"
-
-gUnknown_8463B88:: @ 8463B88
- .incbin "graphics/interface/pokesummary_unk_8463B88.bin.lz"
-
-gUnknown_8463C80:: @ 8463C80
- .incbin "graphics/interface/pokesummary_unk_8463C80.bin.lz"
-
-gUnknown_8463DBC:: @ 8463DBC
- .string "HARDY$"
-
-gUnknown_8463DC2:: @ 8463DC2
- .string "LONELY$"
-
-gUnknown_8463DC9:: @ 8463DC9
- .string "BRAVE$"
-
-gUnknown_8463DCF:: @ 8463DCF
- .string "ADAMANT$"
-
-gUnknown_8463DD7:: @ 8463DD7
- .string "NAUGHTY$"
-
-gUnknown_8463DDF:: @ 8463DDF
- .string "BOLD$"
-
-gUnknown_8463DE4:: @ 8463DE4
- .string "DOCILE$"
-
-gUnknown_8463DEB:: @ 8463DEB
- .string "RELAXED$"
-
-gUnknown_8463DF3:: @ 8463DF3
- .string "IMPISH$"
-
-gUnknown_8463DFA:: @ 8463DFA
- .string "LAX$"
-
-gUnknown_8463DFE:: @ 8463DFE
- .string "TIMID$"
-
-gUnknown_8463E04:: @ 8463E04
- .string "HASTY$"
-
-gUnknown_8463E0A:: @ 8463E0A
- .string "SERIOUS$"
-
-gUnknown_8463E12:: @ 8463E12
- .string "JOLLY$"
-
-gUnknown_8463E18:: @ 8463E18
- .string "NAIVE$"
-
-gUnknown_8463E1E:: @ 8463E1E
- .string "MODEST$"
-
-gUnknown_8463E25:: @ 8463E25
- .string "MILD$"
-
-gUnknown_8463E2A:: @ 8463E2A
- .string "QUIET$"
-
-gUnknown_8463E30:: @ 8463E30
- .string "BASHFUL$"
-
-gUnknown_8463E38:: @ 8463E38
- .string "RASH$"
-
-gUnknown_8463E3D:: @ 8463E3D
- .string "CALM$"
-
-gUnknown_8463E42:: @ 8463E42
- .string "GENTLE$"
-
-gUnknown_8463E49:: @ 8463E49
- .string "SASSY$"
-
-gUnknown_8463E4F:: @ 8463E4F
- .string "CAREFUL$"
-
-gUnknown_8463E57:: @ 8463E57
- .string "QUIRKY$"
-
- .align 2
-gNatureNamePointers:: @ 8463E60 dataptr
- .4byte gUnknown_8463DBC
- .4byte gUnknown_8463DC2
- .4byte gUnknown_8463DC9
- .4byte gUnknown_8463DCF
- .4byte gUnknown_8463DD7
- .4byte gUnknown_8463DDF
- .4byte gUnknown_8463DE4
- .4byte gUnknown_8463DEB
- .4byte gUnknown_8463DF3
- .4byte gUnknown_8463DFA
- .4byte gUnknown_8463DFE
- .4byte gUnknown_8463E04
- .4byte gUnknown_8463E0A
- .4byte gUnknown_8463E12
- .4byte gUnknown_8463E18
- .4byte gUnknown_8463E1E
- .4byte gUnknown_8463E25
- .4byte gUnknown_8463E2A
- .4byte gUnknown_8463E30
- .4byte gUnknown_8463E38
- .4byte gUnknown_8463E3D
- .4byte gUnknown_8463E42
- .4byte gUnknown_8463E49
- .4byte gUnknown_8463E4F
- .4byte gUnknown_8463E57
-
-gUnknown_8463EC4:: @ 8463EC4
- .4byte gUnknown_8419B44
- .4byte gUnknown_8419B7B
- .4byte gUnknown_8419BAE
- .4byte gUnknown_8419BDB
-
-gUnknown_8463ED4:: @ 8463ED4
- .4byte gUnknown_8419A3D
- .4byte gUnknown_8419B18
- .4byte gUnknown_8419A6E
- .4byte gUnknown_8419B18
- .4byte gUnknown_8419AA2
- .4byte gUnknown_8419ADE
- .4byte gUnknown_8419B18
-
-gUnknown_8463EF0:: @ 8463EF0
- .byte 0x00, 0x07, 0x08, 0x00, 0x01, 0x02, 0x00, 0x03, 0x04, 0x00, 0x05, 0x06
-
-gUnknown_8463EFC:: @ 8463EFC
- .4byte 0x000002e0
- @ {
- @ .bg = 0,
- @ .charBaseIndex = 0,
- @ .mapBaseIndex = 14,
- @ .screenSize = 1,
- @ .paletteMode = 0,
- @ .priority = 0,
- @ .baseTile = 0x0000
- @ }
- .4byte 0x000012aa
- @ {
- @ .bg = 2,
- @ .charBaseIndex = 2,
- @ .mapBaseIndex = 10,
- @ .screenSize = 1,
- @ .paletteMode = 0,
- @ .priority = 1,
- @ .baseTile = 0x0000
- @ }
- .4byte 0x0000309b
- @ {
- @ .bg = 3,
- @ .charBaseIndex = 2,
- @ .mapBaseIndex = 9,
- @ .screenSize = 0,
- @ .paletteMode = 0,
- @ .priority = 3,
- @ .baseTile = 0x0000
- @ }
- .4byte 0x000022c9
- @ {
- @ .bg = 1,
- @ .charBaseIndex = 2,
- @ .mapBaseIndex = 12,
- @ .screenSize = 1,
- @ .paletteMode = 0,
- @ .priority = 2,
- @ .baseTile = 0x0000
- @ }
-
-gUnknown_8463F0C:: @ 8463F0C
- .byte 1, 0, 0, 13, 2, 7
- .2byte 0x0258
- .byte 1, 19, 0, 11, 2, 7
- .2byte 0x0272
- .byte 1, 0, 2, 15, 2, 7
- .2byte 0x0288
-
-gUnknown_8463F24:: @ 8463F24
- .byte 2, 0, 0, 13, 2, 7
- .2byte 0x0258
- .byte 2, 19, 0, 11, 2, 7
- .2byte 0x0272
- .byte 2, 0, 2, 15, 2, 7
- .2byte 0x0288
-
-gUnknown_8463F3C:: @ 8463F3C
- .byte 0, 15, 2, 15, 12, 6
- .2byte 0x0001
- .byte 0, 1, 14, 28, 6, 6
- .2byte 0x00b5
- .byte 0, 0, 0, 0, 0, 0
- .2byte 0x0000
- .byte 0, 0, 0, 0, 0, 0
- .2byte 0x0000
-
-gUnknown_8463F5C:: @ 8463F5C
- .byte 0, 20, 2, 10, 14, 6
- .2byte 0x0001
- .byte 0, 6, 12, 14, 4, 6
- .2byte 0x008d
- .byte 0, 1, 16, 29, 4, 6
- .2byte 0x00c5
- .byte 0, 0, 0, 0, 0, 0
- .2byte 0x0000
-
-gUnknown_8463F7C:: @ 8463F7C
- .byte 0, 20, 2, 10, 18, 8
- .2byte 0x0001
- .byte 0, 0, 7, 15, 13, 6
- .2byte 0x00b5
- .byte 0, 15, 2, 5, 18, 6
- .2byte 0x0178
- .byte 0, 6, 4, 9, 2, 6
- .2byte 0x01d2
-
-gUnknown_8463F9C:: @ 8463F9C
- .byte 255, 0, 0, 0, 0, 0
- .2byte 0x0000
-
-gUnknown_8463FA4:: @ 8463FA4
- .byte 0x00, 0x0e, 0x0a
-
-gUnknown_8463FA7:: @ 8463FA7
- .byte 0x00, 0x01, 0x02, 0x00, 0x09, 0x08, 0x00, 0x05, 0x04, 0x00, 0x02, 0x03, 0x00, 0x0b, 0x0a, 0x00, 0x00
-
-gUnknown_8463FB8:: @ 8463FB8
- .byte 0x00, 0x02, 0x03, 0x01, 0x04, 0x05
-
-gUnknown_8463FBE:: @ 8463FBE
- .byte 0xff, 0x00, 0x01
-
-gUnknown_8463FC1:: @ 8463FC1
- .byte 0xfe, 0xff, 0x00, 0x01, 0x02
-
-gUnknown_8463FC6:: @ 8463FC6
- .byte 0xfd, 0xfe, 0xff, 0x00, 0x01, 0x02, 0x03
-
-gUnknown_8463FCD:: @ 8463FCD
- .byte 0xfb, 0xfd, 0xff, 0x00, 0x01, 0x03, 0x05
-
-gUnknown_8463FD4:: @ 8463FD4
- .byte 0x01, 0x01, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0x01, 0x01
-
-gUnknown_8463FDF:: @ 8463FDF
- .byte 0x02, 0x01, 0x00, 0xff, 0xfe, 0x00, 0xfe, 0xff, 0x00, 0x01, 0x02
-
-gUnknown_8463FEA:: @ 8463FEA
- .byte 0x02, 0x01, 0x01, 0x00, 0xff, 0xff, 0xfe, 0x00, 0xfe, 0xff, 0xff, 0x00, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00
-
-gUnknown_8463FFC:: @ 8463FFC
- .4byte gUnknown_8E9B578
- .4byte gUnknown_8463AAC
- .4byte gUnknown_8463ACC
diff --git a/include/constants/global.h b/include/constants/global.h
index f8cfaa4b0..6a05d169e 100644
--- a/include/constants/global.h
+++ b/include/constants/global.h
@@ -6,6 +6,7 @@
#define ITEM_NAME_LENGTH 14
#define POKEMON_NAME_LENGTH 10
#define OT_NAME_LENGTH 7
+#define MOVE_NAME_LENGTH 12
#define VERSION_SAPPHIRE 1
#define VERSION_RUBY 2
diff --git a/include/main.h b/include/main.h
index f89ffbd63..a27145c7b 100644
--- a/include/main.h
+++ b/include/main.h
@@ -1,12 +1,12 @@
#ifndef GUARD_MAIN_H
#define GUARD_MAIN_H
-#include "global.h"
-
typedef void (*MainCallback)(void);
typedef void (*IntrCallback)(void);
typedef void (*IntrFunc)(void);
+#include "global.h"
+
extern IntrFunc gIntrTable[];
struct Main
diff --git a/include/menu_helpers.h b/include/menu_helpers.h
index 0c0623cc0..2aeef23e9 100644
--- a/include/menu_helpers.h
+++ b/include/menu_helpers.h
@@ -15,7 +15,7 @@ struct YesNoFuncTable
};
bool16 RunTextPrinters_CheckActive(u8 textPrinterId);
-bool32 MenuHelpers_CallLinkSomething(void);
+bool8 MenuHelpers_CallLinkSomething(void);
bool8 sub_80BF748(void);
bool8 MenuHelpers_LinkSomething(void);
void SetVBlankHBlankCallbacksToNull(void);
diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h
index e2eebc62b..b24f4e785 100644
--- a/include/pokemon_icon.h
+++ b/include/pokemon_icon.h
@@ -30,5 +30,7 @@ u8 GetMonIconPaletteIndexFromSpecies(u16 species);
u16 GetIconSpecies(u16 species, u32 personality);
void LoadMonIconPalettesAt(u16 offset);
u8 GetValidMonIconPalIndex(u16 species);
+void SafeLoadMonIconPalette(u16 species);
+void SafeFreeMonIconPalette(u16 species);
#endif // GUARD_POKEMON_ICON_H
diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h
index 2b8f96316..f70337677 100644
--- a/include/pokemon_summary_screen.h
+++ b/include/pokemon_summary_screen.h
@@ -3,16 +3,16 @@
#include "main.h"
-extern u8 gLastViewedMonIndex;
-
-extern const u8 *const gMoveDescriptionPointers[];
-extern const u8 *const gNatureNamePointers[];
+extern const u8 * const gMoveDescriptionPointers[];
+extern const u8 * const gNatureNamePointers[];
void ShowSelectMovePokemonSummaryScreen(struct Pokemon *, u8, u8, MainCallback, u16);
-void ShowPokemonSummaryScreenSet40EF(u8 mode, struct BoxPokemon *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void));
u8 GetMoveSlotToReplace(void);
void SummaryScreen_SetUnknownTaskId(u8 a0);
void SummaryScreen_DestroyUnknownTask(void);
+u8 GetLastViewedMonIndex(void);
+void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, void (*callback)(void), u8 a4);
+void sub_8138B38(u8);
// The Pokemon Summary Screen can operate in different modes. Certain features,
// such as move re-ordering, are available in the different modes.
@@ -20,20 +20,51 @@ enum PokemonSummaryScreenMode
{
PSS_MODE_NORMAL,
PSS_MODE_UNK1,
- PSS_MODE_BOX,
PSS_MODE_SELECT_MOVE,
+ PSS_MODE_FORGET_MOVE,
+ PSS_MODE_UNK4,
+ PSS_MODE_BOX,
};
enum PokemonSummaryScreenPage
{
PSS_PAGE_INFO,
PSS_PAGE_SKILLS,
- PSS_PAGE_BATTLE_MOVES,
- PSS_PAGE_CONTEST_MOVES,
+ PSS_PAGE_MOVES,
+ PSS_PAGE_MOVES_INFO,
+ PSS_PAGE_UNK4,
+ PSS_PAGE_MOVE_DELETER,
};
-s32 GetLastViewedMonIndex(void);
-void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, void (*callback)(void), u8 a4);
-void sub_8138B38(u8);
+enum PokemonSummaryScreenState3270
+{
+ PSS_STATE3270_0,
+ PSS_STATE3270_1,
+ PSS_STATE3270_2,
+ PSS_STATE3270_3,
+ PSS_STATE3270_4,
+ PSS_STATE3270_5,
+ PSS_STATE3270_6
+};
+
+enum PokemonSummaryScreenStat
+{
+ PSS_STAT_ATK,
+ PSS_STAT_DEF,
+ PSS_STAT_SPA,
+ PSS_STAT_SPD,
+ PSS_STAT_SPE
+};
+
+#define TAG_PSS_UNK_64 0x64
+#define TAG_PSS_UNK_65 0x65
+#define TAG_PSS_UNK_66 0x66
+#define TAG_PSS_UNK_67 0x67
+#define TAG_PSS_UNK_6E 0x6E
+#define TAG_PSS_UNK_78 0x78
+#define TAG_PSS_UNK_82 0x82
+#define TAG_PSS_UNK_8C 0x8C
+#define TAG_PSS_UNK_96 0x96
+#define TAG_PSS_UNK_A0 0xA0
#endif // GUARD_POKEMON_SUMMARY_SCREEN_H
diff --git a/include/strings.h b/include/strings.h
index fd224aea4..ce1a41a98 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -1468,4 +1468,52 @@ extern const u8 gText_PokemonOnHook[];
extern const u8 gText_NotEvenANibble[];
extern const u8 gText_ItGotAway[];
+// pokemon_summary_screen
+extern const u8 gUnknown_8419C39[];
+extern const u8 gUnknown_8419C92[];
+extern const u8 gUnknown_8419CA2[];
+extern const u8 gUnknown_8419C45[];
+extern const u8 gUnknown_8419C82[];
+extern const u8 gUnknown_8416202[];
+extern const u8 gUnknown_84161EF[];
+extern const u8 gUnknown_841620E[];
+extern const u8 gUnknown_8416210[];
+extern const u8 gUnknown_8416238[];
+extern const u8 gUnknown_8419C13[];
+extern const u8 gUnknown_8419C0B[];
+extern const u8 gUnknown_841996D[];
+extern const u8 gUnknown_841992F[];
+extern const u8 gUnknown_84198D5[];
+extern const u8 gUnknown_84198B4[];
+extern const u8 gUnknown_84197ED[];
+extern const u8 gUnknown_84197B8[];
+extern const u8 gUnknown_8419841[];
+extern const u8 gUnknown_8419822[];
+extern const u8 gUnknown_841979D[];
+extern const u8 gUnknown_8419782[];
+extern const u8 gUnknown_84199F4[];
+extern const u8 gUnknown_84199AB[];
+extern const u8 gUnknown_8419860[];
+extern const u8 gUnknown_841988A[];
+extern const u8 gUnknown_8419C4D[];
+extern const u8 gUnknown_8419C59[];
+extern const u8 gUnknown_8419C1D[];
+extern const u8 gUnknown_8419C62[];
+extern const u8 gUnknown_8419C72[];
+extern const u8 gUnknown_8419C2A[];
+extern const u8 gUnknown_8419C7B[];
+extern const u8 gUnknown_8419CA9[];
+extern const u8 gUnknown_8419CB9[];
+extern const u8 gUnknown_8419B44[];
+extern const u8 gUnknown_8419B7B[];
+extern const u8 gUnknown_8419BAE[];
+extern const u8 gUnknown_8419BDB[];
+extern const u8 gUnknown_8419A3D[];
+extern const u8 gUnknown_8419B18[];
+extern const u8 gUnknown_8419A6E[];
+extern const u8 gUnknown_8419B18[];
+extern const u8 gUnknown_8419AA2[];
+extern const u8 gUnknown_8419ADE[];
+extern const u8 gUnknown_8419B18[];
+
#endif //GUARD_STRINGS_H
diff --git a/include/text.h b/include/text.h
index f1bf8b942..cd10de3e6 100644
--- a/include/text.h
+++ b/include/text.h
@@ -141,6 +141,7 @@
#define NUM_TEXT_PRINTERS 32
+#define TEXT_SPEED_INSTANT 0
#define TEXT_SPEED_FF 0xFF
enum
diff --git a/include/trade.h b/include/trade.h
index 196a46587..44d883f66 100644
--- a/include/trade.h
+++ b/include/trade.h
@@ -17,5 +17,6 @@ void CB2_ReturnFromLinkTrade(void);
s32 Trade_CalcLinkPlayerCompatibilityParam(void);
s32 CanRegisterMonForTradingBoard(struct GFtgtGnameSub rfuPlayer, u16 species2, u16 species, u8 isObedientBitSet);
s32 GetUnionRoomTradeMessageId(struct GFtgtGnameSub rfuPlayer, struct GFtgtGnameSub rfuPartner, u16 playerSpecies2, u16 partnerSpecies, u8 requestedType, u16 playerSpecies, u8 isObedientBitSet);
+void CB2_ReturnToTradeMenuFromSummary(void);
#endif //GUARD_TRADE_H
diff --git a/include/trainer_pokemon_sprites.h b/include/trainer_pokemon_sprites.h
index 23f6e2cab..fe4fc2510 100644
--- a/include/trainer_pokemon_sprites.h
+++ b/include/trainer_pokemon_sprites.h
@@ -17,5 +17,7 @@ u16 FreeAndDestroyTrainerPicSprite(u16);
u16 PlayerGenderToFrontTrainerPicId_Debug(u8 gender, bool8 getClass);
u16 CreateMonPicSprite_HandleDeoxys(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
u16 LoadMonPicInWindow(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId);
+u16 CreateMonPicSprite(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 ignoreDeoxys);
+u16 CreateMonPicSprite_HandleDeoxys(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
#endif // GUARD_TRAINER_POKEMON_SPRITES_H
diff --git a/ld_script.txt b/ld_script.txt
index f6f8730db..2626da3ff 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -268,7 +268,7 @@ SECTIONS {
src/tm_case.o(.text);
src/menu_indicators.o(.text);
src/pokedex_area_markers.o(.text);
- asm/pokemon_summary_screen.o(.text);
+ src/pokemon_summary_screen.o(.text);
src/help_system.o(.text);
src/wild_pokemon_area.o(.text);
src/dynamic_placeholder_text_util.o(.text);
@@ -572,7 +572,7 @@ SECTIONS {
src/tm_case.o(.rodata);
src/menu_indicators.o(.rodata);
src/pokedex_area_markers.o(.rodata);
- data/pokemon_summary_screen.o(.rodata);
+ src/pokemon_summary_screen.o(.rodata);
src/help_system.o(.rodata);
src/wild_pokemon_area.o(.rodata);
src/dynamic_placeholder_text_util.o(.rodata);
diff --git a/ld_script_modern.txt b/ld_script_modern.txt
index 33de4451a..992706e1b 100644
--- a/ld_script_modern.txt
+++ b/ld_script_modern.txt
@@ -12,20 +12,6 @@ SECTIONS {
. = 0x1C000;
*(ewram_data);
- /* pokemon_summary_screen.o */
- . = ALIGN(4);
- gUnknown_203B140 = .; . += 0x4;
- gUnknown_203B144 = .; . += 0x4;
- gUnknown_203B148 = .; . += 0x10;
- gUnknown_203B158 = .; . += 0x4;
- gUnknown_203B15C = .; . += 0x4;
- gUnknown_203B160 = .; . += 0x4;
- gUnknown_203B164 = .; . += 0x4;
- gUnknown_203B168 = .; . += 0x4;
- gLastViewedMonIndex = .; . += 0x1;
- gUnknown_203B16D = .; . += 0x1;
- gUnknown_203B16E = .; . += 0x2;
- gUnknown_203B170 = .; . += 0x4;
. = 0x40000;
}
diff --git a/replace.sh b/replace.sh
new file mode 100644
index 000000000..8ec32d944
--- /dev/null
+++ b/replace.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+# $1: phrase to find
+# $2: phrase to replace $1
+if [ "$1" = "" -o "$2" = "" ]; then
+ echo "Usage: replace.sh [PHRASE TO FIND] [PHRASE TO REPLACE PHRASE TO FIND]"
+ exit 0
+fi
+
+sed -i 's/\<'"$1"'\>/'"$2"'/' $(grep -lwr --include="*.s" --include="*.h" --include="*.c" --include="*.inc" --include="*.json" --include="*.txt" --exclude-dir="tools" --exclude-dir=".git" --exclude-dir="build" --exclude-dir="berry_fix/build" --exclude-dir="berry_fix/payload/build" --exclude-dir=".travis" "$1")
diff --git a/src/berry_pouch.c b/src/berry_pouch.c
index b6a5763fb..487667ad2 100644
--- a/src/berry_pouch.c
+++ b/src/berry_pouch.c
@@ -457,7 +457,7 @@ static void CB2_InitBerryPouch(void)
{
while (1)
{
- if ((u8)MenuHelpers_CallLinkSomething() == TRUE)
+ if (MenuHelpers_CallLinkSomething() == TRUE)
break;
if (RunBerryPouchInit() == TRUE)
break;
@@ -934,7 +934,7 @@ static void Task_BerryPouchMain(u8 taskId)
{
s16 * data = gTasks[taskId].data;
s32 menuInput;
- if (!gPaletteFade.active && (u8)MenuHelpers_CallLinkSomething() != TRUE)
+ if (!gPaletteFade.active && MenuHelpers_CallLinkSomething() != TRUE)
{
menuInput = ListMenu_ProcessInput(data[0]);
ListMenuGetScrollAndRow(data[0], &sStaticCnt.listMenuScrollOffset, &sStaticCnt.listMenuSelectedRow);
@@ -1040,7 +1040,7 @@ static void Task_NormalContextMenu(u8 taskId)
static void Task_NormalContextMenu_HandleInput(u8 taskId)
{
s8 input;
- if ((u8)MenuHelpers_CallLinkSomething() != TRUE)
+ if (MenuHelpers_CallLinkSomething() != TRUE)
{
input = Menu_ProcessInputNoWrapAround();
switch (input)
diff --git a/src/data/text/nature_names.h b/src/data/text/nature_names.h
new file mode 100644
index 000000000..d0d217d9b
--- /dev/null
+++ b/src/data/text/nature_names.h
@@ -0,0 +1,54 @@
+static const u8 sHardyNatureName[] = _("HARDY");
+static const u8 sLonelyNatureName[] = _("LONELY");
+static const u8 sBraveNatureName[] = _("BRAVE");
+static const u8 sAdamantNatureName[] = _("ADAMANT");
+static const u8 sNaughtyNatureName[] = _("NAUGHTY");
+static const u8 sBoldNatureName[] = _("BOLD");
+static const u8 sDocileNatureName[] = _("DOCILE");
+static const u8 sRelaxedNatureName[] = _("RELAXED");
+static const u8 sImpishNatureName[] = _("IMPISH");
+static const u8 sLaxNatureName[] = _("LAX");
+static const u8 sTimidNatureName[] = _("TIMID");
+static const u8 sHastyNatureName[] = _("HASTY");
+static const u8 sSeriousNatureName[] = _("SERIOUS");
+static const u8 sJollyNatureName[] = _("JOLLY");
+static const u8 sNaiveNatureName[] = _("NAIVE");
+static const u8 sModestNatureName[] = _("MODEST");
+static const u8 sMildNatureName[] = _("MILD");
+static const u8 sQuietNatureName[] = _("QUIET");
+static const u8 sBashfulNatureName[] = _("BASHFUL");
+static const u8 sRashNatureName[] = _("RASH");
+static const u8 sCalmNatureName[] = _("CALM");
+static const u8 sGentleNatureName[] = _("GENTLE");
+static const u8 sSassyNatureName[] = _("SASSY");
+static const u8 sCarefulNatureName[] = _("CAREFUL");
+static const u8 sQuirkyNatureName[] = _("QUIRKY");
+
+const u8 *const gNatureNamePointers[] =
+{
+ [NATURE_HARDY] = sHardyNatureName,
+ [NATURE_LONELY] = sLonelyNatureName,
+ [NATURE_BRAVE] = sBraveNatureName,
+ [NATURE_ADAMANT] = sAdamantNatureName,
+ [NATURE_NAUGHTY] = sNaughtyNatureName,
+ [NATURE_BOLD] = sBoldNatureName,
+ [NATURE_DOCILE] = sDocileNatureName,
+ [NATURE_RELAXED] = sRelaxedNatureName,
+ [NATURE_IMPISH] = sImpishNatureName,
+ [NATURE_LAX] = sLaxNatureName,
+ [NATURE_TIMID] = sTimidNatureName,
+ [NATURE_HASTY] = sHastyNatureName,
+ [NATURE_SERIOUS] = sSeriousNatureName,
+ [NATURE_JOLLY] = sJollyNatureName,
+ [NATURE_NAIVE] = sNaiveNatureName,
+ [NATURE_MODEST] = sModestNatureName,
+ [NATURE_MILD] = sMildNatureName,
+ [NATURE_QUIET] = sQuietNatureName,
+ [NATURE_BASHFUL] = sBashfulNatureName,
+ [NATURE_RASH] = sRashNatureName,
+ [NATURE_CALM] = sCalmNatureName,
+ [NATURE_GENTLE] = sGentleNatureName,
+ [NATURE_SASSY] = sSassyNatureName,
+ [NATURE_CAREFUL] = sCarefulNatureName,
+ [NATURE_QUIRKY] = sQuirkyNatureName,
+};
diff --git a/src/item_menu.c b/src/item_menu.c
index 5ab87c9a0..3002c3970 100644
--- a/src/item_menu.c
+++ b/src/item_menu.c
@@ -377,7 +377,7 @@ static void CB2_OpenBagMenu(void)
{
while (1)
{
- if ((u8)MenuHelpers_CallLinkSomething() == TRUE)
+ if (MenuHelpers_CallLinkSomething() == TRUE)
break;
if (LoadBagMenuGraphics() == TRUE)
break;
@@ -1050,7 +1050,7 @@ static void Task_BagMenu_HandleInput(u8 taskId)
return;
if (FuncIsActiveTask(Task_AnimateWin0v) == TRUE)
return;
- if ((u8)MenuHelpers_CallLinkSomething() == TRUE)
+ if (MenuHelpers_CallLinkSomething() == TRUE)
return;
switch (ProcessPocketSwitchInput(taskId, gBagMenuState.pocket))
{
@@ -1244,7 +1244,7 @@ static void Task_MoveItemInPocket_HandleInput(u8 taskId)
s32 input;
u16 itemsAbove;
u16 cursorPos;
- if ((u8)MenuHelpers_CallLinkSomething() == TRUE)
+ if (MenuHelpers_CallLinkSomething() == TRUE)
return;
input = ListMenu_ProcessInput(data[0]);
ListMenuGetScrollAndRow(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]);
@@ -1447,7 +1447,7 @@ static void Task_ItemContext_FieldOrBattle(u8 taskId)
static void Task_FieldItemContextMenuHandleInput(u8 taskId)
{
s8 input;
- if ((u8)MenuHelpers_CallLinkSomething() != TRUE)
+ if (MenuHelpers_CallLinkSomething() != TRUE)
{
input = Menu_ProcessInputNoWrapAround();
switch (input)
diff --git a/src/item_pc.c b/src/item_pc.c
index 8ce9cd6a9..8f25e90ad 100644
--- a/src/item_pc.c
+++ b/src/item_pc.c
@@ -379,7 +379,7 @@ static bool8 ItemPc_DoGfxSetup(void)
gMain.state++;
break;
case 20:
- if ((u8)MenuHelpers_CallLinkSomething() != TRUE)
+ if (MenuHelpers_CallLinkSomething() != TRUE)
gMain.state++;
break;
default:
diff --git a/src/menu_helpers.c b/src/menu_helpers.c
index 6649a543a..01ea44ae5 100644
--- a/src/menu_helpers.c
+++ b/src/menu_helpers.c
@@ -120,7 +120,7 @@ bool8 MenuHelpers_LinkSomething(void)
return FALSE;
}
-bool32 MenuHelpers_CallLinkSomething(void)
+bool8 MenuHelpers_CallLinkSomething(void)
{
if (!MenuHelpers_LinkSomething())
return FALSE;
@@ -130,7 +130,7 @@ bool32 MenuHelpers_CallLinkSomething(void)
bool8 sub_80BF748(void)
{
- if ((u8)MenuHelpers_CallLinkSomething() == TRUE)
+ if (MenuHelpers_CallLinkSomething() == TRUE)
return TRUE;
else if (sub_800B270() != TRUE)
return FALSE;
diff --git a/src/option_menu.c b/src/option_menu.c
index 383f21ae1..f011bc1ec 100644
--- a/src/option_menu.c
+++ b/src/option_menu.c
@@ -3,7 +3,6 @@
#include "scanline_effect.h"
#include "text_window_graphics.h"
#include "menu.h"
-#include "menu_helpers.h"
#include "task.h"
#include "overworld.h"
#include "help_system.h"
@@ -12,6 +11,9 @@
#include "field_fadetransition.h"
#include "gba/m4a_internal.h"
+// can't include the one in menu_helpers.h since Task_OptionMenu needs bool32 for matching
+bool32 MenuHelpers_CallLinkSomething(void);
+
// Menu items
enum
{
@@ -369,7 +371,7 @@ static void Task_OptionMenu(u8 taskId)
sOptionMenuPtr->loadState++;
break;
case 2:
- if (MenuHelpers_CallLinkSomething() == TRUE)
+ if (((bool32)MenuHelpers_CallLinkSomething()) == TRUE)
break;
switch (OptionMenu_ProcessInput())
{
diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c
index b69fe7de4..0ce31b712 100644
--- a/src/pokemon_storage_system.c
+++ b/src/pokemon_storage_system.c
@@ -138,7 +138,7 @@ void SetBoxWallpaper(u8 boxId, u8 wallpaperId)
gPokemonStoragePtr->boxWallpapers[boxId] = wallpaperId;
}
-s16 SeekToNextMonInBox(struct BoxPokemon * boxMons, s8 currIndex, u8 maxIndex, u8 flags)
+s16 SeekToNextMonInBox(struct BoxPokemon * boxMons, s8 curIndex, u8 maxIndex, u8 flags)
{
// flags:
// bit 0: Allow eggs
@@ -152,7 +152,7 @@ s16 SeekToNextMonInBox(struct BoxPokemon * boxMons, s8 currIndex, u8 maxIndex, u
if (flags == 1 || flags == 3)
{
- for (i = currIndex + adder; i >= 0 && i <= maxIndex; i += adder)
+ for (i = curIndex + adder; i >= 0 && i <= maxIndex; i += adder)
{
if (GetBoxMonData(&boxMons[i], MON_DATA_SPECIES) != SPECIES_NONE)
return i;
@@ -160,7 +160,7 @@ s16 SeekToNextMonInBox(struct BoxPokemon * boxMons, s8 currIndex, u8 maxIndex, u
}
else
{
- for (i = currIndex + adder; i >= 0 && i <= maxIndex; i += adder)
+ for (i = curIndex + adder; i >= 0 && i <= maxIndex; i += adder)
{
if (GetBoxMonData(&boxMons[i], MON_DATA_SPECIES) != SPECIES_NONE
&& !GetBoxMonData(&boxMons[i], MON_DATA_IS_EGG))
diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c
new file mode 100644
index 000000000..78366e210
--- /dev/null
+++ b/src/pokemon_summary_screen.c
@@ -0,0 +1,5198 @@
+#include "global.h"
+#include "gflib.h"
+#include "pokemon.h"
+#include "pokemon_summary_screen.h"
+#include "help_system.h"
+#include "task.h"
+#include "menu_helpers.h"
+#include "link.h"
+#include "overworld.h"
+#include "constants/songs.h"
+#include "strings.h"
+#include "new_menu_helpers.h"
+#include "menu.h"
+#include "constants/species.h"
+#include "constants/items.h"
+#include "data.h"
+#include "item.h"
+#include "constants/party_menu.h"
+#include "trade.h"
+#include "battle_main.h"
+#include "scanline_effect.h"
+#include "constants/moves.h"
+#include "dynamic_placeholder_text_util.h"
+#include "constants/region_map_sections.h"
+#include "region_map.h"
+#include "field_specials.h"
+#include "party_menu.h"
+#include "constants/battle.h"
+#include "event_data.h"
+#include "trainer_pokemon_sprites.h"
+#include "battle_anim.h"
+#include "pokeball.h"
+#include "pokemon_icon.h"
+#include "battle_interface.h"
+#include "mon_markings.h"
+#include "pokemon_storage_system.h"
+
+// needs conflicting header to match (curIndex is s8 in the function, but has to be defined as u8 here)
+extern s16 SeekToNextMonInBox(struct BoxPokemon * boxMons, u8 curIndex, u8 maxIndex, u8 flags);
+
+static void sub_8138B8C(struct Pokemon * mon);
+static void sub_8135C34(void);
+static void sub_813B784(void);
+static void sub_8138414(u8 curPageIndex);
+static void sub_8134BAC(u8 taskId);
+static void sub_8134E84(u8 taskId);
+static void sub_813B3F0(u8 taskId);
+static void sub_813B120(u8, s8);
+static void sub_8137E64(u8 taskId);
+static void sub_8135638(void);
+static void sub_81356EC(void);
+static void sub_813B750(u8 curPageIndex);
+static void sub_8138280(u8 curPageIndex);
+static void sub_8137D28(u8 curPageIndex);
+static void sub_8135514(void);
+static u8 sub_81357A0(u8);
+static void sub_8138440(void);
+static void sub_8138CD8(u8 taskId);
+static void sub_8135AA4(void);
+static void sub_8135B90(void);
+static void sub_8138538(void);
+static void sub_8137D28(u8 curPageIndex);
+static void sub_8136F4C(void);
+static void sub_81374E8(void);
+static void sub_8137BD0(void);
+static void sub_8138A38(void);
+static void sub_8136DA4(const u8 * str);
+static void sub_8136DF0(const u8 * str);
+static void sub_8136E50(const u8 * str);
+static void sub_81358DC(u8, u8);
+static void sub_813A838(u8 invisible);
+static void sub_813AB70(u8 invisible);
+static void sub_8139C44(u8 invisible);
+static void sub_813B084(u8 invisible);
+static void sub_8139D54(u8 invisible);
+static void sub_813A3B8(u8 invisible);
+static void sub_813ACF8(u8 invisible);
+static void sub_813AEB0(u8 invisible);
+static void sub_813A0E8(u8 invisible);
+static void sub_8139EE4(u8 invisible);
+static void sub_81381AC(void);
+static void sub_8136BC4(void);
+static void sub_8136BAC(void);
+static u8 sub_8135F20(void);
+static u8 sub_8136AEC(void);
+static void sub_81381D0(void);
+static u8 sub_8136040(void);
+static void sub_8137E28(void);
+static void sub_81381C0(void);
+static void sub_8136D54(void);
+static void sub_81360D4(void);
+static void sub_8136350(void);
+static void sub_81367B0(void);
+static u8 sub_8138C5C(u32 status);
+static void sub_81367E8(u8);
+static u16 sub_8138BEC(struct Pokemon * mon, u8 moveSlot);
+static u16 sub_8138C24(struct Pokemon * mon, u8 moveSlot);
+static void sub_813ADA8(u16, u16);
+static void sub_813ABAC(u16, u16);
+static void sub_813AFFC(void);
+static void sub_8139F64(u16, u16);
+static void sub_813A254(u16, u16);
+static void sub_813A45C(u16, u16);
+static void sub_813A874(u16, u16);
+static void sub_8139CB0(void);
+static void sub_8139DBC(void);
+static void sub_813995C(void);
+static void sub_81393D4(u8 taskId);
+static void sub_8137EE8(void);
+static void sub_8136FB0(void);
+static void sub_81370EC(void);
+static void sub_8137270(void);
+static void sub_81372E4(u8 i);
+static void sub_8137554(void);
+static void sub_8137A90(void);
+static void sub_8137AF8(void);
+static void sub_8137944(void);
+static void sub_8137970(void);
+static bool32 sub_813B838(u8 metLocation);
+static bool32 sub_8138B4C(void);
+static bool32 sub_813B7E0(u8 nature);
+static void sub_8137724(void);
+static bool32 sub_813B7F8(void);
+static u8 sub_813847C(struct Pokemon * mon);
+static void sub_8137C18(void);
+static void sub_8137C90(void);
+static void sub_813AF90(void);
+static void sub_81380F0(void);
+static void sub_81390B0(void);
+static void sub_81391EC(void);
+static void sub_8139328(struct Pokemon * mon);
+static void sub_8139AAC(u16 spriteId);
+static void sub_813A124(struct Sprite * sprite);
+static void sub_813A35C(void);
+static void sub_813A620(void);
+static void sub_813A994(void);
+static void sub_813ACB4(void);
+static void sub_813AF50(void);
+static void sub_813B068(void);
+static void sub_813B0E4(void);
+static s8 sub_813B20C(s8);
+static s8 sub_813B38C(s8);
+
+struct PokemonSummaryScreenData
+{
+ u16 unk0[0x800];
+ u16 unk1000[0x800];
+ u16 unk2000[0x800];
+ u8 ALIGNED(4) unk3000[7];
+
+ u8 ALIGNED(4) unk3008;
+ u8 ALIGNED(4) unk300C;
+ u8 ALIGNED(4) unk3010;
+ u8 ALIGNED(4) unk3014;
+
+ u8 ALIGNED(4) unk3018;
+ u8 ALIGNED(4) unk301C;
+
+ u8 ALIGNED(4) unk3020;
+
+ bool32 isEnemyParty; /* 0x3024 */
+
+ struct PokeSummary
+ {
+ u8 ALIGNED(4) unk3028[POKEMON_NAME_LENGTH];
+ u8 ALIGNED(4) unk3034[POKEMON_NAME_LENGTH + 1];
+ u8 ALIGNED(4) unk3040[12];
+ u8 ALIGNED(4) unk304C[2][12];
+
+ u8 ALIGNED(4) unk3064[5];
+ u8 ALIGNED(4) unk306C[7];
+ u8 ALIGNED(4) unk3074[ITEM_NAME_LENGTH + 1];
+
+ u8 ALIGNED(4) unk3084[3];
+ u8 ALIGNED(4) unk3088[7];
+ u8 ALIGNED(4) unk3090[9];
+ u8 ALIGNED(4) unk309C[5][5];
+
+ u8 ALIGNED(4) unk30B8[5][11];
+ u8 ALIGNED(4) unk30F0[5][11];
+ u8 ALIGNED(4) unk3128[5][MOVE_NAME_LENGTH + 1];
+ u8 ALIGNED(4) unk316C[5][5];
+ u8 ALIGNED(4) unk3188[5][5];
+
+ u8 ALIGNED(4) unk31A4[9];
+ u8 ALIGNED(4) unk31B0[9];
+
+ u8 ALIGNED(4) unk31BC[13];
+ u8 ALIGNED(4) unk31CC[52];
+ } summary;
+
+ u8 ALIGNED(4) isEgg; /* 0x3200 */
+ u8 ALIGNED(4) isBadEgg; /* 0x3204 */
+
+ u8 ALIGNED(4) mode; /* 0x3208 */
+ u8 ALIGNED(4) unk320C; /* 0x320C */
+ u8 ALIGNED(4) lastIndex; /* 0x3210 */
+ u8 ALIGNED(4) curPageIndex; /* 0x3214 */
+ u8 ALIGNED(4) unk3218; /* 0x3218 */
+ u8 ALIGNED(4) isBoxMon; /* 0x321C */
+ u8 ALIGNED(4) unk3220[2]; /* 0x3220 */
+
+ u8 ALIGNED(4) unk3224; /* 0x3224 */
+ u8 ALIGNED(4) unk3228; /* 0x3228 */
+ u8 ALIGNED(4) unk322C; /* 0x322C */
+ u8 ALIGNED(4) unk3230; /* 0x3230 */
+
+ u8 ALIGNED(4) lockMovesFlag; /* 0x3234 */
+
+ u8 ALIGNED(4) unk3238; /* 0x3238 */
+ u8 ALIGNED(4) unk323C; /* 0x323C */
+ u8 ALIGNED(4) unk3240; /* 0x3240 */
+ u8 ALIGNED(4) unk3244; /* 0x3244 */
+ u8 ALIGNED(4) unk3248; /* 0x3248 */
+ s16 ALIGNED(4) unk324C; /* 0x324C */
+
+ u16 unk3250[5]; /* 0x3250 */
+ u16 unk325A[5]; /* 0x325A */
+ u8 ALIGNED(4) unk3264; /* 0x3264 */
+ u8 ALIGNED(4) unk3268; /* 0x3268 */
+
+ u8 ALIGNED(4) unk326C; /* 0x326C */
+
+ u8 ALIGNED(4) state3270; /* 0x3270 */
+ u8 ALIGNED(4) unk3274; /* 0x3274 */
+ u8 ALIGNED(4) unk3278; /* 0x3278 */
+ u8 ALIGNED(4) unk327C; /* 0x327C */
+ u8 ALIGNED(4) unk3280; /* 0x3280 */
+ u8 ALIGNED(4) unk3284; /* 0x3284 */
+ u8 ALIGNED(4) unk3288; /* 0x3288 */
+ u8 ALIGNED(4) unk328C; /* 0x328C */
+
+ struct Pokemon currentMon; /* 0x3290 */
+
+ union
+ {
+ struct Pokemon * mons;
+ struct BoxPokemon * boxMons;
+ } monList;
+
+ MainCallback savedCallback;
+ struct Sprite * markingSprite;
+
+ u8 ALIGNED(4) unk3300[2]; /* 0x3300 */
+ u8 ALIGNED(4) unk3304[3]; /* 0x3304 */
+};
+
+struct Struct203B144
+{
+ u16 unk00;
+ u16 unk02;
+ u16 unk04;
+ u16 unk06;
+ u16 unk08;
+ u16 unk0A;
+ u16 unk0C;
+ u16 unk0E;
+ u16 unk10;
+
+ u16 unk12[5];
+ u16 unk1C[5];
+
+ u16 unk26;
+};
+
+struct Struct203B160
+{
+ struct Sprite * sprites[11]; /* 0x00 */
+ u16 unk2C[11]; /* 0x2c */
+ u16 unk42; /* 0x42 */
+ u16 unk44; /* 0x44 */
+};
+
+struct Struct203B15C
+{
+ struct Sprite * sprites[10]; /* 0x00 */
+ u16 unk28[10]; /* 0x28 */
+ u16 unk3C; /* 0x3c */
+ u16 unk3E; /* 0x3e */
+};
+
+struct Struct203B170
+{
+ u8 ALIGNED(4) unk00; /* 0x00 */
+ u8 ALIGNED(4) unk04; /* 0x04 */
+ u8 ALIGNED(4) unk08; /* 0x08 */
+};
+
+struct Struct203B148
+{
+ struct Sprite * sprite; /* 0x00 */
+ u16 unk04; /* 0x04 */
+ u16 unk06; /* 0x06 */
+ u16 unk08; /* 0x08 */
+};
+
+struct Struct203B158
+{
+ struct Sprite * sprite; /* 0x00 */
+ u16 unk04; /* 0x04 */
+ u16 unk06; /* 0x06 */
+};
+
+struct Struct203B164
+{
+ struct Sprite * sprite; /* 0x00 */
+ u16 unk04; /* 0x04 */
+ u16 unk06; /* 0x06 */
+};
+
+struct Struct203B168
+{
+ struct Sprite * sprite; /* 0x00 */
+ u16 unk04; /* 0x04 */
+ u16 unk06; /* 0x06 */
+};
+
+static EWRAM_DATA struct PokemonSummaryScreenData * sMonSummaryScreen = NULL;
+static EWRAM_DATA struct Struct203B144 * sUnknown_203B144 = NULL;
+static EWRAM_DATA struct Struct203B148 * sUnknown_203B148[4] = {};
+static EWRAM_DATA struct Struct203B158 * sUnknown_203B158 = NULL;
+static EWRAM_DATA struct Struct203B15C * sUnknown_203B15C = NULL;
+static EWRAM_DATA struct Struct203B160 * sUnknown_203B160 = NULL;
+static EWRAM_DATA struct Struct203B164 * sUnknown_203B164 = NULL;
+static EWRAM_DATA struct Struct203B168 * sUnknown_203B168 = NULL;
+static EWRAM_DATA u8 sLastViewedMonIndex = 0;
+static EWRAM_DATA u8 sUnknown_203B16D = 0;
+static EWRAM_DATA u8 sUnknown_203B16E = 0;
+static EWRAM_DATA struct Struct203B170 * sUnknown_203B170 = NULL;
+
+extern const u32 gUnknown_8E9B750[];
+extern const u32 gUnknown_8E9B950[];
+extern const u32 gUnknown_8E9B598[];
+extern const u32 gUnknown_8E9BA9C[];
+extern const u32 gUnknown_8E9BBCC[];
+extern const u16 gUnknown_8E9B310[];
+extern const u32 gUnknown_8E9A460[];
+extern const u16 gUnknown_8E9B578[];
+extern const u32 gUnknown_8E9BF48[];
+extern const u16 gUnknown_8E9BF28[];
+extern const u32 gUnknown_8E9B4B8[];
+extern const u32 gUnknown_8E9B3F0[];
+extern const u16 gUnknown_8E9B578[];
+
+static const u32 sUnknown_84636C0[] = INCBIN_U32("graphics/interface/pokesummary_unk_84636C0.gbapal");
+static const u16 sUnknown_84636E0[] = INCBIN_U16("graphics/interface/pokesummary_unk_84636E0.gbapal");
+static const u32 sUnknown_8463700[] = INCBIN_U32("graphics/interface/pokesummary_unk_8463700.gbapal");
+static const u16 sUnknown_8463720[] = INCBIN_U16("graphics/interface/pokesummary_unk_8463720.gbapal");
+static const u32 sUnknown_8463740[] = INCBIN_U32("graphics/interface/pokesummary_unk_8463740.4bpp.lz");
+static const u32 sUnknown_846386C[] = INCBIN_U32("graphics/interface/pokesummary_unk_846386C.4bpp.lz");
+
+static const struct OamData sUnknown_846398C =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = FALSE,
+ .bpp = ST_OAM_4BPP,
+ .shape = SPRITE_SHAPE(64x32),
+ .x = 0,
+ .matrixNum = 0,
+ .size = SPRITE_SIZE(64x32),
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0
+};
+
+static const union AnimCmd sUnknown_8463994[] =
+{
+ ANIMCMD_FRAME(0, 20),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd sUnknown_846399C[] =
+{
+ ANIMCMD_FRAME(0x20, 20),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd * const sUnknown_84639A4[] =
+{
+ sUnknown_8463994,
+ sUnknown_846399C
+};
+
+static const struct OamData sUnknown_84639AC = {
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = FALSE,
+ .bpp = ST_OAM_4BPP,
+ .shape = SPRITE_SHAPE(32x8),
+ .x = 0,
+ .matrixNum = 0,
+ .size = SPRITE_SIZE(32x8),
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0
+};
+
+static const union AnimCmd sUnknown_84639B4[] =
+{
+ ANIMCMD_FRAME(0, 20),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd sUnknown_84639BC[] =
+{
+ ANIMCMD_FRAME(4, 20),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd sUnknown_84639C4[] =
+{
+ ANIMCMD_FRAME(8, 20),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd sUnknown_84639CC[] =
+{
+ ANIMCMD_FRAME(12, 20),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd sUnknown_84639D4[] =
+{
+ ANIMCMD_FRAME(16, 20),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd sUnknown_84639DC[] =
+{
+ ANIMCMD_FRAME(20, 20),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd sUnknown_84639E4[] =
+{
+ ANIMCMD_FRAME(24, 20),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd sUnknown_84639EC[] =
+{
+ ANIMCMD_FRAME(28, 20),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd * const sUnknown_84639F4[] =
+{
+ sUnknown_84639B4,
+ sUnknown_84639BC,
+ sUnknown_84639C4,
+ sUnknown_84639CC,
+ sUnknown_84639D4,
+ sUnknown_84639DC,
+ sUnknown_84639E4,
+ sUnknown_84639EC
+};
+
+static const struct OamData sUnknown_8463A14 = {
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = FALSE,
+ .bpp = ST_OAM_4BPP,
+ .shape = SPRITE_SHAPE(8x8),
+ .x = 0,
+ .matrixNum = 0,
+ .size = SPRITE_SIZE(8x8),
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0
+};
+
+static const union AnimCmd sUnknown_8463A1C[] =
+{
+ ANIMCMD_FRAME(0, 20),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd sUnknown_8463A24[] =
+{
+ ANIMCMD_FRAME(1, 20),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd sUnknown_8463A2C[] =
+{
+ ANIMCMD_FRAME(2, 20),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd sUnknown_8463A34[] =
+{
+ ANIMCMD_FRAME(3, 20),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd sUnknown_8463A3C[] =
+{
+ ANIMCMD_FRAME(4, 20),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd sUnknown_8463A44[] =
+{
+ ANIMCMD_FRAME(5, 20),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd sUnknown_8463A4C[] =
+{
+ ANIMCMD_FRAME(6, 20),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd sUnknown_8463A54[] =
+{
+ ANIMCMD_FRAME(7, 20),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd sUnknown_8463A5C[] =
+{
+ ANIMCMD_FRAME(8, 20),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd sUnknown_8463A64[] =
+{
+ ANIMCMD_FRAME(9, 20),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd sUnknown_8463A6C[] =
+{
+ ANIMCMD_FRAME(10, 20),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd sUnknown_8463A74[] =
+{
+ ANIMCMD_FRAME(11, 20),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd * const sUnknown_8463A7C[] =
+{
+ sUnknown_8463A1C,
+ sUnknown_8463A24,
+ sUnknown_8463A2C,
+ sUnknown_8463A34,
+ sUnknown_8463A3C,
+ sUnknown_8463A44,
+ sUnknown_8463A4C,
+ sUnknown_8463A54,
+ sUnknown_8463A5C,
+ sUnknown_8463A64,
+ sUnknown_8463A6C,
+ sUnknown_8463A74
+};
+
+static const u16 sUnknown_8463AAC[] = INCBIN_U16("graphics/interface/pokesummary_unk_8463AAC.gbapal");
+static const u16 sUnknown_8463ACC[] = INCBIN_U16("graphics/interface/pokesummary_unk_8463ACC.gbapal");
+
+static const struct OamData sUnknown_8463AEC = {
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = FALSE,
+ .bpp = ST_OAM_4BPP,
+ .shape = SPRITE_SHAPE(8x8),
+ .x = 0,
+ .matrixNum = 0,
+ .size = SPRITE_SIZE(8x8),
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0
+};
+
+static const union AnimCmd sUnknown_8463AF4[] =
+{
+ ANIMCMD_FRAME(0, 20),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd * const sUnknown_8463AFC[] =
+{
+ sUnknown_8463AF4
+};
+
+static const u16 sUnknown_8463B00[] = INCBIN_U16("graphics/interface/pokesummary_unk_8463B00.gbapal");
+static const u32 sUnknown_8463B20[] = INCBIN_U32("graphics/interface/pokesummary_unk_8463B20.4bpp.lz");
+
+static const struct OamData sUnknown_8463B30 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = FALSE,
+ .bpp = ST_OAM_4BPP,
+ .shape = SPRITE_SHAPE(8x8),
+ .x = 0,
+ .matrixNum = 0,
+ .size = SPRITE_SIZE(8x8),
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0
+};
+
+static const union AnimCmd sUnknown_8463B38[] =
+{
+ ANIMCMD_FRAME(1, 20),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd * const sUnknown_8463B40[] =
+{
+ sUnknown_8463B38
+};
+
+static const u16 sUnknown_8463B44[] = INCBIN_U16( "graphics/interface/pokesummary_unk_8463B44.gbapal");
+static const u32 sUnknown_8463B64[] = INCBIN_U32( "graphics/interface/pokesummary_unk_8463B64.4bpp.lz");
+static const u32 sUnknown_8463B88[] = INCBIN_U32( "graphics/interface/pokesummary_unk_8463B88.bin.lz");
+static const u32 sUnknown_8463C80[] = INCBIN_U32( "graphics/interface/pokesummary_unk_8463C80.bin.lz");
+
+#include "data/text/nature_names.h"
+
+static const u8 * const sUnknown_8463EC4[] = {
+ gUnknown_8419B44,
+ gUnknown_8419B7B,
+ gUnknown_8419BAE,
+ gUnknown_8419BDB
+};
+
+static const u8 * const sUnknown_8463ED4[] = {
+ gUnknown_8419A3D,
+ gUnknown_8419B18,
+ gUnknown_8419A6E,
+ gUnknown_8419B18,
+ gUnknown_8419AA2,
+ gUnknown_8419ADE,
+ gUnknown_8419B18
+};
+
+static const u8 sUnknown_8463EF0[][3] = {
+ {0, 7, 8},
+ {0, 1, 2},
+ {0, 3, 4},
+ {0, 5, 6}
+};
+
+static const struct BgTemplate sUnknown_8463EFC[] =
+{
+ {
+ .bg = 0,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 14,
+ .screenSize = 1,
+ .paletteMode = 0,
+ .priority = 0,
+ .baseTile = 0x0000
+ },
+ {
+ .bg = 2,
+ .charBaseIndex = 2,
+ .mapBaseIndex = 10,
+ .screenSize = 1,
+ .paletteMode = 0,
+ .priority = 1,
+ .baseTile = 0x0000
+ },
+ {
+ .bg = 3,
+ .charBaseIndex = 2,
+ .mapBaseIndex = 9,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 3,
+ .baseTile = 0x0000
+ },
+ {
+ .bg = 1,
+ .charBaseIndex = 2,
+ .mapBaseIndex = 12,
+ .screenSize = 1,
+ .paletteMode = 0,
+ .priority = 2,
+ .baseTile = 0x0000
+ }
+};
+
+static const struct WindowTemplate sUnknown_8463F0C[] =
+{
+ {
+ .bg = 1,
+ .tilemapLeft = 0,
+ .tilemapTop = 0,
+ .width = 13,
+ .height = 2,
+ .paletteNum = 7,
+ .baseBlock = 0x0258
+ },
+ {
+ .bg = 1,
+ .tilemapLeft = 19,
+ .tilemapTop = 0,
+ .width = 11,
+ .height = 2,
+ .paletteNum = 7,
+ .baseBlock = 0x0272
+ },
+ {
+ .bg = 1,
+ .tilemapLeft = 0,
+ .tilemapTop = 2,
+ .width = 15,
+ .height = 2,
+ .paletteNum = 7,
+ .baseBlock = 0x0288
+ }
+};
+
+static const struct WindowTemplate sUnknown_8463F24[] =
+{
+ {
+ .bg = 2,
+ .tilemapLeft = 0,
+ .tilemapTop = 0,
+ .width = 13,
+ .height = 2,
+ .paletteNum = 7,
+ .baseBlock = 0x0258
+ },
+ {
+ .bg = 2,
+ .tilemapLeft = 19,
+ .tilemapTop = 0,
+ .width = 11,
+ .height = 2,
+ .paletteNum = 7,
+ .baseBlock = 0x0272
+ },
+ {
+ .bg = 2,
+ .tilemapLeft = 0,
+ .tilemapTop = 2,
+ .width = 15,
+ .height = 2,
+ .paletteNum = 7,
+ .baseBlock = 0x0288
+ },
+};
+
+static const struct WindowTemplate sUnknown_8463F3C[] =
+{
+ {
+ .bg = 0,
+ .tilemapLeft = 15,
+ .tilemapTop = 2,
+ .width = 15,
+ .height = 12,
+ .paletteNum = 6,
+ .baseBlock = 0x0001
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 14,
+ .width = 28,
+ .height = 6,
+ .paletteNum = 6,
+ .baseBlock = 0x00b5
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 0,
+ .tilemapTop = 0,
+ .width = 0,
+ .height = 0,
+ .paletteNum = 0,
+ .baseBlock = 0x0000
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 0,
+ .tilemapTop = 0,
+ .width = 0,
+ .height = 0,
+ .paletteNum = 0,
+ .baseBlock = 0x0000
+ },
+};
+
+static const struct WindowTemplate sUnknown_8463F5C[] =
+{
+ {
+ .bg = 0,
+ .tilemapLeft = 20,
+ .tilemapTop = 2,
+ .width = 10,
+ .height = 14,
+ .paletteNum = 6,
+ .baseBlock = 0x0001
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 6,
+ .tilemapTop = 12,
+ .width = 14,
+ .height = 4,
+ .paletteNum = 6,
+ .baseBlock = 0x008d
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 16,
+ .width = 29,
+ .height = 4,
+ .paletteNum = 6,
+ .baseBlock = 0x00c5
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 0,
+ .tilemapTop = 0,
+ .width = 0,
+ .height = 0,
+ .paletteNum = 0,
+ .baseBlock = 0x0000
+ },
+};
+
+static const struct WindowTemplate sUnknown_8463F7C[] =
+{
+ {
+ .bg = 0,
+ .tilemapLeft = 20,
+ .tilemapTop = 2,
+ .width = 10,
+ .height = 18,
+ .paletteNum = 8,
+ .baseBlock = 0x0001
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 0,
+ .tilemapTop = 7,
+ .width = 15,
+ .height = 13,
+ .paletteNum = 6,
+ .baseBlock = 0x00b5
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 15,
+ .tilemapTop = 2,
+ .width = 5,
+ .height = 18,
+ .paletteNum = 6,
+ .baseBlock = 0x0178
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 6,
+ .tilemapTop = 4,
+ .width = 9,
+ .height = 2,
+ .paletteNum = 6,
+ .baseBlock = 0x01d2
+ },
+};
+
+static const struct WindowTemplate sUnknown_8463F9C[] =
+{
+ {
+ .bg = 255,
+ .tilemapLeft = 0,
+ .tilemapTop = 0,
+ .width = 0,
+ .height = 0,
+ .paletteNum = 0,
+ .baseBlock = 0x0000
+ },
+};
+
+
+static const u8 sUnknown_8463FA4[][3] =
+{
+ {0, 14, 10},
+ {0, 1, 2},
+ {0, 9, 8},
+ {0, 5, 4},
+ {0, 2, 3},
+ {0, 11, 10},
+};
+
+static const u8 ALIGNED(4) sUnknown_8463FB8[] =
+{
+ 0, 2, 3, 1, 4, 5
+};
+
+static const s8 sUnknown_8463FBE[] =
+{
+ -1, 0, 1
+};
+
+static const s8 sUnknown_8463FC1[] =
+{
+ -2, -1, 0, 1, 2
+};
+
+static const s8 sUnknown_8463FC6[] =
+{
+ -3, -2, -1, 0, 1, 2, 3
+};
+
+static const s8 sUnknown_8463FCD[] =
+{
+ -5, -3, -1, 0, 1, 3, 5
+};
+
+static const s8 sUnknown_8463FD4[] =
+{
+ 1, 1, 0, -1, -1, 0, -1, -1, 0, 1, 1
+};
+
+static const s8 sUnknown_8463FDF[] =
+{
+ 2, 1, 0, -1, -2, 0, -2, -1, 0, 1, 2
+};
+
+static const s8 sUnknown_8463FEA[] =
+{
+ 2, 1, 1, 0, -1, -1, -2, 0, -2, -1, -1, 0, 1, 1, 2
+};
+
+static const u16 * const sUnknown_8463FFC[] =
+{
+ gUnknown_8E9B578,
+ sUnknown_8463AAC,
+ sUnknown_8463ACC,
+};
+
+
+#define FREE_AND_SET_NULL_IF_SET(ptr) \
+{ \
+ if (ptr != NULL) \
+ { \
+ free(ptr); \
+ (ptr) = NULL; \
+ } \
+}
+
+void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, MainCallback savedCallback, u8 mode)
+{
+ sMonSummaryScreen = AllocZeroed(sizeof(struct PokemonSummaryScreenData));
+ sUnknown_203B144 = AllocZeroed(sizeof(struct Struct203B144));
+
+ if (sMonSummaryScreen == NULL)
+ {
+ SetMainCallback2(savedCallback);
+ return;
+ }
+
+ sLastViewedMonIndex = cursorPos;
+
+ sUnknown_203B16D = 0;
+ sUnknown_203B16E = 0;
+ sMonSummaryScreen->savedCallback = savedCallback;
+ sMonSummaryScreen->monList.mons = party;
+
+ if (party == gEnemyParty)
+ sMonSummaryScreen->isEnemyParty = TRUE;
+ else
+ sMonSummaryScreen->isEnemyParty = FALSE;
+
+ sMonSummaryScreen->lastIndex = lastIdx;
+ sMonSummaryScreen->mode = mode;
+
+ switch (sMonSummaryScreen->mode)
+ {
+ case PSS_MODE_NORMAL:
+ default:
+ SetHelpContext(HELPCONTEXT_POKEMON_INFO);
+ sMonSummaryScreen->curPageIndex = PSS_PAGE_INFO;
+ sMonSummaryScreen->isBoxMon = FALSE;
+ sMonSummaryScreen->lockMovesFlag = FALSE;
+ break;
+ case PSS_MODE_BOX:
+ SetHelpContext(HELPCONTEXT_POKEMON_INFO);
+ sMonSummaryScreen->curPageIndex = PSS_PAGE_INFO;
+ sMonSummaryScreen->isBoxMon = TRUE;
+ sMonSummaryScreen->lockMovesFlag = FALSE;
+ break;
+ case PSS_MODE_SELECT_MOVE:
+ case PSS_MODE_FORGET_MOVE:
+ SetHelpContext(HELPCONTEXT_POKEMON_MOVES);
+ sMonSummaryScreen->curPageIndex = PSS_PAGE_MOVES_INFO;
+ sMonSummaryScreen->isBoxMon = FALSE;
+ sMonSummaryScreen->lockMovesFlag = TRUE;
+ break;
+ }
+
+ sMonSummaryScreen->state3270 = 0;
+ sMonSummaryScreen->unk3274 = 0;
+ sMonSummaryScreen->unk3278 = 0;
+ sMonSummaryScreen->unk327C = 0;
+
+ sMonSummaryScreen->unk3238 = 0;
+ sMonSummaryScreen->unk323C = 2;
+ sMonSummaryScreen->unk3240 = 1;
+ sMonSummaryScreen->unk3244 = FALSE;
+
+ sMonSummaryScreen->unk3228 = 0;
+ sMonSummaryScreen->unk322C = 1;
+
+ sub_8138B8C(&sMonSummaryScreen->currentMon);
+ sMonSummaryScreen->isEgg = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_IS_EGG);
+ sMonSummaryScreen->isBadEgg = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SANITY_IS_BAD_EGG);
+
+ if (sMonSummaryScreen->isBadEgg == TRUE)
+ sMonSummaryScreen->isEgg = TRUE;
+
+ sMonSummaryScreen->unk3300[0] = 0xff;
+ SetMainCallback2(sub_8135C34);
+}
+
+void ShowSelectMovePokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, MainCallback savedCallback, u16 a4)
+{
+ ShowPokemonSummaryScreen(party, cursorPos, lastIdx, savedCallback, PSS_MODE_SELECT_MOVE);
+ sMonSummaryScreen->unk325A[4] = a4;
+}
+
+static u8 sub_813476C(u8 a0)
+{
+ if (sMonSummaryScreen->unk301C == TRUE && sMonSummaryScreen->unk3224 != a0)
+ return TRUE;
+
+ return FALSE;
+}
+
+u32 sub_81347A4(u8 a0)
+{
+ if (sMonSummaryScreen->isEgg)
+ return FALSE;
+
+ if (sMonSummaryScreen->unk3300[0] != 0xff && sMonSummaryScreen->unk3300[0] == a0)
+ {
+ sMonSummaryScreen->unk3300[0] = 0xff;
+ return TRUE;
+ }
+
+ if (sub_813476C(a0))
+ return FALSE;
+
+ switch (a0)
+ {
+ case 1:
+ if (JOY_NEW(DPAD_RIGHT))
+ return TRUE;
+
+ if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR && JOY_NEW(R_BUTTON))
+ return TRUE;
+
+ break;
+ case 0:
+ if (JOY_NEW(DPAD_LEFT))
+ return TRUE;
+
+ if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR && JOY_NEW(L_BUTTON))
+ return TRUE;
+
+ break;
+ }
+
+ return FALSE;
+}
+
+static void sub_8134840(u8 taskId)
+{
+ switch (sMonSummaryScreen->state3270) {
+ case PSS_STATE3270_0:
+ BeginNormalPaletteFade(0xffffffff, 0, 16, 0, 0);
+ sMonSummaryScreen->state3270 = PSS_STATE3270_1;
+ break;
+ case PSS_STATE3270_1:
+ if (!gPaletteFade.active)
+ {
+ sub_813B784();
+ sMonSummaryScreen->state3270 = PSS_STATE3270_2;
+ return;
+ }
+
+ sMonSummaryScreen->state3270 = PSS_STATE3270_1;
+ break;
+ case PSS_STATE3270_2:
+ if (MenuHelpers_CallLinkSomething() == TRUE)
+ return;
+ else if (sub_800B270() == TRUE)
+ return;
+ else if (FuncIsActiveTask(sub_813B3F0))
+ return;
+
+ if (sMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO)
+ {
+ if (sub_81347A4(1) == TRUE)
+ {
+ if (FuncIsActiveTask(sub_8134BAC))
+ {
+ sMonSummaryScreen->unk3300[0] = 1;
+ return;
+ }
+ else if (sMonSummaryScreen->curPageIndex < PSS_PAGE_MOVES)
+ {
+ PlaySE(SE_SELECT);
+ HideBg(0);
+ sMonSummaryScreen->unk3224 = 1;
+ sub_8138414(sMonSummaryScreen->curPageIndex);
+ sMonSummaryScreen->curPageIndex++;
+ sMonSummaryScreen->state3270 = PSS_STATE3270_3;
+ }
+ return;
+ }
+ else if (sub_81347A4(0) == TRUE)
+ {
+ if (FuncIsActiveTask(sub_8134BAC))
+ {
+ sMonSummaryScreen->unk3300[0] = 0;
+ return;
+ }
+ else if (sMonSummaryScreen->curPageIndex > PSS_PAGE_INFO)
+ {
+ PlaySE(SE_SELECT);
+ HideBg(0);
+ sMonSummaryScreen->unk3224 = 0;
+ sub_8138414(sMonSummaryScreen->curPageIndex);
+ sMonSummaryScreen->curPageIndex--;
+ sMonSummaryScreen->state3270 = PSS_STATE3270_3;
+ }
+ return;
+ }
+ }
+
+ if ((!FuncIsActiveTask(sub_8134BAC)) || FuncIsActiveTask(sub_813B3F0))
+ {
+ if (JOY_NEW(DPAD_UP))
+ {
+ sub_813B120(taskId, -1);
+ return;
+ }
+ else if (JOY_NEW(DPAD_DOWN))
+ {
+ sub_813B120(taskId, 1);
+ return;
+ }
+ else if (JOY_NEW(A_BUTTON))
+ {
+ if (sMonSummaryScreen->curPageIndex == PSS_PAGE_INFO)
+ {
+ PlaySE(SE_SELECT);
+ sMonSummaryScreen->state3270 = PSS_STATE3270_4;
+ }
+ else if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES)
+ {
+ PlaySE(SE_SELECT);
+ sMonSummaryScreen->unk3224 = 1;
+ sub_8138414(sMonSummaryScreen->curPageIndex);
+ sMonSummaryScreen->curPageIndex++;
+ sMonSummaryScreen->state3270 = PSS_STATE3270_3;
+ }
+ return;
+ }
+ else if (JOY_NEW(B_BUTTON))
+ {
+ sMonSummaryScreen->state3270 = PSS_STATE3270_4;
+ }
+ }
+ break;
+ case PSS_STATE3270_3:
+ if (sMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO)
+ {
+ CreateTask(sub_8134BAC, 0);
+ sMonSummaryScreen->state3270 = PSS_STATE3270_2;
+ }
+ else
+ {
+ gTasks[sMonSummaryScreen->unk3018].func = sub_8134E84;
+ sMonSummaryScreen->state3270 = PSS_STATE3270_2;
+ }
+ break;
+ case PSS_STATE3270_4:
+ BeginNormalPaletteFade(0xffffffff, 0, 0, 16, 0);
+ sMonSummaryScreen->state3270 = PSS_STATE3270_5;
+ break;
+ case PSS_STATE3270_5:
+ if (Overworld_LinkRecvQueueLengthMoreThan2() == TRUE)
+ return;
+ else if (sub_800B270() == TRUE)
+ return;
+
+ sMonSummaryScreen->state3270 = PSS_STATE3270_6;
+ break;
+ default:
+ if (!gPaletteFade.active)
+ sub_8137E64(taskId);
+
+ break;
+ }
+}
+
+static void sub_8134BAC(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ switch (data[0])
+ {
+ case 0:
+ sub_8135638();
+ sub_81356EC();
+ sMonSummaryScreen->lockMovesFlag = TRUE;
+ sMonSummaryScreen->unk301C = TRUE;
+ sub_813B750(sMonSummaryScreen->curPageIndex);
+ sub_8138280(sMonSummaryScreen->curPageIndex);
+ break;
+ case 1:
+ if (sMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO)
+ {
+ if (!(sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES && sMonSummaryScreen->unk3224 == 0))
+ {
+ FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20);
+ CopyBgTilemapBufferToVram(0);
+ }
+ }
+ FillBgTilemapBufferRect_Palette0(1, 0, 0, 0, 30, 2);
+ FillBgTilemapBufferRect_Palette0(1, 0, 0, 2, 15, 2);
+ FillBgTilemapBufferRect_Palette0(2, 0, 0, 0, 30, 2);
+ FillBgTilemapBufferRect_Palette0(2, 0, 0, 2, 15, 2);
+ break;
+ case 2:
+ sub_8135AA4();
+ sub_8135B90();
+ sub_8138538();
+ sub_8137D28(sMonSummaryScreen->curPageIndex);
+ break;
+ case 3:
+ CopyWindowToVram(sMonSummaryScreen->unk3000[0], 2);
+ CopyWindowToVram(sMonSummaryScreen->unk3000[1], 2);
+ CopyWindowToVram(sMonSummaryScreen->unk3000[2], 2);
+ break;
+ case 4:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ CopyBgTilemapBufferToVram(3);
+ CopyBgTilemapBufferToVram(2);
+ CopyBgTilemapBufferToVram(1);
+ }
+ else
+ return;
+
+ break;
+ case 5:
+ sub_8135514();
+ sMonSummaryScreen->unk3244 = TRUE;
+ break;
+ case 6:
+ if (!sub_81357A0(sMonSummaryScreen->unk3224))
+ return;
+
+ break;
+ case 7:
+ sub_8136F4C();
+ if (sMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO)
+ sub_81374E8();
+
+ sub_8137BD0();
+ sub_8138A38();
+ break;
+ case 8:
+ CopyWindowToVram(sMonSummaryScreen->unk3000[3], 2);
+ CopyWindowToVram(sMonSummaryScreen->unk3000[4], 2);
+ CopyWindowToVram(sMonSummaryScreen->unk3000[5], 2);
+ CopyWindowToVram(sMonSummaryScreen->unk3000[6], 2);
+ break;
+ case 9:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ CopyBgTilemapBufferToVram(0);
+ ShowBg(0);
+ }
+ else
+ return;
+
+ break;
+ default:
+ sub_8138440();
+
+ if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO)
+ gTasks[sMonSummaryScreen->unk3018].func = sub_8138CD8;
+
+ DestroyTask(taskId);
+ data[0] = 0;
+ sMonSummaryScreen->lockMovesFlag = FALSE;
+ sMonSummaryScreen->unk301C = FALSE;
+ return;
+ }
+
+ data[0]++;
+}
+
+static void sub_8134E84(u8 taskId)
+{
+ switch (sMonSummaryScreen->unk3284)
+ {
+ case 0:
+ sMonSummaryScreen->lockMovesFlag = TRUE;
+ sMonSummaryScreen->unk301C = TRUE;
+ sub_8138280(sMonSummaryScreen->curPageIndex);
+ break;
+ case 1:
+ if (sMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO)
+ {
+ if (!(sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES && sMonSummaryScreen->unk3224 == 0))
+ {
+ FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20);
+ CopyBgTilemapBufferToVram(0);
+ }
+ }
+
+ FillBgTilemapBufferRect_Palette0(1, 0, 0, 0, 30, 2);
+ FillBgTilemapBufferRect_Palette0(1, 0, 0, 2, 15, 2);
+ FillBgTilemapBufferRect_Palette0(2, 0, 0, 0, 30, 2);
+ FillBgTilemapBufferRect_Palette0(2, 0, 0, 2, 15, 2);
+ break;
+ case 2:
+ sub_8135638();
+ sub_813B750(sMonSummaryScreen->curPageIndex);
+ sub_8135B90();
+ sub_8138538();
+ sub_8135AA4();
+ break;
+ case 3:
+ sub_8136DA4(gUnknown_8419C39);
+ if (!(gMain.inBattle || gReceivedRemoteLinkPlayers))
+ sub_8136DF0(gUnknown_8419C92);
+ else
+ sub_8136DF0(gUnknown_8419CA2);
+
+ break;
+ case 4:
+ CopyWindowToVram(sMonSummaryScreen->unk3000[0], 2);
+ CopyWindowToVram(sMonSummaryScreen->unk3000[1], 2);
+ break;
+ case 5:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ CopyBgTilemapBufferToVram(2);
+ CopyBgTilemapBufferToVram(1);
+ CopyBgTilemapBufferToVram(3);
+ }
+ else
+ return;
+
+ break;
+ case 6:
+ sub_8136F4C();
+ sub_8137BD0();
+ CopyWindowToVram(sMonSummaryScreen->unk3000[3], 2);
+ CopyWindowToVram(sMonSummaryScreen->unk3000[5], 2);
+ break;
+ case 7:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ CopyBgTilemapBufferToVram(0);
+ sub_8135514();
+ sMonSummaryScreen->unk3244 = TRUE;
+ }
+ else
+ return;
+
+ break;
+ case 8:
+ if (!sub_81357A0(sMonSummaryScreen->unk3224))
+ return;
+
+ sub_81374E8();
+ CopyWindowToVram(sMonSummaryScreen->unk3000[4], 2);
+ break;
+ case 9:
+ sub_8138A38();
+ sub_8136E50(gUnknown_8419C45);
+ break;
+ case 10:
+ sub_81356EC();
+ CopyWindowToVram(sMonSummaryScreen->unk3000[6], 2);
+ CopyWindowToVram(sMonSummaryScreen->unk3000[2], 2);
+ break;
+ case 11:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ CopyBgTilemapBufferToVram(0);
+ CopyBgTilemapBufferToVram(2);
+ CopyBgTilemapBufferToVram(1);
+ }
+ else
+ return;
+
+ break;
+ default:
+ sub_8138440();
+ gTasks[sMonSummaryScreen->unk3018].func = sub_8138CD8;
+ sMonSummaryScreen->unk3284 = 0;
+ sMonSummaryScreen->lockMovesFlag = FALSE;
+ sMonSummaryScreen->unk301C = FALSE;
+ return;
+ }
+
+ sMonSummaryScreen->unk3284++;
+ return;
+}
+
+static void sub_81351A0(u8 taskId)
+{
+ switch (sMonSummaryScreen->unk3284)
+ {
+ case 0:
+ sMonSummaryScreen->lockMovesFlag = TRUE;
+ sMonSummaryScreen->unk301C = TRUE;
+ sub_8138280(sMonSummaryScreen->curPageIndex);
+ break;
+ case 1:
+ if (sMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) {
+ if (!(sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES && sMonSummaryScreen->unk3224 == 0))
+ {
+ FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20);
+ CopyBgTilemapBufferToVram(0);
+ }
+ }
+
+ FillBgTilemapBufferRect_Palette0(1, 0, 0, 0, 30, 2);
+ FillBgTilemapBufferRect_Palette0(1, 0, 0, 2, 15, 2);
+ FillBgTilemapBufferRect_Palette0(2, 0, 0, 0, 30, 2);
+ FillBgTilemapBufferRect_Palette0(2, 0, 0, 2, 15, 2);
+ break;
+ case 2:
+ sub_8135AA4();
+ break;
+ case 3:
+ sub_8136F4C();
+ sub_81374E8();
+ sub_8137BD0();
+ CopyWindowToVram(sMonSummaryScreen->unk3000[3], 2);
+ CopyWindowToVram(sMonSummaryScreen->unk3000[4], 2);
+ CopyWindowToVram(sMonSummaryScreen->unk3000[5], 2);
+ CopyBgTilemapBufferToVram(0);
+ break;
+ case 4:
+ sub_8136DA4(gUnknown_8419C39);
+ sub_8136DF0(gUnknown_8419C82);
+ break;
+ case 5:
+ CopyWindowToVram(sMonSummaryScreen->unk3000[0], 2);
+ CopyWindowToVram(sMonSummaryScreen->unk3000[1], 2);
+ CopyBgTilemapBufferToVram(2);
+ CopyBgTilemapBufferToVram(1);
+ break;
+ case 6:
+ sub_8135514();
+ sMonSummaryScreen->unk3244 = TRUE;
+ sub_8135638();
+ sub_813B750(sMonSummaryScreen->curPageIndex);
+ sub_8138A38();
+ break;
+ case 7:
+ break;
+ case 8:
+ if (sub_81357A0(sMonSummaryScreen->unk3224) == 0)
+ return;
+
+ sub_8136E50(gUnknown_8419C45);
+ break;
+ case 9:
+ CopyWindowToVram(sMonSummaryScreen->unk3000[6], 2);
+ CopyWindowToVram(sMonSummaryScreen->unk3000[2], 2);
+ CopyBgTilemapBufferToVram(0);
+ CopyBgTilemapBufferToVram(2);
+ CopyBgTilemapBufferToVram(1);
+ break;
+ case 10:
+ sub_8135B90();
+ sub_8138538();
+ CopyBgTilemapBufferToVram(3);
+ sub_81356EC();
+ break;
+ default:
+ sub_8138440();
+ gTasks[sMonSummaryScreen->unk3018].func = sub_8134840;
+ sMonSummaryScreen->unk3284 = 0;
+ sMonSummaryScreen->lockMovesFlag = FALSE;
+ sMonSummaryScreen->unk301C = FALSE;
+ return;
+ }
+
+ sMonSummaryScreen->unk3284++;
+ return;
+}
+
+static void sub_813546C(void)
+{
+ u8 i;
+ for (i = 0; i < 11; i++)
+ {
+ sUnknown_203B160->unk2C[i] = (8 * i) + 396;
+ sUnknown_203B160->sprites[i]->pos1.x = sUnknown_203B160->unk2C[i];
+ if (i >= 9)
+ continue;
+
+ sUnknown_203B15C->unk28[i] = (8 * i) + 412;
+ sUnknown_203B15C->sprites[i]->pos1.x = sUnknown_203B15C->unk28[i];
+ }
+}
+
+static void sub_81354C4(void)
+{
+ u8 i;
+ for (i = 0; i < 11; i++)
+ {
+ sUnknown_203B160->unk2C[i] = (8 * i) + 156;
+ sUnknown_203B160->sprites[i]->pos1.x = sUnknown_203B160->unk2C[i];
+ if (i >= 9)
+ continue;
+ sUnknown_203B15C->unk28[i] = (8 * i) + 172;
+ sUnknown_203B15C->sprites[i]->pos1.x = sUnknown_203B15C->unk28[i];
+ }
+}
+
+static void sub_8135514(void)
+{
+ s8 pageDelta = 1;
+
+ if (sMonSummaryScreen->unk3224 == 1)
+ pageDelta = -1;
+
+ if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO)
+ {
+ sMonSummaryScreen->unk324C = 240;
+ return;
+ }
+
+ if ((sMonSummaryScreen->curPageIndex + pageDelta) == PSS_PAGE_MOVES_INFO)
+ {
+ sub_81358DC(0, 0);
+ sMonSummaryScreen->unk324C = 0;
+ SetGpuReg(REG_OFFSET_BG1HOFS, 0);
+ SetGpuReg(REG_OFFSET_BG2HOFS, 0);
+ return;
+ }
+
+ if (sMonSummaryScreen->unk3224 == 1)
+ {
+ sMonSummaryScreen->unk324C = 0;
+ SetGpuReg(REG_OFFSET_BG0HOFS, 0);
+ SetGpuReg(REG_OFFSET_BG1HOFS, 0);
+ SetGpuReg(REG_OFFSET_BG2HOFS, 0);
+ sub_81358DC(1, 1);
+ }
+ else
+ {
+ u32 bg1Priority = GetGpuReg(REG_OFFSET_BG1CNT) & 3;
+ u32 bg2Priority = GetGpuReg(REG_OFFSET_BG2CNT) & 3;
+ sMonSummaryScreen->unk324C = 240;
+
+ if (bg1Priority > bg2Priority)
+ SetGpuReg(REG_OFFSET_BG1HOFS, 240);
+ else
+ SetGpuReg(REG_OFFSET_BG2HOFS, 240);
+
+ SetGpuReg(REG_OFFSET_BG0HOFS, 240);
+ sub_81358DC(1, 0);
+ }
+
+ if (sMonSummaryScreen->curPageIndex == PSS_PAGE_SKILLS)
+ {
+ if (sMonSummaryScreen->unk3224 == 1)
+ sub_81354C4();
+ else
+ sub_813546C();
+ }
+ else if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES)
+ sub_81354C4();
+
+}
+
+static void sub_8135638(void)
+{
+ u8 newPage;
+
+ if (sMonSummaryScreen->unk3224 == 1)
+ newPage = sMonSummaryScreen->curPageIndex - 1;
+ else
+ newPage = sMonSummaryScreen->curPageIndex + 1;
+
+ switch (newPage)
+ {
+ case PSS_PAGE_INFO:
+ break;
+ case PSS_PAGE_SKILLS:
+ sub_813A838(1);
+ sub_813AB70(1);
+ break;
+ case PSS_PAGE_MOVES:
+ if (sMonSummaryScreen->unk3224 == 1)
+ {
+ sub_8139C44(1);
+ sub_813B084(1);
+ sub_8139D54(1);
+ sub_813A3B8(1);
+ sub_813ACF8(1);
+ sub_813AEB0(1);
+ }
+
+ break;
+ case PSS_PAGE_MOVES_INFO:
+ sub_813A0E8(1);
+ sub_8139EE4(1);
+ sub_813A3B8(1);
+ sub_813ACF8(1);
+ sub_813AEB0(1);
+ break;
+ }
+}
+
+static void sub_81356EC(void)
+{
+ u8 newPage;
+
+ if (sMonSummaryScreen->unk3224 == 1)
+ newPage = sMonSummaryScreen->curPageIndex - 1;
+ else
+ newPage = sMonSummaryScreen->curPageIndex + 1;
+
+ switch (newPage)
+ {
+ case PSS_PAGE_INFO:
+ sub_813A838(0);
+ sub_813AB70(0);
+ break;
+ case PSS_PAGE_SKILLS:
+ break;
+ case PSS_PAGE_MOVES:
+ if (sMonSummaryScreen->unk3224 == 0)
+ {
+ sub_813A838(0);
+ sub_813AB70(0);
+ }
+ else
+ {
+ sub_813A0E8(0);
+ sub_813ACF8(0);
+ sub_8139EE4(0);
+ sub_813AEB0(0);
+ }
+
+ break;
+ case PSS_PAGE_MOVES_INFO:
+ sub_8139C44(0);
+ sub_813B084(0);
+ sub_813A3B8(0);
+ sub_8139D54(0);
+ sub_813ACF8(0);
+ sub_813AEB0(0);
+ break;
+ }
+}
+
+static u8 sub_81357A0(u8 a0)
+{
+ s8 pageDelta = 1;
+
+ if (sMonSummaryScreen->unk3224 == 1)
+ pageDelta = -1;
+
+ if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO)
+ if (sMonSummaryScreen->unk324C <= 0)
+ {
+ sMonSummaryScreen->unk324C = 0;
+ sMonSummaryScreen->unk3238 ^= 1;
+ sub_81358DC(0, 0);
+ sMonSummaryScreen->unk3244 = FALSE;
+ return TRUE;
+ }
+
+ if ((sMonSummaryScreen->curPageIndex + pageDelta) == PSS_PAGE_MOVES_INFO)
+ if (sMonSummaryScreen->unk324C >= 240)
+ {
+ sMonSummaryScreen->unk324C = 240;
+ sMonSummaryScreen->unk3238 ^= 1;
+ sMonSummaryScreen->unk3244 = FALSE;
+ return TRUE;
+ }
+
+ if (sMonSummaryScreen->unk3224 == 1)
+ {
+ if (sMonSummaryScreen->unk324C >= 240)
+ {
+ sMonSummaryScreen->unk324C = 240;
+ sMonSummaryScreen->unk3238 ^= 1;
+ sub_81358DC(0, 0);
+ sMonSummaryScreen->unk3244 = FALSE;
+ return TRUE;
+ }
+ }
+ else if (sMonSummaryScreen->unk324C <= 0)
+ {
+ sMonSummaryScreen->unk3238 ^= 1;
+ sMonSummaryScreen->unk324C = 0;
+ sMonSummaryScreen->unk3244 = FALSE;
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static void sub_81358DC(u8 a0, u8 a1)
+{
+ u8 i;
+ u32 bg0Priority;
+ u32 bg1Priority;
+ u32 bg2Priority;
+
+ bg0Priority = GetGpuReg(REG_OFFSET_BG0CNT) & 3;
+ bg1Priority = GetGpuReg(REG_OFFSET_BG1CNT) & 3;
+ bg2Priority = GetGpuReg(REG_OFFSET_BG2CNT) & 3;
+
+ if (sMonSummaryScreen->unk3224 == 1)
+ {
+ if (a0 == 0)
+ {
+ bg0Priority = 0;
+
+ if (a1 == 0)
+ {
+ if (bg1Priority > bg2Priority)
+ bg1Priority = 1, bg2Priority = 2;
+ else
+ bg1Priority = 2, bg2Priority = 1;
+ }
+ else
+ {
+ if (bg1Priority > bg2Priority)
+ bg1Priority = 2, bg2Priority = 1;
+ else
+ bg1Priority = 1, bg2Priority = 2;
+ }
+ }
+ if (a0 == 1)
+ {
+ bg0Priority = 1;
+
+ if (a1 == 0)
+ {
+ if (bg1Priority > bg2Priority)
+ bg1Priority = 0, bg2Priority = 2;
+ else
+ bg1Priority = 2, bg2Priority = 0;
+ }
+ else
+ {
+ if (bg1Priority > bg2Priority)
+ bg1Priority = 2, bg2Priority = 0;
+ else
+ bg1Priority = 0, bg2Priority = 2;
+ }
+ }
+ }
+
+ if (sMonSummaryScreen->unk3224 == 0)
+ {
+ bg0Priority = 0;
+ if (bg1Priority > bg2Priority)
+ bg1Priority = 1, bg2Priority = 2;
+ else
+ bg1Priority = 2, bg2Priority = 1;
+ }
+
+ for (i = 0; i < 11; i++)
+ {
+ if (sMonSummaryScreen->curPageIndex == PSS_PAGE_SKILLS && sMonSummaryScreen->unk3224 == 1)
+ sUnknown_203B160->sprites[i]->oam.priority = bg0Priority;
+ else
+ sUnknown_203B160->sprites[i]->oam.priority = bg1Priority;
+
+ if (i >= 9)
+ continue;
+
+ if (sMonSummaryScreen->curPageIndex == PSS_PAGE_SKILLS && sMonSummaryScreen->unk3224 == 1)
+ sUnknown_203B15C->sprites[i]->oam.priority = bg0Priority;
+ else
+ sUnknown_203B15C->sprites[i]->oam.priority = bg1Priority;
+ }
+
+ SetGpuReg(REG_OFFSET_BG0CNT, (GetGpuReg(REG_OFFSET_BG0CNT) & 0xfffc) | bg0Priority);
+ SetGpuReg(REG_OFFSET_BG1CNT, (GetGpuReg(REG_OFFSET_BG1CNT) & 0xfffc) | bg1Priority);
+ SetGpuReg(REG_OFFSET_BG2CNT, (GetGpuReg(REG_OFFSET_BG2CNT) & 0xfffc) | bg2Priority);
+}
+
+static void sub_8135AA4(void)
+{
+ u8 newPage;
+
+ if (sMonSummaryScreen->unk3224 == 1)
+ newPage = sMonSummaryScreen->curPageIndex - 1;
+ else
+ newPage = sMonSummaryScreen->curPageIndex + 1;
+
+ switch (newPage)
+ {
+ case PSS_PAGE_INFO:
+ CopyToBgTilemapBuffer(sMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0);
+ break;
+ case PSS_PAGE_SKILLS:
+ if (sMonSummaryScreen->unk3224 == 1)
+ CopyToBgTilemapBuffer(sMonSummaryScreen->unk323C, gUnknown_8E9B950, 0, 0);
+ else
+ CopyToBgTilemapBuffer(sMonSummaryScreen->unk323C, gUnknown_8E9B598, 0, 0);
+
+ break;
+ case PSS_PAGE_MOVES:
+ if (sMonSummaryScreen->unk3224 == 1)
+ CopyToBgTilemapBuffer(sMonSummaryScreen->unk3240, gUnknown_8E9BA9C, 0, 0);
+ else
+ CopyToBgTilemapBuffer(sMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0);
+
+ break;
+ case PSS_PAGE_MOVES_INFO:
+ CopyToBgTilemapBuffer(sMonSummaryScreen->unk323C, gUnknown_8E9B950, 0, 0);
+ break;
+ }
+}
+
+static void sub_8135B90(void)
+{
+ u8 newPage;
+
+ if (sMonSummaryScreen->unk3224 == 1)
+ newPage = sMonSummaryScreen->curPageIndex - 1;
+ else
+ newPage = sMonSummaryScreen->curPageIndex + 1;
+
+ switch (newPage)
+ {
+ case PSS_PAGE_INFO:
+ CopyToBgTilemapBuffer(sMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0);
+ break;
+ case PSS_PAGE_SKILLS:
+ break;
+ case PSS_PAGE_MOVES:
+ if (sMonSummaryScreen->unk3224 == 1)
+ CopyToBgTilemapBuffer(3, sUnknown_8463C80, 0, 0);
+ else
+ CopyToBgTilemapBuffer(3, sUnknown_8463B88, 0, 0);
+
+ break;
+ case PSS_PAGE_MOVES_INFO:
+ CopyToBgTilemapBuffer(3, sUnknown_8463B88, 0, 0);
+ break;
+ }
+}
+
+static void sub_8135C34(void)
+{
+ switch (sMonSummaryScreen->unk3274)
+ {
+ case 0:
+ sub_81381AC();
+ break;
+ case 1:
+ sub_8136BC4();
+ break;
+ case 2:
+ sub_8136BAC();
+ break;
+ case 3:
+ if (!sub_8135F20())
+ return;
+ break;
+ case 4:
+ if (!sub_8136AEC())
+ return;
+ break;
+ case 5:
+ sub_81381D0();
+ break;
+ case 6:
+ if (!sub_8136040())
+ return;
+ break;
+ case 7:
+ sub_8136F4C();
+ break;
+ case 8:
+ sub_81374E8();
+ break;
+ case 9:
+ sub_8137BD0();
+ sub_8138A38();
+ break;
+ case 10:
+ if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE || sMonSummaryScreen->mode == PSS_MODE_FORGET_MOVE)
+ CopyToBgTilemapBuffer(3, sUnknown_8463C80, 0, 0);
+ else
+ CopyToBgTilemapBuffer(3, sUnknown_8463B88, 0, 0);
+
+ sub_8138538();
+ break;
+ case 11:
+ if (sMonSummaryScreen->isEgg)
+ CopyToBgTilemapBuffer(sMonSummaryScreen->unk323C, gUnknown_8E9BBCC, 0, 0);
+ else
+ {
+ if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE || sMonSummaryScreen->mode == PSS_MODE_FORGET_MOVE)
+ {
+ CopyToBgTilemapBuffer(sMonSummaryScreen->unk323C, gUnknown_8E9B950, 0, 0);
+ CopyToBgTilemapBuffer(sMonSummaryScreen->unk3240, gUnknown_8E9BA9C, 0, 0);
+ }
+ else
+ {
+ CopyToBgTilemapBuffer(sMonSummaryScreen->unk323C, gUnknown_8E9B598, 0, 0);
+ CopyToBgTilemapBuffer(sMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0);
+ }
+ }
+
+ break;
+ case 12:
+ BlendPalettes(0xffffffff, 16, 0);
+ sub_8137D28(sMonSummaryScreen->curPageIndex);
+ sub_8137E28();
+ break;
+ case 13:
+ BeginNormalPaletteFade(0xffffffff, 0, 16, 0, 0);
+ CopyWindowToVram(sMonSummaryScreen->unk3000[0], 2);
+ CopyWindowToVram(sMonSummaryScreen->unk3000[1], 2);
+ CopyWindowToVram(sMonSummaryScreen->unk3000[2], 2);
+ CopyWindowToVram(sMonSummaryScreen->unk3000[6], 2);
+ CopyWindowToVram(sMonSummaryScreen->unk3000[3], 2);
+ CopyWindowToVram(sMonSummaryScreen->unk3000[4], 2);
+ CopyWindowToVram(sMonSummaryScreen->unk3000[5], 2);
+ break;
+ case 14:
+ CopyBgTilemapBufferToVram(0);
+ CopyBgTilemapBufferToVram(2);
+ CopyBgTilemapBufferToVram(1);
+ CopyBgTilemapBufferToVram(3);
+ break;
+ case 15:
+ if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE || sMonSummaryScreen->mode == PSS_MODE_FORGET_MOVE)
+ {
+ sub_8139EE4(0);
+ sub_813A0E8(0);
+ }
+ else
+ {
+ sub_8139C44(0);
+ sub_813B084(0);
+ sub_8139D54(0);
+ sub_813A838(0);
+ sub_813AB70(0);
+ }
+
+ sub_813A3B8(0);
+ sub_813ACF8(0);
+ sub_813AEB0(0);
+ break;
+ default:
+ sub_81381C0();
+ sub_8136D54();
+ return;
+ }
+
+ sMonSummaryScreen->unk3274++;
+}
+
+static u8 sub_8135F20(void)
+{
+ switch (sMonSummaryScreen->unk3278)
+ {
+ case 0:
+ LoadPalette(gUnknown_8E9B310, 0, 0x20 * 5);
+ if (IsMonShiny(&sMonSummaryScreen->currentMon) == TRUE && !sMonSummaryScreen->isEgg)
+ {
+ LoadPalette(&gUnknown_8E9B310[16 * 6], 0, 0x20);
+ LoadPalette(&gUnknown_8E9B310[16 * 5], 0x10, 0x20);
+ }
+ else
+ {
+ LoadPalette(&gUnknown_8E9B310[16 * 0], 0, 0x20);
+ LoadPalette(&gUnknown_8E9B310[16 * 1], 0x10, 0x20);
+ }
+
+ break;
+ case 1:
+ ListMenuLoadStdPalAt(0x60, 1);
+ LoadPalette(sUnknown_84636C0, 0x70, 0x20);
+ break;
+ case 2:
+ ResetTempTileDataBuffers();
+ break;
+ case 3:
+ DecompressAndCopyTileDataToVram(2, gUnknown_8E9A460, 0, 0, 0);
+ break;
+ case 4:
+ if (FreeTempTileDataBuffersIfPossible() == TRUE)
+ return FALSE;
+ break;
+
+ case 5:
+ case 6:
+ break;
+
+ default:
+ LoadPalette(sUnknown_8463700, 0x80, 0x20);
+ return TRUE;
+ }
+
+ sMonSummaryScreen->unk3278++;
+ return FALSE;
+}
+
+static u8 sub_8136040(void)
+{
+ switch (sMonSummaryScreen->unk3280)
+ {
+ case 0:
+ sub_81360D4();
+ if (sMonSummaryScreen->isEgg)
+ {
+ sMonSummaryScreen->unk3280 = 0;
+ return TRUE;
+ }
+
+ break;
+ case 1:
+ if (sMonSummaryScreen->isEgg == 0)
+ sub_8136350();
+ break;
+ case 2:
+ if (sMonSummaryScreen->isEgg == 0)
+ sub_81367B0();
+ break;
+ default:
+ sMonSummaryScreen->unk3280 = 0;
+ return TRUE;
+ }
+
+ sMonSummaryScreen->unk3280++;
+ return FALSE;
+}
+
+static void sub_81360D4(void)
+{
+ u8 tempStr[20];
+ u16 dexNum;
+ u16 gender;
+ u16 heldItem;
+ u32 otId;
+
+ dexNum = SpeciesToPokedexNum(GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES));
+ if (dexNum == 0xffff)
+ StringCopy(sMonSummaryScreen->summary.unk3064, gUnknown_8416202);
+ else
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk3064, dexNum, STR_CONV_MODE_LEADING_ZEROS, 3);
+
+ sUnknown_203B144->unk00 = 0;
+
+ if (!sMonSummaryScreen->isEgg)
+ {
+ dexNum = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES);
+ GetSpeciesName(sMonSummaryScreen->summary.unk3028, dexNum);
+ }
+ else
+ {
+ GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_NICKNAME, sMonSummaryScreen->summary.unk3028);
+ return;
+ }
+
+ sMonSummaryScreen->unk3220[0] = gBaseStats[dexNum].type1;
+ sMonSummaryScreen->unk3220[1] = gBaseStats[dexNum].type2;
+
+ GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_NICKNAME, tempStr);
+ StringCopyN_Multibyte(sMonSummaryScreen->summary.unk3034, tempStr, POKEMON_NAME_LENGTH);
+ StringGetEnd10(sMonSummaryScreen->summary.unk3034);
+
+ gender = GetMonGender(&sMonSummaryScreen->currentMon);
+ dexNum = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES2);
+
+ if (gender == MON_FEMALE)
+ StringCopy(sMonSummaryScreen->summary.unk3084, gText_FemaleSymbol);
+ else if (gender == MON_MALE)
+ StringCopy(sMonSummaryScreen->summary.unk3084, gText_MaleSymbol);
+ else
+ StringCopy(sMonSummaryScreen->summary.unk3084, gString_Dummy);
+
+ if (dexNum == SPECIES_NIDORAN_M || dexNum == SPECIES_NIDORAN_F)
+ if (StringCompare(sMonSummaryScreen->summary.unk3034, gSpeciesNames[dexNum]) == 0)
+ StringCopy(sMonSummaryScreen->summary.unk3084, gString_Dummy);
+
+ GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_OT_NAME, tempStr);
+ StringCopyN_Multibyte(sMonSummaryScreen->summary.unk3040, tempStr, OT_NAME_LENGTH);
+
+ ConvertInternationalString(sMonSummaryScreen->summary.unk3040, GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_LANGUAGE));
+
+ otId = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_OT_ID) & 0xffff;
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk306C, otId, STR_CONV_MODE_LEADING_ZEROS, 5);
+
+ ConvertIntToDecimalStringN(tempStr, GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_LEVEL), STR_CONV_MODE_LEFT_ALIGN, 3);
+ StringCopy(sMonSummaryScreen->summary.unk3088, gText_Lv);
+ StringAppendN(sMonSummaryScreen->summary.unk3088, tempStr, 4);
+
+ heldItem = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_HELD_ITEM);
+
+ if (heldItem == ITEM_NONE)
+ StringCopy(sMonSummaryScreen->summary.unk3074, gUnknown_84161EF);
+ else
+ CopyItemName(heldItem, sMonSummaryScreen->summary.unk3074);
+}
+
+#define MACRO_8136350_0(x) (63 - StringLength((x)) * 6)
+#define MACRO_8136350_1(x) (27 - StringLength((x)) * 6)
+
+static void sub_8136350(void)
+{
+ u8 tempStr[20];
+ u8 level;
+ u16 type;
+ u16 species;
+ u16 hp;
+ u16 statValue;
+ u32 exp;
+ u32 expToNextLevel;
+
+ hp = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_HP);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk3090, hp, STR_CONV_MODE_LEFT_ALIGN, 3);
+ StringAppend(sMonSummaryScreen->summary.unk3090, gText_Slash);
+
+ hp = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MAX_HP);
+ ConvertIntToDecimalStringN(tempStr, hp, STR_CONV_MODE_LEFT_ALIGN, 3);
+ StringAppend(sMonSummaryScreen->summary.unk3090, tempStr);
+
+ sUnknown_203B144->unk02 = MACRO_8136350_0(sMonSummaryScreen->summary.unk3090);
+
+ if (sMonSummaryScreen->savedCallback == CB2_ReturnToTradeMenuFromSummary && sMonSummaryScreen->isEnemyParty == TRUE)
+ {
+ statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_ATK2);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk309C[PSS_STAT_ATK], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
+ sUnknown_203B144->unk04 = MACRO_8136350_1(sMonSummaryScreen->summary.unk309C[PSS_STAT_ATK]);
+
+ statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_DEF2);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk309C[PSS_STAT_DEF], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
+ sUnknown_203B144->unk06 = MACRO_8136350_1(sMonSummaryScreen->summary.unk309C[PSS_STAT_DEF]);
+
+ statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPATK2);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk309C[PSS_STAT_SPA], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
+ sUnknown_203B144->unk08 = MACRO_8136350_1(sMonSummaryScreen->summary.unk309C[PSS_STAT_SPA]);
+
+ statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPDEF2);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk309C[PSS_STAT_SPD], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
+ sUnknown_203B144->unk0A = MACRO_8136350_1(sMonSummaryScreen->summary.unk309C[PSS_STAT_SPD]);
+
+ statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPEED2);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk309C[PSS_STAT_SPE], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
+ sUnknown_203B144->unk0C = MACRO_8136350_1(sMonSummaryScreen->summary.unk309C[PSS_STAT_SPE]);
+ }
+ else
+ {
+ statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_ATK);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk309C[PSS_STAT_ATK], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
+ sUnknown_203B144->unk04 = MACRO_8136350_1(sMonSummaryScreen->summary.unk309C[PSS_STAT_ATK]);
+
+ statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_DEF);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk309C[PSS_STAT_DEF], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
+ sUnknown_203B144->unk06 = MACRO_8136350_1(sMonSummaryScreen->summary.unk309C[PSS_STAT_DEF]);
+
+ statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPATK);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk309C[PSS_STAT_SPA], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
+ sUnknown_203B144->unk08 = MACRO_8136350_1(sMonSummaryScreen->summary.unk309C[PSS_STAT_SPA]);
+
+ statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPDEF);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk309C[PSS_STAT_SPD], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
+ sUnknown_203B144->unk0A = MACRO_8136350_1(sMonSummaryScreen->summary.unk309C[PSS_STAT_SPD]);
+
+ statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPEED);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk309C[PSS_STAT_SPE], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
+ sUnknown_203B144->unk0C = MACRO_8136350_1(sMonSummaryScreen->summary.unk309C[PSS_STAT_SPE]);
+ }
+
+ exp = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_EXP);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk31A4, exp, STR_CONV_MODE_LEFT_ALIGN, 7);
+ sUnknown_203B144->unk0E = MACRO_8136350_0(sMonSummaryScreen->summary.unk31A4);
+
+ level = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_LEVEL);
+ expToNextLevel = 0;
+ if (level < 100)
+ {
+ species = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES);
+ expToNextLevel = gExperienceTables[gBaseStats[species].growthRate][level + 1] - exp;
+ }
+
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk31B0, expToNextLevel, STR_CONV_MODE_LEFT_ALIGN, 7);
+ sUnknown_203B144->unk10 = MACRO_8136350_0(sMonSummaryScreen->summary.unk31B0);
+
+ type = GetAbilityBySpecies(GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES), GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_ABILITY_NUM));
+ StringCopy(sMonSummaryScreen->summary.unk31BC, gAbilityNames[type]);
+ StringCopy(sMonSummaryScreen->summary.unk31CC, gAbilityDescriptionPointers[type]);
+
+ sMonSummaryScreen->unk326C = sub_8138C5C(GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_STATUS));
+ if (sMonSummaryScreen->unk326C == AILMENT_NONE)
+ if (CheckPartyPokerus(&sMonSummaryScreen->currentMon, 0))
+ sMonSummaryScreen->unk326C = AILMENT_PKRS;
+}
+
+static void sub_81367B0(void)
+{
+ u8 i;
+
+ for (i = 0; i < 4; i++)
+ sub_81367E8(i);
+
+ if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE)
+ sub_81367E8(4);
+}
+
+#define MACRO_81367E8_0(a, b) ((6 * (a)) - StringLength((b)) * 6)
+
+static void sub_81367E8(u8 i)
+{
+ if (i < 4)
+ sMonSummaryScreen->unk325A[i] = sub_8138BEC(&sMonSummaryScreen->currentMon, i);
+
+ if (sMonSummaryScreen->unk325A[i] == 0)
+ {
+ StringCopy(sMonSummaryScreen->summary.unk3128[i], gUnknown_841620E);
+ StringCopy(sMonSummaryScreen->summary.unk30B8[i], gUnknown_8416210);
+ StringCopy(sMonSummaryScreen->summary.unk316C[i], gText_ThreeHyphens);
+ StringCopy(sMonSummaryScreen->summary.unk3188[i], gText_ThreeHyphens);
+ sUnknown_203B144->unk12[i] = 0xff;
+ sUnknown_203B144->unk1C[i] = 0xff;
+ return;
+ }
+
+ sMonSummaryScreen->unk3264++;
+ sMonSummaryScreen->unk3250[i] = gBattleMoves[sMonSummaryScreen->unk325A[i]].type;
+ StringCopy(sMonSummaryScreen->summary.unk3128[i], gMoveNames[sMonSummaryScreen->unk325A[i]]);
+
+ if (i >= 4 && sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE)
+ {
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk30B8[i],
+ gBattleMoves[sMonSummaryScreen->unk325A[i]].pp, STR_CONV_MODE_LEFT_ALIGN, 3);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk30F0[i],
+ gBattleMoves[sMonSummaryScreen->unk325A[i]].pp, STR_CONV_MODE_LEFT_ALIGN, 3);
+ }
+ else
+ {
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk30B8[i],
+ sub_8138C24(&sMonSummaryScreen->currentMon, i), STR_CONV_MODE_LEFT_ALIGN, 3);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk30F0[i],
+ CalculatePPWithBonus(sMonSummaryScreen->unk325A[i], GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_PP_BONUSES), i),
+ STR_CONV_MODE_LEFT_ALIGN, 3);
+ }
+
+ sUnknown_203B144->unk12[i] = MACRO_81367E8_0(2, sMonSummaryScreen->summary.unk30B8[i]);
+ sUnknown_203B144->unk1C[i] = MACRO_81367E8_0(2, sMonSummaryScreen->summary.unk30F0[i]);
+
+ if (gBattleMoves[sMonSummaryScreen->unk325A[i]].power <= 1)
+ StringCopy(sMonSummaryScreen->summary.unk316C[i], gText_ThreeHyphens);
+ else
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk316C[i], gBattleMoves[sMonSummaryScreen->unk325A[i]].power, STR_CONV_MODE_RIGHT_ALIGN, 3);
+
+ if (gBattleMoves[sMonSummaryScreen->unk325A[i]].accuracy == 0)
+ StringCopy(sMonSummaryScreen->summary.unk3188[i], gText_ThreeHyphens);
+ else
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk3188[i], gBattleMoves[sMonSummaryScreen->unk325A[i]].accuracy, STR_CONV_MODE_RIGHT_ALIGN, 3);
+}
+
+static u8 sub_8136AEC(void)
+{
+ switch (sMonSummaryScreen->unk327C)
+ {
+ case 0:
+ sub_813ADA8(TAG_PSS_UNK_A0, TAG_PSS_UNK_A0);
+ break;
+ case 1:
+ sub_813ABAC(TAG_PSS_UNK_96, TAG_PSS_UNK_96);
+ break;
+ case 2:
+ sub_813AFFC();
+ break;
+ case 3:
+ sub_8139F64(TAG_PSS_UNK_64, TAG_PSS_UNK_64);
+ break;
+ case 4:
+ sub_813A254(TAG_PSS_UNK_6E, TAG_PSS_UNK_6E);
+ break;
+ case 5:
+ sub_813A45C(TAG_PSS_UNK_78, TAG_PSS_UNK_78);
+ break;
+ case 6:
+ sub_813A874(TAG_PSS_UNK_82, TAG_PSS_UNK_82);
+ break;
+ case 7:
+ sub_8139CB0();
+ break;
+ case 8:
+ sub_8139DBC();
+ break;
+ default:
+ sub_813995C();
+ return TRUE;
+ }
+
+ sMonSummaryScreen->unk327C++;
+ return FALSE;
+}
+
+static void sub_8136BAC(void)
+{
+ ResetSpriteData();
+ ResetPaletteFade();
+ FreeAllSpritePalettes();
+ ScanlineEffect_Stop();
+}
+
+static void sub_8136BC4(void)
+{
+ DmaClearLarge16(3, (void *)VRAM, VRAM_SIZE, 0x1000);
+ DmaClear32(3, (void *)OAM, OAM_SIZE);
+ DmaClear16(3, (void *)PLTT, PLTT_SIZE);
+
+ SetGpuReg(REG_OFFSET_DISPCNT, 0);
+
+ ResetBgsAndClearDma3BusyFlags(0);
+ InitBgsFromTemplates(0, sUnknown_8463EFC, ARRAY_COUNT(sUnknown_8463EFC));
+
+ ChangeBgX(0, 0, 0);
+ ChangeBgY(0, 0, 0);
+ ChangeBgX(1, 0, 0);
+ ChangeBgY(1, 0, 0);
+ ChangeBgX(2, 0, 0);
+ ChangeBgY(2, 0, 0);
+ ChangeBgX(3, 0, 0);
+ ChangeBgY(3, 0, 0);
+
+ DeactivateAllTextPrinters();
+
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON | DISPCNT_WIN1_ON);
+
+ sub_813B750(sMonSummaryScreen->curPageIndex);
+
+ SetGpuReg(REG_OFFSET_WININ, (WININ_WIN0_OBJ | WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3) << 8);
+ SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3);
+ SetGpuReg(REG_OFFSET_WIN1V, 32 << 8 | 135);
+ SetGpuReg(REG_OFFSET_WIN1H, 2 << 8 | 240);
+
+ SetBgTilemapBuffer(1, sMonSummaryScreen->unk0);
+ SetBgTilemapBuffer(2, sMonSummaryScreen->unk1000);
+ SetBgTilemapBuffer(3, sMonSummaryScreen->unk2000);
+
+ ShowBg(0);
+ ShowBg(1);
+ ShowBg(2);
+ ShowBg(3);
+}
+
+static void sub_8136D54(void)
+{
+ if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE || sMonSummaryScreen->mode == PSS_MODE_FORGET_MOVE)
+ sMonSummaryScreen->unk3018 = CreateTask(sub_81393D4, 0);
+ else
+ sMonSummaryScreen->unk3018 = CreateTask(sub_8134840, 0);
+
+ SetMainCallback2(sub_8137EE8);
+}
+
+static void sub_8136DA4(const u8 * str)
+{
+ FillWindowPixelBuffer(sMonSummaryScreen->unk3000[0], 0);
+ AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[0], 2, 4, 1, sUnknown_8463FA4[1], 0, str);
+ PutWindowTilemap(sMonSummaryScreen->unk3000[0]);
+}
+
+static void sub_8136DF0(const u8 * str)
+{
+ u8 v0;
+ s32 width;
+ u8 r1;
+
+ FillWindowPixelBuffer(sMonSummaryScreen->unk3000[1], 0);
+ width = GetStringWidth(0, str, 0);
+ r1 = sMonSummaryScreen->unk3000[1];
+ AddTextPrinterParameterized3(r1, 0, 0x54 - width, 0, sUnknown_8463FA4[1], 0, str);
+ PutWindowTilemap(sMonSummaryScreen->unk3000[1]);
+}
+
+static void sub_8136E50(const u8 * msg)
+{
+ FillWindowPixelBuffer(sMonSummaryScreen->unk3000[2], 0);
+
+ if (!sMonSummaryScreen->isEgg)
+ {
+ if (sMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO)
+ AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[2], 2, 4, 2, sUnknown_8463FA4[1], 0xff, sMonSummaryScreen->summary.unk3088);
+
+ AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[2], 2, 40, 2, sUnknown_8463FA4[1], 0xff, sMonSummaryScreen->summary.unk3034);
+
+ if (GetMonGender(&sMonSummaryScreen->currentMon) == MON_FEMALE)
+ AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[2], 2, 105, 2, sUnknown_8463FA4[3], 0, sMonSummaryScreen->summary.unk3084);
+ else
+ AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[2], 2, 105, 2, sUnknown_8463FA4[2], 0, sMonSummaryScreen->summary.unk3084);
+ }
+
+ PutWindowTilemap(sMonSummaryScreen->unk3000[2]);
+}
+
+static void sub_8136F4C(void)
+{
+ FillWindowPixelBuffer(sMonSummaryScreen->unk3000[3], 0);
+
+ switch (sMonSummaryScreen->curPageIndex)
+ {
+ case PSS_PAGE_INFO:
+ sub_8136FB0();
+ break;
+ case PSS_PAGE_SKILLS:
+ sub_81370EC();
+ break;
+ case PSS_PAGE_MOVES:
+ case PSS_PAGE_MOVES_INFO:
+ sub_8137270();
+ break;
+ }
+
+ PutWindowTilemap(sMonSummaryScreen->unk3000[3]);
+}
+
+static void sub_8136FB0(void)
+{
+ AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 47, 19, sUnknown_8463FA4[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk3028);
+
+ if (!sMonSummaryScreen->isEgg)
+ {
+ AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 47 + sUnknown_203B144->unk00, 5, sUnknown_8463FA4[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk3064);
+ AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 47, 49, sUnknown_8463FA4[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk3040);
+ AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 47, 64, sUnknown_8463FA4[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk306C);
+ AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 47, 79, sUnknown_8463FA4[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk3074);
+ }
+ else
+ {
+ u8 eggCycles;
+ u8 hatchMsgIndex;
+
+ eggCycles = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_FRIENDSHIP);
+
+ if (eggCycles <= 5)
+ hatchMsgIndex = 3;
+ else if (eggCycles <= 10)
+ hatchMsgIndex = 2;
+ else if (eggCycles <= 40)
+ hatchMsgIndex = 1;
+ else
+ hatchMsgIndex = 0;
+
+ if (sMonSummaryScreen->isBadEgg)
+ hatchMsgIndex = 0;
+
+ AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 7, 45, sUnknown_8463FA4[0], TEXT_SPEED_FF, sUnknown_8463EC4[hatchMsgIndex]);
+ }
+}
+
+static void sub_81370EC(void)
+{
+ AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 14 + sUnknown_203B144->unk02, 4, sUnknown_8463FA4[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk3090);
+ AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 50 + sUnknown_203B144->unk04, 22, sUnknown_8463FA4[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk309C[PSS_STAT_ATK]);
+ AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 50 + sUnknown_203B144->unk06, 35, sUnknown_8463FA4[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk309C[PSS_STAT_DEF]);
+ AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 50 + sUnknown_203B144->unk08, 48, sUnknown_8463FA4[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk309C[PSS_STAT_SPA]);
+ AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 50 + sUnknown_203B144->unk0A, 61, sUnknown_8463FA4[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk309C[PSS_STAT_SPD]);
+ AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 50 + sUnknown_203B144->unk0C, 74, sUnknown_8463FA4[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk309C[PSS_STAT_SPE]);
+ AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 15 + sUnknown_203B144->unk0E, 87, sUnknown_8463FA4[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk31A4);
+ AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 15 + sUnknown_203B144->unk10, 100, sUnknown_8463FA4[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk31B0);
+}
+
+#define MACRO_8137270(x) ((x) * 28 + 5)
+
+static void sub_8137270(void)
+{
+ u8 i;
+
+ for (i = 0; i < 4; i++)
+ sub_81372E4(i);
+
+ if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO)
+ {
+ if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE)
+ sub_81372E4(4);
+ else
+ AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2,
+ 3, MACRO_8137270(4),
+ sUnknown_8463EF0[0], TEXT_SPEED_FF, gFameCheckerText_Cancel);
+ }
+}
+
+#define MACRO_81372E4(x) ((x) * 28 + 16)
+
+static void sub_81372E4(u8 i)
+{
+ u8 v0 = 0;
+ u8 curPP = sub_8138C24(&sMonSummaryScreen->currentMon, i);
+ u16 move = sMonSummaryScreen->unk325A[i];
+ u8 ppBonuses = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_PP_BONUSES);
+ u8 maxPP = CalculatePPWithBonus(move, ppBonuses, i);
+
+ if (i == 4)
+ curPP = maxPP;
+
+ AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 3, MACRO_8137270(i), sUnknown_8463EF0[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk3128[i]);
+
+ if (sMonSummaryScreen->unk325A[i] == 0 || (curPP == maxPP))
+ v0 = 0;
+ else if (curPP == 0)
+ v0 = 3;
+ else if (maxPP == 3)
+ {
+ if (curPP == 2)
+ v0 = 2;
+ else if (curPP == 1)
+ v0 = 1;
+ }
+ else if (maxPP == 2)
+ {
+ if (curPP == 1)
+ v0 = 1;
+ }
+ else
+ {
+ if (curPP <= (maxPP / 4))
+ v0 = 2;
+ else if (curPP <= (maxPP / 2))
+ v0 = 1;
+ }
+
+ AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 36, MACRO_81372E4(i), sUnknown_8463EF0[v0], TEXT_SPEED_FF, gUnknown_8416238);
+ AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 46 + sUnknown_203B144->unk12[i], MACRO_81372E4(i), sUnknown_8463EF0[v0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk30B8[i]);
+
+ if (sMonSummaryScreen->unk325A[i] != MOVE_NONE)
+ {
+ AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 58, MACRO_81372E4(i), sUnknown_8463EF0[v0], TEXT_SPEED_FF, gText_Slash);
+ AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 64 + sUnknown_203B144->unk1C[i], MACRO_81372E4(i), sUnknown_8463EF0[v0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk30F0[i]);
+ }
+}
+
+static void sub_81374E8(void)
+{
+ FillWindowPixelBuffer(sMonSummaryScreen->unk3000[4], 0);
+
+ switch (sMonSummaryScreen->curPageIndex)
+ {
+ case PSS_PAGE_INFO:
+ sub_8137554();
+ break;
+ case PSS_PAGE_SKILLS:
+ sub_8137A90();
+ break;
+ case PSS_PAGE_MOVES_INFO:
+ sub_8137AF8();
+ break;
+ case PSS_PAGE_MOVES:
+ break;
+ }
+
+ PutWindowTilemap(sMonSummaryScreen->unk3000[4]);
+}
+
+static void sub_8137554(void)
+{
+ if (!sMonSummaryScreen->isEgg)
+ sub_8137944();
+ else
+ sub_8137970();
+}
+
+static void sub_8137578(void)
+{
+ u8 nature;
+ u8 level;
+ u8 metLocation;
+ u8 levelStr[5];
+ u8 mapNameStr[32];
+ u8 natureMetOrHatchedAtLevelStr[152];
+
+ DynamicPlaceholderTextUtil_Reset();
+ nature = GetNature(&sMonSummaryScreen->currentMon);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gNatureNamePointers[nature]);
+ level = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MET_LEVEL);
+
+ if (level == 0)
+ level = 5;
+
+ ConvertIntToDecimalStringN(levelStr, level, STR_CONV_MODE_LEFT_ALIGN, 3);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, levelStr);
+
+ metLocation = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MET_LOCATION);
+
+ if (sub_813B838(metLocation) == TRUE)
+ GetMapNameGeneric_(mapNameStr, metLocation);
+ else
+ {
+ if (sMonSummaryScreen->isEnemyParty == TRUE || sub_8138B4C() == TRUE)
+ StringCopy(mapNameStr, gUnknown_8419C13);
+ else
+ StringCopy(mapNameStr, gUnknown_8419C0B);
+ }
+
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, mapNameStr);
+
+ if (GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MET_LEVEL) == 0)
+ {
+ if (GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_OBEDIENCE) == 1)
+ {
+ if (sub_813B7E0(nature))
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_841996D);
+ else
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_841992F);
+ }
+ else
+ {
+ if (sub_813B7E0(nature))
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_84198D5);
+ else
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_84198B4);
+ }
+ }
+ else
+ {
+ if (metLocation == METLOC_FATEFUL_ENCOUNTER)
+ {
+ if (sub_813B7E0(nature))
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_84197ED);
+ else
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_84197B8);
+ }
+ else
+ {
+ if (sub_813B7E0(nature))
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_8419841);
+ else
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_8419822);
+ }
+ }
+
+ AddTextPrinterParameterized4(sMonSummaryScreen->unk3000[4], 2, 0, 3, 0, 0, sUnknown_8463FA4[0], TEXT_SPEED_FF, natureMetOrHatchedAtLevelStr);
+}
+
+static void sub_8137724(void)
+{
+ u8 nature;
+ u8 level;
+ u8 metLocation;
+ u8 levelStr[5];
+ u8 mapNameStr[32];
+ u8 natureMetOrHatchedAtLevelStr[152];
+
+ DynamicPlaceholderTextUtil_Reset();
+ nature = GetNature(&sMonSummaryScreen->currentMon);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gNatureNamePointers[nature]);
+
+ level = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MET_LEVEL);
+
+ if (level == 0)
+ level = 5;
+
+ ConvertIntToDecimalStringN(levelStr, level, STR_CONV_MODE_LEFT_ALIGN, 3);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, levelStr);
+
+ metLocation = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MET_LOCATION);
+
+ if (!sub_813B838(metLocation) || !sub_813B7F8())
+ {
+ if (sub_8138B4C() == TRUE)
+ {
+ sub_8137578();
+ return;
+ }
+
+ if (metLocation == METLOC_FATEFUL_ENCOUNTER)
+ {
+ if (sub_813B7E0(nature))
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_84197ED);
+ else
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_84197B8);
+ }
+ else
+ {
+ if (sub_813B7E0(nature))
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_841979D);
+ else
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_8419782);
+ }
+
+ AddTextPrinterParameterized4(sMonSummaryScreen->unk3000[4], 2, 0, 3, 0, 0, sUnknown_8463FA4[0], TEXT_SPEED_FF, natureMetOrHatchedAtLevelStr);
+ return;
+ }
+
+ if (sub_813B838(metLocation) == TRUE)
+ GetMapNameGeneric_(mapNameStr, metLocation);
+ else
+ StringCopy(mapNameStr, gUnknown_8419C0B);
+
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, mapNameStr);
+
+ if (GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MET_LEVEL) == 0)
+ {
+ if (GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_OBEDIENCE) == 1)
+ {
+ if (sub_813B7E0(nature))
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_84199F4);
+ else
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_84199AB);
+ }
+ else
+ {
+ if (sub_813B7E0(nature))
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_841988A);
+ else
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_8419860);
+ }
+ }
+ else
+ {
+ if (metLocation == METLOC_FATEFUL_ENCOUNTER)
+ {
+ if (sub_813B7E0(nature))
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_84197ED);
+ else
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_84197B8);
+ }
+ else
+ {
+ if (sub_813B7E0(nature))
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_841988A);
+ else
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_8419860);
+ }
+ }
+
+ AddTextPrinterParameterized4(sMonSummaryScreen->unk3000[4], 2, 0, 3, 0, 0, sUnknown_8463FA4[0], TEXT_SPEED_FF, natureMetOrHatchedAtLevelStr);
+}
+
+static void sub_8137944(void)
+{
+ if (sub_813847C(&sMonSummaryScreen->currentMon) == TRUE)
+ sub_8137578();
+ else
+ sub_8137724();
+}
+
+static void sub_8137970(void)
+{
+ u8 metLocation;
+ u8 version;
+ u8 chosenStrIndex = 0;
+
+ metLocation = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MET_LOCATION);
+
+ if (sMonSummaryScreen->monList.mons != gEnemyParty)
+ {
+ if (metLocation == METLOC_FATEFUL_ENCOUNTER || GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_OBEDIENCE) == 1)
+ chosenStrIndex = 4;
+ else
+ {
+ version = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MET_GAME);
+
+ if (version != VERSION_LEAF_GREEN && version != VERSION_FIRE_RED)
+ chosenStrIndex = 1;
+ else if (metLocation == METLOC_SPECIAL_EGG)
+ chosenStrIndex = 2;
+
+ if (chosenStrIndex == 0 || chosenStrIndex == 2)
+ if (sub_813847C(&sMonSummaryScreen->currentMon) == FALSE)
+ chosenStrIndex++;
+ }
+ }
+ else
+ {
+ if (metLocation == METLOC_FATEFUL_ENCOUNTER || GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_OBEDIENCE) == 1)
+ chosenStrIndex = 4;
+ else
+ {
+ version = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MET_GAME);
+
+ if (version != VERSION_LEAF_GREEN && version != VERSION_FIRE_RED)
+ {
+ if (metLocation == METLOC_SPECIAL_EGG)
+ chosenStrIndex = 5;
+ }
+ else if (metLocation == METLOC_SPECIAL_EGG)
+ chosenStrIndex = 2;
+
+ if (sub_813847C(&sMonSummaryScreen->currentMon) == FALSE)
+ chosenStrIndex++;
+ }
+ }
+
+ if (sMonSummaryScreen->isBadEgg)
+ chosenStrIndex = 0;
+
+ AddTextPrinterParameterized4(sMonSummaryScreen->unk3000[4], 2, 0, 3, 0, 0, sUnknown_8463FA4[0], TEXT_SPEED_FF, sUnknown_8463ED4[chosenStrIndex]);
+}
+
+static void sub_8137A90(void)
+{
+ AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[4], 2,
+ 26, 7,
+ sUnknown_8463FA4[0], TEXT_SPEED_FF,
+ gUnknown_8419C4D);
+
+ AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[4], 2,
+ 26, 20,
+ sUnknown_8463FA4[0], TEXT_SPEED_FF,
+ gUnknown_8419C59);
+}
+
+static void sub_8137AF8(void)
+{
+ if (sUnknown_203B16D < 5)
+ {
+ if (sMonSummaryScreen->mode != PSS_MODE_SELECT_MOVE && sUnknown_203B16D == 4)
+ return;
+
+ AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[4], 2,
+ 57, 1,
+ sUnknown_8463FA4[0], TEXT_SPEED_FF,
+ sMonSummaryScreen->summary.unk316C[sUnknown_203B16D]);
+
+ AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[4], 2,
+ 57, 15,
+ sUnknown_8463FA4[0], TEXT_SPEED_FF,
+ sMonSummaryScreen->summary.unk3188[sUnknown_203B16D]);
+
+ AddTextPrinterParameterized4(sMonSummaryScreen->unk3000[4], 2,
+ 7, 42,
+ 0, 0,
+ sUnknown_8463FA4[0], TEXT_SPEED_FF,
+ gMoveDescriptionPointers[sMonSummaryScreen->unk325A[sUnknown_203B16D] - 1]);
+ }
+}
+
+static void sub_8137BD0(void)
+{
+ switch (sMonSummaryScreen->curPageIndex)
+ {
+ case PSS_PAGE_INFO:
+ break;
+ case PSS_PAGE_SKILLS:
+ sub_8137C18();
+ break;
+ case PSS_PAGE_MOVES:
+ case PSS_PAGE_MOVES_INFO:
+ sub_8137C90();
+ break;
+ }
+
+ PutWindowTilemap(sMonSummaryScreen->unk3000[5]);
+}
+
+static void sub_8137C18(void)
+{
+ FillWindowPixelBuffer(sMonSummaryScreen->unk3000[5], 0);
+
+ AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[5], 2,
+ 66, 1, sUnknown_8463FA4[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk31BC);
+
+ AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[5], 2,
+ 2, 15, sUnknown_8463FA4[0], TEXT_SPEED_FF,
+ sMonSummaryScreen->summary.unk31CC);
+
+}
+
+static void sub_8137C90(void)
+{
+ u8 i;
+
+ FillWindowPixelBuffer(sMonSummaryScreen->unk3000[5], 0);
+
+ for (i = 0; i < 4; i++)
+ {
+ if (sMonSummaryScreen->unk325A[i] == MOVE_NONE)
+ continue;
+
+ BlitMoveInfoIcon(sMonSummaryScreen->unk3000[5], sMonSummaryScreen->unk3250[i] + 1, 3, MACRO_8137270(i));
+ }
+
+ if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE)
+ BlitMoveInfoIcon(sMonSummaryScreen->unk3000[5], sMonSummaryScreen->unk3250[4] + 1, 3, MACRO_8137270(4));
+}
+
+static void sub_8137D28(u8 curPageIndex)
+{
+ switch (curPageIndex)
+ {
+ case PSS_PAGE_INFO:
+ sub_8136DA4(gUnknown_8419C1D);
+ if (!sMonSummaryScreen->isEgg)
+ sub_8136DF0(gUnknown_8419C62);
+ else
+ sub_8136DF0(gUnknown_8419C72);
+
+ sub_8136E50(gUnknown_8419C45);
+ break;
+ case PSS_PAGE_SKILLS:
+ sub_8136DA4(gUnknown_8419C2A);
+ sub_8136DF0(gUnknown_8419C7B);
+ sub_8136E50(gUnknown_8419C45);
+ break;
+ case PSS_PAGE_MOVES:
+ sub_8136DA4(gUnknown_8419C39);
+ sub_8136DF0(gUnknown_8419C82);
+ sub_8136E50(gUnknown_8419C45);
+ break;
+ case PSS_PAGE_MOVES_INFO:
+ sub_8136DA4(gUnknown_8419C39);
+ if (!gMain.inBattle)
+ sub_8136DF0(gUnknown_8419C92);
+ else
+ sub_8136DF0(gUnknown_8419CA2);
+ sub_8136E50(gUnknown_8419C45);
+ break;
+ case PSS_PAGE_MOVE_DELETER:
+ sub_8136DA4(gUnknown_8419C39);
+ sub_8136DF0(gUnknown_8419CA9);
+ sub_8136E50(gUnknown_8419C45);
+ break;
+ default:
+ break;
+ }
+}
+
+static void sub_8137E28(void)
+{
+ PutWindowTilemap(sMonSummaryScreen->unk3000[0]);
+ PutWindowTilemap(sMonSummaryScreen->unk3000[1]);
+ PutWindowTilemap(sMonSummaryScreen->unk3000[2]);
+}
+
+static void sub_8137E64(u8 taskId)
+{
+ sub_813AF90();
+ FreeAllSpritePalettes();
+
+ if (IsCryPlayingOrClearCrySongs() == TRUE)
+ StopCryAndClearCrySongs();
+
+ sub_8138414(sMonSummaryScreen->curPageIndex);
+ FreeAllWindowBuffers();
+ DestroyTask(taskId);
+ SetMainCallback2(sMonSummaryScreen->savedCallback);
+
+ sLastViewedMonIndex = GetLastViewedMonIndex();
+
+ FREE_AND_SET_NULL_IF_SET(sMonSummaryScreen);
+ FREE_AND_SET_NULL_IF_SET(sUnknown_203B144);
+}
+
+static void sub_8137EE8(void)
+{
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+}
+
+static void sub_8137F00(void)
+{
+ u8 i;
+
+ for (i = 0; i < 11; i++)
+ {
+ if (sUnknown_203B160->unk2C[i] < 240)
+ {
+ sUnknown_203B160->unk2C[i] += 60;
+ sUnknown_203B160->sprites[i]->pos1.x = sUnknown_203B160->unk2C[i] + 60;
+ }
+
+ if (i >= 9)
+ continue;
+
+ if (sUnknown_203B15C->unk28[i] < 240)
+ {
+ sUnknown_203B15C->unk28[i] += 60;
+ sUnknown_203B15C->sprites[i]->pos1.x = sUnknown_203B15C->unk28[i] + 60;
+ }
+ }
+}
+
+static void sub_8137F68(void)
+{
+ u8 i;
+
+ for (i = 0; i < 11; i++)
+ {
+ if (sUnknown_203B160->unk2C[i] > 156 + (8 * i))
+ {
+ sUnknown_203B160->unk2C[i] -= 60;
+
+ if (sUnknown_203B160->unk2C[i] < 156 + (8 * i))
+ sUnknown_203B160->unk2C[i] = 156 + (8 * i);
+
+ sUnknown_203B160->sprites[i]->pos1.x = sUnknown_203B160->unk2C[i];
+ }
+
+ if (i >= 9)
+ continue;
+
+ if (sUnknown_203B15C->unk28[i] > 172 + (8 * i))
+ {
+ sUnknown_203B15C->unk28[i] -= 60;
+
+ if (sUnknown_203B15C->unk28[i] < 172 + (8 * i))
+ sUnknown_203B15C->unk28[i] = 172 + (8 * i);
+
+ sUnknown_203B15C->sprites[i]->pos1.x = sUnknown_203B15C->unk28[i];
+ }
+ }
+}
+
+static void sub_8137FF4(void)
+{
+ if (sMonSummaryScreen->unk324C < 240)
+ {
+ sMonSummaryScreen->unk324C += 60;
+ if (sMonSummaryScreen->unk324C > 240)
+ sMonSummaryScreen->unk324C = 240;
+
+ if (sMonSummaryScreen->unk3238 == 0)
+ SetGpuReg(REG_OFFSET_BG2HOFS, -sMonSummaryScreen->unk324C);
+ else
+ SetGpuReg(REG_OFFSET_BG1HOFS, -sMonSummaryScreen->unk324C);
+ }
+}
+
+static void sub_813805C(void)
+{
+ if (sMonSummaryScreen->unk324C >= 60)
+ {
+ sMonSummaryScreen->unk324C -= 60;
+ if (sMonSummaryScreen->unk324C < 0)
+ sMonSummaryScreen->unk324C = 0;
+
+ if (sMonSummaryScreen->unk3238 == 0)
+ SetGpuReg(REG_OFFSET_BG1HOFS, -sMonSummaryScreen->unk324C);
+ else
+ SetGpuReg(REG_OFFSET_BG2HOFS, -sMonSummaryScreen->unk324C);
+
+ if (sMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO)
+ SetGpuReg(REG_OFFSET_BG0HOFS, -sMonSummaryScreen->unk324C);
+ }
+}
+
+static void sub_81380F0(void)
+{
+ if (sMonSummaryScreen->unk3224 == 1)
+ {
+ if (sMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO)
+ sub_8137FF4();
+ else
+ sub_813805C();
+ }
+ else
+ {
+ if (sMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES)
+ sub_813805C();
+ else
+ sub_8137FF4();
+ }
+}
+
+static void sub_8138134(void)
+{
+ if (sMonSummaryScreen->curPageIndex == PSS_PAGE_SKILLS
+ && sMonSummaryScreen->unk3224 == 0)
+ sub_8137F68();
+
+ if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES
+ && sMonSummaryScreen->unk3224 == 1)
+ sub_8137F00();
+}
+
+static void sub_813817C(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+
+ if (sMonSummaryScreen->unk3244 == FALSE)
+ return;
+
+ sub_81380F0();
+ sub_8138134();
+}
+
+static void sub_81381AC(void)
+{
+ SetVBlankCallback(NULL);
+ SetHBlankCallback(NULL);
+}
+
+static void sub_81381C0(void)
+{
+ SetVBlankCallback(sub_813817C);
+}
+
+static void sub_81381D0(void)
+{
+ u8 i;
+
+ InitWindows(sUnknown_8463F9C);
+
+ for (i = 0; i < 3; i++)
+ sMonSummaryScreen->unk3000[i] = AddWindow(&sUnknown_8463F0C[i]);
+
+ for (i = 0; i < 4; i++)
+ switch (sMonSummaryScreen->curPageIndex)
+ {
+ case PSS_PAGE_INFO:
+ sMonSummaryScreen->unk3000[i + 3] = AddWindow(&sUnknown_8463F3C[i]);
+ break;
+ case PSS_PAGE_SKILLS:
+ sMonSummaryScreen->unk3000[i + 3] = AddWindow(&sUnknown_8463F5C[i]);
+ break;
+ case PSS_PAGE_MOVES:
+ case PSS_PAGE_MOVES_INFO:
+ sMonSummaryScreen->unk3000[i + 3] = AddWindow(&sUnknown_8463F7C[i]);
+ break;
+ default:
+ break;
+ }
+}
+
+static void sub_8138280(u8 curPageIndex)
+{
+ u8 i;
+ u32 bgPriority1 = GetGpuReg(REG_OFFSET_BG1CNT) & 3;
+ u32 bgPriority2 = GetGpuReg(REG_OFFSET_BG2CNT) & 3;
+
+ for (i = 0; i < 7; i++)
+ sMonSummaryScreen->unk3000[i] = 0xff;
+
+ if ((sMonSummaryScreen->unk3224 == 1 && sMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO)
+ || (sMonSummaryScreen->unk3224 == 0 && sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES))
+ {
+ if (bgPriority2 > bgPriority1)
+ for (i = 0; i < 3; i++)
+ sMonSummaryScreen->unk3000[i] = AddWindow(&sUnknown_8463F24[i]);
+ else
+ for (i = 0; i < 3; i++)
+ sMonSummaryScreen->unk3000[i] = AddWindow(&sUnknown_8463F0C[i]);
+ }
+ else
+ {
+ if (bgPriority2 > bgPriority1)
+ for (i = 0; i < 3; i++)
+ sMonSummaryScreen->unk3000[i] = AddWindow(&sUnknown_8463F0C[i]);
+ else
+ for (i = 0; i < 3; i++)
+ sMonSummaryScreen->unk3000[i] = AddWindow(&sUnknown_8463F24[i]);
+ }
+
+ for (i = 0; i < 4; i++)
+ switch (curPageIndex)
+ {
+ case PSS_PAGE_INFO:
+ sMonSummaryScreen->unk3000[i + 3] = AddWindow(&sUnknown_8463F3C[i]);
+ break;
+ case PSS_PAGE_SKILLS:
+ default:
+ sMonSummaryScreen->unk3000[i + 3] = AddWindow(&sUnknown_8463F5C[i]);
+ break;
+ case PSS_PAGE_MOVES:
+ case PSS_PAGE_MOVES_INFO:
+ sMonSummaryScreen->unk3000[i + 3] = AddWindow(&sUnknown_8463F7C[i]);
+ break;
+ }
+}
+
+static void sub_8138414(u8 curPageIndex)
+{
+ u8 i;
+
+ for (i = 0; i < 7; i++)
+ RemoveWindow(sMonSummaryScreen->unk3000[i]);
+
+}
+
+static void sub_8138440(void)
+{
+ switch (sMonSummaryScreen->curPageIndex)
+ {
+ case PSS_PAGE_INFO:
+ SetHelpContext(HELPCONTEXT_POKEMON_INFO);
+ break;
+ case PSS_PAGE_SKILLS:
+ SetHelpContext(HELPCONTEXT_POKEMON_SKILLS);
+ break;
+ case PSS_PAGE_MOVES:
+ case PSS_PAGE_MOVES_INFO:
+ SetHelpContext(HELPCONTEXT_POKEMON_MOVES);
+ break;
+ }
+}
+
+static u8 sub_813847C(struct Pokemon * mon)
+{
+ u8 i;
+ u8 multiplayerId;
+ u32 trainerId = 0;
+
+ if (sMonSummaryScreen->monList.mons == gEnemyParty)
+ {
+ multiplayerId = GetMultiplayerId() ^ 1;
+ trainerId = gLinkPlayers[multiplayerId].trainerId & 0xffff;
+ StringCopy(sMonSummaryScreen->summary.unk304C[0], gLinkPlayers[multiplayerId].name);
+ }
+ else
+ {
+ trainerId = GetPlayerTrainerId() & 0xffff;
+ StringCopy(sMonSummaryScreen->summary.unk304C[0], gSaveBlock2Ptr->playerName);
+ }
+
+ if (trainerId != (GetMonData(mon, MON_DATA_OT_ID) & 0xffff))
+ return FALSE;
+
+ GetMonData(mon, MON_DATA_OT_NAME, sMonSummaryScreen->summary.unk304C[1]);
+
+ if (!StringCompareWithoutExtCtrlCodes(sMonSummaryScreen->summary.unk304C[0], sMonSummaryScreen->summary.unk304C[1]))
+ return TRUE;
+ else
+ return FALSE;
+
+ return TRUE;
+}
+
+#define SUB_8138538_BASE_TILE_NUM (345)
+
+static void sub_8138538(void)
+{
+ switch (sMonSummaryScreen->curPageIndex)
+ {
+ case PSS_PAGE_INFO:
+ if (!sMonSummaryScreen->isEgg)
+ {
+ FillBgTilemapBufferRect(3, 17 + SUB_8138538_BASE_TILE_NUM, 13, 0, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 33 + SUB_8138538_BASE_TILE_NUM, 13, 1, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 16 + SUB_8138538_BASE_TILE_NUM, 14, 0, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 32 + SUB_8138538_BASE_TILE_NUM, 14, 1, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 18 + SUB_8138538_BASE_TILE_NUM, 15, 0, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 34 + SUB_8138538_BASE_TILE_NUM, 15, 1, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 20 + SUB_8138538_BASE_TILE_NUM, 16, 0, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 36 + SUB_8138538_BASE_TILE_NUM, 16, 1, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 18 + SUB_8138538_BASE_TILE_NUM, 17, 0, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 34 + SUB_8138538_BASE_TILE_NUM, 17, 1, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 21 + SUB_8138538_BASE_TILE_NUM, 18, 0, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 37 + SUB_8138538_BASE_TILE_NUM, 18, 1, 1, 1, 0);
+ }
+ else
+ {
+ FillBgTilemapBufferRect(3, 17 + SUB_8138538_BASE_TILE_NUM, 13, 0, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 33 + SUB_8138538_BASE_TILE_NUM, 13, 1, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 48 + SUB_8138538_BASE_TILE_NUM, 14, 0, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 64 + SUB_8138538_BASE_TILE_NUM, 14, 1, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 2 + SUB_8138538_BASE_TILE_NUM, 15, 0, 4, 2, 0);
+ }
+ break;
+ case PSS_PAGE_SKILLS:
+ FillBgTilemapBufferRect(3, 49 + SUB_8138538_BASE_TILE_NUM, 13, 0, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 65 + SUB_8138538_BASE_TILE_NUM, 13, 1, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 1 + SUB_8138538_BASE_TILE_NUM, 14, 0, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 19 + SUB_8138538_BASE_TILE_NUM, 14, 1, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 17 + SUB_8138538_BASE_TILE_NUM, 15, 0, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 33 + SUB_8138538_BASE_TILE_NUM, 15, 1, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 16 + SUB_8138538_BASE_TILE_NUM, 16, 0, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 32 + SUB_8138538_BASE_TILE_NUM, 16, 1, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 18 + SUB_8138538_BASE_TILE_NUM, 17, 0, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 34 + SUB_8138538_BASE_TILE_NUM, 17, 1, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 21 + SUB_8138538_BASE_TILE_NUM, 18, 0, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 37 + SUB_8138538_BASE_TILE_NUM, 18, 1, 1, 1, 0);
+ break;
+ case PSS_PAGE_MOVES:
+ FillBgTilemapBufferRect(3, 49 + SUB_8138538_BASE_TILE_NUM, 13, 0, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 65 + SUB_8138538_BASE_TILE_NUM, 13, 1, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 1 + SUB_8138538_BASE_TILE_NUM, 14, 0, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 19 + SUB_8138538_BASE_TILE_NUM, 14, 1, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 49 + SUB_8138538_BASE_TILE_NUM, 15, 0, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 65 + SUB_8138538_BASE_TILE_NUM, 15, 1, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 1 + SUB_8138538_BASE_TILE_NUM, 16, 0, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 19 + SUB_8138538_BASE_TILE_NUM, 16, 1, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 17 + SUB_8138538_BASE_TILE_NUM, 17, 0, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 33 + SUB_8138538_BASE_TILE_NUM, 17, 1, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 48 + SUB_8138538_BASE_TILE_NUM, 18, 0, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 64 + SUB_8138538_BASE_TILE_NUM, 18, 1, 1, 1, 0);
+ break;
+ case PSS_PAGE_MOVES_INFO:
+ if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE)
+ {
+ FillBgTilemapBufferRect(3, 1 + SUB_8138538_BASE_TILE_NUM, 13, 0, 4, 1, 0);
+ FillBgTilemapBufferRect(3, 19 + SUB_8138538_BASE_TILE_NUM, 13, 1, 4, 1, 0);
+ }
+ else
+ {
+ FillBgTilemapBufferRect(3, 49 + SUB_8138538_BASE_TILE_NUM, 13, 0, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 65 + SUB_8138538_BASE_TILE_NUM, 13, 1, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 1 + SUB_8138538_BASE_TILE_NUM, 14, 0, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 19 + SUB_8138538_BASE_TILE_NUM, 14, 1, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 49 + SUB_8138538_BASE_TILE_NUM, 15, 0, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 65 + SUB_8138538_BASE_TILE_NUM, 15, 1, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 1 + SUB_8138538_BASE_TILE_NUM, 16, 0, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 19 + SUB_8138538_BASE_TILE_NUM, 16, 1, 1, 1, 0);
+ }
+ FillBgTilemapBufferRect(3, 50 + SUB_8138538_BASE_TILE_NUM, 17, 0, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 66 + SUB_8138538_BASE_TILE_NUM, 17, 1, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 48 + SUB_8138538_BASE_TILE_NUM, 18, 0, 1, 1, 0);
+ FillBgTilemapBufferRect(3, 64 + SUB_8138538_BASE_TILE_NUM, 18, 1, 1, 1, 0);
+ break;
+ }
+}
+
+static void sub_8138A38(void)
+{
+ switch (sMonSummaryScreen->curPageIndex)
+ {
+ case PSS_PAGE_INFO:
+ if (!sMonSummaryScreen->isEgg)
+ {
+ BlitMoveInfoIcon(sMonSummaryScreen->unk3000[3], sMonSummaryScreen->unk3220[0] + 1, 47, 35);
+
+ if (sMonSummaryScreen->unk3220[0] != sMonSummaryScreen->unk3220[1])
+ BlitMoveInfoIcon(sMonSummaryScreen->unk3000[3], sMonSummaryScreen->unk3220[1] + 1, 83, 35);
+ }
+ break;
+ case PSS_PAGE_SKILLS:
+ break;
+ case PSS_PAGE_MOVES:
+ break;
+ case PSS_PAGE_MOVES_INFO:
+ FillWindowPixelBuffer(sMonSummaryScreen->unk3000[6], 0);
+ BlitMoveInfoIcon(sMonSummaryScreen->unk3000[6], sMonSummaryScreen->unk3220[0] + 1, 0, 3);
+
+ if (sMonSummaryScreen->unk3220[0] != sMonSummaryScreen->unk3220[1])
+ BlitMoveInfoIcon(sMonSummaryScreen->unk3000[6], sMonSummaryScreen->unk3220[1] + 1, 36, 3);
+
+ PutWindowTilemap(sMonSummaryScreen->unk3000[6]);
+ break;
+ }
+}
+
+u8 GetLastViewedMonIndex(void)
+{
+ return sLastViewedMonIndex;
+}
+
+u8 GetMoveSlotToReplace(void)
+{
+ return sUnknown_203B16E;
+}
+
+void sub_8138B38(u8 mode)
+{
+ sMonSummaryScreen->mode = mode;
+}
+
+static bool32 sub_8138B4C(void)
+{
+ if (!IsUpdateLinkStateCBActive()
+ && IsMultiBattle() == TRUE
+ && gReceivedRemoteLinkPlayers == 1
+ && (sLastViewedMonIndex >= 4 || sLastViewedMonIndex == 1))
+ return TRUE;
+
+ return FALSE;
+}
+
+static void sub_8138B8C(struct Pokemon * mon)
+{
+ if (!sMonSummaryScreen->isBoxMon)
+ {
+ struct Pokemon * partyMons = sMonSummaryScreen->monList.mons;
+ *mon = partyMons[GetLastViewedMonIndex()];
+ }
+ else
+ {
+ struct BoxPokemon * boxMons = sMonSummaryScreen->monList.boxMons;
+ BoxMonToMon(&boxMons[GetLastViewedMonIndex()], mon);
+ }
+}
+
+static u16 sub_8138BEC(struct Pokemon * mon, u8 moveSlot)
+{
+ u16 move;
+
+ switch (moveSlot)
+ {
+ case 0:
+ move = GetMonData(mon, MON_DATA_MOVE1);
+ break;
+ case 1:
+ move = GetMonData(mon, MON_DATA_MOVE2);
+ break;
+ case 2:
+ move = GetMonData(mon, MON_DATA_MOVE3);
+ break;
+ default:
+ move = GetMonData(mon, MON_DATA_MOVE4);
+ }
+
+ return move;
+}
+
+static u16 sub_8138C24(struct Pokemon * mon, u8 moveSlot)
+{
+ u16 pp;
+
+ switch (moveSlot)
+ {
+ case 0:
+ pp = GetMonData(mon, MON_DATA_PP1);
+ break;
+ case 1:
+ pp = GetMonData(mon, MON_DATA_PP2);
+ break;
+ case 2:
+ pp = GetMonData(mon, MON_DATA_PP3);
+ break;
+ default:
+ pp = GetMonData(mon, MON_DATA_PP4);
+ }
+ return pp;
+}
+
+static u8 sub_8138C5C(u32 status)
+{
+ if (GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_HP) == 0)
+ return AILMENT_FNT;
+
+ if ((status & STATUS1_PSN_ANY) != 0)
+ return AILMENT_PSN;
+
+ if ((status & STATUS1_PARALYSIS) != 0)
+ return AILMENT_PRZ;
+
+ if ((status & STATUS1_SLEEP) != 0)
+ return AILMENT_SLP;
+
+ if ((status & STATUS1_FREEZE) != 0)
+ return AILMENT_FRZ;
+
+ if ((status & STATUS1_BURN) != 0)
+ return AILMENT_BRN;
+
+ if (CheckPartyPokerus(&sMonSummaryScreen->currentMon, 0))
+ return AILMENT_PKRS;
+
+ return AILMENT_NONE;
+}
+
+static void sub_8138CD8(u8 id)
+{
+ u8 i;
+
+ switch (sMonSummaryScreen->unk3288)
+ {
+ case 0:
+ if (MenuHelpers_CallLinkSomething() == TRUE || sub_800B270() == TRUE)
+ return;
+
+ if (JOY_NEW(DPAD_UP))
+ {
+ if (sUnknown_203B16D > 0)
+ {
+ sMonSummaryScreen->unk3288 = 2;
+ PlaySE(SE_SELECT);
+
+ for (i = sUnknown_203B16D; i > 0; i--)
+ if (sMonSummaryScreen->unk325A[i - 1] != 0)
+ {
+ PlaySE(SE_SELECT);
+ sUnknown_203B16D = i - 1;
+ return;
+ }
+ }
+ else
+ {
+ sUnknown_203B16D = 4;
+ sMonSummaryScreen->unk3288 = 2;
+ PlaySE(SE_SELECT);
+
+ if (sMonSummaryScreen->unk3268 == TRUE)
+ for (i = sUnknown_203B16D; i > 0; i--)
+ if (sMonSummaryScreen->unk325A[i - 1] != 0)
+ {
+ PlaySE(SE_SELECT);
+ sUnknown_203B16D = i - 1;
+ return;
+ }
+ }
+ }
+ else if (JOY_NEW(DPAD_DOWN))
+ {
+ if (sUnknown_203B16D < 4)
+ {
+ u8 v0 = 4;
+
+ sMonSummaryScreen->unk3288 = 2;
+
+ if (sMonSummaryScreen->unk3268 == TRUE)
+ {
+ if (sUnknown_203B16D == 5 - 2)
+ {
+ sUnknown_203B16D = 0;
+ sMonSummaryScreen->unk3288 = 2;
+ PlaySE(SE_SELECT);
+ return;
+ }
+ v0--;
+ }
+
+ for (i = sUnknown_203B16D; i < v0; i++)
+ if (sMonSummaryScreen->unk325A[i + 1] != 0)
+ {
+ PlaySE(SE_SELECT);
+ sUnknown_203B16D = i + 1;
+ return;
+ }
+
+ if (!sMonSummaryScreen->unk3268)
+ {
+ PlaySE(SE_SELECT);
+ sUnknown_203B16D = i;
+ }
+ else
+ {
+ PlaySE(SE_SELECT);
+ sUnknown_203B16D = 0;
+ }
+
+ return;
+ }
+ else if (sUnknown_203B16D == 4)
+ {
+ sUnknown_203B16D = 0;
+ sMonSummaryScreen->unk3288 = 2;
+ PlaySE(SE_SELECT);
+ return;
+ }
+ }
+ else if (JOY_NEW(A_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ if (sUnknown_203B16D == 4)
+ {
+ sUnknown_203B16D = 0;
+ sUnknown_203B16E = 0;
+ sMonSummaryScreen->unk3268 = FALSE;
+ sub_813A0E8(1);
+ sMonSummaryScreen->unk3224 = 0;
+ sub_8138414(sMonSummaryScreen->curPageIndex);
+ sMonSummaryScreen->curPageIndex--;
+ sMonSummaryScreen->unk3288 = 1;
+ return;
+ }
+
+ if (sMonSummaryScreen->unk3268 != TRUE)
+ {
+ if (sMonSummaryScreen->isEnemyParty == FALSE
+ && gMain.inBattle == 0
+ && gReceivedRemoteLinkPlayers == 0)
+ {
+ sUnknown_203B16E = sUnknown_203B16D;
+ sMonSummaryScreen->unk3268 = TRUE;
+ }
+ return;
+ }
+ else
+ {
+ sMonSummaryScreen->unk3268 = FALSE;
+
+ if (sUnknown_203B16D == sUnknown_203B16E)
+ return;
+
+ if (sMonSummaryScreen->isBoxMon == 0)
+ sub_81390B0();
+ else
+ sub_81391EC();
+
+ sub_8139328(&sMonSummaryScreen->currentMon);
+ sub_81367B0();
+ sMonSummaryScreen->unk3288 = 2;
+ return;
+ }
+ }
+ else if (JOY_NEW(B_BUTTON))
+ {
+ if (sMonSummaryScreen->unk3268 == TRUE)
+ {
+ sUnknown_203B16E = sUnknown_203B16D;
+ sMonSummaryScreen->unk3268 = FALSE;
+ return;
+ }
+
+ if (sUnknown_203B16D == 4)
+ {
+ sUnknown_203B16D = 0;
+ sUnknown_203B16E = 0;
+ }
+
+ sub_813A0E8(1);
+ sMonSummaryScreen->unk3224 = 0;
+ sub_8138414(sMonSummaryScreen->curPageIndex);
+ sMonSummaryScreen->curPageIndex--;
+ sMonSummaryScreen->unk3288 = 1;
+ }
+ break;
+ case 1:
+ gTasks[sMonSummaryScreen->unk3018].func = sub_81351A0;
+ sMonSummaryScreen->unk3288 = 0;
+ break;
+ case 2:
+ sub_8136F4C();
+ sub_81374E8();
+ sub_8137BD0();
+ sMonSummaryScreen->unk3288 = 3;
+ break;
+ case 3:
+ if (MenuHelpers_CallLinkSomething() == TRUE || sub_800B270() == TRUE)
+ return;
+
+ CopyWindowToVram(sMonSummaryScreen->unk3000[3], 2);
+ CopyWindowToVram(sMonSummaryScreen->unk3000[4], 2);
+ CopyWindowToVram(sMonSummaryScreen->unk3000[5], 2);
+ CopyWindowToVram(sMonSummaryScreen->unk3000[6], 2);
+ CopyBgTilemapBufferToVram(0);
+ CopyBgTilemapBufferToVram(3);
+ sMonSummaryScreen->unk3288 = 0;
+ break;
+ default:
+ break;
+ }
+}
+
+static void sub_81390B0(void)
+{
+ struct Pokemon * partyMons;
+ struct Pokemon * mon;
+
+ u16 move1, move2;
+ u8 pp1, pp2;
+ u8 allMovesPPBonuses;
+ u8 move1ppBonus, move2ppBonus;
+
+ partyMons = sMonSummaryScreen->monList.mons;
+ mon = &partyMons[GetLastViewedMonIndex()];
+
+ move1 = GetMonData(mon, MON_DATA_MOVE1 + sUnknown_203B16D);
+ move2 = GetMonData(mon, MON_DATA_MOVE1 + sUnknown_203B16E);
+
+ pp1 = GetMonData(mon, MON_DATA_PP1 + sUnknown_203B16D);
+ pp2 = GetMonData(mon, MON_DATA_PP1 + sUnknown_203B16E);
+
+ allMovesPPBonuses = GetMonData(mon, MON_DATA_PP_BONUSES);
+
+ move1ppBonus = (allMovesPPBonuses & gPPUpGetMask[sUnknown_203B16D]) >> (sUnknown_203B16D * 2);
+ move2ppBonus = (allMovesPPBonuses & gPPUpGetMask[sUnknown_203B16E]) >> (sUnknown_203B16E * 2);
+
+ allMovesPPBonuses &= ~gPPUpGetMask[sUnknown_203B16D];
+ allMovesPPBonuses &= ~gPPUpGetMask[sUnknown_203B16E];
+ allMovesPPBonuses |= (move1ppBonus << (sUnknown_203B16E * 2)) + (move2ppBonus << (sUnknown_203B16D * 2));
+
+ SetMonData(mon, MON_DATA_MOVE1 + sUnknown_203B16D, (u8 *)&move2);
+ SetMonData(mon, MON_DATA_MOVE1 + sUnknown_203B16E, (u8 *)&move1);
+ SetMonData(mon, MON_DATA_PP1 + sUnknown_203B16D, &pp2);
+ SetMonData(mon, MON_DATA_PP1 + sUnknown_203B16E, &pp1);
+ SetMonData(mon, MON_DATA_PP_BONUSES, &allMovesPPBonuses);
+}
+
+static void sub_81391EC(void)
+{
+ struct BoxPokemon * boxMons;
+ struct BoxPokemon * boxMon;
+
+ u16 move1, move2;
+ u8 pp1, pp2;
+ u8 allMovesPPBonuses;
+ u8 move1ppBonus, move2ppBonus;
+
+ boxMons = sMonSummaryScreen->monList.boxMons;
+ boxMon = &boxMons[GetLastViewedMonIndex()];
+
+ move1 = GetBoxMonData(boxMon, MON_DATA_MOVE1 + sUnknown_203B16D);
+ move2 = GetBoxMonData(boxMon, MON_DATA_MOVE1 + sUnknown_203B16E);
+
+ pp1 = GetBoxMonData(boxMon, MON_DATA_PP1 + sUnknown_203B16D);
+ pp2 = GetBoxMonData(boxMon, MON_DATA_PP1 + sUnknown_203B16E);
+
+ allMovesPPBonuses = GetBoxMonData(boxMon, MON_DATA_PP_BONUSES);
+
+ move1ppBonus = (allMovesPPBonuses & gPPUpGetMask[sUnknown_203B16D]) >> (sUnknown_203B16D * 2);
+ move2ppBonus = (allMovesPPBonuses & gPPUpGetMask[sUnknown_203B16E]) >> (sUnknown_203B16E * 2);
+
+ allMovesPPBonuses &= ~gPPUpGetMask[sUnknown_203B16D];
+ allMovesPPBonuses &= ~gPPUpGetMask[sUnknown_203B16E];
+ allMovesPPBonuses |= (move1ppBonus << (sUnknown_203B16E * 2)) + (move2ppBonus << (sUnknown_203B16D * 2));
+
+ SetBoxMonData(boxMon, MON_DATA_MOVE1 + sUnknown_203B16D, (u8 *)&move2);
+ SetBoxMonData(boxMon, MON_DATA_MOVE1 + sUnknown_203B16E, (u8 *)&move1);
+ SetBoxMonData(boxMon, MON_DATA_PP1 + sUnknown_203B16D, &pp2);
+ SetBoxMonData(boxMon, MON_DATA_PP1 + sUnknown_203B16E, &pp1);
+ SetBoxMonData(boxMon, MON_DATA_PP_BONUSES, &allMovesPPBonuses);
+}
+
+static void sub_8139328(struct Pokemon * mon)
+{
+ if (!sMonSummaryScreen->isBoxMon)
+ {
+ struct Pokemon * partyMons;
+ partyMons = sMonSummaryScreen->monList.mons;
+ *mon = partyMons[GetLastViewedMonIndex()];
+ }
+ else
+ {
+ struct BoxPokemon * boxMons;
+ boxMons = sMonSummaryScreen->monList.boxMons;
+ BoxMonToMon(&boxMons[GetLastViewedMonIndex()], mon);
+ }
+}
+
+static u8 sub_8139388(void)
+{
+ u16 move;
+
+ move = sub_8138BEC(&sMonSummaryScreen->currentMon, sUnknown_203B16D);
+
+ if (IsMoveHm(move) == TRUE && sMonSummaryScreen->mode != PSS_MODE_FORGET_MOVE)
+ return FALSE;
+
+ return TRUE;
+}
+
+static void sub_81393D4(u8 taskId)
+{
+ u8 i;
+
+ switch (sMonSummaryScreen->unk3288)
+ {
+ case 0:
+ BeginNormalPaletteFade(0xffffffff, 0, 16, 0, 0);
+ sMonSummaryScreen->unk3288++;
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ {
+ sub_813B784();
+ sMonSummaryScreen->unk3288++;
+ }
+ break;
+ case 2:
+ if (JOY_NEW(DPAD_UP))
+ {
+ if (sUnknown_203B16D > 0)
+ {
+ sMonSummaryScreen->unk3288 = 3;
+ PlaySE(SE_SELECT);
+ for (i = sUnknown_203B16D; i > 0; i--)
+ if (sMonSummaryScreen->unk325A[i - 1] != 0)
+ {
+ PlaySE(SE_SELECT);
+ sUnknown_203B16D = i - 1;
+ return;
+ }
+ }
+ else
+ {
+ sUnknown_203B16D = 4;
+ sMonSummaryScreen->unk3288 = 3;
+ PlaySE(SE_SELECT);
+ return;
+ }
+ }
+ else if (JOY_NEW(DPAD_DOWN))
+ {
+ if (sUnknown_203B16D < 4)
+ {
+ u8 v0 = 4;
+
+ sMonSummaryScreen->unk3288 = 3;
+
+ if (sMonSummaryScreen->unk3268 == TRUE)
+ v0--;
+
+ for (i = sUnknown_203B16D; i < v0; i++)
+ if (sMonSummaryScreen->unk325A[i + 1] != 0)
+ {
+ PlaySE(SE_SELECT);
+ sUnknown_203B16D = i + 1;
+ return;
+ }
+
+ if (!sMonSummaryScreen->unk3268)
+ {
+ PlaySE(SE_SELECT);
+ sUnknown_203B16D = i;
+ }
+
+ return;
+ }
+ else if (sUnknown_203B16D == 4)
+ {
+ sUnknown_203B16D = 0;
+ sMonSummaryScreen->unk3288 = 3;
+ PlaySE(SE_SELECT);
+ return;
+ }
+ }
+ else if (JOY_NEW(A_BUTTON))
+ {
+ if (sub_8139388() == TRUE || sUnknown_203B16D == 4)
+ {
+ PlaySE(SE_SELECT);
+ sUnknown_203B16E = sUnknown_203B16D;
+ gSpecialVar_0x8005 = sUnknown_203B16E;
+ sMonSummaryScreen->unk3288 = 6;
+ }
+ else
+ {
+ PlaySE(SE_HAZURE);
+ sMonSummaryScreen->unk3288 = 5;
+ }
+ }
+ else if (JOY_NEW(B_BUTTON))
+ {
+ sUnknown_203B16E = 4;
+ gSpecialVar_0x8005 = (u16)sUnknown_203B16E;
+ sMonSummaryScreen->unk3288 = 6;
+ }
+ break;
+ case 3:
+ sub_8136F4C();
+ sub_81374E8();
+ sub_8137BD0();
+ sMonSummaryScreen->unk3288 = 4;
+ break;
+ case 4:
+ if (MenuHelpers_CallLinkSomething() == TRUE || sub_800B270() == TRUE)
+ return;
+
+ CopyWindowToVram(sMonSummaryScreen->unk3000[3], 2);
+ CopyWindowToVram(sMonSummaryScreen->unk3000[4], 2);
+ CopyWindowToVram(sMonSummaryScreen->unk3000[5], 2);
+ CopyWindowToVram(sMonSummaryScreen->unk3000[6], 2);
+ CopyBgTilemapBufferToVram(0);
+ CopyBgTilemapBufferToVram(3);
+ sMonSummaryScreen->unk3288 = 2;
+ break;
+ case 5:
+ FillWindowPixelBuffer(sMonSummaryScreen->unk3000[4], 0);
+ AddTextPrinterParameterized4(sMonSummaryScreen->unk3000[4], 2,
+ 7, 42,
+ 0, 0,
+ sUnknown_8463FA4[0], TEXT_SPEED_FF,
+ gUnknown_8419CB9);
+ CopyWindowToVram(sMonSummaryScreen->unk3000[4], 2);
+ CopyBgTilemapBufferToVram(0);
+ CopyBgTilemapBufferToVram(3);
+ sMonSummaryScreen->unk3288 = 2;
+ break;
+ case 6:
+ BeginNormalPaletteFade(0xffffffff, 0, 0, 16, 0);
+ sMonSummaryScreen->unk3288++;
+ break;
+ default:
+ if (!gPaletteFade.active)
+ sub_8137E64(taskId);
+ break;
+ }
+}
+
+static void sub_8139768(struct Sprite * sprite)
+{
+ if (sMonSummaryScreen->unk3020 >= 2)
+ return;
+
+ if (sUnknown_203B170->unk04++ >= 2)
+ {
+ u8 v0;
+
+ switch (sUnknown_203B170->unk08)
+ {
+ case 0:
+ sprite->pos1.y += sUnknown_8463FBE[sUnknown_203B170->unk00++];
+ v0 = ARRAY_COUNT(sUnknown_8463FBE);
+ break;
+ case 1:
+ sprite->pos1.y += sUnknown_8463FC1[sUnknown_203B170->unk00++];
+ v0 = ARRAY_COUNT(sUnknown_8463FC1);
+ break;
+ case 2:
+ sprite->pos1.y += sUnknown_8463FC6[sUnknown_203B170->unk00++];
+ v0 = ARRAY_COUNT(sUnknown_8463FC6);
+ break;
+ case 3:
+ default:
+ sprite->pos1.y += sUnknown_8463FCD[sUnknown_203B170->unk00++];
+ v0 = ARRAY_COUNT(sUnknown_8463FCD);
+ break;
+ }
+
+ if (sUnknown_203B170->unk00 >= v0)
+ {
+ sUnknown_203B170->unk00 = 0;
+ sMonSummaryScreen->unk3020++;
+ }
+
+ sUnknown_203B170->unk04 = 0;
+ }
+}
+
+static void sub_8139868(struct Sprite * sprite)
+{
+ if (sMonSummaryScreen->unk3020 >= 2)
+ return;
+
+ switch (sUnknown_203B170->unk08)
+ {
+ case 0:
+ default:
+ if (sUnknown_203B170->unk04++ >= 120)
+ {
+ sprite->pos1.x += sUnknown_8463FD4[sUnknown_203B170->unk00];
+ if (++sUnknown_203B170->unk00 >= ARRAY_COUNT(sUnknown_8463FD4))
+ {
+ sUnknown_203B170->unk00 = 0;
+ sUnknown_203B170->unk04 = 0;
+ sMonSummaryScreen->unk3020++;
+ }
+ }
+ break;
+ case 1:
+ if (sUnknown_203B170->unk04++ >= 90)
+ {
+ sprite->pos1.x += sUnknown_8463FDF[sUnknown_203B170->unk00];
+ if (++sUnknown_203B170->unk00 >= ARRAY_COUNT(sUnknown_8463FDF))
+ {
+ sUnknown_203B170->unk00 = 0;
+ sUnknown_203B170->unk04 = 0;
+ sMonSummaryScreen->unk3020++;
+ }
+ }
+ break;
+ case 2:
+ if (sUnknown_203B170->unk04++ >= 60)
+ {
+ sprite->pos1.x += sUnknown_8463FEA[sUnknown_203B170->unk00];
+ if (++sUnknown_203B170->unk00 >= ARRAY_COUNT(sUnknown_8463FEA))
+ {
+ sUnknown_203B170->unk00 = 0;
+ sUnknown_203B170->unk04 = 0;
+ sMonSummaryScreen->unk3020++;
+ }
+ }
+ break;
+ }
+}
+
+static void nullsub_96(struct Sprite * sprite)
+{
+}
+
+static void sub_813995C(void)
+{
+ u16 spriteId;
+ u16 species;
+ u32 personality;
+ u32 trainerId;
+
+ sUnknown_203B170 = AllocZeroed(sizeof(struct Struct203B170));
+
+ species = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES2);
+ personality = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_PERSONALITY);
+ trainerId = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_OT_ID);
+
+ if (sMonSummaryScreen->savedCallback == CB2_ReturnToTradeMenuFromSummary)
+ {
+ if (sMonSummaryScreen->isEnemyParty == TRUE)
+ spriteId = CreateMonPicSprite(species, trainerId, personality, 1, 60, 65, 12, 0xffff, 1);
+ else
+ spriteId = CreateMonPicSprite_HandleDeoxys(species, trainerId, personality, 1, 60, 65, 12, 0xffff);
+ }
+ else
+ {
+ if (sub_804455C(3, sLastViewedMonIndex))
+ spriteId = CreateMonPicSprite(species, trainerId, personality, 1, 60, 65, 12, 0xffff, 1);
+ else
+ spriteId = CreateMonPicSprite_HandleDeoxys(species, trainerId, personality, 1, 60, 65, 12, 0xffff);
+ }
+
+ FreeSpriteOamMatrix(&gSprites[spriteId]);
+
+ if (!IsPokeSpriteNotFlipped(species))
+ gSprites[spriteId].hFlip = TRUE;
+ else
+ gSprites[spriteId].hFlip = FALSE;
+
+ sMonSummaryScreen->unk3010 = spriteId;
+
+ sub_8139C44(1);
+ sub_8139AAC(spriteId);
+}
+
+static void sub_8139AAC(u16 spriteId)
+{
+ u16 curHp;
+ u16 maxHp;
+
+ sMonSummaryScreen->unk3020 = 0;
+
+ if (sMonSummaryScreen->isEgg == TRUE)
+ {
+ u8 friendship = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_FRIENDSHIP);
+
+ if (friendship <= 5)
+ sUnknown_203B170->unk08 = 2;
+ else
+ {
+ if (friendship <= 10)
+ sUnknown_203B170->unk08 = 1;
+ else if (friendship <= 40)
+ sUnknown_203B170->unk08 = 0;
+ }
+
+ gSprites[spriteId].callback = sub_8139868;
+ return;
+ }
+
+ if (sMonSummaryScreen->unk326C != AILMENT_NONE && sMonSummaryScreen->unk326C != AILMENT_PKRS)
+ {
+ if (sMonSummaryScreen->unk326C == AILMENT_FNT)
+ return;
+
+ gSprites[spriteId].callback = nullsub_96;
+ return;
+ }
+
+ curHp = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_HP);
+ maxHp = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MAX_HP);
+
+ if (curHp == maxHp)
+ sUnknown_203B170->unk08 = 3;
+ else if (maxHp * 0.8 <= curHp)
+ sUnknown_203B170->unk08 = 2;
+ else if (maxHp * 0.6 <= curHp)
+ sUnknown_203B170->unk08 = 1;
+ else
+ sUnknown_203B170->unk08 = 0;
+
+ gSprites[spriteId].callback = sub_8139768;
+}
+
+static void sub_8139C44(u8 invisible)
+{
+ gSprites[sMonSummaryScreen->unk3010].invisible = invisible;
+}
+
+static void sub_8139C80(void)
+{
+ FreeAndDestroyMonPicSprite(sMonSummaryScreen->unk3010);
+ FREE_AND_SET_NULL(sUnknown_203B170);
+}
+
+static void sub_8139CB0(void)
+{
+ u16 ballItemId;
+ u8 ballId;
+
+ if (!sMonSummaryScreen->isEgg)
+ ballItemId = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_POKEBALL);
+ else
+ ballItemId = 0;
+
+ ballId = ItemIdToBallId(ballItemId);
+ LoadBallGfx(ballId);
+
+ sMonSummaryScreen->unk300C = CreateSprite(&gBallSpriteTemplates[ballId], 106, 88, 0);
+ gSprites[sMonSummaryScreen->unk300C].callback = SpriteCallbackDummy;
+ gSprites[sMonSummaryScreen->unk300C].oam.priority = 0;
+
+ sub_8139D54(1);
+}
+
+static void sub_8139D54(u8 invisible)
+{
+ gSprites[sMonSummaryScreen->unk300C].invisible = invisible;
+}
+
+static void sub_8139D90(void)
+{
+ DestroySpriteAndFreeResources2(&gSprites[sMonSummaryScreen->unk300C]);
+}
+
+static void sub_8139DBC(void)
+{
+ u16 species;
+ u32 personality;
+
+ species = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES2);
+ personality = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_PERSONALITY);
+
+ SafeLoadMonIconPalette(species);
+
+ if (sMonSummaryScreen->savedCallback == CB2_ReturnToTradeMenuFromSummary)
+ {
+ if (sMonSummaryScreen->isEnemyParty == TRUE)
+ sMonSummaryScreen->unk3014 = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality, 0);
+ else
+ sMonSummaryScreen->unk3014 = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality, 1);
+ }
+ else
+ {
+ if (sub_804455C(3, sLastViewedMonIndex))
+ sMonSummaryScreen->unk3014 = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality, 0);
+ else
+ sMonSummaryScreen->unk3014 = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality, 1);
+ }
+
+ if (!IsPokeSpriteNotFlipped(species))
+ gSprites[sMonSummaryScreen->unk3014].hFlip = TRUE;
+ else
+ gSprites[sMonSummaryScreen->unk3014].hFlip = FALSE;
+
+ sub_8139EE4(1);
+}
+
+static void sub_8139EE4(u8 invisible)
+{
+ gSprites[sMonSummaryScreen->unk3014].invisible = invisible;
+}
+
+static void sub_8139F20(void)
+{
+ u16 species;
+ species = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES2);
+ SafeFreeMonIconPalette(species);
+ DestroyMonIcon(&gSprites[sMonSummaryScreen->unk3014]);
+}
+
+static void sub_8139F64(u16 tileTag, u16 palTag)
+{
+ u8 i;
+ u8 spriteId;
+ void * gfxBufferPtrs[2];
+ gfxBufferPtrs[0] = AllocZeroed(0x20 * 64);
+ gfxBufferPtrs[1] = AllocZeroed(0x20 * 64);
+
+ sUnknown_203B148[0] = AllocZeroed(sizeof(struct Struct203B148));
+ sUnknown_203B148[1] = AllocZeroed(sizeof(struct Struct203B148));
+ sUnknown_203B148[2] = AllocZeroed(sizeof(struct Struct203B148));
+ sUnknown_203B148[3] = AllocZeroed(sizeof(struct Struct203B148));
+
+ LZ77UnCompWram(sUnknown_8463740, gfxBufferPtrs[0]);
+ LZ77UnCompWram(sUnknown_846386C, gfxBufferPtrs[1]);
+
+ for (i = 0; i < 4; i++)
+ {
+ struct SpriteSheet sheet = {
+ .data = gfxBufferPtrs[i % 2],
+ .size = 0x20 * 64,
+ .tag = tileTag + i
+ };
+
+ struct SpritePalette palette = {.data = sUnknown_8463720, .tag = palTag};
+ struct SpriteTemplate template = {
+ .tileTag = tileTag + i,
+ .paletteTag = palTag,
+ .oam = &sUnknown_846398C,
+ .anims = sUnknown_84639A4,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_813A124,
+ };
+
+ LoadSpriteSheet(&sheet);
+ LoadSpritePalette(&palette);
+
+ spriteId = CreateSprite(&template, 64 * (i % 2) + 152, sUnknown_203B16D * 28 + 34, i % 2);
+ sUnknown_203B148[i]->sprite = &gSprites[spriteId];
+ sUnknown_203B148[i]->unk04 = i;
+ sUnknown_203B148[i]->unk06 = tileTag + i;
+ sUnknown_203B148[i]->unk08 = palTag;
+ sUnknown_203B148[i]->sprite->subpriority = i;
+
+ if (i > 1)
+ StartSpriteAnim(sUnknown_203B148[i]->sprite, 1);
+ }
+
+ sub_813A0E8(1);
+
+ FREE_AND_SET_NULL_IF_SET(gfxBufferPtrs[0]);
+ FREE_AND_SET_NULL_IF_SET(gfxBufferPtrs[1]);
+}
+
+static void sub_813A0E8(u8 invisible)
+{
+ u8 i;
+ for (i = 0; i < 4; i++)
+ sUnknown_203B148[i]->sprite->invisible = invisible;
+}
+
+static void sub_813A124(struct Sprite * sprite)
+{
+ u8 i;
+
+ for (i = 0; i < 4; i++)
+ {
+ if (sMonSummaryScreen->unk3268 == TRUE && i > 1)
+ continue;
+
+ sUnknown_203B148[i]->sprite->pos1.y = sUnknown_203B16D * 28 + 34;
+ }
+
+ if (sMonSummaryScreen->unk3268 != TRUE)
+ {
+ if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO)
+ {
+ sUnknown_203B148[0]->sprite->invisible = FALSE;
+ sUnknown_203B148[1]->sprite->invisible = FALSE;
+ }
+ return;
+ }
+
+ for (i = 0; i < 2; i++)
+ {
+ sprite = sUnknown_203B148[i]->sprite;
+ sprite->data[0]++;
+
+ if (sprite->invisible)
+ {
+ if (sprite->data[0] > 60)
+ {
+ sprite->invisible = FALSE;
+ sprite->data[0] = 0;
+ }
+ }
+ else if (sprite->data[0] > 60)
+ {
+ sprite->invisible = TRUE;
+ sprite->data[0] = 0;
+ }
+ }
+}
+
+static void sub_813A21C(void)
+{
+ u8 i;
+
+ for (i = 0; i < 4; i++)
+ {
+ if (sUnknown_203B148[i]->sprite != NULL)
+ DestroySpriteAndFreeResources(sUnknown_203B148[i]->sprite);
+
+ FREE_AND_SET_NULL_IF_SET(sUnknown_203B148[i]);
+ }
+}
+
+static void sub_813A254(u16 tileTag, u16 palTag)
+{
+ u16 spriteId;
+ void * gfxBufferPtr;
+
+ sUnknown_203B158 = AllocZeroed(sizeof(struct Struct203B158));
+ gfxBufferPtr = AllocZeroed(0x20 * 32);
+
+ LZ77UnCompWram(gUnknown_8E9BF48, gfxBufferPtr);
+
+ if (sUnknown_203B158 != NULL)
+ {
+ struct SpriteSheet sheet = {
+ .data = gfxBufferPtr,
+ .size = 0x20 * 32,
+ .tag = tileTag
+ };
+
+ struct SpritePalette palette = {.data = gUnknown_8E9BF28, .tag = palTag};
+ struct SpriteTemplate template = {
+ .tileTag = tileTag,
+ .paletteTag = palTag,
+ .oam = &sUnknown_84639AC,
+ .anims = sUnknown_84639F4,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+ };
+
+ LoadSpriteSheet(&sheet);
+ LoadSpritePalette(&palette);
+
+ spriteId = CreateSprite(&template, 0, 0, 0);
+ sUnknown_203B158->sprite = &gSprites[spriteId];
+ sUnknown_203B158->unk04 = tileTag;
+ sUnknown_203B158->unk06 = palTag;
+ }
+
+ sub_813A3B8(1);
+ sub_813A35C();
+ FREE_AND_SET_NULL_IF_SET(gfxBufferPtr);
+}
+
+static void sub_813A334(void)
+{
+ if (sUnknown_203B158->sprite != NULL)
+ DestroySpriteAndFreeResources(sUnknown_203B158->sprite);
+
+ FREE_AND_SET_NULL_IF_SET(sUnknown_203B158);
+}
+
+static void sub_813A35C(void)
+{
+ sMonSummaryScreen->unk326C = sub_8138C5C(GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_STATUS));
+
+ if (sMonSummaryScreen->unk326C == AILMENT_NONE)
+ {
+ sub_813A3B8(1);
+ return;
+ }
+
+ StartSpriteAnim(sUnknown_203B158->sprite, sMonSummaryScreen->unk326C - 1);
+ sub_813A3B8(0);
+}
+
+static void sub_813A3B8(u8 invisible)
+{
+ if (sMonSummaryScreen->unk326C == AILMENT_NONE || sMonSummaryScreen->isEgg)
+ sUnknown_203B158->sprite->invisible = TRUE;
+ else
+ sUnknown_203B158->sprite->invisible = invisible;
+
+ if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO)
+ {
+ if (sUnknown_203B158->sprite->pos1.y != 45)
+ {
+ sUnknown_203B158->sprite->pos1.x = 16;
+ sUnknown_203B158->sprite->pos1.y = 45;
+ return;
+ }
+ }
+ else if (sUnknown_203B158->sprite->pos1.y != 38)
+ {
+ sUnknown_203B158->sprite->pos1.x = 16;
+ sUnknown_203B158->sprite->pos1.y = 38;
+ return;
+ }
+}
+
+static void sub_813A45C(u16 tileTag, u16 palTag)
+{
+ u8 i;
+ u8 spriteId;
+ void * gfxBufferPtr;
+ u32 curHp;
+ u32 maxHp;
+ u8 hpBarPalTagOffset = 0;
+
+ sUnknown_203B15C = AllocZeroed(sizeof(struct Struct203B15C));
+ gfxBufferPtr = AllocZeroed(0x20 * 12);
+ LZ77UnCompWram(gUnknown_8E9B4B8, gfxBufferPtr);
+
+ curHp = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_HP);
+ maxHp = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MAX_HP);
+
+ if (maxHp / 4 > curHp)
+ hpBarPalTagOffset = 2;
+ else if (maxHp / 2 > curHp)
+ hpBarPalTagOffset = 1;
+
+ if (gfxBufferPtr != NULL)
+ {
+ struct SpriteSheet sheet = {
+ .data = gfxBufferPtr,
+ .size = 0x20 * 12,
+ .tag = tileTag
+ };
+
+ struct SpritePalette palette1 = {.data = sUnknown_8463FFC[0], .tag = palTag};
+ struct SpritePalette palette2 = {.data = sUnknown_8463FFC[1], .tag = palTag + 1};
+ struct SpritePalette palette3 = {.data = sUnknown_8463FFC[2], .tag = palTag + 2};
+
+ LoadSpriteSheet(&sheet);
+ LoadSpritePalette(&palette1);
+ LoadSpritePalette(&palette2);
+ LoadSpritePalette(&palette3);
+ }
+
+ for (i = 0; i < 9; i++)
+ {
+ struct SpriteTemplate template = {
+ .tileTag = tileTag,
+ .paletteTag = palTag + hpBarPalTagOffset,
+ .oam = &sUnknown_8463A14,
+ .anims = sUnknown_8463A7C,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+ };
+
+ sUnknown_203B15C->unk28[i] = i * 8 + 172;
+ spriteId = CreateSprite(&template, sUnknown_203B15C->unk28[i], 36, 0);
+ sUnknown_203B15C->sprites[i] = &gSprites[spriteId];
+ sUnknown_203B15C->sprites[i]->invisible = FALSE;
+ sUnknown_203B15C->sprites[i]->oam.priority = 2;
+ sUnknown_203B15C->unk3C = tileTag;
+ sUnknown_203B15C->unk3E = palTag;
+ StartSpriteAnim(sUnknown_203B15C->sprites[i], 8);
+ }
+
+ sub_813A620();
+ sub_813A838(1);
+
+ FREE_AND_SET_NULL_IF_SET(gfxBufferPtr);
+}
+
+static void sub_813A620(void)
+{
+ u8 numWholeHpBarTiles = 0;
+ u8 i;
+ u8 animNum;
+ u8 two = 2;
+ u8 hpBarPalOffset = 0;
+ u32 curHp;
+ u32 maxHp;
+ s64 v0;
+ s64 v1;
+
+ if (sMonSummaryScreen->isEgg)
+ return;
+
+ curHp = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_HP);
+ maxHp = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MAX_HP);
+
+ if (maxHp / 5 >= curHp)
+ hpBarPalOffset = 2;
+ else if (maxHp / 2 >= curHp)
+ hpBarPalOffset = 1;
+
+ switch (GetHPBarLevel(curHp, maxHp))
+ {
+ case 3:
+ default:
+ hpBarPalOffset = 0;
+ break;
+ case 2:
+ hpBarPalOffset = 1;
+ break;
+ case 1:
+ hpBarPalOffset = 2;
+ break;
+ }
+
+ for (i = 0; i < 9; i++)
+ sUnknown_203B15C->sprites[i]->oam.paletteNum = IndexOfSpritePaletteTag(TAG_PSS_UNK_78) + hpBarPalOffset;
+
+ if (curHp == maxHp)
+ for (i = two; i < 8; i++)
+ StartSpriteAnim(sUnknown_203B15C->sprites[i], 8);
+
+ else
+ {
+ v0 = (maxHp << 2) / 6;
+ v1 = (curHp << 2);
+
+ while (TRUE)
+ {
+ if (v1 <= v0)
+ break;
+ v1 -= v0;
+ numWholeHpBarTiles++;
+ }
+
+ numWholeHpBarTiles += two;
+
+ for (i = two; i < numWholeHpBarTiles; i++)
+ StartSpriteAnim(sUnknown_203B15C->sprites[i], 8);
+
+ animNum = (v1 * 6) / v0;
+ StartSpriteAnim(sUnknown_203B15C->sprites[numWholeHpBarTiles], animNum);
+
+ for (i = numWholeHpBarTiles + 1; i < 8; i++)
+ StartSpriteAnim(sUnknown_203B15C->sprites[i], 0);
+ }
+
+ StartSpriteAnim(sUnknown_203B15C->sprites[0], 9);
+ StartSpriteAnim(sUnknown_203B15C->sprites[1], 10);
+ StartSpriteAnim(sUnknown_203B15C->sprites[8], 11);
+}
+
+static void sub_813A800(void)
+{
+ u8 i;
+
+ for (i = 0; i < 9; i++)
+ if (sUnknown_203B15C->sprites[i] != NULL)
+ DestroySpriteAndFreeResources(sUnknown_203B15C->sprites[i]);
+
+ FREE_AND_SET_NULL_IF_SET(sUnknown_203B15C);
+}
+
+static void sub_813A838(u8 invisible)
+{
+ u8 i;
+
+ for (i = 0; i < 9; i++)
+ sUnknown_203B15C->sprites[i]->invisible = invisible;
+}
+
+static void sub_813A874(u16 tileTag, u16 palTag)
+{
+ u8 i;
+ u8 spriteId;
+ void * gfxBufferPtr;
+
+ sUnknown_203B160 = AllocZeroed(sizeof(struct Struct203B160));
+ gfxBufferPtr = AllocZeroed(0x20 * 12);
+
+ LZ77UnCompWram(gUnknown_8E9B3F0, gfxBufferPtr);
+ if (gfxBufferPtr != NULL)
+ {
+ struct SpriteSheet sheet = {
+ .data = gfxBufferPtr,
+ .size = 0x20 * 12,
+ .tag = tileTag
+ };
+
+ struct SpritePalette palette = {.data = gUnknown_8E9B578, .tag = palTag};
+ LoadSpriteSheet(&sheet);
+ LoadSpritePalette(&palette);
+ }
+
+ for (i = 0; i < 11; i++)
+ {
+ struct SpriteTemplate template = {
+ .tileTag = tileTag,
+ .paletteTag = palTag,
+ .oam = &sUnknown_8463A14,
+ .anims = sUnknown_8463A7C,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+ };
+
+ sUnknown_203B160->unk2C[i] = i * 8 + 156;
+ spriteId = CreateSprite(&template, sUnknown_203B160->unk2C[i], 132, 0);
+ sUnknown_203B160->sprites[i] = &gSprites[spriteId];
+ sUnknown_203B160->sprites[i]->oam.priority = 2;
+ sUnknown_203B160->unk42 = tileTag;
+ sUnknown_203B160->unk44 = palTag;
+ }
+
+ sub_813A994();
+ sub_813AB70(1);
+
+ FREE_AND_SET_NULL_IF_SET(gfxBufferPtr);
+}
+
+static void sub_813A994(void)
+{
+ u8 numWholeExpBarTiles = 0;
+ u8 i;
+ u8 level;
+ u32 exp;
+ u32 totalExpToNextLevel;
+ u32 curExpToNextLevel;
+ u16 species;
+ s64 v0;
+ s64 v1;
+ u8 animNum;
+ u8 two = 2;
+
+ if (sMonSummaryScreen->isEgg)
+ return;
+
+ exp = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_EXP);
+ level = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_LEVEL);
+ species = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES);
+
+ if (level < 100)
+ {
+ totalExpToNextLevel = gExperienceTables[gBaseStats[species].growthRate][level + 1] - gExperienceTables[gBaseStats[species].growthRate][level];
+ curExpToNextLevel = exp - gExperienceTables[gBaseStats[species].growthRate][level];
+ v0 = ((totalExpToNextLevel << 2) / 8);
+ v1 = (curExpToNextLevel << 2);
+
+ while (TRUE)
+ {
+ if (v1 <= v0)
+ break;
+ v1 -= v0;
+ numWholeExpBarTiles++;
+ }
+
+ numWholeExpBarTiles += two;
+
+ for (i = two; i < numWholeExpBarTiles; i++)
+ StartSpriteAnim(sUnknown_203B160->sprites[i], 8);
+
+ if (numWholeExpBarTiles >= 10)
+ {
+ if (totalExpToNextLevel == curExpToNextLevel)
+ return;
+ else
+ StartSpriteAnim(sUnknown_203B160->sprites[9], 7);
+ }
+
+ animNum = (v1 * 8) / v0;
+ StartSpriteAnim(sUnknown_203B160->sprites[numWholeExpBarTiles], animNum);
+
+ for (i = numWholeExpBarTiles + 1; i < 10; i++)
+ StartSpriteAnim(sUnknown_203B160->sprites[i], 0);
+ }
+ else
+ for (i = two; i < 10; i++)
+ StartSpriteAnim(sUnknown_203B160->sprites[i], 0);
+
+ StartSpriteAnim(sUnknown_203B160->sprites[0], 9);
+ StartSpriteAnim(sUnknown_203B160->sprites[1], 10);
+ StartSpriteAnim(sUnknown_203B160->sprites[10], 11);
+}
+
+static void sub_813AB38(void)
+{
+ u8 i;
+
+ for (i = 0; i < 11; i++)
+ if (sUnknown_203B160->sprites[i] != NULL)
+ DestroySpriteAndFreeResources(sUnknown_203B160->sprites[i]);
+
+ FREE_AND_SET_NULL_IF_SET(sUnknown_203B160);
+}
+
+static void sub_813AB70(u8 invisible)
+{
+ u8 i;
+
+ for (i = 0; i < 11; i++)
+ sUnknown_203B160->sprites[i]->invisible = invisible;
+}
+
+static void sub_813ABAC(u16 tileTag, u16 palTag)
+{
+ u16 spriteId;
+ void * gfxBufferPtr;
+
+ sUnknown_203B164 = AllocZeroed(sizeof(struct Struct203B164));
+ gfxBufferPtr = AllocZeroed(0x20 * 1);
+
+ LZ77UnCompWram(sUnknown_8463B20, gfxBufferPtr);
+
+ if (sUnknown_203B164 != NULL)
+ {
+ struct SpriteSheet sheet = {
+ .data = gfxBufferPtr,
+ .size = 0x20 * 1,
+ .tag = tileTag
+ };
+
+ struct SpritePalette palette = {.data = sUnknown_8463B00, .tag = palTag};
+ struct SpriteTemplate template = {
+ .tileTag = tileTag,
+ .paletteTag = palTag,
+ .oam = &sUnknown_8463AEC,
+ .anims = sUnknown_8463AFC,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+ };
+
+ LoadSpriteSheet(&sheet);
+ LoadSpritePalette(&palette);
+
+ spriteId = CreateSprite(&template, 114, 92, 0);
+ sUnknown_203B164->sprite = &gSprites[spriteId];
+ sUnknown_203B164->unk04 = tileTag;
+ sUnknown_203B164->unk06 = palTag;
+ }
+
+ sub_813ACF8(1);
+ sub_813ACB4();
+
+ FREE_AND_SET_NULL_IF_SET(gfxBufferPtr);
+}
+
+static void sub_813AC8C(void)
+{
+ if (sUnknown_203B164->sprite != NULL)
+ DestroySpriteAndFreeResources(sUnknown_203B164->sprite);
+
+ FREE_AND_SET_NULL_IF_SET(sUnknown_203B164);
+}
+
+static void sub_813ACB4(void)
+{
+ if (!CheckPartyPokerus(&sMonSummaryScreen->currentMon, 0)
+ && CheckPartyHasHadPokerus(&sMonSummaryScreen->currentMon, 0))
+ sub_813ACF8(0);
+ else
+ sub_813ACF8(1);
+}
+
+static void sub_813ACF8(u8 invisible)
+{
+ if (!CheckPartyPokerus(&sMonSummaryScreen->currentMon, 0)
+ && CheckPartyHasHadPokerus(&sMonSummaryScreen->currentMon, 0))
+ {
+ sUnknown_203B164->sprite->invisible = invisible;
+ return;
+ }
+ else
+ sUnknown_203B164->sprite->invisible = TRUE;
+
+ if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO)
+ {
+ sUnknown_203B164->sprite->invisible = TRUE;
+ sUnknown_203B164->sprite->pos1.x = 16;
+ sUnknown_203B164->sprite->pos1.y = 44;
+ }
+ else
+ {
+ sUnknown_203B164->sprite->pos1.x = 114;
+ sUnknown_203B164->sprite->pos1.y = 92;
+ }
+}
+
+static void sub_813ADA8(u16 tileTag, u16 palTag)
+{
+ u16 spriteId;
+ void * gfxBufferPtr;
+
+ sUnknown_203B168 = AllocZeroed(sizeof(struct Struct203B168));
+ gfxBufferPtr = AllocZeroed(0x20 * 2);
+
+ LZ77UnCompWram(sUnknown_8463B64, gfxBufferPtr);
+
+ if (sUnknown_203B168 != NULL)
+ {
+ struct SpriteSheet sheet = {
+ .data = gfxBufferPtr,
+ .size = 0x20 * 2,
+ .tag = tileTag
+ };
+
+ struct SpritePalette palette = {.data = sUnknown_8463B44, .tag = palTag};
+ struct SpriteTemplate template = {
+ .tileTag = tileTag,
+ .paletteTag = palTag,
+ .oam = &sUnknown_8463B30,
+ .anims = sUnknown_8463B40,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+ };
+
+ LoadSpriteSheet(&sheet);
+ LoadSpritePalette(&palette);
+ spriteId = CreateSprite(&template, 106, 40, 0);
+ sUnknown_203B168->sprite = &gSprites[spriteId];
+ sUnknown_203B168->unk04 = tileTag;
+ sUnknown_203B168->unk06 = palTag;
+ }
+
+ sub_813AEB0(1);
+ sub_813AF50();
+
+ FREE_AND_SET_NULL_IF_SET(gfxBufferPtr);
+}
+
+static void sub_813AE88(void)
+{
+ if (sUnknown_203B168->sprite != NULL)
+ DestroySpriteAndFreeResources(sUnknown_203B168->sprite);
+
+ FREE_AND_SET_NULL_IF_SET(sUnknown_203B168);
+}
+
+static void sub_813AEB0(u8 invisible)
+{
+ if (IsMonShiny(&sMonSummaryScreen->currentMon) == TRUE
+ && !sMonSummaryScreen->isEgg)
+ sUnknown_203B168->sprite->invisible = invisible;
+ else
+ sUnknown_203B168->sprite->invisible = TRUE;
+
+ if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO)
+ {
+ sUnknown_203B168->sprite->pos1.x = 8;
+ sUnknown_203B168->sprite->pos1.y = 24;
+ }
+ else
+ {
+ sUnknown_203B168->sprite->pos1.x = 106;
+ sUnknown_203B168->sprite->pos1.y = 40;
+ }
+}
+
+static void sub_813AF50(void)
+{
+ if (IsMonShiny(&sMonSummaryScreen->currentMon) == TRUE && !sMonSummaryScreen->isEgg)
+ sub_813AEB0(0);
+ else
+ sub_813AEB0(1);
+}
+
+static void sub_813AF90(void)
+{
+ sub_813A21C();
+ sub_813A800();
+ sub_813AB38();
+ sub_8139C80();
+ sub_8139F20();
+ sub_8139D90();
+ sub_813B068();
+ sub_813A334();
+ sub_813AC8C();
+ sub_813AE88();
+ ResetSpriteData();
+}
+
+static void sub_813AFC4(void)
+{
+ sub_8139CB0();
+ sub_8139D54(0);
+ sub_8139DBC();
+ sub_813995C();
+ sub_8139C44(0);
+ sub_813A620();
+ sub_813A994();
+ sub_813B0E4();
+ sub_813A35C();
+ sub_813ACB4();
+ sub_813AF50();
+}
+
+static void sub_813AFFC(void)
+{
+ u32 markings = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MARKINGS);
+
+ DestroySpriteAndFreeResources(sMonSummaryScreen->markingSprite);
+ sMonSummaryScreen->markingSprite = CreateMonMarkingSprite_SelectCombo(TAG_PSS_UNK_8C, TAG_PSS_UNK_8C, sUnknown_84636E0);
+
+ if (sMonSummaryScreen->markingSprite != NULL)
+ {
+ StartSpriteAnim(sMonSummaryScreen->markingSprite, markings);
+ sMonSummaryScreen->markingSprite->pos1.x = 20;
+ sMonSummaryScreen->markingSprite->pos1.y = 91;
+ }
+
+ sub_813B084(1);
+}
+
+static void sub_813B068(void)
+{
+ DestroySpriteAndFreeResources(sMonSummaryScreen->markingSprite);
+}
+
+static void sub_813B084(u8 invisible)
+{
+ u32 markings = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MARKINGS);
+
+ if (markings == 0)
+ sMonSummaryScreen->markingSprite->invisible = TRUE;
+ else
+ sMonSummaryScreen->markingSprite->invisible = invisible;
+}
+
+static void sub_813B0E4(void)
+{
+ u32 markings = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MARKINGS);
+
+ StartSpriteAnim(sMonSummaryScreen->markingSprite, markings);
+ sub_813B084(0);
+}
+
+static void sub_813B120(u8 taskId, s8 a1)
+{
+ s8 v0 = -1;
+
+ if (sMonSummaryScreen->isBoxMon == TRUE)
+ {
+ if (sMonSummaryScreen->curPageIndex != 0)
+ {
+ if (a1 == 1)
+ a1 = 0;
+ else
+ a1 = 2;
+ }
+ else
+ {
+ if (a1 == 1)
+ a1 = 1;
+ else
+ a1 = 3;
+ }
+
+ v0 = SeekToNextMonInBox(sMonSummaryScreen->monList.boxMons, GetLastViewedMonIndex(), sMonSummaryScreen->lastIndex, (u8)a1);
+ }
+ else
+ {
+ if (IsUpdateLinkStateCBActive() == FALSE
+ && gReceivedRemoteLinkPlayers == 1
+ && IsMultiBattle() == TRUE)
+ v0 = sub_813B38C(a1);
+ else
+ v0 = sub_813B20C(a1);
+ }
+
+ if (v0 == -1)
+ return;
+
+ sLastViewedMonIndex = v0;
+ CreateTask(sub_813B3F0, 0);
+ sMonSummaryScreen->unk328C = 0;
+}
+
+static s8 sub_813B20C(s8 a0)
+{
+ struct Pokemon * partyMons = sMonSummaryScreen->monList.mons;
+ s8 v1 = 0;
+
+ if (sMonSummaryScreen->curPageIndex == 0)
+ {
+ if (a0 == -1 && sLastViewedMonIndex == 0)
+ return -1;
+ else if (a0 == 1 && sLastViewedMonIndex >= sMonSummaryScreen->lastIndex)
+ return -1;
+ else
+ return sLastViewedMonIndex + a0;
+ }
+
+ while (TRUE)
+ {
+ v1 += a0;
+ if (0 > sLastViewedMonIndex + v1 || sLastViewedMonIndex + v1 > sMonSummaryScreen->lastIndex)
+ return -1;
+
+ if (GetMonData(&partyMons[sLastViewedMonIndex + v1], MON_DATA_IS_EGG) == 0)
+ return sLastViewedMonIndex + v1;
+ }
+
+ return -1;
+}
+
+static u8 sub_813B2C8(struct Pokemon * partyMons)
+{
+ if (GetMonData(partyMons, MON_DATA_SPECIES) != 0 && (sMonSummaryScreen->curPageIndex != 0 || GetMonData(partyMons, MON_DATA_IS_EGG) == 0))
+ return TRUE;
+
+ return FALSE;
+}
+
+static s8 sub_813B304(u8 a0)
+{
+ while (TRUE)
+ {
+ a0++;
+
+ if (a0 == 6)
+ return -1;
+ if (sub_813B2C8(&gPlayerParty[sUnknown_8463FB8[a0]]) == TRUE)
+ break;
+ }
+
+ return (s8)sUnknown_8463FB8[a0];
+}
+
+static s8 sub_813B348(u8 a0)
+{
+ while (1)
+ {
+ if (a0 == 0)
+ return -1;
+
+ a0--;
+
+ if (sub_813B2C8(&gPlayerParty[sUnknown_8463FB8[a0]]) == TRUE)
+ break;
+ }
+
+ return (s8)(sUnknown_8463FB8[a0]);
+}
+
+static s8 sub_813B38C(s8 a0)
+{
+ u8 v0 = 0;
+ u8 i;
+
+ for (i = 0; i < PARTY_SIZE; i++)
+ if (sUnknown_8463FB8[i] == GetLastViewedMonIndex())
+ {
+ v0 = i;
+ break;
+ }
+
+ if ((a0 == -1 && v0 == 0)
+ || (a0 == 1 && v0 == 5))
+ return -1;
+
+ if (a0 == 1)
+ return sub_813B304(v0);
+ else
+ return sub_813B348(v0);
+}
+
+static void sub_813B3F0(u8 id)
+{
+ switch (sMonSummaryScreen->unk328C)
+ {
+ case 0:
+ StopCryAndClearCrySongs();
+ sUnknown_203B16D = 0;
+ sUnknown_203B16E = 0;
+ sMonSummaryScreen->unk328C++;
+ break;
+ case 1:
+ sub_8139C80();
+ sub_8139F20();
+ sub_8139D90();
+ sMonSummaryScreen->unk328C++;
+ break;
+ case 2:
+ sub_8138B8C(&sMonSummaryScreen->currentMon);
+
+ sMonSummaryScreen->isEgg = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_IS_EGG);
+ sMonSummaryScreen->isBadEgg = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SANITY_IS_BAD_EGG);
+
+ if (sMonSummaryScreen->isBadEgg == TRUE)
+ sMonSummaryScreen->isEgg = TRUE;
+
+ sMonSummaryScreen->unk328C++;
+ break;
+ case 3:
+ FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20);
+
+ if (IsMonShiny(&sMonSummaryScreen->currentMon) == TRUE && !sMonSummaryScreen->isEgg)
+ {
+ LoadPalette(&gUnknown_8E9B310[16 * 6], 0, 0x20);
+ LoadPalette(&gUnknown_8E9B310[16 * 5], 0x10, 0x20);
+ }
+ else
+ {
+ LoadPalette(&gUnknown_8E9B310[16 * 0], 0, 0x20);
+ LoadPalette(&gUnknown_8E9B310[16 * 1], 0x10, 0x20);
+ }
+
+ sMonSummaryScreen->unk328C++;
+ break;
+ case 4:
+ if (sMonSummaryScreen->curPageIndex == PSS_PAGE_INFO)
+ {
+ if (sMonSummaryScreen->isEgg)
+ {
+ CopyToBgTilemapBuffer(sMonSummaryScreen->unk323C, gUnknown_8E9BBCC, 0, 0);
+ CopyToBgTilemapBuffer(sMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0);
+ }
+ else
+ {
+ CopyToBgTilemapBuffer(sMonSummaryScreen->unk323C, gUnknown_8E9B598, 0, 0);
+ CopyToBgTilemapBuffer(sMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0);
+ }
+ }
+ sMonSummaryScreen->unk328C++;
+ break;
+ case 5:
+ sub_81360D4();
+ sMonSummaryScreen->unk328C++;
+ break;
+ case 6:
+ if (!sMonSummaryScreen->isEgg)
+ sub_8136350();
+
+ sMonSummaryScreen->unk328C++;
+ break;
+ case 7:
+ if (!sMonSummaryScreen->isEgg)
+ sub_81367B0();
+
+ sMonSummaryScreen->unk328C++;
+ break;
+ case 8:
+ sub_8136F4C();
+ sub_81374E8();
+ sub_8137BD0();
+ sMonSummaryScreen->unk328C++;
+ break;
+ case 9:
+ sub_8138A38();
+ sub_8138538();
+ sub_8137D28(sMonSummaryScreen->curPageIndex);
+ sMonSummaryScreen->unk328C++;
+ break;
+ case 10:
+ CopyWindowToVram(sMonSummaryScreen->unk3000[0], 2);
+ CopyWindowToVram(sMonSummaryScreen->unk3000[1], 2);
+ CopyWindowToVram(sMonSummaryScreen->unk3000[2], 2);
+ CopyWindowToVram(sMonSummaryScreen->unk3000[6], 2);
+ CopyWindowToVram(sMonSummaryScreen->unk3000[3], 2);
+ CopyWindowToVram(sMonSummaryScreen->unk3000[4], 2);
+ CopyWindowToVram(sMonSummaryScreen->unk3000[5], 2);
+ CopyBgTilemapBufferToVram(0);
+ CopyBgTilemapBufferToVram(2);
+ CopyBgTilemapBufferToVram(3);
+ sMonSummaryScreen->unk328C++;
+ break;
+ case 11:
+ if (!Overworld_LinkRecvQueueLengthMoreThan2() && !sub_800B270())
+ {
+ sub_813AFC4();
+ sub_813B784();
+ sMonSummaryScreen->unk328C++;
+ }
+ break;
+ default:
+ sMonSummaryScreen->unk328C = 0;
+ DestroyTask(id);
+ break;
+ }
+}
+
+static void sub_813B750(u8 curPageIndex)
+{
+ ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN1_ON);
+
+ switch (curPageIndex)
+ {
+ case PSS_PAGE_INFO:
+ case PSS_PAGE_SKILLS:
+ case PSS_PAGE_MOVES:
+ SetGpuReg(REG_OFFSET_DISPCNT, GetGpuReg(REG_OFFSET_DISPCNT) | DISPCNT_WIN1_ON);
+ break;
+ default:
+ break;
+ }
+}
+
+static void sub_813B784(void)
+{
+ if (!GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_IS_EGG))
+ {
+ if (ShouldPlayNormalPokeCry(&sMonSummaryScreen->currentMon) == TRUE)
+ PlayCry3(GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES2), 0, 0);
+ else
+ PlayCry3(GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES2), 0, 11);
+ }
+}
+
+static bool32 sub_813B7E0(u8 nature)
+{
+ if (nature == NATURE_BOLD || nature == NATURE_GENTLE)
+ return TRUE;
+
+ return FALSE;
+}
+
+static bool32 sub_813B7F8(void)
+{
+ u8 version = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MET_GAME);
+
+ if (version == VERSION_LEAF_GREEN
+ || version == VERSION_FIRE_RED
+ || version == VERSION_RUBY
+ || version == VERSION_SAPPHIRE
+ || version == VERSION_EMERALD)
+ return TRUE;
+
+ return FALSE;
+}
+
+static bool32 sub_813B838(u8 place)
+{
+ if (place >= MAPSECS_KANTO && place < MAPSEC_NONE)
+ return TRUE;
+ return FALSE;
+}
+
+static void sub_813B854(void)
+{
+ ShowPokemonSummaryScreen(0, 0, 0, CB2_ReturnToField, PSS_MODE_NORMAL);
+}
diff --git a/src/tm_case.c b/src/tm_case.c
index 060723949..c7aaa29cc 100644
--- a/src/tm_case.c
+++ b/src/tm_case.c
@@ -298,7 +298,7 @@ static void CB2_SetUpTMCaseUI_Blocking(void)
{
while (1)
{
- if ((u8)MenuHelpers_CallLinkSomething() == TRUE)
+ if (MenuHelpers_CallLinkSomething() == TRUE)
break;
if (DoSetUpTMCaseUI() == TRUE)
break;
@@ -727,7 +727,7 @@ static void Task_TMCaseMain(u8 taskId)
if (!gPaletteFade.active)
{
- if ((u8)MenuHelpers_CallLinkSomething() != TRUE)
+ if (MenuHelpers_CallLinkSomething() != TRUE)
{
input = ListMenu_ProcessInput(data[0]);
ListMenuGetScrollAndRow(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
@@ -808,7 +808,7 @@ static void Task_TMContextMenu_HandleInput(u8 taskId)
{
s8 input;
- if ((u8)MenuHelpers_CallLinkSomething() != TRUE)
+ if (MenuHelpers_CallLinkSomething() != TRUE)
{
input = Menu_ProcessInputNoWrapAround();
switch (input)
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 9b16b6723..d92def7f2 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -232,45 +232,8 @@
.include "src/tm_case.o"
.align 2
.include "src/menu_indicators.o"
-
.align 2
- @ .include "src/pokemon_summary_screen.o"
-gUnknown_203B140: @ 203B140
- .space 0x4
-
-gUnknown_203B144: @ 203B144
- .space 0x4
-
-gUnknown_203B148: @ 203B148
- .space 0x10
-
-gUnknown_203B158: @ 203B158
- .space 0x4
-
-gUnknown_203B15C: @ 203B15C
- .space 0x4
-
-gUnknown_203B160: @ 203B160
- .space 0x4
-
-gUnknown_203B164: @ 203B164
- .space 0x4
-
-gUnknown_203B168: @ 203B168
- .space 0x4
-
-gLastViewedMonIndex: @ 203B16C
- .space 0x1
-
-gUnknown_203B16D: @ 203B16D
- .space 0x1
-
-gUnknown_203B16E: @ 203B16E
- .space 0x2
-
-gUnknown_203B170: @ 203B170
- .space 0x4
-
+ .include "src/pokemon_summary_screen.o"
.align 2
.include "src/help_system.o"
.align 2