diff options
-rw-r--r-- | .gitattributes | 4 | ||||
-rw-r--r-- | Makefile | 10 | ||||
-rw-r--r-- | asm/pokemon_summary_screen.s | 14106 | ||||
-rw-r--r-- | compare.sh | 11 | ||||
-rw-r--r-- | constants/misc_constants.inc | 2 | ||||
-rw-r--r-- | data/pokemon_summary_screen.s | 439 | ||||
-rw-r--r-- | include/constants/global.h | 1 | ||||
-rw-r--r-- | include/main.h | 4 | ||||
-rw-r--r-- | include/menu_helpers.h | 2 | ||||
-rw-r--r-- | include/pokemon_icon.h | 2 | ||||
-rw-r--r-- | include/pokemon_summary_screen.h | 53 | ||||
-rw-r--r-- | include/strings.h | 48 | ||||
-rw-r--r-- | include/text.h | 1 | ||||
-rw-r--r-- | include/trade.h | 1 | ||||
-rw-r--r-- | include/trainer_pokemon_sprites.h | 2 | ||||
-rw-r--r-- | ld_script.txt | 4 | ||||
-rw-r--r-- | ld_script_modern.txt | 14 | ||||
-rw-r--r-- | replace.sh | 9 | ||||
-rw-r--r-- | src/berry_pouch.c | 6 | ||||
-rw-r--r-- | src/data/text/nature_names.h | 54 | ||||
-rw-r--r-- | src/item_menu.c | 8 | ||||
-rw-r--r-- | src/item_pc.c | 2 | ||||
-rw-r--r-- | src/menu_helpers.c | 4 | ||||
-rw-r--r-- | src/option_menu.c | 6 | ||||
-rw-r--r-- | src/pokemon_storage_system.c | 6 | ||||
-rw-r--r-- | src/pokemon_summary_screen.c | 5198 | ||||
-rw-r--r-- | src/tm_case.c | 6 | ||||
-rw-r--r-- | sym_ewram.txt | 39 |
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 @@ -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 |