From ed41e2b95e854695a8ff67a30b28ad59dfe2195c Mon Sep 17 00:00:00 2001 From: luckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com> Date: Sat, 25 Apr 2020 10:57:24 -0400 Subject: [PATCH 01/25] Add readelf.py for extracting syms. --- Makefile | 2 +- tools/analyze_source/readelf.py | 92 +++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 tools/analyze_source/readelf.py diff --git a/Makefile b/Makefile index 0e9901e30..22eb95ba1 100644 --- a/Makefile +++ b/Makefile @@ -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)) diff --git a/tools/analyze_source/readelf.py b/tools/analyze_source/readelf.py new file mode 100644 index 000000000..0e36777b4 --- /dev/null +++ b/tools/analyze_source/readelf.py @@ -0,0 +1,92 @@ +import re +import subprocess +from collections import namedtuple +import sys +import os +import argparse + +class SymInfo: + __slots__ = ("value", "scope", "debug", "type", "section", "name", "size") + def __init__(self, *sym_list, **kwargs): + self.value = sym_list[0] + self.scope = sym_list[1] + self.debug = sym_list[2] + self.type = sym_list[3] + self.section = sym_list[4] + self.size = sym_list[5] + self.name = sym_list[6] + +sym_line_regex = re.compile(r"^([0-9a-f]{8}) (.).{4}(.)(.) ([^\t]+)\t([0-9a-f]{8}) (\S+)$") + +def make_and_read_syms(): + nproc_value = subprocess.check_output(["nproc"]).decode("utf-8").strip() + subprocess.check_call(["make", "-j" + nproc_value]) + return read_syms() + +def read_syms(): + syms = [] + syms_small = set() + + print("Reading syms...") + + objdump_path = "./tools/binutils/bin/arm-none-eabi-objdump" + if 'win' in os.name: + output = subprocess.check_output([objdump_path + ".exe", "-t", "pokefirered.elf"]) + else: + output = subprocess.check_output([objdump_path, "-t", "pokefirered.elf"]) + + lines = output.splitlines()[4:] + + for line in lines: + try: + sym_tuple = sym_line_regex.findall(line.decode("utf-8"))[0] + except IndexError: + break + + sym_list = list(sym_tuple) + sym_list[0] = int(sym_list[0], 16) + sym_list[5] = int(sym_list[5], 16) + + temp_small_sym = (sym_list[0], sym_list[5], sym_list[6]) + if temp_small_sym not in syms_small: + syms_small.add(temp_small_sym) + syms.append(SymInfo(*sym_list)) + + print("Done reading syms!") + return syms + +if __name__ == "__main__": + SIMPLE = True + ap = argparse.ArgumentParser() + ap.add_argument("-m", "--make", dest="make", action="store_true") + ap.add_argument("-p", "--path", dest="input_path") + args = ap.parse_args() + + if args.input_path is None and os.path.basename(os.getcwd()) == "analyze_source": + os.chdir("../..") + elif args.input_path is not None: + os.chdir(args.input_path) + + if args.make: + syms = make_and_read_syms() + else: + syms = read_syms() + + print("Size: %s" % sys.getsizeof(syms)) + sym_dump_output = "" + cfg_output = "" + highest_sym_value = 0 + sorted_syms = sorted(syms, key=lambda kv: kv.value) + for sym_info in sorted_syms: + if SIMPLE: + sym_dump_output += f"{sym_info.value:08x} {sym_info.name} (size: 0x{sym_info.size:x})\n" + else: + sym_dump_output += "{}: value={:08x}, size=0x{:x}, scope=\"{}\", debug=\"{}\", type=\"{}\", section=\"{}\"\n".format(sym_info.name, sym_info.value, sym_info.size, sym_info.scope, sym_info.debug, sym_info.type, sym_info.section) + if sym_info.type == "F" and sym_info.value >= 0x8000000: + cfg_output += "{} 0x{:x} {}\n".format("thumb_func", sym_info.value, sym_info.name) + + with open("pokefirered_syms.dump", "w+") as f: + f.write(sym_dump_output) + + #with open("bn6f.cfg", "w+") as f: + # f.write(cfg_output) From 794b0a1a9b10eb218f93bacee344c33e70e038d1 Mon Sep 17 00:00:00 2001 From: luckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com> Date: Sat, 13 Jun 2020 13:37:02 -0400 Subject: [PATCH 02/25] Add 0x to sym value for readelf.py --- tools/analyze_source/readelf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/analyze_source/readelf.py b/tools/analyze_source/readelf.py index 0e36777b4..a275b0a4b 100644 --- a/tools/analyze_source/readelf.py +++ b/tools/analyze_source/readelf.py @@ -79,7 +79,7 @@ if __name__ == "__main__": sorted_syms = sorted(syms, key=lambda kv: kv.value) for sym_info in sorted_syms: if SIMPLE: - sym_dump_output += f"{sym_info.value:08x} {sym_info.name} (size: 0x{sym_info.size:x})\n" + sym_dump_output += f"0x{sym_info.value:08x} {sym_info.name} (size: 0x{sym_info.size:x})\n" else: sym_dump_output += "{}: value={:08x}, size=0x{:x}, scope=\"{}\", debug=\"{}\", type=\"{}\", section=\"{}\"\n".format(sym_info.name, sym_info.value, sym_info.size, sym_info.scope, sym_info.debug, sym_info.type, sym_info.section) if sym_info.type == "F" and sym_info.value >= 0x8000000: From 1ce33843b645e3139bd414c2d048c628967f4e07 Mon Sep 17 00:00:00 2001 From: luckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com> Date: Sat, 13 Jun 2020 13:40:49 -0400 Subject: [PATCH 03/25] Add missing text files to .gitattributes. --- .gitattributes | 4 ++++ 1 file changed, 4 insertions(+) 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 From bc143a695d54f7ac663b2b3f1ea98c53b21842e2 Mon Sep 17 00:00:00 2001 From: luckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com> Date: Sun, 14 Jun 2020 16:08:21 -0400 Subject: [PATCH 04/25] Initial work on pokemon_summary_screen.c --- .gitignore | 2 + Makefile | 8 +- asm/pokemon_summary_screen.s | 1067 +++++++++++------------------- cgrep.sh | 10 + compare.sh | 11 + include/main.h | 4 +- include/pokemon_summary_screen.h | 8 +- ld_script.txt | 1 + src/pokemon_summary_screen.c | 147 ++++ sym_ewram.txt | 2 +- 10 files changed, 570 insertions(+), 690 deletions(-) create mode 100644 cgrep.sh create mode 100644 compare.sh create mode 100644 src/pokemon_summary_screen.c diff --git a/.gitignore b/.gitignore index 50910379c..e83f42a30 100644 --- a/.gitignore +++ b/.gitignore @@ -56,3 +56,5 @@ types_*.taghl _Deparsed_XSubs.pm porymap.project.cfg .vscode/*.* +baserom.txt +pokefirered.txt diff --git a/Makefile b/Makefile index 3281e67ee..e7a918189 100644 --- a/Makefile +++ b/Makefile @@ -36,7 +36,7 @@ include config.mk GCC_VER = $(shell $(CC) -dumpversion) ifeq ($(MODERN),0) -CC1 := tools/agbcc/bin/agbcc +CC1 := tools/agbcc/bin/agbcc$(EXE) override CFLAGS += -mthumb-interwork -Wimplicit -Wparentheses -Werror -O2 -fhex-asm LIBPATH := -L ../../tools/agbcc/lib else @@ -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 index f914da889..8a29e6ea2 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -5,305 +5,12 @@ .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 r0, _08134790 @ =gMonSummaryScreen ldr r1, [r0] ldr r3, _08134794 @ =0x0000301c adds r0, r1, r3 @@ -318,7 +25,7 @@ sub_813476C: @ 813476C movs r0, 0x1 b _0813479E .align 2, 0 -_08134790: .4byte gUnknown_203B140 +_08134790: .4byte gMonSummaryScreen _08134794: .4byte 0x0000301c _08134798: .4byte 0x00003224 _0813479C: @@ -333,7 +40,7 @@ sub_81347A4: @ 81347A4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r0, _081347D4 @ =gUnknown_203B140 + ldr r0, _081347D4 @ =gMonSummaryScreen ldr r1, [r0] movs r2, 0xC8 lsls r2, 6 @@ -356,7 +63,7 @@ _081347D0: movs r0, 0x1 b _08134832 .align 2, 0 -_081347D4: .4byte gUnknown_203B140 +_081347D4: .4byte gMonSummaryScreen _081347D8: adds r0, r4, 0 bl sub_813476C @@ -422,7 +129,7 @@ sub_8134840: @ 8134840 lsls r0, 24 lsrs r0, 24 mov r8, r0 - ldr r1, _0813486C @ =gUnknown_203B140 + ldr r1, _0813486C @ =gMonSummaryScreen ldr r0, [r1] ldr r2, _08134870 @ =0x00003270 adds r0, r2 @@ -438,7 +145,7 @@ _08134860: ldr r0, [r0] mov pc, r0 .align 2, 0 -_0813486C: .4byte gUnknown_203B140 +_0813486C: .4byte gMonSummaryScreen _08134870: .4byte 0x00003270 _08134874: .4byte _08134878 .align 2, 0 @@ -457,11 +164,11 @@ _08134890: movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade - ldr r0, _081348A8 @ =gUnknown_203B140 + ldr r0, _081348A8 @ =gMonSummaryScreen ldr r0, [r0] b _081348D6 .align 2, 0 -_081348A8: .4byte gUnknown_203B140 +_081348A8: .4byte gMonSummaryScreen _081348AC: ldr r0, _081348C8 @ =gPaletteFade ldrb r1, [r0, 0x7] @@ -470,14 +177,14 @@ _081348AC: cmp r0, 0 bne _081348D4 bl sub_813B784 - ldr r0, _081348CC @ =gUnknown_203B140 + ldr r0, _081348CC @ =gMonSummaryScreen ldr r0, [r0] ldr r2, _081348D0 @ =0x00003270 adds r0, r2 b _08134AF6 .align 2, 0 _081348C8: .4byte gPaletteFade -_081348CC: .4byte gUnknown_203B140 +_081348CC: .4byte gMonSummaryScreen _081348D0: .4byte 0x00003270 _081348D4: ldr r0, [r4] @@ -510,7 +217,7 @@ _081348FC: beq _0813490C b _08134B9A _0813490C: - ldr r5, _08134944 @ =gUnknown_203B140 + ldr r5, _08134944 @ =gMonSummaryScreen ldr r0, [r5] ldr r6, _08134948 @ =0x00003214 adds r0, r6 @@ -535,7 +242,7 @@ _0813490C: b _08134B9A .align 2, 0 _08134940: .4byte sub_813B3F0 -_08134944: .4byte gUnknown_203B140 +_08134944: .4byte gMonSummaryScreen _08134948: .4byte 0x00003214 _0813494C: .4byte sub_8134BAC _08134950: @@ -660,7 +367,7 @@ _08134A4A: ands r0, r1 cmp r0, 0 beq _08134ABC - ldr r4, _08134A70 @ =gUnknown_203B140 + ldr r4, _08134A70 @ =gMonSummaryScreen ldr r0, [r4] ldr r5, _08134A74 @ =0x00003214 adds r0, r5 @@ -674,7 +381,7 @@ _08134A4A: adds r0, r2 b _08134ACC .align 2, 0 -_08134A70: .4byte gUnknown_203B140 +_08134A70: .4byte gMonSummaryScreen _08134A74: .4byte 0x00003214 _08134A78: .4byte 0x00003270 _08134A7C: @@ -714,7 +421,7 @@ _08134ABC: ands r0, r1 cmp r0, 0 beq _08134B9A - ldr r0, _08134AD4 @ =gUnknown_203B140 + ldr r0, _08134AD4 @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _08134AD8 @ =0x00003270 adds r0, r1 @@ -723,7 +430,7 @@ _08134ACC: strb r1, [r0] b _08134B9A .align 2, 0 -_08134AD4: .4byte gUnknown_203B140 +_08134AD4: .4byte gMonSummaryScreen _08134AD8: .4byte 0x00003270 _08134ADC: ldr r3, [r4] @@ -775,7 +482,7 @@ _08134B38: movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade - ldr r0, _08134B58 @ =gUnknown_203B140 + ldr r0, _08134B58 @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _08134B5C @ =0x00003270 adds r0, r1 @@ -783,7 +490,7 @@ _08134B38: strb r1, [r0] b _08134B9A .align 2, 0 -_08134B58: .4byte gUnknown_203B140 +_08134B58: .4byte gMonSummaryScreen _08134B5C: .4byte 0x00003270 _08134B60: bl Overworld_LinkRecvQueueLengthMoreThan2 @@ -792,7 +499,7 @@ _08134B60: bl sub_800B270 cmp r0, 0x1 beq _08134B9A - ldr r0, _08134B80 @ =gUnknown_203B140 + ldr r0, _08134B80 @ =gMonSummaryScreen ldr r0, [r0] ldr r2, _08134B84 @ =0x00003270 adds r0, r2 @@ -800,7 +507,7 @@ _08134B60: strb r1, [r0] b _08134B9A .align 2, 0 -_08134B80: .4byte gUnknown_203B140 +_08134B80: .4byte gMonSummaryScreen _08134B84: .4byte 0x00003270 _08134B88: ldr r0, _08134BA8 @ =gPaletteFade @@ -863,7 +570,7 @@ _08134BDC: _08134C04: bl sub_8135638 bl sub_81356EC - ldr r4, _08134C38 @ =gUnknown_203B140 + ldr r4, _08134C38 @ =gMonSummaryScreen ldr r0, [r4] ldr r2, _08134C3C @ =0x00003234 adds r0, r2 @@ -884,12 +591,12 @@ _08134C04: bl sub_8138280 b _08134E74 .align 2, 0 -_08134C38: .4byte gUnknown_203B140 +_08134C38: .4byte gMonSummaryScreen _08134C3C: .4byte 0x00003234 _08134C40: .4byte 0x0000301c _08134C44: .4byte 0x00003214 _08134C48: - ldr r0, _08134CC8 @ =gUnknown_203B140 + ldr r0, _08134CC8 @ =gMonSummaryScreen ldr r1, [r0] ldr r2, _08134CCC @ =0x00003214 adds r0, r1, r2 @@ -949,14 +656,14 @@ _08134C7E: bl FillBgTilemapBufferRect_Palette0 b _08134E74 .align 2, 0 -_08134CC8: .4byte gUnknown_203B140 +_08134CC8: .4byte gMonSummaryScreen _08134CCC: .4byte 0x00003214 _08134CD0: .4byte 0x00003224 _08134CD4: bl sub_8135AA4 bl sub_8135B90 bl sub_8138538 - ldr r0, _08134CF0 @ =gUnknown_203B140 + ldr r0, _08134CF0 @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _08134CF4 @ =0x00003214 adds r0, r1 @@ -964,10 +671,10 @@ _08134CD4: bl sub_8137D28 b _08134E74 .align 2, 0 -_08134CF0: .4byte gUnknown_203B140 +_08134CF0: .4byte gMonSummaryScreen _08134CF4: .4byte 0x00003214 _08134CF8: - ldr r4, _08134D20 @ =gUnknown_203B140 + ldr r4, _08134D20 @ =gMonSummaryScreen ldr r0, [r4] movs r2, 0xC0 lsls r2, 6 @@ -986,7 +693,7 @@ _08134CF8: adds r0, r1 b _08134DE2 .align 2, 0 -_08134D20: .4byte gUnknown_203B140 +_08134D20: .4byte gMonSummaryScreen _08134D24: .4byte 0x00003001 _08134D28: .4byte 0x00003002 _08134D2C: @@ -1005,7 +712,7 @@ _08134D38: b _08134E74 _08134D4C: bl sub_8135514 - ldr r0, _08134D60 @ =gUnknown_203B140 + ldr r0, _08134D60 @ =gMonSummaryScreen ldr r0, [r0] ldr r2, _08134D64 @ =0x00003244 adds r0, r2 @@ -1013,10 +720,10 @@ _08134D4C: strb r1, [r0] b _08134E74 .align 2, 0 -_08134D60: .4byte gUnknown_203B140 +_08134D60: .4byte gMonSummaryScreen _08134D64: .4byte 0x00003244 _08134D68: - ldr r0, _08134D80 @ =gUnknown_203B140 + ldr r0, _08134D80 @ =gMonSummaryScreen ldr r0, [r0] ldr r3, _08134D84 @ =0x00003224 adds r0, r3 @@ -1029,11 +736,11 @@ _08134D68: _08134D7E: b _08134E74 .align 2, 0 -_08134D80: .4byte gUnknown_203B140 +_08134D80: .4byte gMonSummaryScreen _08134D84: .4byte 0x00003224 _08134D88: bl sub_8136F4C - ldr r0, _08134DA8 @ =gUnknown_203B140 + ldr r0, _08134DA8 @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _08134DAC @ =0x00003214 adds r0, r1 @@ -1046,10 +753,10 @@ _08134D9E: bl sub_8138A38 b _08134E74 .align 2, 0 -_08134DA8: .4byte gUnknown_203B140 +_08134DA8: .4byte gMonSummaryScreen _08134DAC: .4byte 0x00003214 _08134DB0: - ldr r4, _08134DEC @ =gUnknown_203B140 + ldr r4, _08134DEC @ =gMonSummaryScreen ldr r0, [r4] ldr r2, _08134DF0 @ =0x00003003 adds r0, r2 @@ -1077,7 +784,7 @@ _08134DE2: bl CopyWindowToVram b _08134E74 .align 2, 0 -_08134DEC: .4byte gUnknown_203B140 +_08134DEC: .4byte gMonSummaryScreen _08134DF0: .4byte 0x00003003 _08134DF4: .4byte 0x00003004 _08134DF8: .4byte 0x00003005 @@ -1094,7 +801,7 @@ _08134E00: b _08134E74 _08134E18: bl sub_8138440 - ldr r5, _08134E5C @ =gUnknown_203B140 + ldr r5, _08134E5C @ =gMonSummaryScreen ldr r1, [r5] ldr r3, _08134E60 @ =0x00003214 adds r0, r1, r3 @@ -1127,7 +834,7 @@ _08134E40: strb r0, [r1] b _08134E7A .align 2, 0 -_08134E5C: .4byte gUnknown_203B140 +_08134E5C: .4byte gMonSummaryScreen _08134E60: .4byte 0x00003214 _08134E64: .4byte 0x00003018 _08134E68: .4byte sub_8138CD8 @@ -1148,7 +855,7 @@ _08134E7A: sub_8134E84: @ 8134E84 push {r4-r6,lr} sub sp, 0x8 - ldr r4, _08134EA4 @ =gUnknown_203B140 + ldr r4, _08134EA4 @ =gMonSummaryScreen ldr r0, [r4] ldr r1, _08134EA8 @ =0x00003284 adds r0, r1 @@ -1164,7 +871,7 @@ _08134E9A: ldr r0, [r0] mov pc, r0 .align 2, 0 -_08134EA4: .4byte gUnknown_203B140 +_08134EA4: .4byte gMonSummaryScreen _08134EA8: .4byte 0x00003284 _08134EAC: .4byte _08134EB0 .align 2, 0 @@ -1182,7 +889,7 @@ _08134EB0: .4byte _081350E4 .4byte _08135114 _08134EE0: - ldr r1, _08134F04 @ =gUnknown_203B140 + ldr r1, _08134F04 @ =gMonSummaryScreen ldr r0, [r1] ldr r2, _08134F08 @ =0x00003234 adds r0, r2 @@ -1199,12 +906,12 @@ _08134EE0: bl sub_8138280 b _08135180 .align 2, 0 -_08134F04: .4byte gUnknown_203B140 +_08134F04: .4byte gMonSummaryScreen _08134F08: .4byte 0x00003234 _08134F0C: .4byte 0x0000301c _08134F10: .4byte 0x00003214 _08134F14: - ldr r0, _08134F94 @ =gUnknown_203B140 + ldr r0, _08134F94 @ =gMonSummaryScreen ldr r1, [r0] ldr r2, _08134F98 @ =0x00003214 adds r0, r1, r2 @@ -1264,12 +971,12 @@ _08134F4A: bl FillBgTilemapBufferRect_Palette0 b _08135180 .align 2, 0 -_08134F94: .4byte gUnknown_203B140 +_08134F94: .4byte gMonSummaryScreen _08134F98: .4byte 0x00003214 _08134F9C: .4byte 0x00003224 _08134FA0: bl sub_8135638 - ldr r0, _08134FC0 @ =gUnknown_203B140 + ldr r0, _08134FC0 @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _08134FC4 @ =0x00003214 adds r0, r1 @@ -1280,7 +987,7 @@ _08134FA0: bl sub_8135AA4 b _08135180 .align 2, 0 -_08134FC0: .4byte gUnknown_203B140 +_08134FC0: .4byte gMonSummaryScreen _08134FC4: .4byte 0x00003214 _08134FC8: ldr r0, _08134FF0 @ =gUnknown_8419C39 @@ -1313,7 +1020,7 @@ _08135004: .align 2, 0 _0813500C: .4byte gUnknown_8419CA2 _08135010: - ldr r4, _0813502C @ =gUnknown_203B140 + ldr r4, _0813502C @ =gMonSummaryScreen ldr r0, [r4] movs r3, 0xC0 lsls r3, 6 @@ -1326,7 +1033,7 @@ _08135010: adds r0, r1 b _081350FE .align 2, 0 -_0813502C: .4byte gUnknown_203B140 +_0813502C: .4byte gMonSummaryScreen _08135030: .4byte 0x00003001 _08135034: bl IsDma3ManagerBusyWithBgCopy @@ -1345,7 +1052,7 @@ _08135040: _08135054: bl sub_8136F4C bl sub_8137BD0 - ldr r4, _08135074 @ =gUnknown_203B140 + ldr r4, _08135074 @ =gMonSummaryScreen ldr r0, [r4] ldr r2, _08135078 @ =0x00003003 adds r0, r2 @@ -1357,7 +1064,7 @@ _08135054: adds r0, r3 b _081350FE .align 2, 0 -_08135074: .4byte gUnknown_203B140 +_08135074: .4byte gMonSummaryScreen _08135078: .4byte 0x00003003 _0813507C: .4byte 0x00003005 _08135080: @@ -1370,7 +1077,7 @@ _0813508C: movs r0, 0 bl CopyBgTilemapBufferToVram bl sub_8135514 - ldr r0, _081350A4 @ =gUnknown_203B140 + ldr r0, _081350A4 @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _081350A8 @ =0x00003244 adds r0, r1 @@ -1378,7 +1085,7 @@ _0813508C: strb r1, [r0] b _08135180 .align 2, 0 -_081350A4: .4byte gUnknown_203B140 +_081350A4: .4byte gMonSummaryScreen _081350A8: .4byte 0x00003244 _081350AC: ldr r0, [r5] @@ -1406,7 +1113,7 @@ _081350D4: _081350E0: .4byte gUnknown_8419C45 _081350E4: bl sub_81356EC - ldr r4, _08135108 @ =gUnknown_203B140 + ldr r4, _08135108 @ =gMonSummaryScreen ldr r0, [r4] ldr r1, _0813510C @ =0x00003006 adds r0, r1 @@ -1422,7 +1129,7 @@ _081350FE: bl CopyWindowToVram b _08135180 .align 2, 0 -_08135108: .4byte gUnknown_203B140 +_08135108: .4byte gMonSummaryScreen _0813510C: .4byte 0x00003006 _08135110: .4byte 0x00003002 _08135114: @@ -1471,7 +1178,7 @@ _08135174: .4byte 0x00003284 _08135178: .4byte 0x00003234 _0813517C: .4byte 0x0000301c _08135180: - ldr r0, _08135198 @ =gUnknown_203B140 + ldr r0, _08135198 @ =gMonSummaryScreen ldr r1, [r0] ldr r0, _0813519C @ =0x00003284 adds r1, r0 @@ -1484,7 +1191,7 @@ _0813518E: pop {r0} bx r0 .align 2, 0 -_08135198: .4byte gUnknown_203B140 +_08135198: .4byte gMonSummaryScreen _0813519C: .4byte 0x00003284 thumb_func_end sub_8134E84 @@ -1492,7 +1199,7 @@ _0813519C: .4byte 0x00003284 sub_81351A0: @ 81351A0 push {r4-r6,lr} sub sp, 0x8 - ldr r4, _081351C0 @ =gUnknown_203B140 + ldr r4, _081351C0 @ =gMonSummaryScreen ldr r0, [r4] ldr r1, _081351C4 @ =0x00003284 adds r0, r1 @@ -1508,7 +1215,7 @@ _081351B6: ldr r0, [r0] mov pc, r0 .align 2, 0 -_081351C0: .4byte gUnknown_203B140 +_081351C0: .4byte gMonSummaryScreen _081351C4: .4byte 0x00003284 _081351C8: .4byte _081351CC .align 2, 0 @@ -1525,7 +1232,7 @@ _081351CC: .4byte _081353AC .4byte _081353EC _081351F8: - ldr r1, _0813521C @ =gUnknown_203B140 + ldr r1, _0813521C @ =gMonSummaryScreen ldr r0, [r1] ldr r2, _08135220 @ =0x00003234 adds r0, r2 @@ -1542,12 +1249,12 @@ _081351F8: bl sub_8138280 b _0813544C .align 2, 0 -_0813521C: .4byte gUnknown_203B140 +_0813521C: .4byte gMonSummaryScreen _08135220: .4byte 0x00003234 _08135224: .4byte 0x0000301c _08135228: .4byte 0x00003214 _0813522C: - ldr r0, _081352AC @ =gUnknown_203B140 + ldr r0, _081352AC @ =gMonSummaryScreen ldr r1, [r0] ldr r2, _081352B0 @ =0x00003214 adds r0, r1, r2 @@ -1607,7 +1314,7 @@ _08135262: bl FillBgTilemapBufferRect_Palette0 b _0813544C .align 2, 0 -_081352AC: .4byte gUnknown_203B140 +_081352AC: .4byte gMonSummaryScreen _081352B0: .4byte 0x00003214 _081352B4: .4byte 0x00003224 _081352B8: @@ -1617,7 +1324,7 @@ _081352BE: bl sub_8136F4C bl sub_81374E8 bl sub_8137BD0 - ldr r4, _08135300 @ =gUnknown_203B140 + ldr r4, _08135300 @ =gMonSummaryScreen ldr r0, [r4] ldr r1, _08135304 @ =0x00003003 adds r0, r1 @@ -1640,7 +1347,7 @@ _081352BE: bl CopyBgTilemapBufferToVram b _0813544C .align 2, 0 -_08135300: .4byte gUnknown_203B140 +_08135300: .4byte gMonSummaryScreen _08135304: .4byte 0x00003003 _08135308: .4byte 0x00003004 _0813530C: .4byte 0x00003005 @@ -1654,7 +1361,7 @@ _08135310: _08135320: .4byte gUnknown_8419C39 _08135324: .4byte gUnknown_8419C82 _08135328: - ldr r4, _0813534C @ =gUnknown_203B140 + ldr r4, _0813534C @ =gMonSummaryScreen ldr r0, [r4] movs r1, 0xC0 lsls r1, 6 @@ -1670,11 +1377,11 @@ _08135328: bl CopyWindowToVram b _081353D0 .align 2, 0 -_0813534C: .4byte gUnknown_203B140 +_0813534C: .4byte gMonSummaryScreen _08135350: .4byte 0x00003001 _08135354: bl sub_8135514 - ldr r4, _0813537C @ =gUnknown_203B140 + ldr r4, _0813537C @ =gMonSummaryScreen ldr r0, [r4] ldr r3, _08135380 @ =0x00003244 adds r0, r3 @@ -1689,7 +1396,7 @@ _08135354: bl sub_8138A38 b _0813544C .align 2, 0 -_0813537C: .4byte gUnknown_203B140 +_0813537C: .4byte gMonSummaryScreen _08135380: .4byte 0x00003244 _08135384: .4byte 0x00003214 _08135388: @@ -1708,7 +1415,7 @@ _08135388: _081353A4: .4byte 0x00003224 _081353A8: .4byte gUnknown_8419C45 _081353AC: - ldr r4, _081353E0 @ =gUnknown_203B140 + ldr r4, _081353E0 @ =gMonSummaryScreen ldr r0, [r4] ldr r3, _081353E4 @ =0x00003006 adds r0, r3 @@ -1730,7 +1437,7 @@ _081353D0: bl CopyBgTilemapBufferToVram b _0813544C .align 2, 0 -_081353E0: .4byte gUnknown_203B140 +_081353E0: .4byte gMonSummaryScreen _081353E4: .4byte 0x00003006 _081353E8: .4byte 0x00003002 _081353EC: @@ -1774,7 +1481,7 @@ _08135440: .4byte 0x00003284 _08135444: .4byte 0x00003234 _08135448: .4byte 0x0000301c _0813544C: - ldr r0, _08135464 @ =gUnknown_203B140 + ldr r0, _08135464 @ =gMonSummaryScreen ldr r1, [r0] ldr r0, _08135468 @ =0x00003284 adds r1, r0 @@ -1787,7 +1494,7 @@ _0813545A: pop {r0} bx r0 .align 2, 0 -_08135464: .4byte gUnknown_203B140 +_08135464: .4byte gMonSummaryScreen _08135468: .4byte 0x00003284 thumb_func_end sub_81351A0 @@ -1889,7 +1596,7 @@ _08135510: .4byte gUnknown_203B15C sub_8135514: @ 8135514 push {r4-r6,lr} movs r4, 0x1 - ldr r6, _0813553C @ =gUnknown_203B140 + ldr r6, _0813553C @ =gMonSummaryScreen ldr r1, [r6] ldr r2, _08135540 @ =0x00003224 adds r0, r1, r2 @@ -1909,7 +1616,7 @@ _08135528: strh r0, [r1] b _08135632 .align 2, 0 -_0813553C: .4byte gUnknown_203B140 +_0813553C: .4byte gMonSummaryScreen _08135540: .4byte 0x00003224 _08135544: .4byte 0x00003214 _08135548: .4byte 0x0000324c @@ -1991,7 +1698,7 @@ _081355EC: movs r1, 0 bl sub_81358DC _081355FC: - ldr r0, _0813561C @ =gUnknown_203B140 + ldr r0, _0813561C @ =gMonSummaryScreen ldr r1, [r0] ldr r2, _08135620 @ =0x00003214 adds r0, r1, r2 @@ -2006,7 +1713,7 @@ _081355FC: bl sub_81354C4 b _08135632 .align 2, 0 -_0813561C: .4byte gUnknown_203B140 +_0813561C: .4byte gMonSummaryScreen _08135620: .4byte 0x00003214 _08135624: bl sub_813546C @@ -2024,7 +1731,7 @@ _08135632: thumb_func_start sub_8135638 sub_8135638: @ 8135638 push {lr} - ldr r0, _08135654 @ =gUnknown_203B140 + ldr r0, _08135654 @ =gMonSummaryScreen ldr r2, [r0] ldr r3, _08135658 @ =0x00003224 adds r1, r2, r3 @@ -2038,7 +1745,7 @@ sub_8135638: @ 8135638 subs r0, 0x1 b _08135668 .align 2, 0 -_08135654: .4byte gUnknown_203B140 +_08135654: .4byte gMonSummaryScreen _08135658: .4byte 0x00003224 _0813565C: .4byte 0x00003214 _08135660: @@ -2107,7 +1814,7 @@ _081356E6: thumb_func_start sub_81356EC sub_81356EC: @ 81356EC push {lr} - ldr r0, _08135708 @ =gUnknown_203B140 + ldr r0, _08135708 @ =gMonSummaryScreen ldr r2, [r0] ldr r3, _0813570C @ =0x00003224 adds r1, r2, r3 @@ -2121,7 +1828,7 @@ sub_81356EC: @ 81356EC subs r0, 0x1 b _0813571C .align 2, 0 -_08135708: .4byte gUnknown_203B140 +_08135708: .4byte gMonSummaryScreen _0813570C: .4byte 0x00003224 _08135710: .4byte 0x00003214 _08135714: @@ -2194,7 +1901,7 @@ _0813579A: sub_81357A0: @ 81357A0 push {r4-r6,lr} movs r3, 0x1 - ldr r0, _081357EC @ =gUnknown_203B140 + ldr r0, _081357EC @ =gMonSummaryScreen ldr r2, [r0] ldr r4, _081357F0 @ =0x00003224 adds r1, r2, r4 @@ -2230,7 +1937,7 @@ _081357B6: ldr r0, [r5] b _0813587E .align 2, 0 -_081357EC: .4byte gUnknown_203B140 +_081357EC: .4byte gMonSummaryScreen _081357F0: .4byte 0x00003224 _081357F4: .4byte 0x00003214 _081357F8: .4byte 0x0000324c @@ -2371,7 +2078,7 @@ sub_81358DC: @ 81358DC bl GetGpuReg adds r6, r4, 0 ands r6, r0 - ldr r0, _08135938 @ =gUnknown_203B140 + ldr r0, _08135938 @ =gMonSummaryScreen ldr r0, [r0] ldr r2, _0813593C @ =0x00003224 adds r0, r2 @@ -2389,7 +2096,7 @@ sub_81358DC: @ 81358DC bhi _0813594A b _08135944 .align 2, 0 -_08135938: .4byte gUnknown_203B140 +_08135938: .4byte gMonSummaryScreen _0813593C: .4byte 0x00003224 _08135940: cmp r5, r6 @@ -2423,7 +2130,7 @@ _0813596C: movs r5, 0 movs r6, 0x2 _08135970: - ldr r0, _0813598C @ =gUnknown_203B140 + ldr r0, _0813598C @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _08135990 @ =0x00003224 adds r0, r1 @@ -2438,7 +2145,7 @@ _08135970: movs r6, 0x2 b _08135998 .align 2, 0 -_0813598C: .4byte gUnknown_203B140 +_0813598C: .4byte gMonSummaryScreen _08135990: .4byte 0x00003224 _08135994: movs r5, 0x2 @@ -2455,7 +2162,7 @@ _08135998: ldr r2, _081359D8 @ =gUnknown_203B160 mov r10, r2 _081359AC: - ldr r0, _081359DC @ =gUnknown_203B140 + ldr r0, _081359DC @ =gMonSummaryScreen ldr r1, [r0] ldr r2, _081359E0 @ =0x00003214 adds r0, r1, r2 @@ -2479,7 +2186,7 @@ _081359AC: b _081359F6 .align 2, 0 _081359D8: .4byte gUnknown_203B160 -_081359DC: .4byte gUnknown_203B140 +_081359DC: .4byte gMonSummaryScreen _081359E0: .4byte 0x00003214 _081359E4: mov r2, r10 @@ -2496,7 +2203,7 @@ _081359F6: strb r0, [r2, 0x5] cmp r4, 0x8 bhi _08135A48 - ldr r2, _08135A28 @ =gUnknown_203B140 + ldr r2, _08135A28 @ =gMonSummaryScreen ldr r1, [r2] ldr r2, _08135A2C @ =0x00003214 adds r0, r1, r2 @@ -2518,7 +2225,7 @@ _081359F6: mov r1, r9 b _08135A44 .align 2, 0 -_08135A28: .4byte gUnknown_203B140 +_08135A28: .4byte gMonSummaryScreen _08135A2C: .4byte 0x00003214 _08135A30: .4byte gUnknown_203B15C _08135A34: @@ -2577,7 +2284,7 @@ _08135AA0: .4byte 0x0000fffc thumb_func_start sub_8135AA4 sub_8135AA4: @ 8135AA4 push {lr} - ldr r0, _08135AC0 @ =gUnknown_203B140 + ldr r0, _08135AC0 @ =gMonSummaryScreen ldr r2, [r0] ldr r3, _08135AC4 @ =0x00003224 adds r1, r2, r3 @@ -2591,7 +2298,7 @@ sub_8135AA4: @ 8135AA4 subs r0, 0x1 b _08135AD4 .align 2, 0 -_08135AC0: .4byte gUnknown_203B140 +_08135AC0: .4byte gMonSummaryScreen _08135AC4: .4byte 0x00003224 _08135AC8: .4byte 0x00003214 _08135ACC: @@ -2698,7 +2405,7 @@ _08135B8C: .4byte gUnknown_8E9B950 thumb_func_start sub_8135B90 sub_8135B90: @ 8135B90 push {lr} - ldr r0, _08135BAC @ =gUnknown_203B140 + ldr r0, _08135BAC @ =gMonSummaryScreen ldr r2, [r0] ldr r3, _08135BB0 @ =0x00003224 adds r1, r2, r3 @@ -2712,7 +2419,7 @@ sub_8135B90: @ 8135B90 subs r0, 0x1 b _08135BC0 .align 2, 0 -_08135BAC: .4byte gUnknown_203B140 +_08135BAC: .4byte gMonSummaryScreen _08135BB0: .4byte 0x00003224 _08135BB4: .4byte 0x00003214 _08135BB8: @@ -2788,7 +2495,7 @@ _08135C30: .4byte gUnknown_8463B88 sub_8135C34: @ 8135C34 push {r4,lr} sub sp, 0x4 - ldr r0, _08135C54 @ =gUnknown_203B140 + ldr r0, _08135C54 @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _08135C58 @ =0x00003274 adds r0, r1 @@ -2803,7 +2510,7 @@ _08135C48: ldr r0, [r0] mov pc, r0 .align 2, 0 -_08135C54: .4byte gUnknown_203B140 +_08135C54: .4byte gMonSummaryScreen _08135C58: .4byte 0x00003274 _08135C5C: .4byte _08135C60 .align 2, 0 @@ -2862,7 +2569,7 @@ _08135CDE: bl sub_8138A38 b _08135F00 _08135CE8: - ldr r0, _08135D0C @ =gUnknown_203B140 + ldr r0, _08135D0C @ =gMonSummaryScreen ldr r0, [r0] ldr r2, _08135D10 @ =0x00003208 adds r0, r2 @@ -2879,7 +2586,7 @@ _08135CE8: bl CopyToBgTilemapBuffer b _08135D24 .align 2, 0 -_08135D0C: .4byte gUnknown_203B140 +_08135D0C: .4byte gMonSummaryScreen _08135D10: .4byte 0x00003208 _08135D14: .4byte gUnknown_8463C80 _08135D18: @@ -2894,7 +2601,7 @@ _08135D24: .align 2, 0 _08135D2C: .4byte gUnknown_8463B88 _08135D30: - ldr r4, _08135D4C @ =gUnknown_203B140 + ldr r4, _08135D4C @ =gMonSummaryScreen ldr r1, [r4] movs r2, 0xC8 lsls r2, 6 @@ -2908,7 +2615,7 @@ _08135D30: ldr r1, _08135D50 @ =gUnknown_8E9BBCC b _08135DAC .align 2, 0 -_08135D4C: .4byte gUnknown_203B140 +_08135D4C: .4byte gMonSummaryScreen _08135D50: .4byte gUnknown_8E9BBCC _08135D54: ldr r2, _08135D84 @ =0x00003208 @@ -2966,7 +2673,7 @@ _08135DC4: movs r1, 0x10 movs r2, 0 bl BlendPalettes - ldr r0, _08135DE4 @ =gUnknown_203B140 + ldr r0, _08135DE4 @ =gMonSummaryScreen ldr r0, [r0] ldr r2, _08135DE8 @ =0x00003214 adds r0, r2 @@ -2975,7 +2682,7 @@ _08135DC4: bl sub_8137E28 b _08135F00 .align 2, 0 -_08135DE4: .4byte gUnknown_203B140 +_08135DE4: .4byte gMonSummaryScreen _08135DE8: .4byte 0x00003214 _08135DEC: movs r0, 0x1 @@ -2985,7 +2692,7 @@ _08135DEC: movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade - ldr r4, _08135E64 @ =gUnknown_203B140 + ldr r4, _08135E64 @ =gMonSummaryScreen ldr r0, [r4] movs r1, 0xC0 lsls r1, 6 @@ -3031,7 +2738,7 @@ _08135DEC: bl CopyWindowToVram b _08135F00 .align 2, 0 -_08135E64: .4byte gUnknown_203B140 +_08135E64: .4byte gMonSummaryScreen _08135E68: .4byte 0x00003001 _08135E6C: .4byte 0x00003002 _08135E70: .4byte 0x00003006 @@ -3049,7 +2756,7 @@ _08135E80: bl CopyBgTilemapBufferToVram b _08135F00 _08135E9A: - ldr r0, _08135EBC @ =gUnknown_203B140 + ldr r0, _08135EBC @ =gMonSummaryScreen ldr r0, [r0] ldr r2, _08135EC0 @ =0x00003208 adds r0, r2 @@ -3065,7 +2772,7 @@ _08135E9A: bl sub_813A0E8 b _08135EE2 .align 2, 0 -_08135EBC: .4byte gUnknown_203B140 +_08135EBC: .4byte gMonSummaryScreen _08135EC0: .4byte 0x00003208 _08135EC4: movs r0, 0 @@ -3091,7 +2798,7 @@ _08135EF6: bl sub_8136D54 b _08135F0E _08135F00: - ldr r0, _08135F18 @ =gUnknown_203B140 + ldr r0, _08135F18 @ =gMonSummaryScreen ldr r1, [r0] ldr r0, _08135F1C @ =0x00003274 adds r1, r0 @@ -3104,7 +2811,7 @@ _08135F0E: pop {r0} bx r0 .align 2, 0 -_08135F18: .4byte gUnknown_203B140 +_08135F18: .4byte gMonSummaryScreen _08135F1C: .4byte 0x00003274 thumb_func_end sub_8135C34 @@ -3112,7 +2819,7 @@ _08135F1C: .4byte 0x00003274 sub_8135F20: @ 8135F20 push {r4,r5,lr} sub sp, 0x4 - ldr r0, _08135F3C @ =gUnknown_203B140 + ldr r0, _08135F3C @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _08135F40 @ =0x00003278 adds r0, r1 @@ -3125,7 +2832,7 @@ sub_8135F20: @ 8135F20 ldr r0, [r0] mov pc, r0 .align 2, 0 -_08135F3C: .4byte gUnknown_203B140 +_08135F3C: .4byte gMonSummaryScreen _08135F40: .4byte 0x00003278 _08135F44: .4byte _08135F48 .align 2, 0 @@ -3143,7 +2850,7 @@ _08135F64: movs r1, 0 movs r2, 0xA0 bl LoadPalette - ldr r5, _08135FAC @ =gUnknown_203B140 + ldr r5, _08135FAC @ =gMonSummaryScreen ldr r0, [r5] ldr r1, _08135FB0 @ =0x00003290 adds r0, r1 @@ -3170,7 +2877,7 @@ _08135F64: b _08135FD8 .align 2, 0 _08135FA8: .4byte gUnknown_8E9B310 -_08135FAC: .4byte gUnknown_203B140 +_08135FAC: .4byte gMonSummaryScreen _08135FB0: .4byte 0x00003290 _08135FB4: ldr r4, _08135FC8 @ =gUnknown_8E9B310 @@ -3227,7 +2934,7 @@ _0813600E: .align 2, 0 _0813601C: .4byte gUnknown_8463700 _08136020: - ldr r0, _08136038 @ =gUnknown_203B140 + ldr r0, _08136038 @ =gMonSummaryScreen ldr r1, [r0] ldr r0, _0813603C @ =0x00003278 adds r1, r0 @@ -3242,14 +2949,14 @@ _08136030: pop {r1} bx r1 .align 2, 0 -_08136038: .4byte gUnknown_203B140 +_08136038: .4byte gMonSummaryScreen _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 r1, _08136060 @ =gMonSummaryScreen ldr r2, [r1] movs r6, 0xCA lsls r6, 6 @@ -3264,7 +2971,7 @@ sub_8136040: @ 8136040 beq _0813606A b _081360A8 .align 2, 0 -_08136060: .4byte gUnknown_203B140 +_08136060: .4byte gMonSummaryScreen _08136064: cmp r4, 0x2 beq _08136096 @@ -3310,7 +3017,7 @@ _081360A8: movs r0, 0x1 b _081360CA _081360B8: - ldr r0, _081360D0 @ =gUnknown_203B140 + ldr r0, _081360D0 @ =gMonSummaryScreen ldr r1, [r0] movs r0, 0xCA lsls r0, 6 @@ -3324,14 +3031,14 @@ _081360CA: pop {r1} bx r1 .align 2, 0 -_081360D0: .4byte gUnknown_203B140 +_081360D0: .4byte gMonSummaryScreen 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 r5, _08136108 @ =gMonSummaryScreen ldr r0, [r5] ldr r1, _0813610C @ =0x00003290 adds r0, r1 @@ -3352,7 +3059,7 @@ sub_81360D4: @ 81360D4 bl StringCopy b _0813612C .align 2, 0 -_08136108: .4byte gUnknown_203B140 +_08136108: .4byte gMonSummaryScreen _0813610C: .4byte 0x00003290 _08136110: .4byte 0x0000ffff _08136114: .4byte 0x00003064 @@ -3370,7 +3077,7 @@ _0813612C: ldr r1, [r0] movs r0, 0 strh r0, [r1] - ldr r6, _0813615C @ =gUnknown_203B140 + ldr r6, _0813615C @ =gMonSummaryScreen ldr r2, [r6] movs r1, 0xC8 lsls r1, 6 @@ -3388,7 +3095,7 @@ _0813612C: .align 2, 0 _08136154: .4byte 0x00003064 _08136158: .4byte gUnknown_203B144 -_0813615C: .4byte gUnknown_203B140 +_0813615C: .4byte gMonSummaryScreen _08136160: .4byte 0x00003290 _08136164: .4byte 0x00003028 _08136168: @@ -3484,7 +3191,7 @@ _08136238: cmp r4, 0x1D bne _08136264 _08136240: - ldr r5, _08136310 @ =gUnknown_203B140 + ldr r5, _08136310 @ =gMonSummaryScreen ldr r0, [r5] ldr r3, _08136314 @ =0x00003034 adds r0, r3 @@ -3501,7 +3208,7 @@ _08136240: ldr r1, _0813630C @ =gString_Dummy bl StringCopy _08136264: - ldr r6, _08136310 @ =gUnknown_203B140 + ldr r6, _08136310 @ =gMonSummaryScreen ldr r0, [r6] ldr r5, _0813631C @ =0x00003290 adds r0, r5 @@ -3573,7 +3280,7 @@ _08136264: .align 2, 0 _08136308: .4byte 0x00003084 _0813630C: .4byte gString_Dummy -_08136310: .4byte gUnknown_203B140 +_08136310: .4byte gMonSummaryScreen _08136314: .4byte 0x00003034 _08136318: .4byte gSpeciesNames _0813631C: .4byte 0x00003290 @@ -3605,7 +3312,7 @@ sub_8136350: @ 8136350 mov r5, r8 push {r5-r7} sub sp, 0x14 - ldr r6, _081364F8 @ =gUnknown_203B140 + ldr r6, _081364F8 @ =gMonSummaryScreen ldr r0, [r6] ldr r7, _081364FC @ =0x00003290 adds r0, r7 @@ -3791,7 +3498,7 @@ _081363E6: strh r5, [r2, 0xC] b _08136630 .align 2, 0 -_081364F8: .4byte gUnknown_203B140 +_081364F8: .4byte gMonSummaryScreen _081364FC: .4byte 0x00003290 _08136500: .4byte 0x00003090 _08136504: .4byte gText_Slash @@ -3800,7 +3507,7 @@ _0813650C: .4byte 0x000032f8 _08136510: .4byte CB2_ReturnToTradeMenuFromSummary _08136514: .4byte 0x00003024 _08136518: - ldr r4, _0813677C @ =gUnknown_203B140 + ldr r4, _0813677C @ =gMonSummaryScreen ldr r0, [r4] ldr r2, _08136780 @ =0x00003290 mov r9, r2 @@ -3926,7 +3633,7 @@ _08136518: subs r6, r1 strh r6, [r2, 0xC] _08136630: - ldr r6, _0813677C @ =gUnknown_203B140 + ldr r6, _0813677C @ =gMonSummaryScreen ldr r0, [r6] ldr r2, _08136780 @ =0x00003290 mov r8, r2 @@ -4079,7 +3786,7 @@ _0813676A: pop {r0} bx r0 .align 2, 0 -_0813677C: .4byte gUnknown_203B140 +_0813677C: .4byte gMonSummaryScreen _08136780: .4byte 0x00003290 _08136784: .4byte 0x0000309c _08136788: .4byte gUnknown_203B144 @@ -4106,7 +3813,7 @@ _081367B4: lsrs r4, r0, 24 cmp r4, 0x3 bls _081367B4 - ldr r0, _081367E0 @ =gUnknown_203B140 + ldr r0, _081367E0 @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _081367E4 @ =0x00003208 adds r0, r1 @@ -4120,7 +3827,7 @@ _081367D8: pop {r0} bx r0 .align 2, 0 -_081367E0: .4byte gUnknown_203B140 +_081367E0: .4byte gMonSummaryScreen _081367E4: .4byte 0x00003208 thumb_func_end sub_81367B0 @@ -4134,7 +3841,7 @@ sub_81367E8: @ 81367E8 lsrs r7, r0, 24 cmp r7, 0x3 bhi _08136812 - ldr r4, _08136884 @ =gUnknown_203B140 + ldr r4, _08136884 @ =gMonSummaryScreen ldr r0, [r4] ldr r1, _08136888 @ =0x00003290 adds r0, r1 @@ -4147,7 +3854,7 @@ sub_81367E8: @ 81367E8 adds r1, r2 strh r0, [r1] _08136812: - ldr r6, _08136884 @ =gUnknown_203B140 + ldr r6, _08136884 @ =gMonSummaryScreen ldr r2, [r6] lsls r0, r7, 1 ldr r4, _0813688C @ =0x00003258 @@ -4201,7 +3908,7 @@ _08136812: strh r2, [r1] b _08136ADA .align 2, 0 -_08136884: .4byte gUnknown_203B140 +_08136884: .4byte gMonSummaryScreen _08136888: .4byte 0x00003290 _0813688C: .4byte 0x00003258 _08136890: .4byte 0x00003128 @@ -4297,7 +4004,7 @@ _08136960: .4byte 0x00003208 _08136964: .4byte 0x000030b8 _08136968: .4byte 0x000030f0 _0813696C: - ldr r1, _08136A4C @ =gUnknown_203B140 + ldr r1, _08136A4C @ =gMonSummaryScreen mov r8, r1 movs r0, 0xB adds r5, r7, 0 @@ -4343,7 +4050,7 @@ _0813696C: movs r3, 0x3 bl ConvertIntToDecimalStringN _081369D0: - ldr r6, _08136A4C @ =gUnknown_203B140 + ldr r6, _08136A4C @ =gMonSummaryScreen movs r0, 0xB adds r5, r7, 0 muls r5, r0 @@ -4403,7 +4110,7 @@ _081369D0: bl StringCopy b _08136A84 .align 2, 0 -_08136A4C: .4byte gUnknown_203B140 +_08136A4C: .4byte gMonSummaryScreen _08136A50: .4byte 0x000030b8 _08136A54: .4byte 0x00003290 _08136A58: .4byte 0x000030f0 @@ -4424,7 +4131,7 @@ _08136A70: bl ConvertIntToDecimalStringN _08136A84: ldr r2, _08136AB4 @ =gBattleMoves - ldr r0, _08136AB8 @ =gUnknown_203B140 + ldr r0, _08136AB8 @ =gMonSummaryScreen ldr r3, [r0] ldr r1, _08136ABC @ =0x00003258 adds r0, r3, r1 @@ -4447,7 +4154,7 @@ _08136A84: .align 2, 0 _08136AB0: .4byte 0x0000316c _08136AB4: .4byte gBattleMoves -_08136AB8: .4byte gUnknown_203B140 +_08136AB8: .4byte gMonSummaryScreen _08136ABC: .4byte 0x00003258 _08136AC0: .4byte 0x00003188 _08136AC4: .4byte gText_ThreeHyphens @@ -4474,7 +4181,7 @@ _08136AE8: .4byte 0x00003188 thumb_func_start sub_8136AEC sub_8136AEC: @ 8136AEC push {lr} - ldr r0, _08136B08 @ =gUnknown_203B140 + ldr r0, _08136B08 @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _08136B0C @ =0x0000327c adds r0, r1 @@ -4487,7 +4194,7 @@ sub_8136AEC: @ 8136AEC ldr r0, [r0] mov pc, r0 .align 2, 0 -_08136B08: .4byte gUnknown_203B140 +_08136B08: .4byte gMonSummaryScreen _08136B0C: .4byte 0x0000327c _08136B10: .4byte _08136B14 .align 2, 0 @@ -4545,7 +4252,7 @@ _08136B86: movs r0, 0x1 b _08136B9E _08136B8E: - ldr r0, _08136BA4 @ =gUnknown_203B140 + ldr r0, _08136BA4 @ =gMonSummaryScreen ldr r1, [r0] ldr r0, _08136BA8 @ =0x0000327c adds r1, r0 @@ -4557,7 +4264,7 @@ _08136B9E: pop {r1} bx r1 .align 2, 0 -_08136BA4: .4byte gUnknown_203B140 +_08136BA4: .4byte gMonSummaryScreen _08136BA8: .4byte 0x0000327c thumb_func_end sub_8136AEC @@ -4686,7 +4393,7 @@ _08136BEA: ldr r1, _08136D44 @ =0x00005040 movs r0, 0 bl SetGpuReg - ldr r4, _08136D48 @ =gUnknown_203B140 + ldr r4, _08136D48 @ =gMonSummaryScreen ldr r0, [r4] ldr r2, _08136D4C @ =0x00003214 adds r0, r2 @@ -4740,7 +4447,7 @@ _08136D38: .4byte 0x040000d4 _08136D3C: .4byte 0x81000800 _08136D40: .4byte gUnknown_8463EFC _08136D44: .4byte 0x00005040 -_08136D48: .4byte gUnknown_203B140 +_08136D48: .4byte gMonSummaryScreen _08136D4C: .4byte 0x00003214 _08136D50: .4byte 0x00002087 thumb_func_end sub_8136BC4 @@ -4748,7 +4455,7 @@ _08136D50: .4byte 0x00002087 thumb_func_start sub_8136D54 sub_8136D54: @ 8136D54 push {r4,lr} - ldr r4, _08136D70 @ =gUnknown_203B140 + ldr r4, _08136D70 @ =gMonSummaryScreen ldr r0, [r4] ldr r1, _08136D74 @ =0x00003208 adds r0, r1 @@ -4761,7 +4468,7 @@ sub_8136D54: @ 8136D54 ldr r0, _08136D78 @ =sub_81393D4 b _08136D7E .align 2, 0 -_08136D70: .4byte gUnknown_203B140 +_08136D70: .4byte gMonSummaryScreen _08136D74: .4byte 0x00003208 _08136D78: .4byte sub_81393D4 _08136D7C: @@ -4789,7 +4496,7 @@ sub_8136DA4: @ 8136DA4 push {r4-r6,lr} sub sp, 0xC adds r6, r0, 0 - ldr r5, _08136DE8 @ =gUnknown_203B140 + ldr r5, _08136DE8 @ =gMonSummaryScreen ldr r0, [r5] movs r4, 0xC0 lsls r4, 6 @@ -4818,7 +4525,7 @@ sub_8136DA4: @ 8136DA4 pop {r0} bx r0 .align 2, 0 -_08136DE8: .4byte gUnknown_203B140 +_08136DE8: .4byte gMonSummaryScreen _08136DEC: .4byte gUnknown_8463FA7 thumb_func_end sub_8136DA4 @@ -4827,7 +4534,7 @@ sub_8136DF0: @ 8136DF0 push {r4-r6,lr} sub sp, 0xC adds r6, r0, 0 - ldr r5, _08136E44 @ =gUnknown_203B140 + ldr r5, _08136E44 @ =gMonSummaryScreen ldr r0, [r5] ldr r4, _08136E48 @ =0x00003001 adds r0, r4 @@ -4863,7 +4570,7 @@ sub_8136DF0: @ 8136DF0 pop {r0} bx r0 .align 2, 0 -_08136E44: .4byte gUnknown_203B140 +_08136E44: .4byte gMonSummaryScreen _08136E48: .4byte 0x00003001 _08136E4C: .4byte gUnknown_8463FA7 thumb_func_end sub_8136DF0 @@ -4872,7 +4579,7 @@ _08136E4C: .4byte gUnknown_8463FA7 sub_8136E50: @ 8136E50 push {r4-r7,lr} sub sp, 0xC - ldr r6, _08136EEC @ =gUnknown_203B140 + ldr r6, _08136EEC @ =gMonSummaryScreen ldr r0, [r6] ldr r7, _08136EF0 @ =0x00003002 adds r0, r7 @@ -4944,7 +4651,7 @@ _08136E9A: bl AddTextPrinterParameterized3 b _08136F28 .align 2, 0 -_08136EEC: .4byte gUnknown_203B140 +_08136EEC: .4byte gMonSummaryScreen _08136EF0: .4byte 0x00003002 _08136EF4: .4byte 0x00003214 _08136EF8: .4byte gUnknown_8463FA7 @@ -4967,7 +4674,7 @@ _08136F0C: movs r3, 0x2 bl AddTextPrinterParameterized3 _08136F28: - ldr r0, _08136F44 @ =gUnknown_203B140 + ldr r0, _08136F44 @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _08136F48 @ =0x00003002 adds r0, r1 @@ -4979,14 +4686,14 @@ _08136F28: bx r0 .align 2, 0 _08136F40: .4byte 0x00003084 -_08136F44: .4byte gUnknown_203B140 +_08136F44: .4byte gMonSummaryScreen _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 r4, _08136F74 @ =gMonSummaryScreen ldr r0, [r4] ldr r1, _08136F78 @ =0x00003003 adds r0, r1 @@ -5005,7 +4712,7 @@ sub_8136F4C: @ 8136F4C beq _08136F8A b _08136F94 .align 2, 0 -_08136F74: .4byte gUnknown_203B140 +_08136F74: .4byte gMonSummaryScreen _08136F78: .4byte 0x00003003 _08136F7C: .4byte 0x00003214 _08136F80: @@ -5019,7 +4726,7 @@ _08136F8A: _08136F90: bl sub_81370EC _08136F94: - ldr r0, _08136FA8 @ =gUnknown_203B140 + ldr r0, _08136FA8 @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _08136FAC @ =0x00003003 adds r0, r1 @@ -5029,7 +4736,7 @@ _08136F94: pop {r0} bx r0 .align 2, 0 -_08136FA8: .4byte gUnknown_203B140 +_08136FA8: .4byte gMonSummaryScreen _08136FAC: .4byte 0x00003003 thumb_func_end sub_8136F4C @@ -5037,7 +4744,7 @@ _08136FAC: .4byte 0x00003003 sub_8136FB0: @ 8136FB0 push {r4-r7,lr} sub sp, 0xC - ldr r6, _08137060 @ =gUnknown_203B140 + ldr r6, _08137060 @ =gMonSummaryScreen ldr r1, [r6] ldr r2, _08137064 @ =0x00003003 adds r0, r1, r2 @@ -5119,7 +4826,7 @@ sub_8136FB0: @ 8136FB0 bl AddTextPrinterParameterized3 b _081370CA .align 2, 0 -_08137060: .4byte gUnknown_203B140 +_08137060: .4byte gMonSummaryScreen _08137064: .4byte 0x00003003 _08137068: .4byte gUnknown_8463FA4 _0813706C: .4byte 0x00003028 @@ -5142,7 +4849,7 @@ _08137074: bhi _08137096 movs r3, 0x1 _08137096: - ldr r0, _081370D8 @ =gUnknown_203B140 + ldr r0, _081370D8 @ =gMonSummaryScreen ldr r1, [r0] ldr r2, _081370DC @ =0x00003204 adds r0, r1, r2 @@ -5175,7 +4882,7 @@ _081370CA: bx r0 .align 2, 0 _081370D4: .4byte 0x00003290 -_081370D8: .4byte gUnknown_203B140 +_081370D8: .4byte gMonSummaryScreen _081370DC: .4byte 0x00003204 _081370E0: .4byte 0x00003003 _081370E4: .4byte gUnknown_8463FA4 @@ -5189,7 +4896,7 @@ sub_81370EC: @ 81370EC mov r5, r8 push {r5,r6} sub sp, 0xC - ldr r0, _08137240 @ =gUnknown_203B140 + ldr r0, _08137240 @ =gMonSummaryScreen mov r9, r0 ldr r3, [r0] ldr r4, _08137244 @ =0x00003003 @@ -5347,7 +5054,7 @@ sub_81370EC: @ 81370EC pop {r0} bx r0 .align 2, 0 -_08137240: .4byte gUnknown_203B140 +_08137240: .4byte gMonSummaryScreen _08137244: .4byte 0x00003003 _08137248: .4byte gUnknown_203B144 _0813724C: .4byte gUnknown_8463FA4 @@ -5374,7 +5081,7 @@ _08137276: lsrs r4, r0, 24 cmp r4, 0x3 bls _08137276 - ldr r0, _081372A8 @ =gUnknown_203B140 + ldr r0, _081372A8 @ =gMonSummaryScreen ldr r1, [r0] ldr r2, _081372AC @ =0x00003214 adds r0, r1, r2 @@ -5390,7 +5097,7 @@ _08137276: bl sub_81372E4 b _081372CE .align 2, 0 -_081372A8: .4byte gUnknown_203B140 +_081372A8: .4byte gMonSummaryScreen _081372AC: .4byte 0x00003214 _081372B0: ldr r2, _081372D8 @ =0x00003003 @@ -5430,7 +5137,7 @@ sub_81372E4: @ 81372E4 lsrs r7, r0, 24 movs r0, 0 mov r9, r0 - ldr r1, _0813739C @ =gUnknown_203B140 + ldr r1, _0813739C @ =gMonSummaryScreen mov r10, r1 ldr r0, [r1] ldr r5, _081373A0 @ =0x00003290 @@ -5509,7 +5216,7 @@ _0813733E: mov r9, r5 b _081373EA .align 2, 0 -_0813739C: .4byte gUnknown_203B140 +_0813739C: .4byte gMonSummaryScreen _081373A0: .4byte 0x00003290 _081373A4: .4byte 0x00003258 _081373A8: .4byte 0x00003003 @@ -5549,7 +5256,7 @@ _081373E6: movs r3, 0x1 mov r9, r3 _081373EA: - ldr r5, _081374C4 @ =gUnknown_203B140 + ldr r5, _081374C4 @ =gMonSummaryScreen mov r10, r5 ldr r0, [r5] ldr r4, _081374C8 @ =0x00003003 @@ -5656,7 +5363,7 @@ _081374B4: pop {r0} bx r0 .align 2, 0 -_081374C4: .4byte gUnknown_203B140 +_081374C4: .4byte gMonSummaryScreen _081374C8: .4byte 0x00003003 _081374CC: .4byte gUnknown_8463EF0 _081374D0: .4byte gUnknown_8416238 @@ -5670,7 +5377,7 @@ _081374E4: .4byte 0x000030f0 thumb_func_start sub_81374E8 sub_81374E8: @ 81374E8 push {r4,lr} - ldr r4, _08137510 @ =gUnknown_203B140 + ldr r4, _08137510 @ =gMonSummaryScreen ldr r0, [r4] ldr r1, _08137514 @ =0x00003004 adds r0, r1 @@ -5689,7 +5396,7 @@ sub_81374E8: @ 81374E8 beq _08137526 b _08137536 .align 2, 0 -_08137510: .4byte gUnknown_203B140 +_08137510: .4byte gMonSummaryScreen _08137514: .4byte 0x00003004 _08137518: .4byte 0x00003214 _0813751C: @@ -5707,7 +5414,7 @@ _0813752C: _08137532: bl sub_8137AF8 _08137536: - ldr r0, _0813754C @ =gUnknown_203B140 + ldr r0, _0813754C @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _08137550 @ =0x00003004 adds r0, r1 @@ -5717,14 +5424,14 @@ _08137536: pop {r0} bx r0 .align 2, 0 -_0813754C: .4byte gUnknown_203B140 +_0813754C: .4byte gMonSummaryScreen _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, _0813756C @ =gMonSummaryScreen ldr r0, [r0] movs r1, 0xC8 lsls r1, 6 @@ -5735,7 +5442,7 @@ sub_8137554: @ 8137554 bl sub_8137944 b _08137574 .align 2, 0 -_0813756C: .4byte gUnknown_203B140 +_0813756C: .4byte gMonSummaryScreen _08137570: bl sub_8137970 _08137574: @@ -5748,7 +5455,7 @@ sub_8137578: @ 8137578 push {r4-r7,lr} sub sp, 0xD4 bl DynamicPlaceholderTextUtil_Reset - ldr r7, _081375E8 @ =gUnknown_203B140 + ldr r7, _081375E8 @ =gMonSummaryScreen ldr r0, [r7] ldr r4, _081375EC @ =0x00003290 adds r0, r4 @@ -5794,7 +5501,7 @@ _081375B2: bl GetMapNameGeneric_ b _08137626 .align 2, 0 -_081375E8: .4byte gUnknown_203B140 +_081375E8: .4byte gMonSummaryScreen _081375EC: .4byte 0x00003290 _081375F0: .4byte gNatureNamePointers _081375F4: @@ -5825,7 +5532,7 @@ _08137626: adds r1, r4, 0 movs r0, 0x2 bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - ldr r4, _08137664 @ =gUnknown_203B140 + ldr r4, _08137664 @ =gMonSummaryScreen ldr r0, [r4] ldr r1, _08137668 @ =0x00003290 adds r0, r1 @@ -5849,7 +5556,7 @@ _08137626: b _081376CE .align 2, 0 _08137660: .4byte gUnknown_8419C0B -_08137664: .4byte gUnknown_203B140 +_08137664: .4byte gMonSummaryScreen _08137668: .4byte 0x00003290 _0813766C: .4byte gUnknown_841996D _08137670: @@ -5911,7 +5618,7 @@ _081376DC: adds r0, r4, 0 bl DynamicPlaceholderTextUtil_ExpandPlaceholders _081376E6: - ldr r0, _08137718 @ =gUnknown_203B140 + ldr r0, _08137718 @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _0813771C @ =0x00003004 adds r0, r1 @@ -5935,7 +5642,7 @@ _081376E6: bx r0 .align 2, 0 _08137714: .4byte gUnknown_8419822 -_08137718: .4byte gUnknown_203B140 +_08137718: .4byte gMonSummaryScreen _0813771C: .4byte 0x00003004 _08137720: .4byte gUnknown_8463FA4 thumb_func_end sub_8137578 @@ -5945,7 +5652,7 @@ sub_8137724: @ 8137724 push {r4-r6,lr} sub sp, 0xD4 bl DynamicPlaceholderTextUtil_Reset - ldr r5, _081377A0 @ =gUnknown_203B140 + ldr r5, _081377A0 @ =gMonSummaryScreen ldr r0, [r5] ldr r4, _081377A4 @ =0x00003290 adds r0, r4 @@ -5995,7 +5702,7 @@ _08137790: bl sub_8137578 b _0813792C .align 2, 0 -_081377A0: .4byte gUnknown_203B140 +_081377A0: .4byte gMonSummaryScreen _081377A4: .4byte 0x00003290 _081377A8: .4byte gNatureNamePointers _081377AC: @@ -6035,7 +5742,7 @@ _081377EC: adds r0, r4, 0 bl DynamicPlaceholderTextUtil_ExpandPlaceholders _081377F6: - ldr r0, _08137824 @ =gUnknown_203B140 + ldr r0, _08137824 @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _08137828 @ =0x00003004 adds r0, r1 @@ -6056,7 +5763,7 @@ _081377F6: b _0813792C .align 2, 0 _08137820: .4byte gUnknown_8419782 -_08137824: .4byte gUnknown_203B140 +_08137824: .4byte gMonSummaryScreen _08137828: .4byte 0x00003004 _0813782C: .4byte gUnknown_8463FA4 _08137830: @@ -6078,7 +5785,7 @@ _08137850: adds r1, r4, 0 movs r0, 0x2 bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - ldr r4, _08137890 @ =gUnknown_203B140 + ldr r4, _08137890 @ =gMonSummaryScreen ldr r0, [r4] ldr r1, _08137894 @ =0x00003290 adds r0, r1 @@ -6102,7 +5809,7 @@ _08137850: b _081378EE .align 2, 0 _0813788C: .4byte gUnknown_8419C0B -_08137890: .4byte gUnknown_203B140 +_08137890: .4byte gMonSummaryScreen _08137894: .4byte 0x00003290 _08137898: .4byte gUnknown_84199F4 _0813789C: @@ -6159,7 +5866,7 @@ _081378FC: adds r0, r4, 0 bl DynamicPlaceholderTextUtil_ExpandPlaceholders _08137906: - ldr r0, _08137938 @ =gUnknown_203B140 + ldr r0, _08137938 @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _0813793C @ =0x00003004 adds r0, r1 @@ -6184,7 +5891,7 @@ _0813792C: bx r0 .align 2, 0 _08137934: .4byte gUnknown_8419860 -_08137938: .4byte gUnknown_203B140 +_08137938: .4byte gMonSummaryScreen _0813793C: .4byte 0x00003004 _08137940: .4byte gUnknown_8463FA4 thumb_func_end sub_8137724 @@ -6192,7 +5899,7 @@ _08137940: .4byte gUnknown_8463FA4 thumb_func_start sub_8137944 sub_8137944: @ 8137944 push {lr} - ldr r0, _08137960 @ =gUnknown_203B140 + ldr r0, _08137960 @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _08137964 @ =0x00003290 adds r0, r1 @@ -6204,7 +5911,7 @@ sub_8137944: @ 8137944 bl sub_8137578 b _0813796C .align 2, 0 -_08137960: .4byte gUnknown_203B140 +_08137960: .4byte gMonSummaryScreen _08137964: .4byte 0x00003290 _08137968: bl sub_8137724 @@ -6218,7 +5925,7 @@ sub_8137970: @ 8137970 push {r4-r7,lr} sub sp, 0x14 movs r5, 0 - ldr r7, _081379C4 @ =gUnknown_203B140 + ldr r7, _081379C4 @ =gMonSummaryScreen ldr r0, [r7] ldr r6, _081379C8 @ =0x00003290 adds r0, r6 @@ -6254,7 +5961,7 @@ sub_8137970: @ 8137970 movs r5, 0x1 b _081379DE .align 2, 0 -_081379C4: .4byte gUnknown_203B140 +_081379C4: .4byte gMonSummaryScreen _081379C8: .4byte 0x00003290 _081379CC: .4byte 0x000032f4 _081379D0: .4byte gEnemyParty @@ -6301,7 +6008,7 @@ _08137A18: bne _08137A1E movs r5, 0x2 _08137A1E: - ldr r0, _08137A78 @ =gUnknown_203B140 + ldr r0, _08137A78 @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _08137A7C @ =0x00003290 adds r0, r1 @@ -6313,7 +6020,7 @@ _08137A1E: lsls r0, 24 lsrs r5, r0, 24 _08137A36: - ldr r0, _08137A78 @ =gUnknown_203B140 + ldr r0, _08137A78 @ =gMonSummaryScreen ldr r1, [r0] ldr r2, _08137A80 @ =0x00003204 adds r0, r1, r2 @@ -6347,7 +6054,7 @@ _08137A46: pop {r0} bx r0 .align 2, 0 -_08137A78: .4byte gUnknown_203B140 +_08137A78: .4byte gMonSummaryScreen _08137A7C: .4byte 0x00003290 _08137A80: .4byte 0x00003204 _08137A84: .4byte 0x00003004 @@ -6361,7 +6068,7 @@ sub_8137A90: @ 8137A90 mov r6, r8 push {r6} sub sp, 0xC - ldr r0, _08137AE4 @ =gUnknown_203B140 + ldr r0, _08137AE4 @ =gMonSummaryScreen mov r8, r0 ldr r0, [r0] ldr r6, _08137AE8 @ =0x00003004 @@ -6397,7 +6104,7 @@ sub_8137A90: @ 8137A90 pop {r0} bx r0 .align 2, 0 -_08137AE4: .4byte gUnknown_203B140 +_08137AE4: .4byte gMonSummaryScreen _08137AE8: .4byte 0x00003004 _08137AEC: .4byte gUnknown_8463FA4 _08137AF0: .4byte gUnknown_8419C4D @@ -6415,7 +6122,7 @@ sub_8137AF8: @ 8137AF8 ldrb r1, [r0] cmp r1, 0x4 bhi _08137B9E - ldr r7, _08137BB0 @ =gUnknown_203B140 + ldr r7, _08137BB0 @ =gMonSummaryScreen ldr r3, [r7] ldr r2, _08137BB4 @ =0x00003208 adds r0, r3, r2 @@ -6496,7 +6203,7 @@ _08137B9E: bx r0 .align 2, 0 _08137BAC: .4byte gUnknown_203B16D -_08137BB0: .4byte gUnknown_203B140 +_08137BB0: .4byte gMonSummaryScreen _08137BB4: .4byte 0x00003208 _08137BB8: .4byte 0x00003004 _08137BBC: .4byte gUnknown_8463FA4 @@ -6509,7 +6216,7 @@ _08137BCC: .4byte 0x00003258 thumb_func_start sub_8137BD0 sub_8137BD0: @ 8137BD0 push {lr} - ldr r0, _08137BE8 @ =gUnknown_203B140 + ldr r0, _08137BE8 @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _08137BEC @ =0x00003214 adds r0, r1 @@ -6519,7 +6226,7 @@ sub_8137BD0: @ 8137BD0 bl sub_8137C18 b _08137BFC .align 2, 0 -_08137BE8: .4byte gUnknown_203B140 +_08137BE8: .4byte gMonSummaryScreen _08137BEC: .4byte 0x00003214 _08137BF0: cmp r0, 0x1 @@ -6528,7 +6235,7 @@ _08137BF0: bgt _08137BFC bl sub_8137C90 _08137BFC: - ldr r0, _08137C10 @ =gUnknown_203B140 + ldr r0, _08137C10 @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _08137C14 @ =0x00003005 adds r0, r1 @@ -6537,7 +6244,7 @@ _08137BFC: pop {r0} bx r0 .align 2, 0 -_08137C10: .4byte gUnknown_203B140 +_08137C10: .4byte gMonSummaryScreen _08137C14: .4byte 0x00003005 thumb_func_end sub_8137BD0 @@ -6547,7 +6254,7 @@ sub_8137C18: @ 8137C18 mov r6, r8 push {r6} sub sp, 0xC - ldr r5, _08137C7C @ =gUnknown_203B140 + ldr r5, _08137C7C @ =gMonSummaryScreen ldr r0, [r5] ldr r4, _08137C80 @ =0x00003005 adds r0, r4 @@ -6590,7 +6297,7 @@ sub_8137C18: @ 8137C18 pop {r0} bx r0 .align 2, 0 -_08137C7C: .4byte gUnknown_203B140 +_08137C7C: .4byte gMonSummaryScreen _08137C80: .4byte 0x00003005 _08137C84: .4byte gUnknown_8463FA4 _08137C88: .4byte 0x000031bc @@ -6600,7 +6307,7 @@ _08137C8C: .4byte 0x000031cc thumb_func_start sub_8137C90 sub_8137C90: @ 8137C90 push {r4,r5,lr} - ldr r0, _08137D14 @ =gUnknown_203B140 + ldr r0, _08137D14 @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _08137D18 @ =0x00003005 adds r0, r1 @@ -6609,7 +6316,7 @@ sub_8137C90: @ 8137C90 bl FillWindowPixelBuffer movs r4, 0 _08137CA4: - ldr r5, _08137D14 @ =gUnknown_203B140 + ldr r5, _08137D14 @ =gMonSummaryScreen ldr r1, [r5] lsls r2, r4, 1 ldr r3, _08137D1C @ =0x00003258 @@ -6666,7 +6373,7 @@ _08137D0E: pop {r0} bx r0 .align 2, 0 -_08137D14: .4byte gUnknown_203B140 +_08137D14: .4byte gMonSummaryScreen _08137D18: .4byte 0x00003005 _08137D1C: .4byte 0x00003258 _08137D20: .4byte 0x0000324e @@ -6698,7 +6405,7 @@ _08137D40: _08137D58: ldr r0, _08137D78 @ =gUnknown_8419C1D bl sub_8136DA4 - ldr r0, _08137D7C @ =gUnknown_203B140 + ldr r0, _08137D7C @ =gMonSummaryScreen ldr r0, [r0] movs r1, 0xC8 lsls r1, 6 @@ -6711,7 +6418,7 @@ _08137D58: b _08137DF2 .align 2, 0 _08137D78: .4byte gUnknown_8419C1D -_08137D7C: .4byte gUnknown_203B140 +_08137D7C: .4byte gMonSummaryScreen _08137D80: .4byte gUnknown_8419C62 _08137D84: ldr r0, _08137D88 @ =gUnknown_8419C72 @@ -6785,7 +6492,7 @@ _08137E24: .4byte gUnknown_8419C45 thumb_func_start sub_8137E28 sub_8137E28: @ 8137E28 push {r4,lr} - ldr r4, _08137E58 @ =gUnknown_203B140 + ldr r4, _08137E58 @ =gMonSummaryScreen ldr r0, [r4] movs r1, 0xC0 lsls r1, 6 @@ -6806,7 +6513,7 @@ sub_8137E28: @ 8137E28 pop {r0} bx r0 .align 2, 0 -_08137E58: .4byte gUnknown_203B140 +_08137E58: .4byte gMonSummaryScreen _08137E5C: .4byte 0x00003001 _08137E60: .4byte 0x00003002 thumb_func_end sub_8137E28 @@ -6825,7 +6532,7 @@ sub_8137E64: @ 8137E64 bne _08137E82 bl StopCryAndClearCrySongs _08137E82: - ldr r4, _08137ED4 @ =gUnknown_203B140 + ldr r4, _08137ED4 @ =gMonSummaryScreen ldr r0, [r4] ldr r1, _08137ED8 @ =0x00003214 adds r0, r1 @@ -6861,7 +6568,7 @@ _08137ECC: pop {r0} bx r0 .align 2, 0 -_08137ED4: .4byte gUnknown_203B140 +_08137ED4: .4byte gMonSummaryScreen _08137ED8: .4byte 0x00003214 _08137EDC: .4byte 0x000032f8 _08137EE0: .4byte gLastViewedMonIndex @@ -7017,7 +6724,7 @@ _08137FF0: .4byte gUnknown_203B15C thumb_func_start sub_8137FF4 sub_8137FF4: @ 8137FF4 push {r4,r5,lr} - ldr r4, _08138038 @ =gUnknown_203B140 + ldr r4, _08138038 @ =gMonSummaryScreen ldr r0, [r4] ldr r3, _0813803C @ =0x0000324c adds r1, r0, r3 @@ -7051,7 +6758,7 @@ _0813801A: bl SetGpuReg b _08138054 .align 2, 0 -_08138038: .4byte gUnknown_203B140 +_08138038: .4byte gMonSummaryScreen _0813803C: .4byte 0x0000324c _08138040: .4byte 0x00003238 _08138044: @@ -7071,7 +6778,7 @@ _08138054: thumb_func_start sub_813805C sub_813805C: @ 813805C push {r4,r5,lr} - ldr r4, _081380A0 @ =gUnknown_203B140 + ldr r4, _081380A0 @ =gMonSummaryScreen ldr r0, [r4] ldr r3, _081380A4 @ =0x0000324c adds r1, r0, r3 @@ -7104,7 +6811,7 @@ _08138080: bl SetGpuReg b _081380BC .align 2, 0 -_081380A0: .4byte gUnknown_203B140 +_081380A0: .4byte gMonSummaryScreen _081380A4: .4byte 0x0000324c _081380A8: .4byte 0x00003238 _081380AC: @@ -7116,7 +6823,7 @@ _081380AC: movs r0, 0x18 bl SetGpuReg _081380BC: - ldr r0, _081380E4 @ =gUnknown_203B140 + ldr r0, _081380E4 @ =gMonSummaryScreen ldr r1, [r0] ldr r5, _081380E8 @ =0x00003214 adds r0, r1, r5 @@ -7136,7 +6843,7 @@ _081380DC: pop {r0} bx r0 .align 2, 0 -_081380E4: .4byte gUnknown_203B140 +_081380E4: .4byte gMonSummaryScreen _081380E8: .4byte 0x00003214 _081380EC: .4byte 0x0000324c thumb_func_end sub_813805C @@ -7144,7 +6851,7 @@ _081380EC: .4byte 0x0000324c thumb_func_start sub_81380F0 sub_81380F0: @ 81380F0 push {lr} - ldr r0, _08138110 @ =gUnknown_203B140 + ldr r0, _08138110 @ =gMonSummaryScreen ldr r1, [r0] ldr r2, _08138114 @ =0x00003224 adds r0, r1, r2 @@ -7159,7 +6866,7 @@ sub_81380F0: @ 81380F0 bl sub_8137FF4 b _08138130 .align 2, 0 -_08138110: .4byte gUnknown_203B140 +_08138110: .4byte gMonSummaryScreen _08138114: .4byte 0x00003224 _08138118: ldr r2, _08138128 @ =0x00003214 @@ -7182,7 +6889,7 @@ _08138130: thumb_func_start sub_8138134 sub_8138134: @ 8138134 push {lr} - ldr r0, _08138174 @ =gUnknown_203B140 + ldr r0, _08138174 @ =gMonSummaryScreen ldr r1, [r0] ldr r2, _08138178 @ =0x00003214 adds r0, r1, r2 @@ -7196,7 +6903,7 @@ sub_8138134: @ 8138134 bne _08138152 bl sub_8137F68 _08138152: - ldr r0, _08138174 @ =gUnknown_203B140 + ldr r0, _08138174 @ =gMonSummaryScreen ldr r1, [r0] ldr r2, _08138178 @ =0x00003214 adds r0, r1, r2 @@ -7213,7 +6920,7 @@ _0813816E: pop {r0} bx r0 .align 2, 0 -_08138174: .4byte gUnknown_203B140 +_08138174: .4byte gMonSummaryScreen _08138178: .4byte 0x00003214 thumb_func_end sub_8138134 @@ -7223,7 +6930,7 @@ sub_813817C: @ 813817C bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer - ldr r0, _081381A4 @ =gUnknown_203B140 + ldr r0, _081381A4 @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _081381A8 @ =0x00003244 adds r0, r1 @@ -7236,7 +6943,7 @@ _081381A0: pop {r0} bx r0 .align 2, 0 -_081381A4: .4byte gUnknown_203B140 +_081381A4: .4byte gMonSummaryScreen _081381A8: .4byte 0x00003244 thumb_func_end sub_813817C @@ -7273,7 +6980,7 @@ _081381DA: ldr r1, _0813821C @ =gUnknown_8463F0C adds r0, r1 bl AddWindow - ldr r2, _08138220 @ =gUnknown_203B140 + ldr r2, _08138220 @ =gMonSummaryScreen ldr r1, [r2] movs r3, 0xC0 lsls r3, 6 @@ -7302,7 +7009,7 @@ _08138200: .align 2, 0 _08138218: .4byte gUnknown_8463F9C _0813821C: .4byte gUnknown_8463F0C -_08138220: .4byte gUnknown_203B140 +_08138220: .4byte gMonSummaryScreen _08138224: .4byte 0x00003214 _08138228: cmp r0, 0x3 @@ -7368,7 +7075,7 @@ sub_8138280: @ 8138280 adds r3, r4, 0 ands r3, r0 movs r4, 0 - ldr r2, _08138314 @ =gUnknown_203B140 + ldr r2, _08138314 @ =gMonSummaryScreen movs r0, 0xC0 lsls r0, 6 mov r12, r0 @@ -7415,7 +7122,7 @@ _081382F0: ldr r1, _08138320 @ =gUnknown_8463F24 adds r0, r1 bl AddWindow - ldr r1, _08138314 @ =gUnknown_203B140 + ldr r1, _08138314 @ =gMonSummaryScreen ldr r1, [r1] movs r2, 0xC0 lsls r2, 6 @@ -7429,7 +7136,7 @@ _081382F0: bls _081382F0 b _081383AC .align 2, 0 -_08138314: .4byte gUnknown_203B140 +_08138314: .4byte gMonSummaryScreen _08138318: .4byte 0x00003224 _0813831C: .4byte 0x00003214 _08138320: .4byte gUnknown_8463F24 @@ -7440,7 +7147,7 @@ _08138326: ldr r1, _0813834C @ =gUnknown_8463F0C adds r0, r1 bl AddWindow - ldr r1, _08138350 @ =gUnknown_203B140 + ldr r1, _08138350 @ =gMonSummaryScreen ldr r1, [r1] movs r2, 0xC0 lsls r2, 6 @@ -7455,7 +7162,7 @@ _08138326: b _081383AC .align 2, 0 _0813834C: .4byte gUnknown_8463F0C -_08138350: .4byte gUnknown_203B140 +_08138350: .4byte gMonSummaryScreen _08138354: cmp r3, r5 bls _08138388 @@ -7465,7 +7172,7 @@ _0813835A: ldr r1, _08138380 @ =gUnknown_8463F0C adds r0, r1 bl AddWindow - ldr r1, _08138384 @ =gUnknown_203B140 + ldr r1, _08138384 @ =gMonSummaryScreen ldr r1, [r1] movs r2, 0xC0 lsls r2, 6 @@ -7480,7 +7187,7 @@ _0813835A: b _081383AC .align 2, 0 _08138380: .4byte gUnknown_8463F0C -_08138384: .4byte gUnknown_203B140 +_08138384: .4byte gMonSummaryScreen _08138388: movs r4, 0 _0813838A: @@ -7488,7 +7195,7 @@ _0813838A: ldr r1, _081383C0 @ =gUnknown_8463F24 adds r0, r1 bl AddWindow - ldr r1, _081383C4 @ =gUnknown_203B140 + ldr r1, _081383C4 @ =gMonSummaryScreen ldr r1, [r1] movs r2, 0xC0 lsls r2, 6 @@ -7502,7 +7209,7 @@ _0813838A: bls _0813838A _081383AC: movs r4, 0 - ldr r5, _081383C4 @ =gUnknown_203B140 + ldr r5, _081383C4 @ =gMonSummaryScreen _081383B0: cmp r6, 0x1 beq _081383E4 @@ -7513,7 +7220,7 @@ _081383B0: b _081383E4 .align 2, 0 _081383C0: .4byte gUnknown_8463F24 -_081383C4: .4byte gUnknown_203B140 +_081383C4: .4byte gMonSummaryScreen _081383C8: cmp r6, 0x3 bgt _081383E4 @@ -7558,7 +7265,7 @@ _08138410: .4byte 0x00003003 sub_8138414: @ 8138414 push {r4,r5,lr} movs r4, 0 - ldr r5, _0813843C @ =gUnknown_203B140 + ldr r5, _0813843C @ =gMonSummaryScreen _0813841A: ldr r0, [r5] movs r1, 0xC0 @@ -7576,13 +7283,13 @@ _0813841A: pop {r0} bx r0 .align 2, 0 -_0813843C: .4byte gUnknown_203B140 +_0813843C: .4byte gMonSummaryScreen thumb_func_end sub_8138414 thumb_func_start sub_8138440 sub_8138440: @ 8138440 push {lr} - ldr r0, _0813845C @ =gUnknown_203B140 + ldr r0, _0813845C @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _08138460 @ =0x00003214 adds r0, r1 @@ -7595,7 +7302,7 @@ sub_8138440: @ 8138440 beq _0813846C b _08138476 .align 2, 0 -_0813845C: .4byte gUnknown_203B140 +_0813845C: .4byte gMonSummaryScreen _08138460: .4byte 0x00003214 _08138464: cmp r0, 0x3 @@ -7618,7 +7325,7 @@ _08138476: sub_813847C: @ 813847C push {r4-r6,lr} adds r6, r0, 0 - ldr r5, _081384BC @ =gUnknown_203B140 + ldr r5, _081384BC @ =gMonSummaryScreen ldr r0, [r5] ldr r1, _081384C0 @ =0x000032f4 adds r0, r1 @@ -7646,7 +7353,7 @@ sub_813847C: @ 813847C bl StringCopy b _081384E8 .align 2, 0 -_081384BC: .4byte gUnknown_203B140 +_081384BC: .4byte gMonSummaryScreen _081384C0: .4byte 0x000032f4 _081384C4: .4byte gEnemyParty _081384C8: .4byte gLinkPlayers @@ -7670,7 +7377,7 @@ _081384E8: ands r1, r0 cmp r4, r1 bne _08138518 - ldr r4, _08138528 @ =gUnknown_203B140 + ldr r4, _08138528 @ =gMonSummaryScreen ldr r2, [r4] ldr r5, _0813852C @ =0x00003058 adds r2, r5 @@ -7691,7 +7398,7 @@ _08138518: _0813851C: .4byte 0x0000ffff _08138520: .4byte 0x0000304c _08138524: .4byte gSaveBlock2Ptr -_08138528: .4byte gUnknown_203B140 +_08138528: .4byte gMonSummaryScreen _0813852C: .4byte 0x00003058 _08138530: movs r0, 0x1 @@ -7709,7 +7416,7 @@ sub_8138538: @ 8138538 mov r5, r8 push {r5-r7} sub sp, 0xC - ldr r0, _08138560 @ =gUnknown_203B140 + ldr r0, _08138560 @ =gMonSummaryScreen ldr r1, [r0] ldr r2, _08138564 @ =0x00003214 adds r0, r1, r2 @@ -7724,7 +7431,7 @@ _08138554: beq _08138576 b _08138A16 .align 2, 0 -_08138560: .4byte gUnknown_203B140 +_08138560: .4byte gMonSummaryScreen _08138564: .4byte 0x00003214 _08138568: cmp r7, 0x2 @@ -8288,7 +7995,7 @@ _08138A34: .4byte 0x00000199 thumb_func_start sub_8138A38 sub_8138A38: @ 8138A38 push {r4-r6,lr} - ldr r6, _08138A54 @ =gUnknown_203B140 + ldr r6, _08138A54 @ =gMonSummaryScreen ldr r1, [r6] ldr r2, _08138A58 @ =0x00003214 adds r0, r1, r2 @@ -8301,7 +8008,7 @@ sub_8138A38: @ 8138A38 beq _08138A62 b _08138B0E .align 2, 0 -_08138A54: .4byte gUnknown_203B140 +_08138A54: .4byte gMonSummaryScreen _08138A58: .4byte 0x00003214 _08138A5C: cmp r0, 0x3 @@ -8417,14 +8124,14 @@ _08138B34: .4byte gUnknown_203B16E thumb_func_start sub_8138B38 sub_8138B38: @ 8138B38 - ldr r1, _08138B44 @ =gUnknown_203B140 + ldr r1, _08138B44 @ =gMonSummaryScreen ldr r1, [r1] ldr r2, _08138B48 @ =0x00003208 adds r1, r2 strb r0, [r1] bx lr .align 2, 0 -_08138B44: .4byte gUnknown_203B140 +_08138B44: .4byte gMonSummaryScreen _08138B48: .4byte 0x00003208 thumb_func_end sub_8138B38 @@ -8466,7 +8173,7 @@ _08138B86: sub_8138B8C: @ 8138B8C push {r4,r5,lr} adds r5, r0, 0 - ldr r0, _08138BBC @ =gUnknown_203B140 + ldr r0, _08138BBC @ =gMonSummaryScreen ldr r1, [r0] ldr r2, _08138BC0 @ =0x0000321c adds r0, r1, r2 @@ -8487,7 +8194,7 @@ sub_8138B8C: @ 8138B8C bl memcpy b _08138BE2 .align 2, 0 -_08138BBC: .4byte gUnknown_203B140 +_08138BBC: .4byte gMonSummaryScreen _08138BC0: .4byte 0x0000321c _08138BC4: ldr r2, _08138BE8 @ =0x000032f4 @@ -8587,7 +8294,7 @@ _08138C4E: sub_8138C5C: @ 8138C5C push {r4-r6,lr} adds r4, r0, 0 - ldr r6, _08138C78 @ =gUnknown_203B140 + ldr r6, _08138C78 @ =gMonSummaryScreen ldr r0, [r6] ldr r5, _08138C7C @ =0x00003290 adds r0, r5 @@ -8598,7 +8305,7 @@ sub_8138C5C: @ 8138C5C movs r0, 0x7 b _08138CD2 .align 2, 0 -_08138C78: .4byte gUnknown_203B140 +_08138C78: .4byte gMonSummaryScreen _08138C7C: .4byte 0x00003290 _08138C80: movs r0, 0x88 @@ -8659,7 +8366,7 @@ sub_8138CD8: @ 8138CD8 mov r7, r9 mov r6, r8 push {r6,r7} - ldr r6, _08138CFC @ =gUnknown_203B140 + ldr r6, _08138CFC @ =gMonSummaryScreen ldr r0, [r6] ldr r7, _08138D00 @ =0x00003288 adds r3, r0, r7 @@ -8674,7 +8381,7 @@ _08138CF0: beq _08138D12 b _08139094 .align 2, 0 -_08138CFC: .4byte gUnknown_203B140 +_08138CFC: .4byte gMonSummaryScreen _08138D00: .4byte 0x00003288 _08138D04: cmp r1, 0x2 @@ -8823,7 +8530,7 @@ _08138E14: _08138E16: mov r0, r12 ldrb r4, [r0] - ldr r2, _08138E58 @ =gUnknown_203B140 + ldr r2, _08138E58 @ =gMonSummaryScreen cmp r4, r5 bcs _08138E3C ldr r0, [r2] @@ -8858,7 +8565,7 @@ _08138E4A: strb r0, [r1] b _08139094 .align 2, 0 -_08138E58: .4byte gUnknown_203B140 +_08138E58: .4byte gMonSummaryScreen _08138E5C: .4byte 0x00003258 _08138E60: .4byte 0x00003268 _08138E64: .4byte gUnknown_203B16D @@ -8971,7 +8678,7 @@ _08138F3C: .4byte 0x0000321c _08138F40: bl sub_81391EC _08138F44: - ldr r4, _08138F60 @ =gUnknown_203B140 + ldr r4, _08138F60 @ =gMonSummaryScreen ldr r0, [r4] ldr r2, _08138F64 @ =0x00003290 adds r0, r2 @@ -8983,7 +8690,7 @@ _08138F44: movs r1, 0x2 b _08139092 .align 2, 0 -_08138F60: .4byte gUnknown_203B140 +_08138F60: .4byte gMonSummaryScreen _08138F64: .4byte 0x00003290 _08138F68: .4byte 0x00003288 _08138F6C: @@ -9143,7 +8850,7 @@ sub_81390B0: @ 81390B0 mov r5, r8 push {r5-r7} sub sp, 0xC - ldr r0, _081391D8 @ =gUnknown_203B140 + ldr r0, _081391D8 @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _081391DC @ =0x000032f4 adds r0, r1 @@ -9274,7 +8981,7 @@ sub_81390B0: @ 81390B0 pop {r0} bx r0 .align 2, 0 -_081391D8: .4byte gUnknown_203B140 +_081391D8: .4byte gMonSummaryScreen _081391DC: .4byte 0x000032f4 _081391E0: .4byte gUnknown_203B16D _081391E4: .4byte gUnknown_203B16E @@ -9289,7 +8996,7 @@ sub_81391EC: @ 81391EC mov r5, r8 push {r5-r7} sub sp, 0xC - ldr r0, _08139314 @ =gUnknown_203B140 + ldr r0, _08139314 @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _08139318 @ =0x000032f4 adds r0, r1 @@ -9421,7 +9128,7 @@ sub_81391EC: @ 81391EC pop {r0} bx r0 .align 2, 0 -_08139314: .4byte gUnknown_203B140 +_08139314: .4byte gMonSummaryScreen _08139318: .4byte 0x000032f4 _0813931C: .4byte gUnknown_203B16D _08139320: .4byte gUnknown_203B16E @@ -9432,7 +9139,7 @@ _08139324: .4byte gPPUpGetMask sub_8139328: @ 8139328 push {r4,r5,lr} adds r5, r0, 0 - ldr r0, _08139358 @ =gUnknown_203B140 + ldr r0, _08139358 @ =gMonSummaryScreen ldr r1, [r0] ldr r2, _0813935C @ =0x0000321c adds r0, r1, r2 @@ -9453,7 +9160,7 @@ sub_8139328: @ 8139328 bl memcpy b _0813937E .align 2, 0 -_08139358: .4byte gUnknown_203B140 +_08139358: .4byte gMonSummaryScreen _0813935C: .4byte 0x0000321c _08139360: ldr r2, _08139384 @ =0x000032f4 @@ -9480,7 +9187,7 @@ _08139384: .4byte 0x000032f4 thumb_func_start sub_8139388 sub_8139388: @ 8139388 push {r4,lr} - ldr r4, _081393BC @ =gUnknown_203B140 + ldr r4, _081393BC @ =gMonSummaryScreen ldr r0, [r4] ldr r1, _081393C0 @ =0x00003290 adds r0, r1 @@ -9503,7 +9210,7 @@ sub_8139388: @ 8139388 movs r0, 0 b _081393CE .align 2, 0 -_081393BC: .4byte gUnknown_203B140 +_081393BC: .4byte gMonSummaryScreen _081393C0: .4byte 0x00003290 _081393C4: .4byte gUnknown_203B16D _081393C8: .4byte 0x00003208 @@ -9521,7 +9228,7 @@ sub_81393D4: @ 81393D4 sub sp, 0x14 lsls r0, 24 lsrs r2, r0, 24 - ldr r1, _081393F8 @ =gUnknown_203B140 + ldr r1, _081393F8 @ =gMonSummaryScreen ldr r0, [r1] ldr r3, _081393FC @ =0x00003288 adds r0, r3 @@ -9537,7 +9244,7 @@ _081393EE: ldr r0, [r0] mov pc, r0 .align 2, 0 -_081393F8: .4byte gUnknown_203B140 +_081393F8: .4byte gMonSummaryScreen _081393FC: .4byte 0x00003288 _08139400: .4byte _08139404 .align 2, 0 @@ -9557,13 +9264,13 @@ _08139420: movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade - ldr r0, _0813943C @ =gUnknown_203B140 + ldr r0, _0813943C @ =gMonSummaryScreen ldr r1, [r0] ldr r4, _08139440 @ =0x00003288 adds r1, r4 b _08139728 .align 2, 0 -_0813943C: .4byte gUnknown_203B140 +_0813943C: .4byte gMonSummaryScreen _08139440: .4byte 0x00003288 _08139444: ldr r0, _08139460 @ =gPaletteFade @@ -9575,14 +9282,14 @@ _08139444: b _0813975A _08139452: bl sub_813B784 - ldr r0, _08139464 @ =gUnknown_203B140 + ldr r0, _08139464 @ =gMonSummaryScreen ldr r1, [r0] ldr r0, _08139468 @ =0x00003288 adds r1, r0 b _08139728 .align 2, 0 _08139460: .4byte gPaletteFade -_08139464: .4byte gUnknown_203B140 +_08139464: .4byte gMonSummaryScreen _08139468: .4byte 0x00003288 _0813946C: ldr r0, _081394BC @ =gMain @@ -9737,7 +9444,7 @@ _08139584: ldr r1, _081395AC @ =gSpecialVar_0x8005 ldrb r0, [r2] strh r0, [r1] - ldr r0, _081395B0 @ =gUnknown_203B140 + ldr r0, _081395B0 @ =gMonSummaryScreen ldr r0, [r0] ldr r3, _081395B4 @ =0x00003288 adds r0, r3 @@ -9746,12 +9453,12 @@ _08139584: _081395A4: .4byte gUnknown_203B16D _081395A8: .4byte gUnknown_203B16E _081395AC: .4byte gSpecialVar_0x8005 -_081395B0: .4byte gUnknown_203B140 +_081395B0: .4byte gMonSummaryScreen _081395B4: .4byte 0x00003288 _081395B8: movs r0, 0x1A bl PlaySE - ldr r0, _081395CC @ =gUnknown_203B140 + ldr r0, _081395CC @ =gMonSummaryScreen ldr r0, [r0] ldr r4, _081395D0 @ =0x00003288 adds r0, r4 @@ -9759,7 +9466,7 @@ _081395B8: strb r1, [r0] b _0813975A .align 2, 0 -_081395CC: .4byte gUnknown_203B140 +_081395CC: .4byte gMonSummaryScreen _081395D0: .4byte 0x00003288 _081395D4: movs r0, 0x2 @@ -9789,7 +9496,7 @@ _08139604: bl sub_8136F4C bl sub_81374E8 bl sub_8137BD0 - ldr r0, _08139620 @ =gUnknown_203B140 + ldr r0, _08139620 @ =gMonSummaryScreen ldr r0, [r0] ldr r2, _08139624 @ =0x00003288 adds r0, r2 @@ -9797,7 +9504,7 @@ _08139604: strb r1, [r0] b _0813975A .align 2, 0 -_08139620: .4byte gUnknown_203B140 +_08139620: .4byte gMonSummaryScreen _08139624: .4byte 0x00003288 _08139628: bl MenuHelpers_CallLinkSomething @@ -9812,7 +9519,7 @@ _08139636: bne _08139640 b _0813975A _08139640: - ldr r4, _08139690 @ =gUnknown_203B140 + ldr r4, _08139690 @ =gMonSummaryScreen ldr r0, [r4] ldr r3, _08139694 @ =0x00003003 adds r0, r3 @@ -9846,7 +9553,7 @@ _08139640: adds r0, r4 b _081396F8 .align 2, 0 -_08139690: .4byte gUnknown_203B140 +_08139690: .4byte gMonSummaryScreen _08139694: .4byte 0x00003003 _08139698: .4byte 0x00003004 _0813969C: .4byte 0x00003005 @@ -9905,7 +9612,7 @@ _08139710: movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade - ldr r0, _08139730 @ =gUnknown_203B140 + ldr r0, _08139730 @ =gMonSummaryScreen ldr r1, [r0] ldr r2, _08139734 @ =0x00003288 adds r1, r2 @@ -9915,7 +9622,7 @@ _08139728: strb r0, [r1] b _0813975A .align 2, 0 -_08139730: .4byte gUnknown_203B140 +_08139730: .4byte gMonSummaryScreen _08139734: .4byte 0x00003288 _08139738: movs r0, 0x5 @@ -9947,7 +9654,7 @@ _08139764: .4byte gPaletteFade sub_8139768: @ 8139768 push {r4-r6,lr} adds r4, r0, 0 - ldr r0, _081397A4 @ =gUnknown_203B140 + ldr r0, _081397A4 @ =gMonSummaryScreen ldr r1, [r0] ldr r2, _081397A8 @ =0x00003020 adds r1, r2 @@ -9975,7 +9682,7 @@ sub_8139768: @ 8139768 beq _081397B6 b _0813981C .align 2, 0 -_081397A4: .4byte gUnknown_203B140 +_081397A4: .4byte gMonSummaryScreen _081397A8: .4byte 0x00003020 _081397AC: .4byte gUnknown_203B170 _081397B0: @@ -10081,7 +9788,7 @@ _08139864: .4byte 0x00003020 sub_8139868: @ 8139868 push {r4-r6,lr} adds r3, r0, 0 - ldr r5, _081398C0 @ =gUnknown_203B140 + ldr r5, _081398C0 @ =gMonSummaryScreen ldr r0, [r5] ldr r6, _081398C4 @ =0x00003020 adds r0, r6 @@ -10125,7 +9832,7 @@ _0813988C: bls _0813994C b _0813993A .align 2, 0 -_081398C0: .4byte gUnknown_203B140 +_081398C0: .4byte gMonSummaryScreen _081398C4: .4byte 0x00003020 _081398C8: .4byte gUnknown_203B170 _081398CC: .4byte gUnknown_8463FD4 @@ -10215,7 +9922,7 @@ sub_813995C: @ 813995C movs r0, 0xC bl AllocZeroed str r0, [r4] - ldr r5, _081399D0 @ =gUnknown_203B140 + ldr r5, _081399D0 @ =gMonSummaryScreen ldr r0, [r5] ldr r4, _081399D4 @ =0x00003290 adds r0, r4 @@ -10262,7 +9969,7 @@ sub_813995C: @ 813995C b _08139A40 .align 2, 0 _081399CC: .4byte gUnknown_203B170 -_081399D0: .4byte gUnknown_203B140 +_081399D0: .4byte gMonSummaryScreen _081399D4: .4byte 0x00003290 _081399D8: .4byte 0x000032f8 _081399DC: .4byte CB2_ReturnToTradeMenuFromSummary @@ -10343,7 +10050,7 @@ _08139A78: ands r0, r1 strb r0, [r2] _08139A86: - ldr r0, _08139AA4 @ =gUnknown_203B140 + ldr r0, _08139AA4 @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _08139AA8 @ =0x00003010 adds r0, r1 @@ -10357,7 +10064,7 @@ _08139A86: pop {r0} bx r0 .align 2, 0 -_08139AA4: .4byte gUnknown_203B140 +_08139AA4: .4byte gMonSummaryScreen _08139AA8: .4byte 0x00003010 thumb_func_end sub_813995C @@ -10370,7 +10077,7 @@ sub_8139AAC: @ 8139AAC lsls r0, 16 lsrs r0, 16 mov r8, r0 - ldr r1, _08139AF4 @ =gUnknown_203B140 + ldr r1, _08139AF4 @ =gMonSummaryScreen ldr r0, [r1] ldr r2, _08139AF8 @ =0x00003020 adds r0, r2 @@ -10399,7 +10106,7 @@ sub_8139AAC: @ 8139AAC strb r0, [r1, 0x8] b _08139B1E .align 2, 0 -_08139AF4: .4byte gUnknown_203B140 +_08139AF4: .4byte gMonSummaryScreen _08139AF8: .4byte 0x00003020 _08139AFC: .4byte 0x00003290 _08139B00: .4byte gUnknown_203B170 @@ -10561,7 +10268,7 @@ sub_8139C44: @ 8139C44 lsls r0, 24 lsrs r0, 24 ldr r3, _08139C74 @ =gSprites - ldr r1, _08139C78 @ =gUnknown_203B140 + ldr r1, _08139C78 @ =gMonSummaryScreen ldr r1, [r1] ldr r2, _08139C7C @ =0x00003010 adds r1, r2 @@ -10583,14 +10290,14 @@ sub_8139C44: @ 8139C44 bx lr .align 2, 0 _08139C74: .4byte gSprites -_08139C78: .4byte gUnknown_203B140 +_08139C78: .4byte gMonSummaryScreen _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, _08139CA4 @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _08139CA8 @ =0x00003010 adds r0, r1 @@ -10605,7 +10312,7 @@ sub_8139C80: @ 8139C80 pop {r0} bx r0 .align 2, 0 -_08139CA4: .4byte gUnknown_203B140 +_08139CA4: .4byte gMonSummaryScreen _08139CA8: .4byte 0x00003010 _08139CAC: .4byte gUnknown_203B170 thumb_func_end sub_8139C80 @@ -10613,7 +10320,7 @@ _08139CAC: .4byte gUnknown_203B170 thumb_func_start sub_8139CB0 sub_8139CB0: @ 8139CB0 push {r4,lr} - ldr r0, _08139CD4 @ =gUnknown_203B140 + ldr r0, _08139CD4 @ =gMonSummaryScreen ldr r1, [r0] movs r2, 0xC8 lsls r2, 6 @@ -10629,7 +10336,7 @@ sub_8139CB0: @ 8139CB0 lsrs r0, 16 b _08139CDA .align 2, 0 -_08139CD4: .4byte gUnknown_203B140 +_08139CD4: .4byte gMonSummaryScreen _08139CD8: movs r0, 0 _08139CDA: @@ -10648,7 +10355,7 @@ _08139CDA: movs r2, 0x58 movs r3, 0 bl CreateSprite - ldr r2, _08139D44 @ =gUnknown_203B140 + ldr r2, _08139D44 @ =gMonSummaryScreen ldr r1, [r2] ldr r3, _08139D48 @ =0x0000300c adds r1, r3 @@ -10682,7 +10389,7 @@ _08139CDA: bx r0 .align 2, 0 _08139D40: .4byte gBallSpriteTemplates -_08139D44: .4byte gUnknown_203B140 +_08139D44: .4byte gMonSummaryScreen _08139D48: .4byte 0x0000300c _08139D4C: .4byte gSprites _08139D50: .4byte SpriteCallbackDummy @@ -10693,7 +10400,7 @@ sub_8139D54: @ 8139D54 lsls r0, 24 lsrs r0, 24 ldr r3, _08139D84 @ =gSprites - ldr r1, _08139D88 @ =gUnknown_203B140 + ldr r1, _08139D88 @ =gMonSummaryScreen ldr r1, [r1] ldr r2, _08139D8C @ =0x0000300c adds r1, r2 @@ -10715,14 +10422,14 @@ sub_8139D54: @ 8139D54 bx lr .align 2, 0 _08139D84: .4byte gSprites -_08139D88: .4byte gUnknown_203B140 +_08139D88: .4byte gMonSummaryScreen _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, _08139DB0 @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _08139DB4 @ =0x0000300c adds r0, r1 @@ -10736,7 +10443,7 @@ sub_8139D90: @ 8139D90 pop {r0} bx r0 .align 2, 0 -_08139DB0: .4byte gUnknown_203B140 +_08139DB0: .4byte gMonSummaryScreen _08139DB4: .4byte 0x0000300c _08139DB8: .4byte gSprites thumb_func_end sub_8139D90 @@ -10745,7 +10452,7 @@ _08139DB8: .4byte gSprites sub_8139DBC: @ 8139DBC push {r4-r6,lr} sub sp, 0xC - ldr r6, _08139E08 @ =gUnknown_203B140 + ldr r6, _08139E08 @ =gMonSummaryScreen ldr r0, [r6] ldr r4, _08139E0C @ =0x00003290 adds r0, r4 @@ -10778,7 +10485,7 @@ sub_8139DBC: @ 8139DBC str r4, [sp, 0x4] b _08139E58 .align 2, 0 -_08139E08: .4byte gUnknown_203B140 +_08139E08: .4byte gMonSummaryScreen _08139E0C: .4byte 0x00003290 _08139E10: .4byte 0x000032f8 _08139E14: .4byte CB2_ReturnToTradeMenuFromSummary @@ -10829,7 +10536,7 @@ _08139E58: cmp r0, 0 bne _08139EA8 ldr r2, _08139EA0 @ =gSprites - ldr r0, _08139EA4 @ =gUnknown_203B140 + ldr r0, _08139EA4 @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _08139E9C @ =0x00003014 adds r0, r1 @@ -10847,10 +10554,10 @@ _08139E58: _08139E98: .4byte SpriteCallbackDummy _08139E9C: .4byte 0x00003014 _08139EA0: .4byte gSprites -_08139EA4: .4byte gUnknown_203B140 +_08139EA4: .4byte gMonSummaryScreen _08139EA8: ldr r2, _08139ED8 @ =gSprites - ldr r0, _08139EDC @ =gUnknown_203B140 + ldr r0, _08139EDC @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _08139EE0 @ =0x00003014 adds r0, r1 @@ -10874,7 +10581,7 @@ _08139EC6: bx r0 .align 2, 0 _08139ED8: .4byte gSprites -_08139EDC: .4byte gUnknown_203B140 +_08139EDC: .4byte gMonSummaryScreen _08139EE0: .4byte 0x00003014 thumb_func_end sub_8139DBC @@ -10883,7 +10590,7 @@ sub_8139EE4: @ 8139EE4 lsls r0, 24 lsrs r0, 24 ldr r3, _08139F14 @ =gSprites - ldr r1, _08139F18 @ =gUnknown_203B140 + ldr r1, _08139F18 @ =gMonSummaryScreen ldr r1, [r1] ldr r2, _08139F1C @ =0x00003014 adds r1, r2 @@ -10905,14 +10612,14 @@ sub_8139EE4: @ 8139EE4 bx lr .align 2, 0 _08139F14: .4byte gSprites -_08139F18: .4byte gUnknown_203B140 +_08139F18: .4byte gMonSummaryScreen _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 r4, _08139F54 @ =gMonSummaryScreen ldr r0, [r4] ldr r1, _08139F58 @ =0x00003290 adds r0, r1 @@ -10935,7 +10642,7 @@ sub_8139F20: @ 8139F20 pop {r0} bx r0 .align 2, 0 -_08139F54: .4byte gUnknown_203B140 +_08139F54: .4byte gMonSummaryScreen _08139F58: .4byte 0x00003290 _08139F5C: .4byte 0x00003014 _08139F60: .4byte gSprites @@ -11159,7 +10866,7 @@ sub_813A124: @ 813A124 mov r6, r8 push {r6,r7} movs r6, 0 - ldr r3, _0813A19C @ =gUnknown_203B140 + ldr r3, _0813A19C @ =gMonSummaryScreen ldr r4, _0813A1A0 @ =gUnknown_203B148 _0813A132: ldr r0, [r3] @@ -11217,7 +10924,7 @@ _0813A158: strb r2, [r0] b _0813A20E .align 2, 0 -_0813A19C: .4byte gUnknown_203B140 +_0813A19C: .4byte gMonSummaryScreen _0813A1A0: .4byte gUnknown_203B148 _0813A1A4: .4byte 0x00003268 _0813A1A8: .4byte gUnknown_203B16D @@ -11444,7 +11151,7 @@ _0813A358: .4byte gUnknown_203B158 thumb_func_start sub_813A35C sub_813A35C: @ 813A35C push {r4,lr} - ldr r4, _0813A38C @ =gUnknown_203B140 + ldr r4, _0813A38C @ =gMonSummaryScreen ldr r0, [r4] ldr r1, _0813A390 @ =0x00003290 adds r0, r1 @@ -11464,7 +11171,7 @@ sub_813A35C: @ 813A35C bl sub_813A3B8 b _0813A3AE .align 2, 0 -_0813A38C: .4byte gUnknown_203B140 +_0813A38C: .4byte gMonSummaryScreen _0813A390: .4byte 0x00003290 _0813A394: .4byte 0x0000326c _0813A398: @@ -11490,7 +11197,7 @@ sub_813A3B8: @ 813A3B8 push {r4,r5,lr} lsls r0, 24 lsrs r3, r0, 24 - ldr r1, _0813A3EC @ =gUnknown_203B140 + ldr r1, _0813A3EC @ =gMonSummaryScreen ldr r2, [r1] ldr r4, _0813A3F0 @ =0x0000326c adds r0, r2, r4 @@ -11515,7 +11222,7 @@ _0813A3DA: strb r0, [r1] b _0813A416 .align 2, 0 -_0813A3EC: .4byte gUnknown_203B140 +_0813A3EC: .4byte gMonSummaryScreen _0813A3F0: .4byte 0x0000326c _0813A3F4: .4byte gUnknown_203B158 _0813A3F8: @@ -11600,7 +11307,7 @@ sub_813A45C: @ 813A45C ldr r0, _0813A4C0 @ =gUnknown_8E9B4B8 mov r1, r9 bl LZ77UnCompWram - ldr r5, _0813A4C4 @ =gUnknown_203B140 + ldr r5, _0813A4C4 @ =gMonSummaryScreen ldr r0, [r5] ldr r4, _0813A4C8 @ =0x00003290 adds r0, r4 @@ -11621,7 +11328,7 @@ sub_813A45C: @ 813A45C .align 2, 0 _0813A4BC: .4byte gUnknown_203B15C _0813A4C0: .4byte gUnknown_8E9B4B8 -_0813A4C4: .4byte gUnknown_203B140 +_0813A4C4: .4byte gMonSummaryScreen _0813A4C8: .4byte 0x00003290 _0813A4CC: lsrs r0, r1, 1 @@ -11794,7 +11501,7 @@ sub_813A620: @ 813A620 sub sp, 0x8 movs r0, 0 mov r10, r0 - ldr r5, _0813A688 @ =gUnknown_203B140 + ldr r5, _0813A688 @ =gMonSummaryScreen ldr r1, [r5] movs r2, 0xC8 lsls r2, 6 @@ -11838,7 +11545,7 @@ _0813A684: movs r6, 0 b _0813A696 .align 2, 0 -_0813A688: .4byte gUnknown_203B140 +_0813A688: .4byte gMonSummaryScreen _0813A68C: .4byte 0x00003290 _0813A690: movs r6, 0x1 @@ -12241,7 +11948,7 @@ sub_813A994: @ 813A994 push {r5-r7} sub sp, 0x8 movs r7, 0 - ldr r6, _0813AAD4 @ =gUnknown_203B140 + ldr r6, _0813AAD4 @ =gMonSummaryScreen ldr r1, [r6] movs r2, 0xC8 lsls r2, 6 @@ -12395,7 +12102,7 @@ _0813AAB8: bls _0813AAB8 b _0813AB04 .align 2, 0 -_0813AAD4: .4byte gUnknown_203B140 +_0813AAD4: .4byte gMonSummaryScreen _0813AAD8: .4byte 0x00003290 _0813AADC: .4byte gExperienceTables _0813AAE0: .4byte gBaseStats @@ -12637,7 +12344,7 @@ _0813ACB0: .4byte gUnknown_203B164 thumb_func_start sub_813ACB4 sub_813ACB4: @ 813ACB4 push {r4,lr} - ldr r4, _0813ACE4 @ =gUnknown_203B140 + ldr r4, _0813ACE4 @ =gMonSummaryScreen ldr r0, [r4] ldr r1, _0813ACE8 @ =0x00003290 adds r0, r1 @@ -12658,7 +12365,7 @@ sub_813ACB4: @ 813ACB4 bl sub_813ACF8 b _0813ACF2 .align 2, 0 -_0813ACE4: .4byte gUnknown_203B140 +_0813ACE4: .4byte gMonSummaryScreen _0813ACE8: .4byte 0x00003290 _0813ACEC: movs r0, 0x1 @@ -12674,7 +12381,7 @@ sub_813ACF8: @ 813ACF8 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 - ldr r4, _0813AD44 @ =gUnknown_203B140 + ldr r4, _0813AD44 @ =gMonSummaryScreen ldr r0, [r4] ldr r1, _0813AD48 @ =0x00003290 adds r0, r1 @@ -12707,7 +12414,7 @@ sub_813ACF8: @ 813ACF8 strb r0, [r2] b _0813ADA2 .align 2, 0 -_0813AD44: .4byte gUnknown_203B140 +_0813AD44: .4byte gMonSummaryScreen _0813AD48: .4byte 0x00003290 _0813AD4C: .4byte gUnknown_203B164 _0813AD50: @@ -12719,7 +12426,7 @@ _0813AD50: movs r3, 0x4 orrs r0, r3 strb r0, [r1] - ldr r0, _0813AD8C @ =gUnknown_203B140 + ldr r0, _0813AD8C @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _0813AD90 @ =0x00003214 adds r0, r1 @@ -12741,7 +12448,7 @@ _0813AD50: b _0813ADA0 .align 2, 0 _0813AD88: .4byte gUnknown_203B164 -_0813AD8C: .4byte gUnknown_203B140 +_0813AD8C: .4byte gMonSummaryScreen _0813AD90: .4byte 0x00003214 _0813AD94: ldr r2, [r2] @@ -12887,7 +12594,7 @@ sub_813AEB0: @ 813AEB0 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 - ldr r4, _0813AEF8 @ =gUnknown_203B140 + ldr r4, _0813AEF8 @ =gMonSummaryScreen ldr r0, [r4] ldr r1, _0813AEFC @ =0x00003290 adds r0, r1 @@ -12920,7 +12627,7 @@ sub_813AEB0: @ 813AEB0 adds r3, r4, 0 b _0813AF14 .align 2, 0 -_0813AEF8: .4byte gUnknown_203B140 +_0813AEF8: .4byte gMonSummaryScreen _0813AEFC: .4byte 0x00003290 _0813AF00: .4byte gUnknown_203B168 _0813AF04: @@ -12933,7 +12640,7 @@ _0813AF04: orrs r0, r2 strb r0, [r1] _0813AF14: - ldr r0, _0813AF34 @ =gUnknown_203B140 + ldr r0, _0813AF34 @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _0813AF38 @ =0x00003214 adds r0, r1 @@ -12949,7 +12656,7 @@ _0813AF14: b _0813AF48 .align 2, 0 _0813AF30: .4byte gUnknown_203B168 -_0813AF34: .4byte gUnknown_203B140 +_0813AF34: .4byte gMonSummaryScreen _0813AF38: .4byte 0x00003214 _0813AF3C: ldr r2, [r3] @@ -12968,7 +12675,7 @@ _0813AF48: thumb_func_start sub_813AF50 sub_813AF50: @ 813AF50 push {r4,lr} - ldr r4, _0813AF7C @ =gUnknown_203B140 + ldr r4, _0813AF7C @ =gMonSummaryScreen ldr r0, [r4] ldr r1, _0813AF80 @ =0x00003290 adds r0, r1 @@ -12988,7 +12695,7 @@ sub_813AF50: @ 813AF50 bl sub_813AEB0 b _0813AF8A .align 2, 0 -_0813AF7C: .4byte gUnknown_203B140 +_0813AF7C: .4byte gMonSummaryScreen _0813AF80: .4byte 0x00003290 _0813AF84: movs r0, 0x1 @@ -13040,7 +12747,7 @@ sub_813AFC4: @ 813AFC4 thumb_func_start sub_813AFFC sub_813AFFC: @ 813AFFC push {r4-r6,lr} - ldr r5, _0813B058 @ =gUnknown_203B140 + ldr r5, _0813B058 @ =gMonSummaryScreen ldr r0, [r5] ldr r1, _0813B05C @ =0x00003290 adds r0, r1 @@ -13081,7 +12788,7 @@ _0813B04A: pop {r0} bx r0 .align 2, 0 -_0813B058: .4byte gUnknown_203B140 +_0813B058: .4byte gMonSummaryScreen _0813B05C: .4byte 0x00003290 _0813B060: .4byte 0x000032fc _0813B064: .4byte gUnknown_84636E0 @@ -13090,7 +12797,7 @@ _0813B064: .4byte gUnknown_84636E0 thumb_func_start sub_813B068 sub_813B068: @ 813B068 push {lr} - ldr r0, _0813B07C @ =gUnknown_203B140 + ldr r0, _0813B07C @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _0813B080 @ =0x000032fc adds r0, r1 @@ -13099,7 +12806,7 @@ sub_813B068: @ 813B068 pop {r0} bx r0 .align 2, 0 -_0813B07C: .4byte gUnknown_203B140 +_0813B07C: .4byte gMonSummaryScreen _0813B080: .4byte 0x000032fc thumb_func_end sub_813B068 @@ -13108,7 +12815,7 @@ sub_813B084: @ 813B084 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 - ldr r4, _0813B0B0 @ =gUnknown_203B140 + ldr r4, _0813B0B0 @ =gMonSummaryScreen ldr r0, [r4] ldr r1, _0813B0B4 @ =0x00003290 adds r0, r1 @@ -13127,7 +12834,7 @@ sub_813B084: @ 813B084 strb r0, [r1] b _0813B0DA .align 2, 0 -_0813B0B0: .4byte gUnknown_203B140 +_0813B0B0: .4byte gMonSummaryScreen _0813B0B4: .4byte 0x00003290 _0813B0B8: .4byte 0x000032fc _0813B0BC: @@ -13157,7 +12864,7 @@ _0813B0E0: .4byte 0x000032fc thumb_func_start sub_813B0E4 sub_813B0E4: @ 813B0E4 push {r4,lr} - ldr r4, _0813B114 @ =gUnknown_203B140 + ldr r4, _0813B114 @ =gMonSummaryScreen ldr r0, [r4] ldr r1, _0813B118 @ =0x00003290 adds r0, r1 @@ -13177,7 +12884,7 @@ sub_813B0E4: @ 813B0E4 pop {r0} bx r0 .align 2, 0 -_0813B114: .4byte gUnknown_203B140 +_0813B114: .4byte gMonSummaryScreen _0813B118: .4byte 0x00003290 _0813B11C: .4byte 0x000032fc thumb_func_end sub_813B0E4 @@ -13187,7 +12894,7 @@ sub_813B120: @ 813B120 push {r4-r6,lr} lsls r1, 24 lsrs r5, r1, 24 - ldr r1, _0813B154 @ =gUnknown_203B140 + ldr r1, _0813B154 @ =gMonSummaryScreen ldr r2, [r1] ldr r3, _0813B158 @ =0x0000321c adds r0, r2, r3 @@ -13210,7 +12917,7 @@ sub_813B120: @ 813B120 ands r5, r0 b _0813B16C .align 2, 0 -_0813B154: .4byte gUnknown_203B140 +_0813B154: .4byte gMonSummaryScreen _0813B158: .4byte 0x0000321c _0813B15C: .4byte 0x00003214 _0813B160: @@ -13277,7 +12984,7 @@ _0813B1CC: ldr r0, _0813B200 @ =sub_813B3F0 movs r1, 0 bl CreateTask - ldr r0, _0813B204 @ =gUnknown_203B140 + ldr r0, _0813B204 @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _0813B208 @ =0x0000328c adds r0, r1 @@ -13290,7 +12997,7 @@ _0813B1F4: .align 2, 0 _0813B1FC: .4byte gLastViewedMonIndex _0813B200: .4byte sub_813B3F0 -_0813B204: .4byte gUnknown_203B140 +_0813B204: .4byte gMonSummaryScreen _0813B208: .4byte 0x0000328c thumb_func_end sub_813B120 @@ -13299,7 +13006,7 @@ sub_813B20C: @ 813B20C push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r2, _0813B258 @ =gUnknown_203B140 + ldr r2, _0813B258 @ =gMonSummaryScreen ldr r0, [r2] ldr r3, _0813B25C @ =0x000032f4 adds r1, r0, r3 @@ -13337,7 +13044,7 @@ _0813B252: adds r0, r4 b _0813B2BC .align 2, 0 -_0813B258: .4byte gUnknown_203B140 +_0813B258: .4byte gMonSummaryScreen _0813B25C: .4byte 0x000032f4 _0813B260: .4byte 0x00003214 _0813B264: .4byte gLastViewedMonIndex @@ -13357,7 +13064,7 @@ _0813B26E: adds r1, r0, r3 cmp r1, 0 blt _0813B294 - ldr r0, _0813B2A0 @ =gUnknown_203B140 + ldr r0, _0813B2A0 @ =gMonSummaryScreen ldr r0, [r0] ldr r2, _0813B2A4 @ =0x00003210 adds r0, r2 @@ -13370,7 +13077,7 @@ _0813B294: b _0813B2C0 .align 2, 0 _0813B29C: .4byte gLastViewedMonIndex -_0813B2A0: .4byte gUnknown_203B140 +_0813B2A0: .4byte gMonSummaryScreen _0813B2A4: .4byte 0x00003210 _0813B2A8: movs r0, 0x64 @@ -13399,7 +13106,7 @@ sub_813B2C8: @ 813B2C8 bl GetMonData cmp r0, 0 beq _0813B2FC - ldr r0, _0813B2F4 @ =gUnknown_203B140 + ldr r0, _0813B2F4 @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _0813B2F8 @ =0x00003214 adds r0, r1 @@ -13415,7 +13122,7 @@ _0813B2F0: movs r0, 0x1 b _0813B2FE .align 2, 0 -_0813B2F4: .4byte gUnknown_203B140 +_0813B2F4: .4byte gMonSummaryScreen _0813B2F8: .4byte 0x00003214 _0813B2FC: movs r0, 0 @@ -13567,7 +13274,7 @@ sub_813B3F0: @ 813B3F0 sub sp, 0x8 lsls r0, 24 lsrs r3, r0, 24 - ldr r1, _0813B414 @ =gUnknown_203B140 + ldr r1, _0813B414 @ =gMonSummaryScreen ldr r0, [r1] ldr r4, _0813B418 @ =0x0000328c adds r2, r0, r4 @@ -13583,7 +13290,7 @@ _0813B40A: ldr r0, [r0] mov pc, r0 .align 2, 0 -_0813B414: .4byte gUnknown_203B140 +_0813B414: .4byte gMonSummaryScreen _0813B418: .4byte 0x0000328c _0813B41C: .4byte _0813B420 .align 2, 0 @@ -13607,7 +13314,7 @@ _0813B450: strb r1, [r0] ldr r0, _0813B46C @ =gUnknown_203B16E strb r1, [r0] - ldr r0, _0813B470 @ =gUnknown_203B140 + ldr r0, _0813B470 @ =gMonSummaryScreen ldr r1, [r0] ldr r0, _0813B474 @ =0x0000328c adds r1, r0 @@ -13615,7 +13322,7 @@ _0813B450: .align 2, 0 _0813B468: .4byte gUnknown_203B16D _0813B46C: .4byte gUnknown_203B16E -_0813B470: .4byte gUnknown_203B140 +_0813B470: .4byte gMonSummaryScreen _0813B474: .4byte 0x0000328c _0813B478: bl sub_8139C80 @@ -13671,7 +13378,7 @@ _0813B4DC: movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 - ldr r4, _0813B52C @ =gUnknown_203B140 + ldr r4, _0813B52C @ =gMonSummaryScreen ldr r0, [r4] ldr r1, _0813B530 @ =0x00003290 adds r0, r1 @@ -13699,7 +13406,7 @@ _0813B4DC: bl LoadPalette b _0813B550 .align 2, 0 -_0813B52C: .4byte gUnknown_203B140 +_0813B52C: .4byte gMonSummaryScreen _0813B530: .4byte 0x00003290 _0813B534: .4byte gUnknown_8E9B3D0 _0813B538: @@ -13714,17 +13421,17 @@ _0813B538: movs r2, 0x20 bl LoadPalette _0813B550: - ldr r0, _0813B560 @ =gUnknown_203B140 + ldr r0, _0813B560 @ =gMonSummaryScreen ldr r1, [r0] ldr r4, _0813B564 @ =0x0000328c adds r1, r4 b _0813B72C .align 2, 0 _0813B55C: .4byte gUnknown_8E9B310 -_0813B560: .4byte gUnknown_203B140 +_0813B560: .4byte gMonSummaryScreen _0813B564: .4byte 0x0000328c _0813B568: - ldr r4, _0813B5A8 @ =gUnknown_203B140 + ldr r4, _0813B5A8 @ =gMonSummaryScreen ldr r1, [r4] ldr r2, _0813B5AC @ =0x00003214 adds r0, r1, r2 @@ -13754,7 +13461,7 @@ _0813B568: bl CopyToBgTilemapBuffer b _0813B5DC .align 2, 0 -_0813B5A8: .4byte gUnknown_203B140 +_0813B5A8: .4byte gMonSummaryScreen _0813B5AC: .4byte 0x00003214 _0813B5B0: .4byte gUnknown_8E9BBCC _0813B5B4: .4byte gUnknown_8E9B750 @@ -13776,7 +13483,7 @@ _0813B5B8: movs r3, 0 bl CopyToBgTilemapBuffer _0813B5DC: - ldr r0, _0813B5F4 @ =gUnknown_203B140 + ldr r0, _0813B5F4 @ =gMonSummaryScreen ldr r1, [r0] ldr r0, _0813B5F8 @ =0x0000328c adds r1, r0 @@ -13785,7 +13492,7 @@ _0813B5DC: _0813B5E8: .4byte 0x0000323c _0813B5EC: .4byte gUnknown_8E9B598 _0813B5F0: .4byte gUnknown_8E9B750 -_0813B5F4: .4byte gUnknown_203B140 +_0813B5F4: .4byte gMonSummaryScreen _0813B5F8: .4byte 0x0000328c _0813B5FC: bl sub_81360D4 @@ -13822,18 +13529,18 @@ _0813B636: bl sub_8136F4C bl sub_81374E8 bl sub_8137BD0 - ldr r0, _0813B64C @ =gUnknown_203B140 + ldr r0, _0813B64C @ =gMonSummaryScreen ldr r1, [r0] ldr r4, _0813B650 @ =0x0000328c adds r1, r4 b _0813B72C .align 2, 0 -_0813B64C: .4byte gUnknown_203B140 +_0813B64C: .4byte gMonSummaryScreen _0813B650: .4byte 0x0000328c _0813B654: bl sub_8138A38 bl sub_8138538 - ldr r4, _0813B670 @ =gUnknown_203B140 + ldr r4, _0813B670 @ =gMonSummaryScreen ldr r0, [r4] ldr r1, _0813B674 @ =0x00003214 adds r0, r1 @@ -13842,7 +13549,7 @@ _0813B654: ldr r1, [r4] b _0813B728 .align 2, 0 -_0813B670: .4byte gUnknown_203B140 +_0813B670: .4byte gMonSummaryScreen _0813B674: .4byte 0x00003214 _0813B678: ldr r0, [r5] @@ -13914,7 +13621,7 @@ _0813B70C: bl sub_813AFC4 bl sub_813B784 _0813B724: - ldr r0, _0813B734 @ =gUnknown_203B140 + ldr r0, _0813B734 @ =gMonSummaryScreen ldr r1, [r0] _0813B728: ldr r2, _0813B738 @ =0x0000328c @@ -13925,7 +13632,7 @@ _0813B72C: strb r0, [r1] b _0813B746 .align 2, 0 -_0813B734: .4byte gUnknown_203B140 +_0813B734: .4byte gMonSummaryScreen _0813B738: .4byte 0x0000328c _0813B73C: movs r0, 0 @@ -13970,7 +13677,7 @@ _0813B77E: thumb_func_start sub_813B784 sub_813B784: @ 813B784 push {r4,r5,lr} - ldr r4, _0813B7BC @ =gUnknown_203B140 + ldr r4, _0813B7BC @ =gMonSummaryScreen ldr r0, [r4] ldr r5, _0813B7C0 @ =0x00003290 adds r0, r5 @@ -13994,7 +13701,7 @@ sub_813B784: @ 813B784 bl PlayCry3 b _0813B7DA .align 2, 0 -_0813B7BC: .4byte gUnknown_203B140 +_0813B7BC: .4byte gMonSummaryScreen _0813B7C0: .4byte 0x00003290 _0813B7C4: ldr r0, [r4] @@ -14034,7 +13741,7 @@ _0813B7F4: thumb_func_start sub_813B7F8 sub_813B7F8: @ 813B7F8 push {lr} - ldr r0, _0813B828 @ =gUnknown_203B140 + ldr r0, _0813B828 @ =gMonSummaryScreen ldr r0, [r0] ldr r1, _0813B82C @ =0x00003290 adds r0, r1 @@ -14058,7 +13765,7 @@ _0813B824: movs r0, 0x1 b _0813B832 .align 2, 0 -_0813B828: .4byte gUnknown_203B140 +_0813B828: .4byte gMonSummaryScreen _0813B82C: .4byte 0x00003290 _0813B830: movs r0, 0 diff --git a/cgrep.sh b/cgrep.sh new file mode 100644 index 000000000..f3312ab0b --- /dev/null +++ b/cgrep.sh @@ -0,0 +1,10 @@ +#!/bin/bash +# $1: phrase to find + +if [ "$2" == "" ]; then + grep_flags="-wr" +else + grep_flags="$2" +fi + +grep "$1" "$grep_flags" --include="*.c" --include="*.h" --include="*.s" --include="*.inc" --include="*.txt" --exclude-dir=".git" --exclude-dir=".travis" --exclude-dir="build" --exclude-dir="common_syms" --exclude-dir="data" --exclude-dir="graphics" --exclude-dir="sound" --exclude-dir="tools" diff --git a/compare.sh b/compare.sh new file mode 100644 index 000000000..86db204ee --- /dev/null +++ b/compare.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# Compares baserom.gba and pokefirered.gba + +# create baserom.txt if necessary +if [ ! -f baserom.txt ]; then + hexdump -C baserom.gba > baserom.txt # can create an empty baserom.txt if no baserom.gba +fi + +hexdump -C pokefirered.gba > pokefirered.txt + +diff -u baserom.txt pokefirered.txt | less 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/pokemon_summary_screen.h b/include/pokemon_summary_screen.h index 2b8f96316..4dd7881bd 100644 --- a/include/pokemon_summary_screen.h +++ b/include/pokemon_summary_screen.h @@ -20,16 +20,18 @@ enum PokemonSummaryScreenMode { PSS_MODE_NORMAL, PSS_MODE_UNK1, - PSS_MODE_BOX, PSS_MODE_SELECT_MOVE, + PSS_MODE_UNK3, + 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, }; s32 GetLastViewedMonIndex(void); diff --git a/ld_script.txt b/ld_script.txt index f6f8730db..6f7fa8624 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -268,6 +268,7 @@ SECTIONS { src/tm_case.o(.text); src/menu_indicators.o(.text); src/pokedex_area_markers.o(.text); + src/pokemon_summary_screen.o(.text); asm/pokemon_summary_screen.o(.text); src/help_system.o(.text); src/wild_pokemon_area.o(.text); diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c new file mode 100644 index 000000000..a271c4edf --- /dev/null +++ b/src/pokemon_summary_screen.c @@ -0,0 +1,147 @@ +#include "global.h" +#include "gflib.h" +#include "pokemon.h" +#include "pokemon_summary_screen.h" +#include "help_system.h" + +extern void sub_8138B8C(struct Pokemon * mon); +extern void sub_8135C34(void); + +struct PokemonSummaryScreenData { + u8 temp0[0x3024]; + bool32 isEnemyParty; /* 0x3024 */ + + u8 temp3028[0x1d8]; + + 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; /* 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 temp3248[0x18]; + u16 ALIGNED(4) unk3260; /* 0x3260 */ + + u8 temp3264[0xc]; + + u8 ALIGNED(4) unk3270; /* 0x3270 */ + u8 ALIGNED(4) unk3274; /* 0x3274 */ + u8 ALIGNED(4) unk3278; /* 0x3278 */ + u8 ALIGNED(4) unk327C; /* 0x327C */ + + u8 temp3280[0x10]; + + struct Pokemon currentMon; + + union { + struct Pokemon * mons; + struct BoxPokemon * boxMons; + } monList; + + MainCallback savedCallback; + struct Sprite * markingSprite; + + u8 ALIGNED(4) unk3300; /* 0x3300 */ + u8 ALIGNED(4) unk3304; /* 0x3304 */ +}; + +struct Struct203B144 { + u8 unk0[0x28]; +}; + +extern struct PokemonSummaryScreenData * gMonSummaryScreen; +extern struct Struct203B144 * gUnknown_203B144; +extern u8 gUnknown_203B16D; +extern u8 gUnknown_203B16E; + +void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, MainCallback savedCallback, u8 mode) +{ + gMonSummaryScreen = AllocZeroed(sizeof(struct PokemonSummaryScreenData)); + gUnknown_203B144 = AllocZeroed(sizeof(struct Struct203B144)); + + if (gMonSummaryScreen == NULL) + { + SetMainCallback2(savedCallback); + return; + } + + gLastViewedMonIndex = cursorPos; + + gUnknown_203B16D = 0; + gUnknown_203B16E = 0; + gMonSummaryScreen->savedCallback = savedCallback; + gMonSummaryScreen->monList.mons = party; + + if (party == gEnemyParty) + gMonSummaryScreen->isEnemyParty = TRUE; + else + gMonSummaryScreen->isEnemyParty = FALSE; + + gMonSummaryScreen->lastIndex = lastIdx; + gMonSummaryScreen->mode = mode; + + switch (gMonSummaryScreen->mode) { + case PSS_MODE_NORMAL: + default: + SetHelpContext(HELPCONTEXT_POKEMON_INFO); + gMonSummaryScreen->curPageIndex = PSS_PAGE_INFO; + gMonSummaryScreen->isBoxMon = FALSE; + gMonSummaryScreen->lockMovesFlag = FALSE; + break; + case PSS_MODE_BOX: + SetHelpContext(HELPCONTEXT_POKEMON_INFO); + gMonSummaryScreen->curPageIndex = PSS_PAGE_INFO; + gMonSummaryScreen->isBoxMon = TRUE; + gMonSummaryScreen->lockMovesFlag = FALSE; + break; + case PSS_MODE_SELECT_MOVE: + case PSS_MODE_UNK3: + SetHelpContext(HELPCONTEXT_POKEMON_MOVES); + gMonSummaryScreen->curPageIndex = PSS_PAGE_MOVES_INFO; + gMonSummaryScreen->isBoxMon = FALSE; + gMonSummaryScreen->lockMovesFlag = TRUE; + break; + } + + gMonSummaryScreen->unk3270 = 0; + gMonSummaryScreen->unk3274 = 0; + gMonSummaryScreen->unk3278 = 0; + gMonSummaryScreen->unk327C = 0; + + gMonSummaryScreen->unk3238 = 0; + gMonSummaryScreen->unk323C = 2; + gMonSummaryScreen->unk3240 = 1; + gMonSummaryScreen->unk3244 = 0; + + gMonSummaryScreen->unk3228 = 0; + gMonSummaryScreen->unk322C = 1; + + sub_8138B8C(&gMonSummaryScreen->currentMon); + gMonSummaryScreen->isEgg = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_IS_EGG); + gMonSummaryScreen->isBadEgg = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SANITY_IS_BAD_EGG); + + if (gMonSummaryScreen->isBadEgg == TRUE) { + gMonSummaryScreen->isEgg = TRUE; + } + + gMonSummaryScreen->unk3300 = 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); + gMonSummaryScreen->unk3260 = a4; +} diff --git a/sym_ewram.txt b/sym_ewram.txt index 9b16b6723..9fabd6c3b 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -235,7 +235,7 @@ .align 2 @ .include "src/pokemon_summary_screen.o" -gUnknown_203B140: @ 203B140 +gMonSummaryScreen: @ 203B140 .space 0x4 gUnknown_203B144: @ 203B144 From 7cabc3d1a51a48a31b02d1c24b26da2a5c654f35 Mon Sep 17 00:00:00 2001 From: luckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com> Date: Sun, 14 Jun 2020 19:04:24 -0400 Subject: [PATCH 05/25] pokemon_summary_screen.c, part 2. Also fix prototype of MenuHelpers_CallLinkSomething. --- asm/pokemon_summary_screen.s | 524 ------------------------------- include/menu_helpers.h | 2 +- include/pokemon_summary_screen.h | 11 + src/berry_pouch.c | 6 +- src/item_menu.c | 8 +- src/item_pc.c | 2 +- src/menu_helpers.c | 4 +- src/option_menu.c | 6 +- src/pokemon_summary_screen.c | 278 ++++++++++++++-- src/tm_case.c | 6 +- 10 files changed, 289 insertions(+), 558 deletions(-) diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index 8a29e6ea2..b503a8525 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -5,530 +5,6 @@ .text - thumb_func_start sub_813476C -sub_813476C: @ 813476C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _08134790 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - ldr r0, [r0] - b _081348D6 - .align 2, 0 -_081348A8: .4byte gMonSummaryScreen -_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 @ =gMonSummaryScreen - ldr r0, [r0] - ldr r2, _081348D0 @ =0x00003270 - adds r0, r2 - b _08134AF6 - .align 2, 0 -_081348C8: .4byte gPaletteFade -_081348CC: .4byte gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - ldr r0, [r0] - ldr r1, _08134AD8 @ =0x00003270 - adds r0, r1 -_08134ACC: - movs r1, 0x4 - strb r1, [r0] - b _08134B9A - .align 2, 0 -_08134AD4: .4byte gMonSummaryScreen -_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 @ =gMonSummaryScreen - ldr r0, [r0] - ldr r1, _08134B5C @ =0x00003270 - adds r0, r1 - movs r1, 0x5 - strb r1, [r0] - b _08134B9A - .align 2, 0 -_08134B58: .4byte gMonSummaryScreen -_08134B5C: .4byte 0x00003270 -_08134B60: - bl Overworld_LinkRecvQueueLengthMoreThan2 - cmp r0, 0x1 - beq _08134B9A - bl sub_800B270 - cmp r0, 0x1 - beq _08134B9A - ldr r0, _08134B80 @ =gMonSummaryScreen - ldr r0, [r0] - ldr r2, _08134B84 @ =0x00003270 - adds r0, r2 - movs r1, 0x6 - strb r1, [r0] - b _08134B9A - .align 2, 0 -_08134B80: .4byte gMonSummaryScreen -_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} 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_summary_screen.h b/include/pokemon_summary_screen.h index 4dd7881bd..03a10fcde 100644 --- a/include/pokemon_summary_screen.h +++ b/include/pokemon_summary_screen.h @@ -34,6 +34,17 @@ enum PokemonSummaryScreenPage PSS_PAGE_MOVES_INFO, }; +enum PokemonSummaryScreenState3270 +{ + PSS_STATE3270_0, + PSS_STATE3270_1, + PSS_STATE3270_2, + PSS_STATE3270_3, + PSS_STATE3270_4, + PSS_STATE3270_5, + PSS_STATE3270_6 +}; + s32 GetLastViewedMonIndex(void); void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, void (*callback)(void), u8 a4); void sub_8138B38(u8); 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/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_summary_screen.c b/src/pokemon_summary_screen.c index a271c4edf..0ca6b2633 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -3,46 +3,110 @@ #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" extern void sub_8138B8C(struct Pokemon * mon); extern void sub_8135C34(void); +extern void sub_813B784(void); +extern void sub_8138414(u8 curPageIndex); +extern void sub_8134BAC(u8 taskId); +extern void sub_8134E84(u8 taskId); +extern void sub_813B3F0(u8 taskId); +extern void sub_813B120(u8, s8); +extern void sub_8137E64(u8 taskId); struct PokemonSummaryScreenData { - u8 temp0[0x3024]; + 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 */ - u8 temp3028[0x1d8]; + struct PokeSummary { + u8 ALIGNED(4) unk3028[POKEMON_NAME_LENGTH]; + u8 ALIGNED(4) unk3034[POKEMON_NAME_LENGTH + 1]; + + u8 ALIGNED(4) unk3040[OT_NAME_LENGTH + 1]; + u8 ALIGNED(4) unk3048[2][OT_NAME_LENGTH + 1]; + + u8 ALIGNED(4) unk3058[5]; + u8 ALIGNED(4) unk3060[7]; + u8 ALIGNED(4) unk3068[16]; + + u8 ALIGNED(4) unk3078[3]; + u8 ALIGNED(4) unk307C[7]; + u8 ALIGNED(4) unk3084[9]; + u8 ALIGNED(4) unk3090[5][5]; + + u8 ALIGNED(4) unk30AC[5][11]; + u8 ALIGNED(4) unk30E4[5][11]; + u8 ALIGNED(4) unk311C[5][13]; + u8 ALIGNED(4) pssd4[5][5]; + u8 ALIGNED(4) pssd5[5][5]; + + u8 ALIGNED(4) pssd6[9]; + u8 ALIGNED(4) pssd7[9]; + + u8 ALIGNED(4) pssd8[13]; + u8 ALIGNED(4) pssd9[20]; + u8 ALIGNED(4) tempPadRemoveLater[0x2c]; + } 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; /* 0x3220 */ + 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 */ - u8 temp3248[0x18]; - u16 ALIGNED(4) unk3260; /* 0x3260 */ + u16 unk3250[5]; /* 0x3250 */ + u16 unk325A[5]; /* 0x325A */ + u8 ALIGNED(4) unk3264; /* 0x3264 */ + u8 ALIGNED(4) unk3268; /* 0x3268 */ - u8 temp3264[0xc]; + u8 ALIGNED(4) unk326C; /* 0x326C */ - u8 ALIGNED(4) unk3270; /* 0x3270 */ + u8 ALIGNED(4) state3270; /* 0x3270 */ u8 ALIGNED(4) unk3274; /* 0x3274 */ u8 ALIGNED(4) unk3278; /* 0x3278 */ u8 ALIGNED(4) unk327C; /* 0x327C */ - - u8 temp3280[0x10]; + u8 ALIGNED(4) unk3280; /* 0x3280 */ + u8 ALIGNED(4) unk3284; /* 0x3284 */ + u8 ALIGNED(4) unk3288; /* 0x3288 */ + u8 ALIGNED(4) unk328C; /* 0x328C */ struct Pokemon currentMon; @@ -54,8 +118,8 @@ struct PokemonSummaryScreenData { MainCallback savedCallback; struct Sprite * markingSprite; - u8 ALIGNED(4) unk3300; /* 0x3300 */ - u8 ALIGNED(4) unk3304; /* 0x3304 */ + u8 ALIGNED(4) unk3300[2]; /* 0x3300 */ + u8 ALIGNED(4) unk3304[3]; /* 0x3304 */ }; struct Struct203B144 { @@ -93,7 +157,8 @@ void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, gMonSummaryScreen->lastIndex = lastIdx; gMonSummaryScreen->mode = mode; - switch (gMonSummaryScreen->mode) { + switch (gMonSummaryScreen->mode) + { case PSS_MODE_NORMAL: default: SetHelpContext(HELPCONTEXT_POKEMON_INFO); @@ -116,7 +181,7 @@ void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, break; } - gMonSummaryScreen->unk3270 = 0; + gMonSummaryScreen->state3270 = 0; gMonSummaryScreen->unk3274 = 0; gMonSummaryScreen->unk3278 = 0; gMonSummaryScreen->unk327C = 0; @@ -133,15 +198,192 @@ void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, gMonSummaryScreen->isEgg = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_IS_EGG); gMonSummaryScreen->isBadEgg = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SANITY_IS_BAD_EGG); - if (gMonSummaryScreen->isBadEgg == TRUE) { + if (gMonSummaryScreen->isBadEgg == TRUE) gMonSummaryScreen->isEgg = TRUE; - } - gMonSummaryScreen->unk3300 = 0xff; + gMonSummaryScreen->unk3300[0] = 0xff; SetMainCallback2(sub_8135C34); } -void ShowSelectMovePokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, MainCallback savedCallback, u16 a4) { +void ShowSelectMovePokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, MainCallback savedCallback, u16 a4) +{ ShowPokemonSummaryScreen(party, cursorPos, lastIdx, savedCallback, PSS_MODE_SELECT_MOVE); - gMonSummaryScreen->unk3260 = a4; + gMonSummaryScreen->unk325A[4] = a4; +} + +u8 sub_813476C(u8 a0) +{ + if (gMonSummaryScreen->unk301C == TRUE && gMonSummaryScreen->unk3224 != a0) + return TRUE; + + return FALSE; +} + +u32 sub_81347A4(u8 a0) +{ + if (gMonSummaryScreen->isEgg) + return FALSE; + + if (gMonSummaryScreen->unk3300[0] != 0xff && gMonSummaryScreen->unk3300[0] == a0) + { + gMonSummaryScreen->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; +} + +void sub_8134840(u8 taskId) +{ + switch (gMonSummaryScreen->state3270) { + case PSS_STATE3270_0: + BeginNormalPaletteFade(0xffffffff, 0, 16, 0, 0); + gMonSummaryScreen->state3270 = PSS_STATE3270_1; + break; + case PSS_STATE3270_1: + if (!gPaletteFade.active) + { + sub_813B784(); + gMonSummaryScreen->state3270 = PSS_STATE3270_2; + return; + } + + gMonSummaryScreen->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 (gMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) + { + if (sub_81347A4(1) == TRUE) + { + if (FuncIsActiveTask(sub_8134BAC)) + { + gMonSummaryScreen->unk3300[0] = 1; + return; + } + else if (gMonSummaryScreen->curPageIndex < PSS_PAGE_MOVES) + { + PlaySE(SE_SELECT); + HideBg(0); + gMonSummaryScreen->unk3224 = 1; + sub_8138414(gMonSummaryScreen->curPageIndex); + gMonSummaryScreen->curPageIndex++; + gMonSummaryScreen->state3270 = PSS_STATE3270_3; + } + return; + } + else if (sub_81347A4(0) == TRUE) + { + if (FuncIsActiveTask(sub_8134BAC)) + { + gMonSummaryScreen->unk3300[0] = 0; + return; + } + else if (gMonSummaryScreen->curPageIndex > PSS_PAGE_INFO) + { + PlaySE(SE_SELECT); + HideBg(0); + gMonSummaryScreen->unk3224 = 0; + sub_8138414(gMonSummaryScreen->curPageIndex); + gMonSummaryScreen->curPageIndex--; + gMonSummaryScreen->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 (gMonSummaryScreen->curPageIndex == PSS_PAGE_INFO) + { + PlaySE(SE_SELECT); + gMonSummaryScreen->state3270 = PSS_STATE3270_4; + } + else if (gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES) + { + PlaySE(SE_SELECT); + gMonSummaryScreen->unk3224 = 1; + sub_8138414(gMonSummaryScreen->curPageIndex); + gMonSummaryScreen->curPageIndex++; + gMonSummaryScreen->state3270 = PSS_STATE3270_3; + } + return; + } + else if (JOY_NEW(B_BUTTON)) + { + gMonSummaryScreen->state3270 = PSS_STATE3270_4; + } + } + break; + case PSS_STATE3270_3: + if (gMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) + { + CreateTask(sub_8134BAC, 0); + gMonSummaryScreen->state3270 = PSS_STATE3270_2; + } + else + { + gTasks[gMonSummaryScreen->unk3018].func = sub_8134E84; + gMonSummaryScreen->state3270 = PSS_STATE3270_2; + } + break; + case PSS_STATE3270_4: + BeginNormalPaletteFade(0xffffffff, 0, 0, 16, 0); + gMonSummaryScreen->state3270 = PSS_STATE3270_5; + break; + case PSS_STATE3270_5: + if (Overworld_LinkRecvQueueLengthMoreThan2() == TRUE) + return; + else if (sub_800B270() == TRUE) + return; + + gMonSummaryScreen->state3270 = PSS_STATE3270_6; + break; + default: + if (!gPaletteFade.active) + sub_8137E64(taskId); + + break; + } } 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) From d096f37d75138eba940f55bd7e1ec8bacc092935 Mon Sep 17 00:00:00 2001 From: luckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com> Date: Tue, 23 Jun 2020 17:13:23 -0400 Subject: [PATCH 06/25] pokemon_summary_screen.c, part 3. Also commit hgrep.sh for searching in non-c files. --- asm/pokemon_summary_screen.s | 2775 ------------------------------ hgrep.sh | 10 + include/pokemon_summary_screen.h | 2 +- include/strings.h | 9 + src/pokemon_summary_screen.c | 1066 +++++++++++- 5 files changed, 1062 insertions(+), 2800 deletions(-) create mode 100644 hgrep.sh diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index b503a8525..d47c7e91c 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -5,2781 +5,6 @@ .text - 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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_08134C3C: .4byte 0x00003234 -_08134C40: .4byte 0x0000301c -_08134C44: .4byte 0x00003214 -_08134C48: - ldr r0, _08134CC8 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_08134CCC: .4byte 0x00003214 -_08134CD0: .4byte 0x00003224 -_08134CD4: - bl sub_8135AA4 - bl sub_8135B90 - bl sub_8138538 - ldr r0, _08134CF0 @ =gMonSummaryScreen - ldr r0, [r0] - ldr r1, _08134CF4 @ =0x00003214 - adds r0, r1 - ldrb r0, [r0] - bl sub_8137D28 - b _08134E74 - .align 2, 0 -_08134CF0: .4byte gMonSummaryScreen -_08134CF4: .4byte 0x00003214 -_08134CF8: - ldr r4, _08134D20 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - ldr r0, [r0] - ldr r2, _08134D64 @ =0x00003244 - adds r0, r2 - movs r1, 0x1 - strb r1, [r0] - b _08134E74 - .align 2, 0 -_08134D60: .4byte gMonSummaryScreen -_08134D64: .4byte 0x00003244 -_08134D68: - ldr r0, _08134D80 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_08134D84: .4byte 0x00003224 -_08134D88: - bl sub_8136F4C - ldr r0, _08134DA8 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_08134DAC: .4byte 0x00003214 -_08134DB0: - ldr r4, _08134DEC @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_08134F08: .4byte 0x00003234 -_08134F0C: .4byte 0x0000301c -_08134F10: .4byte 0x00003214 -_08134F14: - ldr r0, _08134F94 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_08134F98: .4byte 0x00003214 -_08134F9C: .4byte 0x00003224 -_08134FA0: - bl sub_8135638 - ldr r0, _08134FC0 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - ldr r0, [r0] - ldr r1, _081350A8 @ =0x00003244 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - b _08135180 - .align 2, 0 -_081350A4: .4byte gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_08135220: .4byte 0x00003234 -_08135224: .4byte 0x0000301c -_08135228: .4byte 0x00003214 -_0813522C: - ldr r0, _081352AC @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_08135350: .4byte 0x00003001 -_08135354: - bl sub_8135514 - ldr r4, _0813537C @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_0813603C: .4byte 0x00003278 - thumb_func_end sub_8135F20 - - thumb_func_start sub_8136040 -sub_8136040: @ 8136040 - push {r4-r6,lr} - ldr r1, _08136060 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen - thumb_func_end sub_8136040 - - thumb_func_start sub_81360D4 -sub_81360D4: @ 81360D4 - push {r4-r7,lr} - sub sp, 0x14 - ldr r5, _08136108 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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} diff --git a/hgrep.sh b/hgrep.sh new file mode 100644 index 000000000..81e14120e --- /dev/null +++ b/hgrep.sh @@ -0,0 +1,10 @@ +#!/bin/bash +# $1: phrase to find + +if [ "$2" == "" ]; then + grep_flags="-wr" +else + grep_flags="$2" +fi + +grep "$1" "$grep_flags" --include="*.h" --include="*.s" --include="*.inc" --include="*.txt" --exclude-dir=".git" --exclude-dir=".travis" --exclude-dir="build" --exclude-dir="common_syms" --exclude-dir="data" --exclude-dir="graphics" --exclude-dir="sound" --exclude-dir="tools" diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h index 03a10fcde..9c9c1e351 100644 --- a/include/pokemon_summary_screen.h +++ b/include/pokemon_summary_screen.h @@ -21,7 +21,7 @@ enum PokemonSummaryScreenMode PSS_MODE_NORMAL, PSS_MODE_UNK1, PSS_MODE_SELECT_MOVE, - PSS_MODE_UNK3, + PSS_MODE_FORGET_MOVE, PSS_MODE_UNK4, PSS_MODE_BOX, }; diff --git a/include/strings.h b/include/strings.h index fd224aea4..6c12d38f5 100644 --- a/include/strings.h +++ b/include/strings.h @@ -1468,4 +1468,13 @@ 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[]; + #endif //GUARD_STRINGS_H diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 0ca6b2633..af0320be5 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -8,16 +8,67 @@ #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" extern void sub_8138B8C(struct Pokemon * mon); -extern void sub_8135C34(void); +void sub_8135C34(void); extern void sub_813B784(void); extern void sub_8138414(u8 curPageIndex); -extern void sub_8134BAC(u8 taskId); -extern void sub_8134E84(u8 taskId); +static void sub_8134BAC(u8 taskId); +static void sub_8134E84(u8 taskId); extern void sub_813B3F0(u8 taskId); extern void sub_813B120(u8, s8); extern void sub_8137E64(u8 taskId); +void sub_8135638(void); +void sub_81356EC(void); +extern void sub_813B750(u8 curPageIndex); +extern void sub_8138280(u8 curPageIndex); +extern void sub_8137D28(u8 curPageIndex); +void sub_8135514(void); +u8 sub_81357A0(u8); +extern void sub_8138440(void); +extern void sub_8138CD8(u8 taskId); +void sub_8135AA4(void); +void sub_8135B90(void); +extern void sub_8138538(void); +extern void sub_8137D28(u8 curPageIndex); +extern void sub_8136F4C(void); +extern void sub_81374E8(void); +extern void sub_8137BD0(void); +extern void sub_8138A38(void); +extern void sub_8136DA4(const u8 * str); +extern void sub_8136DF0(const u8 * str); +extern void sub_8136E50(const u8 * str); +void sub_81358DC(u8, u8); +extern void sub_813A838(u8 invisible); +extern void sub_813AB70(u8 invisible); +extern void sub_8139C44(u8 invisible); +extern void sub_813B084(u8 invisible); +extern void sub_8139D54(u8 invisible); +extern void sub_813A3B8(u8 invisible); +extern void sub_813ACF8(u8 invisible); +extern void sub_813AEB0(u8 invisible); +extern void sub_813A0E8(u8 invisible); +extern void sub_8139EE4(u8 invisible); +extern void sub_81381AC(void); +extern void sub_8136BC4(void); +extern void sub_8136BAC(void); +u8 sub_8135F20(void); +extern u8 sub_8136AEC(void); +extern void sub_81381D0(void); +u8 sub_8136040(void); +extern void sub_8137E28(void); +extern void sub_81381C0(void); +extern void sub_8136D54(void); +extern void sub_81360D4(void); +extern void sub_8136350(void); +extern void sub_81367B0(void); struct PokemonSummaryScreenData { u16 unk0[0x800]; @@ -38,33 +89,43 @@ struct PokemonSummaryScreenData { bool32 isEnemyParty; /* 0x3024 */ struct PokeSummary { + // u8 ALIGNED(4) unk3028[POKEMON_NAME_LENGTH]; + // u8 ALIGNED(4) unk3034[POKEMON_NAME_LENGTH + 1]; + + // u8 ALIGNED(4) unk3040[OT_NAME_LENGTH + 1]; + // u8 ALIGNED(4) unk3048[2][OT_NAME_LENGTH + 1]; + u8 ALIGNED(4) unk3028[POKEMON_NAME_LENGTH]; u8 ALIGNED(4) unk3034[POKEMON_NAME_LENGTH + 1]; - u8 ALIGNED(4) unk3040[OT_NAME_LENGTH + 1]; - u8 ALIGNED(4) unk3048[2][OT_NAME_LENGTH + 1]; + u8 ALIGNED(4) pad3048[0x1c]; - u8 ALIGNED(4) unk3058[5]; - u8 ALIGNED(4) unk3060[7]; - u8 ALIGNED(4) unk3068[16]; + u8 ALIGNED(4) unk3064[5]; + //u8 ALIGNED(4) unk3060[7]; + //u8 ALIGNED(4) unk3068[16]; + u8 ALIGNED(4) unk306C[7]; + u8 ALIGNED(4) unk3074[ITEM_NAME_LENGTH + 1]; - u8 ALIGNED(4) unk3078[3]; - u8 ALIGNED(4) unk307C[7]; - u8 ALIGNED(4) unk3084[9]; - u8 ALIGNED(4) unk3090[5][5]; + u8 ALIGNED(4) unk3084[3]; + u8 ALIGNED(4) unk3088[7]; - u8 ALIGNED(4) unk30AC[5][11]; - u8 ALIGNED(4) unk30E4[5][11]; - u8 ALIGNED(4) unk311C[5][13]; - u8 ALIGNED(4) pssd4[5][5]; - u8 ALIGNED(4) pssd5[5][5]; + u8 ALIGNED(4) pad3090[0x170]; - u8 ALIGNED(4) pssd6[9]; - u8 ALIGNED(4) pssd7[9]; + // u8 ALIGNED(4) unk3090[9]; + // u8 ALIGNED(4) unk309C[5][5]; - u8 ALIGNED(4) pssd8[13]; - u8 ALIGNED(4) pssd9[20]; - u8 ALIGNED(4) tempPadRemoveLater[0x2c]; + // u8 ALIGNED(4) unk30AC[5][11]; + // u8 ALIGNED(4) unk30E4[5][11]; + // u8 ALIGNED(4) unk311C[5][13]; + // u8 ALIGNED(4) pssd4[5][5]; + // u8 ALIGNED(4) pssd5[5][5]; + + // u8 ALIGNED(4) pssd6[9]; + // u8 ALIGNED(4) pssd7[9]; + + // u8 ALIGNED(4) pssd8[13]; + // u8 ALIGNED(4) pssd9[20]; + // u8 ALIGNED(4) tempPadRemoveLater[0x2c]; } summary; u8 ALIGNED(4) isEgg; /* 0x3200 */ @@ -123,14 +184,56 @@ struct PokemonSummaryScreenData { }; struct Struct203B144 { - u8 unk0[0x28]; + 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 * sprite00[11]; /* 0x00 */ + u16 unk2C[11]; /* 0x2c */ + u16 unk42; /* 0x42 */ + u16 unk44; /* 0x44 */ +}; + +struct Struct203B15C { + struct Sprite * sprite00[10]; /* 0x00 */ + u16 unk28[10]; /* 0x28 */ + u16 unk3C; /* 0x3c */ + u16 unk3E; /* 0x3e */ }; extern struct PokemonSummaryScreenData * gMonSummaryScreen; extern struct Struct203B144 * gUnknown_203B144; +extern struct Struct203B15C * gUnknown_203B15C; +extern struct Struct203B160 * gUnknown_203B160; extern u8 gUnknown_203B16D; extern u8 gUnknown_203B16E; +extern const u32 gUnknown_8E9B750[]; +extern const u32 gUnknown_8E9B950[]; +extern const u32 gUnknown_8E9B598[]; +extern const u32 gUnknown_8E9BA9C[]; +extern const u32 gUnknown_8463C80[]; +extern const u32 gUnknown_8463B88[]; +extern const u32 gUnknown_8E9BBCC[]; +extern const u16 gUnknown_8E9B310[]; +extern const u32 gUnknown_8E9A460[]; + +extern const u32 gUnknown_84636C0[]; +extern const u32 gUnknown_8463700[]; + void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, MainCallback savedCallback, u8 mode) { gMonSummaryScreen = AllocZeroed(sizeof(struct PokemonSummaryScreenData)); @@ -173,7 +276,7 @@ void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, gMonSummaryScreen->lockMovesFlag = FALSE; break; case PSS_MODE_SELECT_MOVE: - case PSS_MODE_UNK3: + case PSS_MODE_FORGET_MOVE: SetHelpContext(HELPCONTEXT_POKEMON_MOVES); gMonSummaryScreen->curPageIndex = PSS_PAGE_MOVES_INFO; gMonSummaryScreen->isBoxMon = FALSE; @@ -387,3 +490,918 @@ void sub_8134840(u8 taskId) break; } } + +static void sub_8134BAC(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + switch (data[0]) + { + case 0: + sub_8135638(); + sub_81356EC(); + gMonSummaryScreen->lockMovesFlag = TRUE; + gMonSummaryScreen->unk301C = TRUE; + sub_813B750(gMonSummaryScreen->curPageIndex); + sub_8138280(gMonSummaryScreen->curPageIndex); + break; + case 1: + if (gMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) + { + if (!(gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES && gMonSummaryScreen->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(gMonSummaryScreen->curPageIndex); + break; + case 3: + CopyWindowToVram(gMonSummaryScreen->unk3000[0], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[1], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[2], 2); + break; + case 4: + if (!IsDma3ManagerBusyWithBgCopy()) + { + CopyBgTilemapBufferToVram(3); + CopyBgTilemapBufferToVram(2); + CopyBgTilemapBufferToVram(1); + } + else + return; + + break; + case 5: + sub_8135514(); + gMonSummaryScreen->unk3244 = TRUE; + break; + case 6: + if (!sub_81357A0(gMonSummaryScreen->unk3224)) + return; + + break; + case 7: + sub_8136F4C(); + if (gMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) + sub_81374E8(); + + sub_8137BD0(); + sub_8138A38(); + break; + case 8: + CopyWindowToVram(gMonSummaryScreen->unk3000[3], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[4], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[5], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[6], 2); + break; + case 9: + if (!IsDma3ManagerBusyWithBgCopy()) + { + CopyBgTilemapBufferToVram(0); + ShowBg(0); + } + else + return; + + break; + default: + sub_8138440(); + + if (gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO) + gTasks[gMonSummaryScreen->unk3018].func = sub_8138CD8; + + DestroyTask(taskId); + data[0] = 0; + gMonSummaryScreen->lockMovesFlag = FALSE; + gMonSummaryScreen->unk301C = FALSE; + return; + } + + data[0]++; +} + +static void sub_8134E84(u8 taskId) +{ + switch (gMonSummaryScreen->unk3284) + { + case 0: + gMonSummaryScreen->lockMovesFlag = TRUE; + gMonSummaryScreen->unk301C = TRUE; + sub_8138280(gMonSummaryScreen->curPageIndex); + break; + case 1: + if (gMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) + { + if (!(gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES && gMonSummaryScreen->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(gMonSummaryScreen->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(gMonSummaryScreen->unk3000[0], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[1], 2); + break; + case 5: + if (!IsDma3ManagerBusyWithBgCopy()) + { + CopyBgTilemapBufferToVram(2); + CopyBgTilemapBufferToVram(1); + CopyBgTilemapBufferToVram(3); + } + else + return; + + break; + case 6: + sub_8136F4C(); + sub_8137BD0(); + CopyWindowToVram(gMonSummaryScreen->unk3000[3], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[5], 2); + break; + case 7: + if (!IsDma3ManagerBusyWithBgCopy()) + { + CopyBgTilemapBufferToVram(0); + sub_8135514(); + gMonSummaryScreen->unk3244 = TRUE; + } + else + return; + + break; + case 8: + if (!sub_81357A0(gMonSummaryScreen->unk3224)) + return; + + sub_81374E8(); + CopyWindowToVram(gMonSummaryScreen->unk3000[4], 2); + break; + case 9: + sub_8138A38(); + sub_8136E50(gUnknown_8419C45); + break; + case 10: + sub_81356EC(); + CopyWindowToVram(gMonSummaryScreen->unk3000[6], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[2], 2); + break; + case 11: + if (!IsDma3ManagerBusyWithBgCopy()) + { + CopyBgTilemapBufferToVram(0); + CopyBgTilemapBufferToVram(2); + CopyBgTilemapBufferToVram(1); + } + else + return; + + break; + default: + sub_8138440(); + gTasks[gMonSummaryScreen->unk3018].func = sub_8138CD8; + gMonSummaryScreen->unk3284 = 0; + gMonSummaryScreen->lockMovesFlag = FALSE; + gMonSummaryScreen->unk301C = FALSE; + return; + } + + gMonSummaryScreen->unk3284++; + return; +} + +void sub_81351A0(u8 taskId) +{ + switch (gMonSummaryScreen->unk3284) + { + case 0: + gMonSummaryScreen->lockMovesFlag = TRUE; + gMonSummaryScreen->unk301C = TRUE; + sub_8138280(gMonSummaryScreen->curPageIndex); + break; + case 1: + if (gMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) { + if (!(gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES && gMonSummaryScreen->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(gMonSummaryScreen->unk3000[3], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[4], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[5], 2); + CopyBgTilemapBufferToVram(0); + break; + case 4: + sub_8136DA4(gUnknown_8419C39); + sub_8136DF0(gUnknown_8419C82); + break; + case 5: + CopyWindowToVram(gMonSummaryScreen->unk3000[0], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[1], 2); + CopyBgTilemapBufferToVram(2); + CopyBgTilemapBufferToVram(1); + break; + case 6: + sub_8135514(); + gMonSummaryScreen->unk3244 = TRUE; + sub_8135638(); + sub_813B750(gMonSummaryScreen->curPageIndex); + sub_8138A38(); + break; + case 7: + break; + case 8: + if (sub_81357A0(gMonSummaryScreen->unk3224) == 0) + return; + + sub_8136E50(gUnknown_8419C45); + break; + case 9: + CopyWindowToVram(gMonSummaryScreen->unk3000[6], 2); + CopyWindowToVram(gMonSummaryScreen->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[gMonSummaryScreen->unk3018].func = sub_8134840; + gMonSummaryScreen->unk3284 = 0; + gMonSummaryScreen->lockMovesFlag = FALSE; + gMonSummaryScreen->unk301C = FALSE; + return; + } + + gMonSummaryScreen->unk3284++; + return; +} + +void sub_813546C(void) +{ + u8 i; + for (i = 0; i < 11; i++) + { + gUnknown_203B160->unk2C[i] = (8 * i) + 396; + gUnknown_203B160->sprite00[i]->pos1.x = gUnknown_203B160->unk2C[i]; + if (i >= 9) + continue; + + gUnknown_203B15C->unk28[i] = (8 * i) + 412; + gUnknown_203B15C->sprite00[i]->pos1.x = gUnknown_203B15C->unk28[i]; + } +} + +void sub_81354C4(void) +{ + u8 i; + for (i = 0; i < 11; i++) + { + gUnknown_203B160->unk2C[i] = (8 * i) + 156; + gUnknown_203B160->sprite00[i]->pos1.x = gUnknown_203B160->unk2C[i]; + if (i >= 9) + continue; + gUnknown_203B15C->unk28[i] = (8 * i) + 172; + gUnknown_203B15C->sprite00[i]->pos1.x = gUnknown_203B15C->unk28[i]; + } +} + +void sub_8135514(void) +{ + s8 pageDelta = 1; + + if (gMonSummaryScreen->unk3224 == 1) + pageDelta = -1; + + if (gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO) + { + gMonSummaryScreen->unk324C = 240; + return; + } + + if ((gMonSummaryScreen->curPageIndex + pageDelta) == PSS_PAGE_MOVES_INFO) + { + sub_81358DC(0, 0); + gMonSummaryScreen->unk324C = 0; + SetGpuReg(REG_OFFSET_BG1HOFS, 0); + SetGpuReg(REG_OFFSET_BG2HOFS, 0); + return; + } + + if (gMonSummaryScreen->unk3224 == 1) + { + gMonSummaryScreen->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; + gMonSummaryScreen->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 (gMonSummaryScreen->curPageIndex == PSS_PAGE_SKILLS) + { + if (gMonSummaryScreen->unk3224 == 1) + sub_81354C4(); + else + sub_813546C(); + } + else if (gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES) + sub_81354C4(); + +} + +void sub_8135638(void) +{ + u8 newPage; + + if (gMonSummaryScreen->unk3224 == 1) + newPage = gMonSummaryScreen->curPageIndex - 1; + else + newPage = gMonSummaryScreen->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 (gMonSummaryScreen->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; + } +} + +void sub_81356EC(void) +{ + u8 newPage; + + if (gMonSummaryScreen->unk3224 == 1) + newPage = gMonSummaryScreen->curPageIndex - 1; + else + newPage = gMonSummaryScreen->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 (gMonSummaryScreen->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; + } +} + +u8 sub_81357A0(u8 a0) +{ + s8 pageDelta = 1; + + if (gMonSummaryScreen->unk3224 == 1) + pageDelta = -1; + + if (gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO) + if (gMonSummaryScreen->unk324C <= 0) + { + gMonSummaryScreen->unk324C = 0; + gMonSummaryScreen->unk3238 ^= 1; + sub_81358DC(0, 0); + gMonSummaryScreen->unk3244 = FALSE; + return TRUE; + } + + if ((gMonSummaryScreen->curPageIndex + pageDelta) == PSS_PAGE_MOVES_INFO) + if (gMonSummaryScreen->unk324C >= 240) + { + gMonSummaryScreen->unk324C = 240; + gMonSummaryScreen->unk3238 ^= 1; + gMonSummaryScreen->unk3244 = FALSE; + return TRUE; + } + + if (gMonSummaryScreen->unk3224 == 1) + { + if (gMonSummaryScreen->unk324C >= 240) + { + gMonSummaryScreen->unk324C = 240; + gMonSummaryScreen->unk3238 ^= 1; + sub_81358DC(0, 0); + gMonSummaryScreen->unk3244 = FALSE; + return TRUE; + } + } + else if (gMonSummaryScreen->unk324C <= 0) + { + gMonSummaryScreen->unk3238 ^= 1; + gMonSummaryScreen->unk324C = 0; + gMonSummaryScreen->unk3244 = FALSE; + return TRUE; + } + + return FALSE; +} + +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 (gMonSummaryScreen->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 (gMonSummaryScreen->unk3224 == 0) + { + bg0Priority = 0; + if (bg1Priority > bg2Priority) + bg1Priority = 1, bg2Priority = 2; + else + bg1Priority = 2, bg2Priority = 1; + } + + for (i = 0; i < 11; i++) + { + if (gMonSummaryScreen->curPageIndex == PSS_PAGE_SKILLS && gMonSummaryScreen->unk3224 == 1) + gUnknown_203B160->sprite00[i]->oam.priority = bg0Priority; + else + gUnknown_203B160->sprite00[i]->oam.priority = bg1Priority; + + if (i >= 9) + continue; + + if (gMonSummaryScreen->curPageIndex == PSS_PAGE_SKILLS && gMonSummaryScreen->unk3224 == 1) + gUnknown_203B15C->sprite00[i]->oam.priority = bg0Priority; + else + gUnknown_203B15C->sprite00[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); +} + +void sub_8135AA4(void) +{ + u8 newPage; + + if (gMonSummaryScreen->unk3224 == 1) + newPage = gMonSummaryScreen->curPageIndex - 1; + else + newPage = gMonSummaryScreen->curPageIndex + 1; + + switch (newPage) + { + case PSS_PAGE_INFO: + CopyToBgTilemapBuffer(gMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0); + break; + case PSS_PAGE_SKILLS: + if (gMonSummaryScreen->unk3224 == 1) + CopyToBgTilemapBuffer(gMonSummaryScreen->unk323C, gUnknown_8E9B950, 0, 0); + else + CopyToBgTilemapBuffer(gMonSummaryScreen->unk323C, gUnknown_8E9B598, 0, 0); + + break; + case PSS_PAGE_MOVES: + if (gMonSummaryScreen->unk3224 == 1) + CopyToBgTilemapBuffer(gMonSummaryScreen->unk3240, gUnknown_8E9BA9C, 0, 0); + else + CopyToBgTilemapBuffer(gMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0); + + break; + case PSS_PAGE_MOVES_INFO: + CopyToBgTilemapBuffer(gMonSummaryScreen->unk323C, gUnknown_8E9B950, 0, 0); + break; + } +} + +void sub_8135B90(void) +{ + u8 newPage; + + if (gMonSummaryScreen->unk3224 == 1) + newPage = gMonSummaryScreen->curPageIndex - 1; + else + newPage = gMonSummaryScreen->curPageIndex + 1; + + switch (newPage) + { + case PSS_PAGE_INFO: + CopyToBgTilemapBuffer(gMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0); + break; + case PSS_PAGE_SKILLS: + break; + case PSS_PAGE_MOVES: + if (gMonSummaryScreen->unk3224 == 1) + CopyToBgTilemapBuffer(3, gUnknown_8463C80, 0, 0); + else + CopyToBgTilemapBuffer(3, gUnknown_8463B88, 0, 0); + + break; + case PSS_PAGE_MOVES_INFO: + CopyToBgTilemapBuffer(3, gUnknown_8463B88, 0, 0); + break; + } +} + +void sub_8135C34(void) +{ + switch (gMonSummaryScreen->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 (gMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE || gMonSummaryScreen->mode == PSS_MODE_FORGET_MOVE) + CopyToBgTilemapBuffer(3, gUnknown_8463C80, 0, 0); + else + CopyToBgTilemapBuffer(3, gUnknown_8463B88, 0, 0); + + sub_8138538(); + break; + case 11: + if (gMonSummaryScreen->isEgg) + CopyToBgTilemapBuffer(gMonSummaryScreen->unk323C, gUnknown_8E9BBCC, 0, 0); + else + { + if (gMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE || gMonSummaryScreen->mode == PSS_MODE_FORGET_MOVE) + { + CopyToBgTilemapBuffer(gMonSummaryScreen->unk323C, gUnknown_8E9B950, 0, 0); + CopyToBgTilemapBuffer(gMonSummaryScreen->unk3240, gUnknown_8E9BA9C, 0, 0); + } + else + { + CopyToBgTilemapBuffer(gMonSummaryScreen->unk323C, gUnknown_8E9B598, 0, 0); + CopyToBgTilemapBuffer(gMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0); + } + } + + break; + case 12: + BlendPalettes(0xffffffff, 16, 0); + sub_8137D28(gMonSummaryScreen->curPageIndex); + sub_8137E28(); + break; + case 13: + BeginNormalPaletteFade(0xffffffff, 0, 16, 0, 0); + CopyWindowToVram(gMonSummaryScreen->unk3000[0], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[1], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[2], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[6], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[3], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[4], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[5], 2); + break; + case 14: + CopyBgTilemapBufferToVram(0); + CopyBgTilemapBufferToVram(2); + CopyBgTilemapBufferToVram(1); + CopyBgTilemapBufferToVram(3); + break; + case 15: + if (gMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE || gMonSummaryScreen->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; + } + + gMonSummaryScreen->unk3274++; +} + +u8 sub_8135F20(void) +{ + switch (gMonSummaryScreen->unk3278) + { + case 0: + LoadPalette(gUnknown_8E9B310, 0, 0x20 * 5); + if (IsMonShiny(&gMonSummaryScreen->currentMon) == TRUE && !gMonSummaryScreen->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(gUnknown_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(gUnknown_8463700, 0x80, 0x20); + return TRUE; + } + + gMonSummaryScreen->unk3278++; + return FALSE; +} + +u8 sub_8136040(void) +{ + switch (gMonSummaryScreen->unk3280) + { + case 0: + sub_81360D4(); + if (gMonSummaryScreen->isEgg) + { + gMonSummaryScreen->unk3280 = 0; + return TRUE; + } + + break; + case 1: + if (gMonSummaryScreen->isEgg == 0) + sub_8136350(); + break; + case 2: + if (gMonSummaryScreen->isEgg == 0) + sub_81367B0(); + break; + default: + gMonSummaryScreen->unk3280 = 0; + return TRUE; + } + + gMonSummaryScreen->unk3280++; + return FALSE; +} + +void sub_81360D4(void) +{ + u8 tempStr[20]; + u16 dexNum; + u16 gender; + u16 heldItem; + u32 otId; + + dexNum = SpeciesToPokedexNum(GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SPECIES)); + if (dexNum == 0xffff) + StringCopy(gMonSummaryScreen->summary.unk3064, gUnknown_8416202); + else + ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk3064, dexNum, STR_CONV_MODE_LEADING_ZEROS, 3); + + gUnknown_203B144->unk00 = 0; + + if (!gMonSummaryScreen->isEgg) + { + dexNum = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SPECIES); + GetSpeciesName(gMonSummaryScreen->summary.unk3028, dexNum); + } + else + { + GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_NICKNAME, gMonSummaryScreen->summary.unk3028); + return; + } + + gMonSummaryScreen->unk3220[0] = gBaseStats[dexNum].type1; + gMonSummaryScreen->unk3220[1] = gBaseStats[dexNum].type2; + + GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_NICKNAME, tempStr); + StringCopyN_Multibyte(gMonSummaryScreen->summary.unk3034, tempStr, POKEMON_NAME_LENGTH); + StringGetEnd10(gMonSummaryScreen->summary.unk3034); + + gender = GetMonGender(&gMonSummaryScreen->currentMon); + dexNum = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SPECIES2); + + if (gender == MON_FEMALE) + StringCopy(gMonSummaryScreen->summary.unk3084, gText_FemaleSymbol); + else if (gender == MON_MALE) + StringCopy(gMonSummaryScreen->summary.unk3084, gText_MaleSymbol); + else + StringCopy(gMonSummaryScreen->summary.unk3084, gString_Dummy); + + if (dexNum == SPECIES_NIDORAN_M || dexNum == SPECIES_NIDORAN_F) + if (StringCompare(gMonSummaryScreen->summary.unk3034, gSpeciesNames[dexNum]) == 0) + StringCopy(gMonSummaryScreen->summary.unk3084, gString_Dummy); + + GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_OT_NAME, tempStr); + StringCopyN_Multibyte(gMonSummaryScreen->summary.unk3040, tempStr, OT_NAME_LENGTH); + + ConvertInternationalString(gMonSummaryScreen->summary.unk3040, GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_LANGUAGE)); + + otId = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_OT_ID) & 0xffff; + ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk306C, otId, STR_CONV_MODE_LEADING_ZEROS, 5); + + ConvertIntToDecimalStringN(tempStr, GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_LEVEL), STR_CONV_MODE_LEFT_ALIGN, 3); + StringCopy(gMonSummaryScreen->summary.unk3088, gText_Lv); + StringAppendN(gMonSummaryScreen->summary.unk3088, tempStr, 4); + + heldItem = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_HELD_ITEM); + + if (heldItem == ITEM_NONE) + StringCopy(gMonSummaryScreen->summary.unk3074, gUnknown_84161EF); + else + CopyItemName(heldItem, gMonSummaryScreen->summary.unk3074); +} From a04106a011429db1a474fedd1fd30d892309e4dd Mon Sep 17 00:00:00 2001 From: luckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com> Date: Tue, 23 Jun 2020 22:06:21 -0400 Subject: [PATCH 07/25] pokemon_summary_screen.c, part 4. --- asm/pokemon_summary_screen.s | 874 ------------------------------- include/constants/global.h | 1 + include/pokemon_summary_screen.h | 9 + include/strings.h | 2 + include/trade.h | 1 + src/pokemon_summary_screen.c | 180 ++++++- 6 files changed, 192 insertions(+), 875 deletions(-) diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index d47c7e91c..c5e8ad801 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -5,880 +5,6 @@ .text - 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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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} 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/pokemon_summary_screen.h b/include/pokemon_summary_screen.h index 9c9c1e351..0c1a2f221 100644 --- a/include/pokemon_summary_screen.h +++ b/include/pokemon_summary_screen.h @@ -45,6 +45,15 @@ enum PokemonSummaryScreenState3270 PSS_STATE3270_6 }; +enum PokemonSummaryScreenStat +{ + PSS_STAT_ATK, + PSS_STAT_DEF, + PSS_STAT_SPA, + PSS_STAT_SPD, + PSS_STAT_SPE +}; + s32 GetLastViewedMonIndex(void); void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, void (*callback)(void), u8 a4); void sub_8138B38(u8); diff --git a/include/strings.h b/include/strings.h index 6c12d38f5..9f86bf6ef 100644 --- a/include/strings.h +++ b/include/strings.h @@ -1476,5 +1476,7 @@ 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[]; #endif //GUARD_STRINGS_H 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/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index af0320be5..e566fe6fc 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -15,6 +15,9 @@ #include "constants/items.h" #include "data.h" #include "item.h" +#include "constants/party_menu.h" +#include "trade.h" +#include "battle_main.h" extern void sub_8138B8C(struct Pokemon * mon); void sub_8135C34(void); @@ -69,6 +72,10 @@ extern void sub_8136D54(void); extern void sub_81360D4(void); extern void sub_8136350(void); extern void sub_81367B0(void); +extern u8 sub_8138C5C(u32 status); +void sub_81367E8(u8); +extern u16 sub_8138BEC(struct Pokemon * mon, u8 i); +extern u16 sub_8138C24(struct Pokemon * mon, u8 i); struct PokemonSummaryScreenData { u16 unk0[0x800]; @@ -108,8 +115,21 @@ struct PokemonSummaryScreenData { u8 ALIGNED(4) unk3084[3]; u8 ALIGNED(4) unk3088[7]; + u8 ALIGNED(4) unk3090[9]; + u8 ALIGNED(4) unk309C[5][5]; - u8 ALIGNED(4) pad3090[0x170]; + 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[20]; + u8 ALIGNED(4) pad31E0[0x20]; // u8 ALIGNED(4) unk3090[9]; // u8 ALIGNED(4) unk309C[5][5]; @@ -1405,3 +1425,161 @@ void sub_81360D4(void) else CopyItemName(heldItem, gMonSummaryScreen->summary.unk3074); } + +#define MACRO_8136350_0(x) (63 - StringLength((x)) * 6) +#define MACRO_8136350_1(x) (27 - StringLength((x)) * 6) + +void sub_8136350(void) +{ + u8 tempStr[20]; + u8 level; + u16 type; + u16 species; + u16 hp; + u16 statValue; + u32 exp; + u32 expToNextLevel; + + hp = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_HP); + ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk3090, hp, STR_CONV_MODE_LEFT_ALIGN, 3); + StringAppend(gMonSummaryScreen->summary.unk3090, gText_Slash); + + hp = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MAX_HP); + ConvertIntToDecimalStringN(tempStr, hp, STR_CONV_MODE_LEFT_ALIGN, 3); + StringAppend(gMonSummaryScreen->summary.unk3090, tempStr); + + gUnknown_203B144->unk02 = MACRO_8136350_0(gMonSummaryScreen->summary.unk3090); + + if (gMonSummaryScreen->savedCallback == CB2_ReturnToTradeMenuFromSummary && gMonSummaryScreen->isEnemyParty == TRUE) + { + statValue = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_ATK2); + ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk309C[PSS_STAT_ATK], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); + gUnknown_203B144->unk04 = MACRO_8136350_1(gMonSummaryScreen->summary.unk309C[PSS_STAT_ATK]); + + statValue = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_DEF2); + ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk309C[PSS_STAT_DEF], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); + gUnknown_203B144->unk06 = MACRO_8136350_1(gMonSummaryScreen->summary.unk309C[PSS_STAT_DEF]); + + statValue = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SPATK2); + ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk309C[PSS_STAT_SPA], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); + gUnknown_203B144->unk08 = MACRO_8136350_1(gMonSummaryScreen->summary.unk309C[PSS_STAT_SPA]); + + statValue = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SPDEF2); + ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk309C[PSS_STAT_SPD], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); + gUnknown_203B144->unk0A = MACRO_8136350_1(gMonSummaryScreen->summary.unk309C[PSS_STAT_SPD]); + + statValue = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SPEED2); + ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk309C[PSS_STAT_SPE], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); + gUnknown_203B144->unk0C = MACRO_8136350_1(gMonSummaryScreen->summary.unk309C[PSS_STAT_SPE]); + } + else + { + statValue = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_ATK); + ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk309C[PSS_STAT_ATK], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); + gUnknown_203B144->unk04 = MACRO_8136350_1(gMonSummaryScreen->summary.unk309C[PSS_STAT_ATK]); + + statValue = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_DEF); + ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk309C[PSS_STAT_DEF], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); + gUnknown_203B144->unk06 = MACRO_8136350_1(gMonSummaryScreen->summary.unk309C[PSS_STAT_DEF]); + + statValue = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SPATK); + ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk309C[PSS_STAT_SPA], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); + gUnknown_203B144->unk08 = MACRO_8136350_1(gMonSummaryScreen->summary.unk309C[PSS_STAT_SPA]); + + statValue = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SPDEF); + ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk309C[PSS_STAT_SPD], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); + gUnknown_203B144->unk0A = MACRO_8136350_1(gMonSummaryScreen->summary.unk309C[PSS_STAT_SPD]); + + statValue = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SPEED); + ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk309C[PSS_STAT_SPE], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); + gUnknown_203B144->unk0C = MACRO_8136350_1(gMonSummaryScreen->summary.unk309C[PSS_STAT_SPE]); + } + + exp = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_EXP); + ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk31A4, exp, STR_CONV_MODE_LEFT_ALIGN, 7); + gUnknown_203B144->unk0E = MACRO_8136350_0(gMonSummaryScreen->summary.unk31A4); + + level = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_LEVEL); + expToNextLevel = 0; + if (level < 100) + { + species = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SPECIES); + expToNextLevel = gExperienceTables[gBaseStats[species].growthRate][level + 1] - exp; + } + + ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk31B0, expToNextLevel, STR_CONV_MODE_LEFT_ALIGN, 7); + gUnknown_203B144->unk10 = MACRO_8136350_0(gMonSummaryScreen->summary.unk31B0); + + type = GetAbilityBySpecies(GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SPECIES), GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_ABILITY_NUM)); + StringCopy(gMonSummaryScreen->summary.unk31BC, gAbilityNames[type]); + StringCopy(gMonSummaryScreen->summary.unk31CC, gAbilityDescriptionPointers[type]); + + gMonSummaryScreen->unk326C = sub_8138C5C(GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_STATUS)); + if (gMonSummaryScreen->unk326C == AILMENT_NONE) + if (CheckPartyPokerus(&gMonSummaryScreen->currentMon, 0)) + gMonSummaryScreen->unk326C = AILMENT_PKRS; +} + +void sub_81367B0(void) +{ + u8 i; + + for (i = 0; i < 4; i++) + sub_81367E8(i); + + if (gMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) + sub_81367E8(4); +} + +#define MACRO_81367E8_0(a, b) ((6 * (a)) - StringLength((b)) * 6) + +void sub_81367E8(u8 i) +{ + if (i < 4) + gMonSummaryScreen->unk325A[i] = sub_8138BEC(&gMonSummaryScreen->currentMon, i); + + if (gMonSummaryScreen->unk325A[i] == 0) + { + StringCopy(gMonSummaryScreen->summary.unk3128[i], gUnknown_841620E); + StringCopy(gMonSummaryScreen->summary.unk30B8[i], gUnknown_8416210); + StringCopy(gMonSummaryScreen->summary.unk316C[i], gText_ThreeHyphens); + StringCopy(gMonSummaryScreen->summary.unk3188[i], gText_ThreeHyphens); + gUnknown_203B144->unk12[i] = 0xff; + gUnknown_203B144->unk1C[i] = 0xff; + return; + } + + gMonSummaryScreen->unk3264++; + gMonSummaryScreen->unk3250[i] = gBattleMoves[gMonSummaryScreen->unk325A[i]].type; + StringCopy(gMonSummaryScreen->summary.unk3128[i], gMoveNames[gMonSummaryScreen->unk325A[i]]); + + if (i >= 4 && gMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) + { + ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk30B8[i], + gBattleMoves[gMonSummaryScreen->unk325A[i]].pp, STR_CONV_MODE_LEFT_ALIGN, 3); + ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk30F0[i], + gBattleMoves[gMonSummaryScreen->unk325A[i]].pp, STR_CONV_MODE_LEFT_ALIGN, 3); + } + else + { + ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk30B8[i], + sub_8138C24(&gMonSummaryScreen->currentMon, i), STR_CONV_MODE_LEFT_ALIGN, 3); + ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk30F0[i], + CalculatePPWithBonus(gMonSummaryScreen->unk325A[i], GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_PP_BONUSES), i), + STR_CONV_MODE_LEFT_ALIGN, 3); + } + + gUnknown_203B144->unk12[i] = MACRO_81367E8_0(2, gMonSummaryScreen->summary.unk30B8[i]); + gUnknown_203B144->unk1C[i] = MACRO_81367E8_0(2, gMonSummaryScreen->summary.unk30F0[i]); + + if (gBattleMoves[gMonSummaryScreen->unk325A[i]].power <= 1) + StringCopy(gMonSummaryScreen->summary.unk316C[i], gText_ThreeHyphens); + else + ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk316C[i], gBattleMoves[gMonSummaryScreen->unk325A[i]].power, STR_CONV_MODE_RIGHT_ALIGN, 3); + + if (gBattleMoves[gMonSummaryScreen->unk325A[i]].accuracy == 0) + StringCopy(gMonSummaryScreen->summary.unk3188[i], gText_ThreeHyphens); + else + ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk3188[i], gBattleMoves[gMonSummaryScreen->unk325A[i]].accuracy, STR_CONV_MODE_RIGHT_ALIGN, 3); +} + From 114a5b9b6f75163849e031684b154f754a03d08a Mon Sep 17 00:00:00 2001 From: luckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com> Date: Wed, 24 Jun 2020 13:57:19 -0400 Subject: [PATCH 08/25] pokemon_summary_screen.c, part 5. --- asm/pokemon_summary_screen.s | 397 ------------------------------- include/pokemon_summary_screen.h | 11 + src/pokemon_summary_screen.c | 195 ++++++++++++++- 3 files changed, 200 insertions(+), 403 deletions(-) diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index c5e8ad801..2d129650d 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -5,403 +5,6 @@ .text - thumb_func_start sub_8136AEC -sub_8136AEC: @ 8136AEC - push {lr} - ldr r0, _08136B08 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_08136E48: .4byte 0x00003001 -_08136E4C: .4byte gUnknown_8463FA7 - thumb_func_end sub_8136DF0 - thumb_func_start sub_8136E50 sub_8136E50: @ 8136E50 push {r4-r7,lr} diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h index 0c1a2f221..c28dccfee 100644 --- a/include/pokemon_summary_screen.h +++ b/include/pokemon_summary_screen.h @@ -58,4 +58,15 @@ s32 GetLastViewedMonIndex(void); void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, void (*callback)(void), u8 a4); void sub_8138B38(u8); +#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/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index e566fe6fc..fcf850ea7 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -18,6 +18,7 @@ #include "constants/party_menu.h" #include "trade.h" #include "battle_main.h" +#include "scanline_effect.h" extern void sub_8138B8C(struct Pokemon * mon); void sub_8135C34(void); @@ -45,8 +46,8 @@ extern void sub_8136F4C(void); extern void sub_81374E8(void); extern void sub_8137BD0(void); extern void sub_8138A38(void); -extern void sub_8136DA4(const u8 * str); -extern void sub_8136DF0(const u8 * str); +void sub_8136DA4(const u8 * str); +void sub_8136DF0(const u8 * str); extern void sub_8136E50(const u8 * str); void sub_81358DC(u8, u8); extern void sub_813A838(u8 invisible); @@ -60,15 +61,15 @@ extern void sub_813AEB0(u8 invisible); extern void sub_813A0E8(u8 invisible); extern void sub_8139EE4(u8 invisible); extern void sub_81381AC(void); -extern void sub_8136BC4(void); -extern void sub_8136BAC(void); +void sub_8136BC4(void); +void sub_8136BAC(void); u8 sub_8135F20(void); -extern u8 sub_8136AEC(void); +u8 sub_8136AEC(void); extern void sub_81381D0(void); u8 sub_8136040(void); extern void sub_8137E28(void); extern void sub_81381C0(void); -extern void sub_8136D54(void); +void sub_8136D54(void); extern void sub_81360D4(void); extern void sub_8136350(void); extern void sub_81367B0(void); @@ -76,6 +77,18 @@ extern u8 sub_8138C5C(u32 status); void sub_81367E8(u8); extern u16 sub_8138BEC(struct Pokemon * mon, u8 i); extern u16 sub_8138C24(struct Pokemon * mon, u8 i); +extern void sub_813ADA8(u16, u16); +extern void sub_813ABAC(u16, u16); +extern void sub_813AFFC(void); +extern void sub_8139F64(u16, u16); +extern void sub_813A254(u16, u16); +extern void sub_813A45C(u16, u16); +extern void sub_813A874(u16, u16); +extern void sub_8139CB0(void); +extern void sub_8139DBC(void); +extern void sub_813995C(void); +extern void sub_81393D4(u8 taskId); +extern void sub_8137EE8(void); struct PokemonSummaryScreenData { u16 unk0[0x800]; @@ -254,6 +267,10 @@ extern const u32 gUnknown_8E9A460[]; extern const u32 gUnknown_84636C0[]; extern const u32 gUnknown_8463700[]; +extern const struct BgTemplate gUnknown_8463EFC[4]; + +extern const u8 gUnknown_8463FA7[][3]; + void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, MainCallback savedCallback, u8 mode) { gMonSummaryScreen = AllocZeroed(sizeof(struct PokemonSummaryScreenData)); @@ -1583,3 +1600,169 @@ void sub_81367E8(u8 i) ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk3188[i], gBattleMoves[gMonSummaryScreen->unk325A[i]].accuracy, STR_CONV_MODE_RIGHT_ALIGN, 3); } +u8 sub_8136AEC(void) +{ + switch (gMonSummaryScreen->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; + } + + gMonSummaryScreen->unk327C++; + return FALSE; +} + +void sub_8136BAC(void) +{ + ResetSpriteData(); + ResetPaletteFade(); + FreeAllSpritePalettes(); + ScanlineEffect_Stop(); +} + +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, gUnknown_8463EFC, ARRAY_COUNT(gUnknown_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(gMonSummaryScreen->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, gMonSummaryScreen->unk0); + SetBgTilemapBuffer(2, gMonSummaryScreen->unk1000); + SetBgTilemapBuffer(3, gMonSummaryScreen->unk2000); + + ShowBg(0); + ShowBg(1); + ShowBg(2); + ShowBg(3); +} + +void sub_8136D54(void) +{ + if (gMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE || gMonSummaryScreen->mode == PSS_MODE_FORGET_MOVE) + gMonSummaryScreen->unk3018 = CreateTask(sub_81393D4, 0); + else + gMonSummaryScreen->unk3018 = CreateTask(sub_8134840, 0); + + SetMainCallback2(sub_8137EE8); +} + +void sub_8136DA4(const u8 * str) +{ + FillWindowPixelBuffer(gMonSummaryScreen->unk3000[0], 0); + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[0], 2, 4, 1, gUnknown_8463FA7[0], 0, str); + PutWindowTilemap(gMonSummaryScreen->unk3000[0]); +} + +#ifdef NONMATCHING +void sub_8136DF0(const u8 * str) +{ + u8 v0; + + FillWindowPixelBuffer(gMonSummaryScreen->unk3000[1], 0); + v0 = (u8)(0x54 - GetStringWidth(0, str, 0)); + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[1], 0, v0, 0, gUnknown_8463FA7[0], 0, str); + PutWindowTilemap(gMonSummaryScreen->unk3000[1]); +} +#else +NAKED +void sub_8136DF0(const u8 * str) +{ + asm_unified("\tpush {r4-r6,lr}\n" + "\tsub sp, 0xC\n" + "\tadds r6, r0, 0\n" + "\tldr r5, _08136E44 @ =gMonSummaryScreen\n" + "\tldr r0, [r5]\n" + "\tldr r4, _08136E48 @ =0x00003001\n" + "\tadds r0, r4\n" + "\tldrb r0, [r0]\n" + "\tmovs r1, 0\n" + "\tbl FillWindowPixelBuffer\n" + "\tmovs r0, 0\n" + "\tadds r1, r6, 0\n" + "\tmovs r2, 0\n" + "\tbl GetStringWidth\n" + "\tldr r1, [r5]\n" + "\tadds r1, r4\n" + "\tldrb r1, [r1]\n" + "\tmovs r2, 0x54\n" + "\tsubs r2, r0\n" + "\tlsls r2, 24\n" + "\tlsrs r2, 24\n" + "\tldr r0, _08136E4C @ =gUnknown_8463FA7\n" + "\tstr r0, [sp]\n" + "\tmovs r0, 0\n" + "\tstr r0, [sp, 0x4]\n" + "\tstr r6, [sp, 0x8]\n" + "\tadds r0, r1, 0\n" + "\tmovs r1, 0\n" + "\tmovs r3, 0\n" + "\tbl AddTextPrinterParameterized3\n" + "\tldr r0, [r5]\n" + "\tadds r0, r4\n" + "\tldrb r0, [r0]\n" + "\tbl PutWindowTilemap\n" + "\tadd sp, 0xC\n" + "\tpop {r4-r6}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" + "_08136E44: .4byte gMonSummaryScreen\n" + "_08136E48: .4byte 0x00003001\n" + "_08136E4C: .4byte gUnknown_8463FA7\n"); +} +#endif + + \ No newline at end of file From 91fea55a24ba6e184e806c7aefa7f60ef31c0b32 Mon Sep 17 00:00:00 2001 From: luckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com> Date: Thu, 25 Jun 2020 12:59:37 -0400 Subject: [PATCH 09/25] pokemon_summary_screen.c, part 6. --- asm/pokemon_summary_screen.s | 1072 --------------------------------- data/pokemon_summary_screen.s | 9 +- include/strings.h | 13 +- include/text.h | 1 + src/pokemon_summary_screen.c | 335 +++++++++-- 5 files changed, 300 insertions(+), 1130 deletions(-) diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index 2d129650d..baa676bdd 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -5,1078 +5,6 @@ .text - thumb_func_start sub_8136E50 -sub_8136E50: @ 8136E50 - push {r4-r7,lr} - sub sp, 0xC - ldr r6, _08136EEC @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_08136F48: .4byte 0x00003002 - thumb_func_end sub_8136E50 - - thumb_func_start sub_8136F4C -sub_8136F4C: @ 8136F4C - push {r4,lr} - ldr r4, _08136F74 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_08137550: .4byte 0x00003004 - thumb_func_end sub_81374E8 - - thumb_func_start sub_8137554 -sub_8137554: @ 8137554 - push {lr} - ldr r0, _0813756C @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_0813771C: .4byte 0x00003004 -_08137720: .4byte gUnknown_8463FA4 - thumb_func_end sub_8137578 - thumb_func_start sub_8137724 sub_8137724: @ 8137724 push {r4-r6,lr} diff --git a/data/pokemon_summary_screen.s b/data/pokemon_summary_screen.s index 3400c9ae0..2c221fb21 100644 --- a/data/pokemon_summary_screen.s +++ b/data/pokemon_summary_screen.s @@ -405,10 +405,13 @@ gUnknown_8463F9C:: @ 8463F9C gUnknown_8463FA4:: @ 8463FA4 .byte 0x00, 0x0e, 0x0a + .byte 0x00, 0x01, 0x02 + .byte 0x00, 0x09, 0x08 + .byte 0x00, 0x05, 0x04 + .byte 0x00, 0x02, 0x03 + .byte 0x00, 0x0b, 0x0a -gUnknown_8463FA7:: @ 8463FA7 - .byte 0x00, 0x01, 0x02, 0x00, 0x09, 0x08, 0x00, 0x05, 0x04, 0x00, 0x02, 0x03, 0x00, 0x0b, 0x0a, 0x00, 0x00 - + .balign 4, 0 gUnknown_8463FB8:: @ 8463FB8 .byte 0x00, 0x02, 0x03, 0x01, 0x04, 0x05 diff --git a/include/strings.h b/include/strings.h index 9f86bf6ef..df6162227 100644 --- a/include/strings.h +++ b/include/strings.h @@ -1478,5 +1478,16 @@ 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[]; + #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/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index fcf850ea7..7bfa7bb26 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -19,6 +19,10 @@ #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" extern void sub_8138B8C(struct Pokemon * mon); void sub_8135C34(void); @@ -89,6 +93,18 @@ extern void sub_8139DBC(void); extern void sub_813995C(void); extern void sub_81393D4(u8 taskId); extern void sub_8137EE8(void); +extern void sub_8136FB0(void); +extern void sub_81370EC(void); +extern void sub_8137270(void); +extern void sub_81372E4(u8 i); +extern void sub_8137554(void); +extern void sub_8137A90(void); +extern void sub_8137AF8(void); +extern void sub_8137944(void); +extern void sub_8137970(void); +extern bool32 sub_813B838(u8 metLocation); +extern bool32 sub_8138B4C(void); +extern bool32 sub_813B7E0(u8 nature); struct PokemonSummaryScreenData { u16 unk0[0x800]; @@ -269,7 +285,10 @@ extern const u32 gUnknown_8463700[]; extern const struct BgTemplate gUnknown_8463EFC[4]; -extern const u8 gUnknown_8463FA7[][3]; +extern const u8 gUnknown_8463FA4[][3]; +extern const u8 gUnknown_8463EF0[][3]; + +extern const u8 * const gUnknown_8463EC4[]; void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, MainCallback savedCallback, u8 mode) { @@ -1702,67 +1721,275 @@ void sub_8136D54(void) void sub_8136DA4(const u8 * str) { FillWindowPixelBuffer(gMonSummaryScreen->unk3000[0], 0); - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[0], 2, 4, 1, gUnknown_8463FA7[0], 0, str); + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[0], 2, 4, 1, gUnknown_8463FA4[1], 0, str); PutWindowTilemap(gMonSummaryScreen->unk3000[0]); } -#ifdef NONMATCHING void sub_8136DF0(const u8 * str) { u8 v0; + s32 width; + u8 r1; FillWindowPixelBuffer(gMonSummaryScreen->unk3000[1], 0); - v0 = (u8)(0x54 - GetStringWidth(0, str, 0)); - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[1], 0, v0, 0, gUnknown_8463FA7[0], 0, str); + width = GetStringWidth(0, str, 0); + r1 = gMonSummaryScreen->unk3000[1]; + AddTextPrinterParameterized3(r1, 0, 0x54 - width, 0, gUnknown_8463FA4[1], 0, str); PutWindowTilemap(gMonSummaryScreen->unk3000[1]); } -#else -NAKED -void sub_8136DF0(const u8 * str) -{ - asm_unified("\tpush {r4-r6,lr}\n" - "\tsub sp, 0xC\n" - "\tadds r6, r0, 0\n" - "\tldr r5, _08136E44 @ =gMonSummaryScreen\n" - "\tldr r0, [r5]\n" - "\tldr r4, _08136E48 @ =0x00003001\n" - "\tadds r0, r4\n" - "\tldrb r0, [r0]\n" - "\tmovs r1, 0\n" - "\tbl FillWindowPixelBuffer\n" - "\tmovs r0, 0\n" - "\tadds r1, r6, 0\n" - "\tmovs r2, 0\n" - "\tbl GetStringWidth\n" - "\tldr r1, [r5]\n" - "\tadds r1, r4\n" - "\tldrb r1, [r1]\n" - "\tmovs r2, 0x54\n" - "\tsubs r2, r0\n" - "\tlsls r2, 24\n" - "\tlsrs r2, 24\n" - "\tldr r0, _08136E4C @ =gUnknown_8463FA7\n" - "\tstr r0, [sp]\n" - "\tmovs r0, 0\n" - "\tstr r0, [sp, 0x4]\n" - "\tstr r6, [sp, 0x8]\n" - "\tadds r0, r1, 0\n" - "\tmovs r1, 0\n" - "\tmovs r3, 0\n" - "\tbl AddTextPrinterParameterized3\n" - "\tldr r0, [r5]\n" - "\tadds r0, r4\n" - "\tldrb r0, [r0]\n" - "\tbl PutWindowTilemap\n" - "\tadd sp, 0xC\n" - "\tpop {r4-r6}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" - "_08136E44: .4byte gMonSummaryScreen\n" - "_08136E48: .4byte 0x00003001\n" - "_08136E4C: .4byte gUnknown_8463FA7\n"); -} -#endif - \ No newline at end of file +void sub_8136E50(const u8 * msg) +{ + FillWindowPixelBuffer(gMonSummaryScreen->unk3000[2], 0); + + if (!gMonSummaryScreen->isEgg) + { + if (gMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[2], 2, 4, 2, gUnknown_8463FA4[1], 0xff, gMonSummaryScreen->summary.unk3088); + + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[2], 2, 40, 2, gUnknown_8463FA4[1], 0xff, gMonSummaryScreen->summary.unk3034); + + if (GetMonGender(&gMonSummaryScreen->currentMon) == MON_FEMALE) + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[2], 2, 105, 2, gUnknown_8463FA4[3], 0, gMonSummaryScreen->summary.unk3084); + else + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[2], 2, 105, 2, gUnknown_8463FA4[2], 0, gMonSummaryScreen->summary.unk3084); + } + + PutWindowTilemap(gMonSummaryScreen->unk3000[2]); +} + +void sub_8136F4C(void) +{ + FillWindowPixelBuffer(gMonSummaryScreen->unk3000[3], 0); + + switch (gMonSummaryScreen->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(gMonSummaryScreen->unk3000[3]); +} + +void sub_8136FB0(void) +{ + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 47, 19, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk3028); + + if (!gMonSummaryScreen->isEgg) + { + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 47 + gUnknown_203B144->unk00, 5, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk3064); + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 47, 49, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk3040); + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 47, 64, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk306C); + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 47, 79, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk3074); + } + else + { + u8 eggCycles; + u8 hatchMsgIndex; + + eggCycles = GetMonData(&gMonSummaryScreen->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 (gMonSummaryScreen->isBadEgg) + hatchMsgIndex = 0; + + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 7, 45, gUnknown_8463FA4[0], TEXT_SPEED_FF, gUnknown_8463EC4[hatchMsgIndex]); + } +} + +void sub_81370EC(void) +{ + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 14 + gUnknown_203B144->unk02, 4, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk3090); + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 50 + gUnknown_203B144->unk04, 22, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk309C[PSS_STAT_ATK]); + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 50 + gUnknown_203B144->unk06, 35, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk309C[PSS_STAT_DEF]); + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 50 + gUnknown_203B144->unk08, 48, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk309C[PSS_STAT_SPA]); + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 50 + gUnknown_203B144->unk0A, 61, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk309C[PSS_STAT_SPD]); + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 50 + gUnknown_203B144->unk0C, 74, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk309C[PSS_STAT_SPE]); + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 15 + gUnknown_203B144->unk0E, 87, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk31A4); + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 15 + gUnknown_203B144->unk10, 100, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk31B0); +} + +#define MACRO_8137270(x) ((x) * 28 + 5) + +void sub_8137270(void) +{ + u8 i; + + for (i = 0; i < 4; i++) + sub_81372E4(i); + + if (gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO) + { + if (gMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) + sub_81372E4(4); + else + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 3, MACRO_8137270(4), gUnknown_8463EF0[0], TEXT_SPEED_FF, gFameCheckerText_Cancel); + } +} + +#define MACRO_81372E4(x) ((x) * 28 + 16) + +void sub_81372E4(u8 i) +{ + u8 v0 = 0; + u8 curPP = sub_8138C24(&gMonSummaryScreen->currentMon, i); + u16 move = gMonSummaryScreen->unk325A[i]; + u8 ppBonuses = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_PP_BONUSES); + u8 maxPP = CalculatePPWithBonus(move, ppBonuses, i); + + if (i == 4) + curPP = maxPP; + + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 3, MACRO_8137270(i), gUnknown_8463EF0[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk3128[i]); + + if (gMonSummaryScreen->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(gMonSummaryScreen->unk3000[3], 2, 36, MACRO_81372E4(i), gUnknown_8463EF0[v0], TEXT_SPEED_FF, gUnknown_8416238); + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 46 + gUnknown_203B144->unk12[i], MACRO_81372E4(i), gUnknown_8463EF0[v0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk30B8[i]); + + if (gMonSummaryScreen->unk325A[i] != MOVE_NONE) + { + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 58, MACRO_81372E4(i), gUnknown_8463EF0[v0], TEXT_SPEED_FF, gText_Slash); + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 64 + gUnknown_203B144->unk1C[i], MACRO_81372E4(i), gUnknown_8463EF0[v0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk30F0[i]); + } +} + +void sub_81374E8(void) +{ + FillWindowPixelBuffer(gMonSummaryScreen->unk3000[4], 0); + + switch (gMonSummaryScreen->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(gMonSummaryScreen->unk3000[4]); +} + +void sub_8137554(void) +{ + if (!gMonSummaryScreen->isEgg) + sub_8137944(); + else + sub_8137970(); +} + +void sub_8137578(void) +{ + u8 nature; + u8 level; + u8 metLocation; + u8 levelStr[5]; + u8 mapNameStr[32]; + u8 natureMetOrHatchedAtLevelStr[152]; + + DynamicPlaceholderTextUtil_Reset(); + nature = GetNature(&gMonSummaryScreen->currentMon); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gNatureNamePointers[nature]); + level = GetMonData(&gMonSummaryScreen->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(&gMonSummaryScreen->currentMon, MON_DATA_MET_LOCATION); + + if (sub_813B838(metLocation) == TRUE) + GetMapNameGeneric_(mapNameStr, metLocation); + else + { + if (gMonSummaryScreen->isEnemyParty == TRUE || sub_8138B4C() == TRUE) + StringCopy(mapNameStr, gUnknown_8419C13); + else + StringCopy(mapNameStr, gUnknown_8419C0B); + } + + DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, mapNameStr); + + if (GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MET_LEVEL) == 0) + { + if (GetMonData(&gMonSummaryScreen->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(gMonSummaryScreen->unk3000[4], 2, 0, 3, 0, 0, gUnknown_8463FA4[0], TEXT_SPEED_FF, natureMetOrHatchedAtLevelStr); +} From d9d3ac1c5dec158f2358e43bd39087ca4e5edc5a Mon Sep 17 00:00:00 2001 From: luckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com> Date: Thu, 2 Jul 2020 16:45:49 -0400 Subject: [PATCH 10/25] pokemon_summary_screen.c, part 7. --- asm/pokemon_summary_screen.s | 249 ----------------------------------- include/strings.h | 8 +- src/pokemon_summary_screen.c | 97 ++++++++++++++ 3 files changed, 104 insertions(+), 250 deletions(-) diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index baa676bdd..a66b1ecb5 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -5,255 +5,6 @@ .text - thumb_func_start sub_8137724 -sub_8137724: @ 8137724 - push {r4-r6,lr} - sub sp, 0xD4 - bl DynamicPlaceholderTextUtil_Reset - ldr r5, _081377A0 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_0813793C: .4byte 0x00003004 -_08137940: .4byte gUnknown_8463FA4 - thumb_func_end sub_8137724 - thumb_func_start sub_8137944 sub_8137944: @ 8137944 push {lr} diff --git a/include/strings.h b/include/strings.h index df6162227..fbd91e98c 100644 --- a/include/strings.h +++ b/include/strings.h @@ -1489,5 +1489,11 @@ 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[]; + #endif //GUARD_STRINGS_H diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 7bfa7bb26..1059b2024 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -105,6 +105,8 @@ extern void sub_8137970(void); extern bool32 sub_813B838(u8 metLocation); extern bool32 sub_8138B4C(void); extern bool32 sub_813B7E0(u8 nature); +void sub_8137724(void); +extern bool32 sub_813B7F8(void); struct PokemonSummaryScreenData { u16 unk0[0x800]; @@ -1993,3 +1995,98 @@ void sub_8137578(void) AddTextPrinterParameterized4(gMonSummaryScreen->unk3000[4], 2, 0, 3, 0, 0, gUnknown_8463FA4[0], TEXT_SPEED_FF, natureMetOrHatchedAtLevelStr); } + +void sub_8137724(void) +{ + u8 nature; + u8 level; + u8 metLocation; + u8 levelStr[5]; + u8 mapNameStr[32]; + u8 natureMetOrHatchedAtLevelStr[152]; + + DynamicPlaceholderTextUtil_Reset(); + nature = GetNature(&gMonSummaryScreen->currentMon); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gNatureNamePointers[nature]); + + level = GetMonData(&gMonSummaryScreen->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(&gMonSummaryScreen->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(gMonSummaryScreen->unk3000[4], 2, 0, 3, 0, 0, gUnknown_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(&gMonSummaryScreen->currentMon, MON_DATA_MET_LEVEL) == 0) + { + if (GetMonData(&gMonSummaryScreen->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(gMonSummaryScreen->unk3000[4], 2, 0, 3, 0, 0, gUnknown_8463FA4[0], TEXT_SPEED_FF, natureMetOrHatchedAtLevelStr); +} From 9453c154d70e22f806a057aef4584bed8ca7986a Mon Sep 17 00:00:00 2001 From: luckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com> Date: Thu, 2 Jul 2020 20:19:37 -0400 Subject: [PATCH 11/25] pokemon_summary_screen.c, part 8. --- asm/pokemon_summary_screen.s | 317 ----------------------------------- include/strings.h | 2 + src/pokemon_summary_screen.c | 103 +++++++++++- 3 files changed, 102 insertions(+), 320 deletions(-) diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index a66b1ecb5..3288d63cf 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -5,323 +5,6 @@ .text - thumb_func_start sub_8137944 -sub_8137944: @ 8137944 - push {lr} - ldr r0, _08137960 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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} diff --git a/include/strings.h b/include/strings.h index fbd91e98c..51cf79f8b 100644 --- a/include/strings.h +++ b/include/strings.h @@ -1495,5 +1495,7 @@ 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[]; #endif //GUARD_STRINGS_H diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 1059b2024..ad93ccab7 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -98,15 +98,16 @@ extern void sub_81370EC(void); extern void sub_8137270(void); extern void sub_81372E4(u8 i); extern void sub_8137554(void); -extern void sub_8137A90(void); +void sub_8137A90(void); extern void sub_8137AF8(void); -extern void sub_8137944(void); -extern void sub_8137970(void); +void sub_8137944(void); +void sub_8137970(void); extern bool32 sub_813B838(u8 metLocation); extern bool32 sub_8138B4C(void); extern bool32 sub_813B7E0(u8 nature); void sub_8137724(void); extern bool32 sub_813B7F8(void); +extern u8 sub_813847C(struct Pokemon * mon); struct PokemonSummaryScreenData { u16 unk0[0x800]; @@ -291,6 +292,7 @@ extern const u8 gUnknown_8463FA4[][3]; extern const u8 gUnknown_8463EF0[][3]; extern const u8 * const gUnknown_8463EC4[]; +extern const u8 * const gUnknown_8463ED4[]; void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, MainCallback savedCallback, u8 mode) { @@ -2090,3 +2092,98 @@ void sub_8137724(void) AddTextPrinterParameterized4(gMonSummaryScreen->unk3000[4], 2, 0, 3, 0, 0, gUnknown_8463FA4[0], TEXT_SPEED_FF, natureMetOrHatchedAtLevelStr); } + +void sub_8137944(void) +{ + if (sub_813847C(&gMonSummaryScreen->currentMon) == TRUE) + sub_8137578(); + else + sub_8137724(); +} + +void sub_8137970(void) +{ + u8 metLocation; + u8 version; + u8 chosenStrIndex = 0; + + metLocation = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MET_LOCATION); + + if (gMonSummaryScreen->monList.mons != gEnemyParty) + { + if (metLocation == METLOC_FATEFUL_ENCOUNTER || GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_OBEDIENCE) == 1) + chosenStrIndex = 4; + else + { + version = GetMonData(&gMonSummaryScreen->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(&gMonSummaryScreen->currentMon) == FALSE) + chosenStrIndex++; + } + } + else + { + if (metLocation == METLOC_FATEFUL_ENCOUNTER || GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_OBEDIENCE) == 1) + chosenStrIndex = 4; + else + { + version = GetMonData(&gMonSummaryScreen->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(&gMonSummaryScreen->currentMon) == FALSE) + chosenStrIndex++; + } + } + + if (gMonSummaryScreen->isBadEgg) + chosenStrIndex = 0; + + AddTextPrinterParameterized4(gMonSummaryScreen->unk3000[4], 2, 0, 3, 0, 0, gUnknown_8463FA4[0], TEXT_SPEED_FF, gUnknown_8463ED4[chosenStrIndex]); +} + +void sub_8137A90(void) +{ + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[4], 2, + 26, 7, gUnknown_8463FA4[0], TEXT_SPEED_FF, + gUnknown_8419C4D); + + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[4], 2, + 26, 20, gUnknown_8463FA4[0], TEXT_SPEED_FF, + gUnknown_8419C59); +} + +void sub_8137AF8(void) +{ + if (gUnknown_203B16D < 5) + { + if (gMonSummaryScreen->mode != PSS_MODE_SELECT_MOVE && gUnknown_203B16D == 4) + return; + + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[4], 2, + 57, 1, gUnknown_8463FA4[0], TEXT_SPEED_FF, + gMonSummaryScreen->summary.unk316C[gUnknown_203B16D]); + + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[4], 2, + 57, 15, gUnknown_8463FA4[0], TEXT_SPEED_FF, + gMonSummaryScreen->summary.unk3188[gUnknown_203B16D]); + + AddTextPrinterParameterized4(gMonSummaryScreen->unk3000[4], 2, + 7, 42, + 0, 0, + gUnknown_8463FA4[0], TEXT_SPEED_FF, + gMoveDescriptionPointers[gMonSummaryScreen->unk325A[gUnknown_203B16D] - 1]); + } +} From f8247cdd793147a6f8d55971027558ad32fd4014 Mon Sep 17 00:00:00 2001 From: luckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com> Date: Fri, 3 Jul 2020 17:42:40 -0400 Subject: [PATCH 12/25] pokemon_summary_screen.c, part 9. --- asm/pokemon_summary_screen.s | 2971 ------------------------------ include/pokemon_summary_screen.h | 4 +- include/strings.h | 6 + src/pokemon_summary_screen.c | 994 +++++++++- 4 files changed, 994 insertions(+), 2981 deletions(-) diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index 3288d63cf..310df5032 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -5,2977 +5,6 @@ .text - thumb_func_start sub_8137BD0 -sub_8137BD0: @ 8137BD0 - push {lr} - ldr r0, _08137BE8 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_08137BEC: .4byte 0x00003214 -_08137BF0: - cmp r0, 0x1 - ble _08137BFC - cmp r0, 0x3 - bgt _08137BFC - bl sub_8137C90 -_08137BFC: - ldr r0, _08137C10 @ =gMonSummaryScreen - ldr r0, [r0] - ldr r1, _08137C14 @ =0x00003005 - adds r0, r1 - ldrb r0, [r0] - bl PutWindowTilemap - pop {r0} - bx r0 - .align 2, 0 -_08137C10: .4byte gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_081380E8: .4byte 0x00003214 -_081380EC: .4byte 0x0000324c - thumb_func_end sub_813805C - - thumb_func_start sub_81380F0 -sub_81380F0: @ 81380F0 - push {lr} - ldr r0, _08138110 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_08138388: - movs r4, 0 -_0813838A: - lsls r0, r4, 3 - ldr r1, _081383C0 @ =gUnknown_8463F24 - adds r0, r1 - bl AddWindow - ldr r1, _081383C4 @ =gMonSummaryScreen - 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 @ =gMonSummaryScreen -_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 gMonSummaryScreen -_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 @ =gMonSummaryScreen -_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 gMonSummaryScreen - thumb_func_end sub_8138414 - - thumb_func_start sub_8138440 -sub_8138440: @ 8138440 - push {lr} - ldr r0, _0813845C @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - ldr r1, [r1] - ldr r2, _08138B48 @ =0x00003208 - adds r1, r2 - strb r0, [r1] - bx lr - .align 2, 0 -_08138B44: .4byte gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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} diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h index c28dccfee..5e3603bfe 100644 --- a/include/pokemon_summary_screen.h +++ b/include/pokemon_summary_screen.h @@ -32,6 +32,8 @@ enum PokemonSummaryScreenPage PSS_PAGE_SKILLS, PSS_PAGE_MOVES, PSS_PAGE_MOVES_INFO, + PSS_PAGE_UNK4, + PSS_PAGE_MOVE_DELETER, }; enum PokemonSummaryScreenState3270 @@ -54,7 +56,7 @@ enum PokemonSummaryScreenStat PSS_STAT_SPE }; -s32 GetLastViewedMonIndex(void); +u8 GetLastViewedMonIndex(void); void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, void (*callback)(void), u8 a4); void sub_8138B38(u8); diff --git a/include/strings.h b/include/strings.h index 51cf79f8b..7b5c85305 100644 --- a/include/strings.h +++ b/include/strings.h @@ -1497,5 +1497,11 @@ 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[]; #endif //GUARD_STRINGS_H diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index ad93ccab7..bef024a09 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -23,6 +23,9 @@ #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" extern void sub_8138B8C(struct Pokemon * mon); void sub_8135C34(void); @@ -79,8 +82,8 @@ extern void sub_8136350(void); extern void sub_81367B0(void); extern u8 sub_8138C5C(u32 status); void sub_81367E8(u8); -extern u16 sub_8138BEC(struct Pokemon * mon, u8 i); -extern u16 sub_8138C24(struct Pokemon * mon, u8 i); +u16 sub_8138BEC(struct Pokemon * mon, u8 moveSlot); +u16 sub_8138C24(struct Pokemon * mon, u8 moveSlot); extern void sub_813ADA8(u16, u16); extern void sub_813ABAC(u16, u16); extern void sub_813AFFC(void); @@ -108,6 +111,13 @@ extern bool32 sub_813B7E0(u8 nature); void sub_8137724(void); extern bool32 sub_813B7F8(void); extern u8 sub_813847C(struct Pokemon * mon); +extern void sub_8137C18(void); +extern void sub_8137C90(void); +extern void sub_813AF90(void); +void sub_81380F0(void); +extern void sub_81390B0(void); +extern void sub_81391EC(void); +extern void sub_8139328(struct Pokemon * mon); struct PokemonSummaryScreenData { u16 unk0[0x800]; @@ -136,8 +146,8 @@ struct PokemonSummaryScreenData { u8 ALIGNED(4) unk3028[POKEMON_NAME_LENGTH]; u8 ALIGNED(4) unk3034[POKEMON_NAME_LENGTH + 1]; - u8 ALIGNED(4) unk3040[OT_NAME_LENGTH + 1]; - u8 ALIGNED(4) pad3048[0x1c]; + u8 ALIGNED(4) unk3040[12]; + u8 ALIGNED(4) unk304C[2][12]; u8 ALIGNED(4) unk3064[5]; //u8 ALIGNED(4) unk3060[7]; @@ -294,6 +304,22 @@ extern const u8 gUnknown_8463EF0[][3]; extern const u8 * const gUnknown_8463EC4[]; extern const u8 * const gUnknown_8463ED4[]; +extern const struct WindowTemplate gUnknown_8463F9C[]; +extern const struct WindowTemplate gUnknown_8463F0C[]; +extern const struct WindowTemplate gUnknown_8463F3C[]; +extern const struct WindowTemplate gUnknown_8463F5C[]; +extern const struct WindowTemplate gUnknown_8463F7C[]; +extern const struct WindowTemplate gUnknown_8463F24[]; + +#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) { gMonSummaryScreen = AllocZeroed(sizeof(struct PokemonSummaryScreenData)); @@ -352,7 +378,7 @@ void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, gMonSummaryScreen->unk3238 = 0; gMonSummaryScreen->unk323C = 2; gMonSummaryScreen->unk3240 = 1; - gMonSummaryScreen->unk3244 = 0; + gMonSummaryScreen->unk3244 = FALSE; gMonSummaryScreen->unk3228 = 0; gMonSummaryScreen->unk322C = 1; @@ -2157,11 +2183,13 @@ void sub_8137970(void) void sub_8137A90(void) { AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[4], 2, - 26, 7, gUnknown_8463FA4[0], TEXT_SPEED_FF, + 26, 7, + gUnknown_8463FA4[0], TEXT_SPEED_FF, gUnknown_8419C4D); AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[4], 2, - 26, 20, gUnknown_8463FA4[0], TEXT_SPEED_FF, + 26, 20, + gUnknown_8463FA4[0], TEXT_SPEED_FF, gUnknown_8419C59); } @@ -2173,11 +2201,13 @@ void sub_8137AF8(void) return; AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[4], 2, - 57, 1, gUnknown_8463FA4[0], TEXT_SPEED_FF, + 57, 1, + gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk316C[gUnknown_203B16D]); AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[4], 2, - 57, 15, gUnknown_8463FA4[0], TEXT_SPEED_FF, + 57, 15, + gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk3188[gUnknown_203B16D]); AddTextPrinterParameterized4(gMonSummaryScreen->unk3000[4], 2, @@ -2187,3 +2217,949 @@ void sub_8137AF8(void) gMoveDescriptionPointers[gMonSummaryScreen->unk325A[gUnknown_203B16D] - 1]); } } + +void sub_8137BD0(void) +{ + switch (gMonSummaryScreen->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(gMonSummaryScreen->unk3000[5]); +} + +#ifdef NONMATCHING +// bad register allocation +void sub_8137C18(void) +{ + FillWindowPixelBuffer(gMonSummaryScreen->unk3000[5], 0); + + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[5], 2, + 66, 1, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk31CC); + + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[5], 2, + 2, 15, gUnknown_8463FA4[0], TEXT_SPEED_FF, + gMonSummaryScreen->summary.unk31CC); + +} +#else +NAKED +void sub_8137C18(void) +{ + asm_unified("\tpush {r4-r6,lr}\n" + "\tmov r6, r8\n" + "\tpush {r6}\n" + "\tsub sp, 0xC\n" + "\tldr r5, _08137C7C @ =gMonSummaryScreen\n" + "\tldr r0, [r5]\n" + "\tldr r4, _08137C80 @ =0x00003005\n" + "\tadds r0, r4\n" + "\tldrb r0, [r0]\n" + "\tmovs r1, 0\n" + "\tbl FillWindowPixelBuffer\n" + "\tldr r1, [r5]\n" + "\tadds r0, r1, r4\n" + "\tldrb r0, [r0]\n" + "\tldr r2, _08137C84 @ =gUnknown_8463FA4\n" + "\tmov r8, r2\n" + "\tstr r2, [sp]\n" + "\tmovs r6, 0x1\n" + "\tnegs r6, r6\n" + "\tstr r6, [sp, 0x4]\n" + "\tldr r2, _08137C88 @ =0x000031bc\n" + "\tadds r1, r2\n" + "\tstr r1, [sp, 0x8]\n" + "\tmovs r1, 0x2\n" + "\tmovs r2, 0x42\n" + "\tmovs r3, 0x1\n" + "\tbl AddTextPrinterParameterized3\n" + "\tldr r1, [r5]\n" + "\tadds r4, r1, r4\n" + "\tldrb r0, [r4]\n" + "\tmov r2, r8\n" + "\tstr r2, [sp]\n" + "\tstr r6, [sp, 0x4]\n" + "\tldr r2, _08137C8C @ =0x000031cc\n" + "\tadds r1, r2\n" + "\tstr r1, [sp, 0x8]\n" + "\tmovs r1, 0x2\n" + "\tmovs r2, 0x2\n" + "\tmovs r3, 0xF\n" + "\tbl AddTextPrinterParameterized3\n" + "\tadd sp, 0xC\n" + "\tpop {r3}\n" + "\tmov r8, r3\n" + "\tpop {r4-r6}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" + "_08137C7C: .4byte gMonSummaryScreen\n" + "_08137C80: .4byte 0x00003005\n" + "_08137C84: .4byte gUnknown_8463FA4\n" + "_08137C88: .4byte 0x000031bc\n" + "_08137C8C: .4byte 0x000031cc"); +} +#endif // NONMATCHING + +void sub_8137C90(void) +{ + u8 i; + + FillWindowPixelBuffer(gMonSummaryScreen->unk3000[5], 0); + + for (i = 0; i < 4; i++) + { + if (gMonSummaryScreen->unk325A[i] == MOVE_NONE) + continue; + + BlitMoveInfoIcon(gMonSummaryScreen->unk3000[5], gMonSummaryScreen->unk3250[i] + 1, 3, MACRO_8137270(i)); + } + + if (gMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) + BlitMoveInfoIcon(gMonSummaryScreen->unk3000[5], gMonSummaryScreen->unk3250[4] + 1, 3, MACRO_8137270(4)); +} + +void sub_8137D28(u8 page) +{ + switch (page) + { + case PSS_PAGE_INFO: + sub_8136DA4(gUnknown_8419C1D); + if (!gMonSummaryScreen->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; + } +} + +void sub_8137E28(void) +{ + PutWindowTilemap(gMonSummaryScreen->unk3000[0]); + PutWindowTilemap(gMonSummaryScreen->unk3000[1]); + PutWindowTilemap(gMonSummaryScreen->unk3000[2]); +} + +void sub_8137E64(u8 taskId) +{ + sub_813AF90(); + FreeAllSpritePalettes(); + + if (IsCryPlayingOrClearCrySongs() == TRUE) + StopCryAndClearCrySongs(); + + sub_8138414(gMonSummaryScreen->curPageIndex); + FreeAllWindowBuffers(); + DestroyTask(taskId); + SetMainCallback2(gMonSummaryScreen->savedCallback); + + gLastViewedMonIndex = GetLastViewedMonIndex(); + + FREE_AND_SET_NULL_IF_SET(gMonSummaryScreen); + FREE_AND_SET_NULL_IF_SET(gUnknown_203B144); +} + +void sub_8137EE8(void) +{ + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + +void sub_8137F00(void) +{ + u8 i; + + for (i = 0; i < 11; i++) + { + if (gUnknown_203B160->unk2C[i] < 240) + { + gUnknown_203B160->unk2C[i] += 60; + gUnknown_203B160->sprite00[i]->pos1.x = gUnknown_203B160->unk2C[i] + 60; + } + + if (i >= 9) + continue; + + if (gUnknown_203B15C->unk28[i] < 240) + { + gUnknown_203B15C->unk28[i] += 60; + gUnknown_203B15C->sprite00[i]->pos1.x = gUnknown_203B15C->unk28[i] + 60; + } + } +} + +void sub_8137F68(void) +{ + u8 i; + + for (i = 0; i < 11; i++) + { + if (gUnknown_203B160->unk2C[i] > 156 + (8 * i)) + { + gUnknown_203B160->unk2C[i] -= 60; + + if (gUnknown_203B160->unk2C[i] < 156 + (8 * i)) + gUnknown_203B160->unk2C[i] = 156 + (8 * i); + + gUnknown_203B160->sprite00[i]->pos1.x = gUnknown_203B160->unk2C[i]; + } + + if (i >= 9) + continue; + + if (gUnknown_203B15C->unk28[i] > 172 + (8 * i)) + { + gUnknown_203B15C->unk28[i] -= 60; + + if (gUnknown_203B15C->unk28[i] < 172 + (8 * i)) + gUnknown_203B15C->unk28[i] = 172 + (8 * i); + + gUnknown_203B15C->sprite00[i]->pos1.x = gUnknown_203B15C->unk28[i]; + } + } +} + +void sub_8137FF4(void) +{ + if (gMonSummaryScreen->unk324C < 240) + { + gMonSummaryScreen->unk324C += 60; + if (gMonSummaryScreen->unk324C > 240) + gMonSummaryScreen->unk324C = 240; + + if (gMonSummaryScreen->unk3238 == 0) + SetGpuReg(REG_OFFSET_BG2HOFS, -gMonSummaryScreen->unk324C); + else + SetGpuReg(REG_OFFSET_BG1HOFS, -gMonSummaryScreen->unk324C); + } +} + +void sub_813805C(void) +{ + if (gMonSummaryScreen->unk324C >= 60) + { + gMonSummaryScreen->unk324C -= 60; + if (gMonSummaryScreen->unk324C < 0) + gMonSummaryScreen->unk324C = 0; + + if (gMonSummaryScreen->unk3238 == 0) + SetGpuReg(REG_OFFSET_BG1HOFS, -gMonSummaryScreen->unk324C); + else + SetGpuReg(REG_OFFSET_BG2HOFS, -gMonSummaryScreen->unk324C); + + if (gMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) + SetGpuReg(REG_OFFSET_BG0HOFS, -gMonSummaryScreen->unk324C); + } +} + +void sub_81380F0(void) +{ + if (gMonSummaryScreen->unk3224 == 1) + { + if (gMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) + sub_8137FF4(); + else + sub_813805C(); + } + else + { + if (gMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES) + sub_813805C(); + else + sub_8137FF4(); + } +} + +void sub_8138134(void) +{ + if (gMonSummaryScreen->curPageIndex == PSS_PAGE_SKILLS + && gMonSummaryScreen->unk3224 == 0) + sub_8137F68(); + + if (gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES + && gMonSummaryScreen->unk3224 == 1) + sub_8137F00(); +} + +void sub_813817C(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); + + if (gMonSummaryScreen->unk3244 == FALSE) + return; + + sub_81380F0(); + sub_8138134(); +} + +void sub_81381AC(void) +{ + SetVBlankCallback(NULL); + SetHBlankCallback(NULL); +} + +void sub_81381C0(void) +{ + SetVBlankCallback(sub_813817C); +} + +void sub_81381D0(void) +{ + u8 i; + + InitWindows(gUnknown_8463F9C); + + for (i = 0; i < 3; i++) + gMonSummaryScreen->unk3000[i] = AddWindow(&gUnknown_8463F0C[i]); + + for (i = 0; i < 4; i++) + switch (gMonSummaryScreen->curPageIndex) + { + case PSS_PAGE_INFO: + gMonSummaryScreen->unk3000[i + 3] = AddWindow(&gUnknown_8463F3C[i]); + break; + case PSS_PAGE_SKILLS: + gMonSummaryScreen->unk3000[i + 3] = AddWindow(&gUnknown_8463F5C[i]); + break; + case PSS_PAGE_MOVES: + case PSS_PAGE_MOVES_INFO: + gMonSummaryScreen->unk3000[i + 3] = AddWindow(&gUnknown_8463F7C[i]); + break; + default: + break; + } +} + +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++) + gMonSummaryScreen->unk3000[i] = 0xff; + + if ((gMonSummaryScreen->unk3224 == 1 && gMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) + || (gMonSummaryScreen->unk3224 == 0 && gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES)) + { + if (bgPriority2 > bgPriority1) + for (i = 0; i < 3; i++) + gMonSummaryScreen->unk3000[i] = AddWindow(&gUnknown_8463F24[i]); + else + for (i = 0; i < 3; i++) + gMonSummaryScreen->unk3000[i] = AddWindow(&gUnknown_8463F0C[i]); + } + else + { + if (bgPriority2 > bgPriority1) + for (i = 0; i < 3; i++) + gMonSummaryScreen->unk3000[i] = AddWindow(&gUnknown_8463F0C[i]); + else + for (i = 0; i < 3; i++) + gMonSummaryScreen->unk3000[i] = AddWindow(&gUnknown_8463F24[i]); + } + + for (i = 0; i < 4; i++) + switch (curPageIndex) + { + case PSS_PAGE_INFO: + gMonSummaryScreen->unk3000[i + 3] = AddWindow(&gUnknown_8463F3C[i]); + break; + case PSS_PAGE_SKILLS: + default: + gMonSummaryScreen->unk3000[i + 3] = AddWindow(&gUnknown_8463F5C[i]); + break; + case PSS_PAGE_MOVES: + case PSS_PAGE_MOVES_INFO: + gMonSummaryScreen->unk3000[i + 3] = AddWindow(&gUnknown_8463F7C[i]); + break; + } +} + +void sub_8138414(u8 curPageIndex) +{ + u8 i; + + for (i = 0; i < 7; i++) + RemoveWindow(gMonSummaryScreen->unk3000[i]); + +} + +void sub_8138440(void) +{ + switch (gMonSummaryScreen->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; + } +} + +u8 sub_813847C(struct Pokemon * mon) +{ + u8 i; + u8 multiplayerId; + u32 trainerId = 0; + + if (gMonSummaryScreen->monList.mons == gEnemyParty) + { + multiplayerId = GetMultiplayerId() ^ 1; + trainerId = gLinkPlayers[multiplayerId].trainerId & 0xffff; + StringCopy(gMonSummaryScreen->summary.unk304C[0], gLinkPlayers[multiplayerId].name); + } + else + { + trainerId = GetPlayerTrainerId() & 0xffff; + StringCopy(gMonSummaryScreen->summary.unk304C[0], gSaveBlock2Ptr->playerName); + } + + if (trainerId != (GetMonData(mon, MON_DATA_OT_ID) & 0xffff)) + return FALSE; + + GetMonData(mon, MON_DATA_OT_NAME, gMonSummaryScreen->summary.unk304C[1]); + + if (!StringCompareWithoutExtCtrlCodes(gMonSummaryScreen->summary.unk304C[0], gMonSummaryScreen->summary.unk304C[1])) + return TRUE; + else + return FALSE; + + return TRUE; +} + +#define SUB_8138538_BASE_TILE_NUM (345) + +void sub_8138538(void) +{ + switch (gMonSummaryScreen->curPageIndex) + { + case PSS_PAGE_INFO: + if (!gMonSummaryScreen->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 (gMonSummaryScreen->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; + } +} + +void sub_8138A38(void) +{ + switch (gMonSummaryScreen->curPageIndex) + { + case PSS_PAGE_INFO: + if (!gMonSummaryScreen->isEgg) + { + BlitMoveInfoIcon(gMonSummaryScreen->unk3000[3], gMonSummaryScreen->unk3220[0] + 1, 47, 35); + + if (gMonSummaryScreen->unk3220[0] != gMonSummaryScreen->unk3220[1]) + BlitMoveInfoIcon(gMonSummaryScreen->unk3000[3], gMonSummaryScreen->unk3220[1] + 1, 83, 35); + } + break; + case PSS_PAGE_SKILLS: + break; + case PSS_PAGE_MOVES: + break; + case PSS_PAGE_MOVES_INFO: + FillWindowPixelBuffer(gMonSummaryScreen->unk3000[6], 0); + BlitMoveInfoIcon(gMonSummaryScreen->unk3000[6], gMonSummaryScreen->unk3220[0] + 1, 0, 3); + + if (gMonSummaryScreen->unk3220[0] != gMonSummaryScreen->unk3220[1]) + BlitMoveInfoIcon(gMonSummaryScreen->unk3000[6], gMonSummaryScreen->unk3220[1] + 1, 36, 3); + + PutWindowTilemap(gMonSummaryScreen->unk3000[6]); + break; + } +} + +u8 GetLastViewedMonIndex(void) +{ + return gLastViewedMonIndex; +} + +u8 GetMoveSlotToReplace(void) +{ + return gUnknown_203B16E; +} + +void sub_8138B38(u8 mode) +{ + gMonSummaryScreen->mode = mode; +} + +bool32 sub_8138B4C(void) +{ + if (!IsUpdateLinkStateCBActive() + && IsMultiBattle() == TRUE + && gReceivedRemoteLinkPlayers == 1 + && (gLastViewedMonIndex >= 4 || gLastViewedMonIndex == 1)) + return TRUE; + + return FALSE; +} + +void sub_8138B8C(struct Pokemon * mon) +{ + if (!gMonSummaryScreen->isBoxMon) + { + struct Pokemon * partyMons = gMonSummaryScreen->monList.mons; + *mon = partyMons[GetLastViewedMonIndex()]; + } + else + { + struct BoxPokemon * boxMons = gMonSummaryScreen->monList.boxMons; + BoxMonToMon(&boxMons[GetLastViewedMonIndex()], mon); + } +} + +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; +} + +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; +} + +u8 sub_8138C5C(u32 status) +{ + if (GetMonData(&gMonSummaryScreen->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(&gMonSummaryScreen->currentMon, 0)) + return AILMENT_PKRS; + + return AILMENT_NONE; +} + +void sub_8138CD8(u8 id) +{ + u8 i; + + switch (gMonSummaryScreen->unk3288) + { + case 0: + if (MenuHelpers_CallLinkSomething() == TRUE || sub_800B270() == TRUE) + return; + + if (JOY_NEW(DPAD_UP)) + { + if (gUnknown_203B16D > 0) + { + gMonSummaryScreen->unk3288 = 2; + PlaySE(SE_SELECT); + + for (i = gUnknown_203B16D; i > 0; i--) + if (gMonSummaryScreen->unk325A[i - 1] != 0) + { + PlaySE(SE_SELECT); + gUnknown_203B16D = i - 1; + return; + } + } + else + { + gUnknown_203B16D = 4; + gMonSummaryScreen->unk3288 = 2; + PlaySE(SE_SELECT); + + if (gMonSummaryScreen->unk3268 == TRUE) + for (i = gUnknown_203B16D; i > 0; i--) + if (gMonSummaryScreen->unk325A[i - 1] != 0) + { + PlaySE(SE_SELECT); + gUnknown_203B16D = i - 1; + return; + } + } + } + else if (JOY_NEW(DPAD_DOWN)) + { + if (gUnknown_203B16D < 4) + { + u8 limit = 4; + + gMonSummaryScreen->unk3288 = 2; + + if (gMonSummaryScreen->unk3268 == TRUE) + { + if (gUnknown_203B16D == 5 - 2) + { + gUnknown_203B16D = 0; + gMonSummaryScreen->unk3288 = 2; + PlaySE(SE_SELECT); + return; + } + limit--; + } + + for (i = gUnknown_203B16D; i < limit; i++) + if (gMonSummaryScreen->unk325A[i + 1] != 0) + { + PlaySE(SE_SELECT); + gUnknown_203B16D = i + 1; + return; + } + + if (!gMonSummaryScreen->unk3268) + { + PlaySE(SE_SELECT); + gUnknown_203B16D = i; + } + else + { + PlaySE(SE_SELECT); + gUnknown_203B16D = 0; + } + + return; + } + else if (gUnknown_203B16D == 4) + { + gUnknown_203B16D = 0; + gMonSummaryScreen->unk3288 = 2; + PlaySE(SE_SELECT); + return; + } + } + else if (JOY_NEW(A_BUTTON)) + { + PlaySE(SE_SELECT); + if (gUnknown_203B16D == 4) + { + gUnknown_203B16D = 0; + gUnknown_203B16E = 0; + gMonSummaryScreen->unk3268 = FALSE; + sub_813A0E8(1); + gMonSummaryScreen->unk3224 = 0; + sub_8138414(gMonSummaryScreen->curPageIndex); + gMonSummaryScreen->curPageIndex--; + gMonSummaryScreen->unk3288 = 1; + return; + } + + if (gMonSummaryScreen->unk3268 != TRUE) + { + if (gMonSummaryScreen->isEnemyParty == FALSE + && gMain.inBattle == 0 + && gReceivedRemoteLinkPlayers == 0) + { + gUnknown_203B16E = gUnknown_203B16D; + gMonSummaryScreen->unk3268 = TRUE; + } + return; + } + else + { + gMonSummaryScreen->unk3268 = FALSE; + + if (gUnknown_203B16D == gUnknown_203B16E) + return; + + if (gMonSummaryScreen->isBoxMon == 0) + sub_81390B0(); + else + sub_81391EC(); + + sub_8139328(&gMonSummaryScreen->currentMon); + sub_81367B0(); + gMonSummaryScreen->unk3288 = 2; + return; + } + } + else if (JOY_NEW(B_BUTTON)) + { + if (gMonSummaryScreen->unk3268 == TRUE) + { + gUnknown_203B16E = gUnknown_203B16D; + gMonSummaryScreen->unk3268 = FALSE; + return; + } + + if (gUnknown_203B16D == 4) + { + gUnknown_203B16D = 0; + gUnknown_203B16E = 0; + } + + sub_813A0E8(1); + gMonSummaryScreen->unk3224 = 0; + sub_8138414(gMonSummaryScreen->curPageIndex); + gMonSummaryScreen->curPageIndex--; + gMonSummaryScreen->unk3288 = 1; + } + break; + case 1: + gTasks[gMonSummaryScreen->unk3018].func = sub_81351A0; + gMonSummaryScreen->unk3288 = 0; + break; + case 2: + sub_8136F4C(); + sub_81374E8(); + sub_8137BD0(); + gMonSummaryScreen->unk3288 = 3; + break; + case 3: + if (MenuHelpers_CallLinkSomething() == TRUE || sub_800B270() == TRUE) + return; + + CopyWindowToVram(gMonSummaryScreen->unk3000[3], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[4], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[5], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[6], 2); + CopyBgTilemapBufferToVram(0); + CopyBgTilemapBufferToVram(3); + gMonSummaryScreen->unk3288 = 0; + break; + default: + break; + } +} + +void sub_81390B0(void) +{ + struct Pokemon * partyMons; + struct Pokemon * mon; + + u16 move1, move2; + u8 pp1, pp2; + u8 allMovesPPBonuses; + u8 move1ppBonus, move2ppBonus; + + partyMons = gMonSummaryScreen->monList.mons; + mon = &partyMons[GetLastViewedMonIndex()]; + + move1 = GetMonData(mon, MON_DATA_MOVE1 + gUnknown_203B16D); + move2 = GetMonData(mon, MON_DATA_MOVE1 + gUnknown_203B16E); + + pp1 = GetMonData(mon, MON_DATA_PP1 + gUnknown_203B16D); + pp2 = GetMonData(mon, MON_DATA_PP1 + gUnknown_203B16E); + + allMovesPPBonuses = GetMonData(mon, MON_DATA_PP_BONUSES); + + move1ppBonus = (allMovesPPBonuses & gPPUpGetMask[gUnknown_203B16D]) >> (gUnknown_203B16D * 2); + move2ppBonus = (allMovesPPBonuses & gPPUpGetMask[gUnknown_203B16E]) >> (gUnknown_203B16E * 2); + + allMovesPPBonuses &= ~gPPUpGetMask[gUnknown_203B16D]; + allMovesPPBonuses &= ~gPPUpGetMask[gUnknown_203B16E]; + allMovesPPBonuses |= (move1ppBonus << (gUnknown_203B16E * 2)) + (move2ppBonus << (gUnknown_203B16D * 2)); + + SetMonData(mon, MON_DATA_MOVE1 + gUnknown_203B16D, (u8 *)&move2); + SetMonData(mon, MON_DATA_MOVE1 + gUnknown_203B16E, (u8 *)&move1); + SetMonData(mon, MON_DATA_PP1 + gUnknown_203B16D, &pp2); + SetMonData(mon, MON_DATA_PP1 + gUnknown_203B16E, &pp1); + SetMonData(mon, MON_DATA_PP_BONUSES, &allMovesPPBonuses); +} + +void sub_81391EC(void) +{ + struct BoxPokemon * boxMons; + struct BoxPokemon * boxMon; + + u16 move1, move2; + u8 pp1, pp2; + u8 allMovesPPBonuses; + u8 move1ppBonus, move2ppBonus; + + boxMons = gMonSummaryScreen->monList.boxMons; + boxMon = &boxMons[GetLastViewedMonIndex()]; + + move1 = GetBoxMonData(boxMon, MON_DATA_MOVE1 + gUnknown_203B16D); + move2 = GetBoxMonData(boxMon, MON_DATA_MOVE1 + gUnknown_203B16E); + + pp1 = GetBoxMonData(boxMon, MON_DATA_PP1 + gUnknown_203B16D); + pp2 = GetBoxMonData(boxMon, MON_DATA_PP1 + gUnknown_203B16E); + + allMovesPPBonuses = GetBoxMonData(boxMon, MON_DATA_PP_BONUSES); + + move1ppBonus = (allMovesPPBonuses & gPPUpGetMask[gUnknown_203B16D]) >> (gUnknown_203B16D * 2); + move2ppBonus = (allMovesPPBonuses & gPPUpGetMask[gUnknown_203B16E]) >> (gUnknown_203B16E * 2); + + allMovesPPBonuses &= ~gPPUpGetMask[gUnknown_203B16D]; + allMovesPPBonuses &= ~gPPUpGetMask[gUnknown_203B16E]; + allMovesPPBonuses |= (move1ppBonus << (gUnknown_203B16E * 2)) + (move2ppBonus << (gUnknown_203B16D * 2)); + + SetBoxMonData(boxMon, MON_DATA_MOVE1 + gUnknown_203B16D, (u8 *)&move2); + SetBoxMonData(boxMon, MON_DATA_MOVE1 + gUnknown_203B16E, (u8 *)&move1); + SetBoxMonData(boxMon, MON_DATA_PP1 + gUnknown_203B16D, &pp2); + SetBoxMonData(boxMon, MON_DATA_PP1 + gUnknown_203B16E, &pp1); + SetBoxMonData(boxMon, MON_DATA_PP_BONUSES, &allMovesPPBonuses); +} + +void sub_8139328(struct Pokemon * mon) +{ + if (!gMonSummaryScreen->isBoxMon) + { + struct Pokemon * partyMons; + partyMons = gMonSummaryScreen->monList.mons; + *mon = partyMons[GetLastViewedMonIndex()]; + } + else + { + struct BoxPokemon * boxMons; + boxMons = gMonSummaryScreen->monList.boxMons; + BoxMonToMon(&boxMons[GetLastViewedMonIndex()], mon); + } +} From 7cb48a704a5f3783577bd85a85a802213e3d562c Mon Sep 17 00:00:00 2001 From: luckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com> Date: Fri, 3 Jul 2020 19:40:10 -0400 Subject: [PATCH 13/25] pokemon_summary_screen.c, part 10. --- asm/pokemon_summary_screen.s | 1079 ----------------------------- include/strings.h | 1 + include/trainer_pokemon_sprites.h | 2 + src/pokemon_summary_screen.c | 356 +++++++++- 4 files changed, 356 insertions(+), 1082 deletions(-) diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index 310df5032..0f7896dc8 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -5,1085 +5,6 @@ .text - thumb_func_start sub_8139388 -sub_8139388: @ 8139388 - push {r4,lr} - ldr r4, _081393BC @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - ldr r1, [r0] - ldr r4, _08139440 @ =0x00003288 - adds r1, r4 - b _08139728 - .align 2, 0 -_0813943C: .4byte gMonSummaryScreen -_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 @ =gMonSummaryScreen - ldr r1, [r0] - ldr r0, _08139468 @ =0x00003288 - adds r1, r0 - b _08139728 - .align 2, 0 -_08139460: .4byte gPaletteFade -_08139464: .4byte gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_081395B4: .4byte 0x00003288 -_081395B8: - movs r0, 0x1A - bl PlaySE - ldr r0, _081395CC @ =gMonSummaryScreen - ldr r0, [r0] - ldr r4, _081395D0 @ =0x00003288 - adds r0, r4 - movs r1, 0x5 - strb r1, [r0] - b _0813975A - .align 2, 0 -_081395CC: .4byte gMonSummaryScreen -_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 @ =gMonSummaryScreen - ldr r0, [r0] - ldr r2, _08139624 @ =0x00003288 - adds r0, r2 - movs r1, 0x4 - strb r1, [r0] - b _0813975A - .align 2, 0 -_08139620: .4byte gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 diff --git a/include/strings.h b/include/strings.h index 7b5c85305..81441d2bc 100644 --- a/include/strings.h +++ b/include/strings.h @@ -1503,5 +1503,6 @@ 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[]; #endif //GUARD_STRINGS_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/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index bef024a09..ec42eb65c 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -26,6 +26,8 @@ #include "field_specials.h" #include "party_menu.h" #include "constants/battle.h" +#include "event_data.h" +#include "trainer_pokemon_sprites.h" extern void sub_8138B8C(struct Pokemon * mon); void sub_8135C34(void); @@ -118,6 +120,7 @@ void sub_81380F0(void); extern void sub_81390B0(void); extern void sub_81391EC(void); extern void sub_8139328(struct Pokemon * mon); +extern void sub_8139AAC(u16 spriteId); struct PokemonSummaryScreenData { u16 unk0[0x800]; @@ -276,12 +279,19 @@ struct Struct203B15C { u16 unk3E; /* 0x3e */ }; +struct Struct203B170 { + u8 ALIGNED(4) unk00; /* 0x00 */ + u8 ALIGNED(4) unk04; /* 0x04 */ + u8 ALIGNED(4) unk08; /* 0x08 */ +}; + extern struct PokemonSummaryScreenData * gMonSummaryScreen; extern struct Struct203B144 * gUnknown_203B144; extern struct Struct203B15C * gUnknown_203B15C; extern struct Struct203B160 * gUnknown_203B160; extern u8 gUnknown_203B16D; extern u8 gUnknown_203B16E; +extern struct Struct203B170 * gUnknown_203B170; extern const u32 gUnknown_8E9B750[]; extern const u32 gUnknown_8E9B950[]; @@ -311,6 +321,15 @@ extern const struct WindowTemplate gUnknown_8463F5C[]; extern const struct WindowTemplate gUnknown_8463F7C[]; extern const struct WindowTemplate gUnknown_8463F24[]; +extern const s8 gUnknown_8463FBE[3]; +extern const s8 gUnknown_8463FC1[5]; +extern const s8 gUnknown_8463FC6[7]; +extern const s8 gUnknown_8463FCD[7]; + +extern const s8 gUnknown_8463FD4[11]; +extern const s8 gUnknown_8463FDF[11]; +extern const s8 gUnknown_8463FEA[15]; + #define FREE_AND_SET_NULL_IF_SET(ptr) \ { \ if (ptr != NULL) \ @@ -2939,7 +2958,7 @@ void sub_8138CD8(u8 id) { if (gUnknown_203B16D < 4) { - u8 limit = 4; + u8 v0 = 4; gMonSummaryScreen->unk3288 = 2; @@ -2952,10 +2971,10 @@ void sub_8138CD8(u8 id) PlaySE(SE_SELECT); return; } - limit--; + v0--; } - for (i = gUnknown_203B16D; i < limit; i++) + for (i = gUnknown_203B16D; i < v0; i++) if (gMonSummaryScreen->unk325A[i + 1] != 0) { PlaySE(SE_SELECT); @@ -3163,3 +3182,334 @@ void sub_8139328(struct Pokemon * mon) BoxMonToMon(&boxMons[GetLastViewedMonIndex()], mon); } } + +u8 sub_8139388(void) +{ + u16 move; + + move = sub_8138BEC(&gMonSummaryScreen->currentMon, gUnknown_203B16D); + + if (IsMoveHm(move) == TRUE && gMonSummaryScreen->mode != PSS_MODE_FORGET_MOVE) + return FALSE; + + return TRUE; +} + +void sub_81393D4(u8 taskId) +{ + u8 i; + + switch (gMonSummaryScreen->unk3288) + { + case 0: + BeginNormalPaletteFade(0xffffffff, 0, 16, 0, 0); + gMonSummaryScreen->unk3288++; + break; + case 1: + if (!gPaletteFade.active) + { + sub_813B784(); + gMonSummaryScreen->unk3288++; + } + break; + case 2: + if (JOY_NEW(DPAD_UP)) + { + if (gUnknown_203B16D > 0) + { + gMonSummaryScreen->unk3288 = 3; + PlaySE(SE_SELECT); + for (i = gUnknown_203B16D; i > 0; i--) + if (gMonSummaryScreen->unk325A[i - 1] != 0) + { + PlaySE(SE_SELECT); + gUnknown_203B16D = i - 1; + return; + } + } + else + { + gUnknown_203B16D = 4; + gMonSummaryScreen->unk3288 = 3; + PlaySE(SE_SELECT); + return; + } + } + else if (JOY_NEW(DPAD_DOWN)) + { + if (gUnknown_203B16D < 4) + { + u8 v0 = 4; + + gMonSummaryScreen->unk3288 = 3; + + if (gMonSummaryScreen->unk3268 == 1) + v0--; + + for (i = gUnknown_203B16D; i < v0; i++) + if (gMonSummaryScreen->unk325A[i + 1] != 0) + { + PlaySE(SE_SELECT); + gUnknown_203B16D = i + 1; + return; + } + + if (gMonSummaryScreen->unk3268 == 0) + { + PlaySE(SE_SELECT); + gUnknown_203B16D = i; + } + + return; + } + else if (gUnknown_203B16D == 4) + { + gUnknown_203B16D = 0; + gMonSummaryScreen->unk3288 = 3; + PlaySE(SE_SELECT); + return; + } + } + else if (JOY_NEW(A_BUTTON)) + { + if (sub_8139388() == TRUE || gUnknown_203B16D == 4) + { + PlaySE(SE_SELECT); + gUnknown_203B16E = gUnknown_203B16D; + gSpecialVar_0x8005 = gUnknown_203B16E; + gMonSummaryScreen->unk3288 = 6; + } + else + { + PlaySE(SE_HAZURE); + gMonSummaryScreen->unk3288 = 5; + } + } + else if (JOY_NEW(B_BUTTON)) + { + gUnknown_203B16E = 4; + gSpecialVar_0x8005 = (u16)gUnknown_203B16E; + gMonSummaryScreen->unk3288 = 6; + } + break; + case 3: + sub_8136F4C(); + sub_81374E8(); + sub_8137BD0(); + gMonSummaryScreen->unk3288 = 4; + break; + case 4: + if (MenuHelpers_CallLinkSomething() == TRUE || sub_800B270() == TRUE) + return; + + CopyWindowToVram(gMonSummaryScreen->unk3000[3], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[4], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[5], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[6], 2); + CopyBgTilemapBufferToVram(0); + CopyBgTilemapBufferToVram(3); + gMonSummaryScreen->unk3288 = 2; + break; + case 5: + FillWindowPixelBuffer(gMonSummaryScreen->unk3000[4], 0); + AddTextPrinterParameterized4(gMonSummaryScreen->unk3000[4], 2, + 7, 42, + 0, 0, + gUnknown_8463FA4[0], TEXT_SPEED_FF, + gUnknown_8419CB9); + CopyWindowToVram(gMonSummaryScreen->unk3000[4], 2); + CopyBgTilemapBufferToVram(0); + CopyBgTilemapBufferToVram(3); + gMonSummaryScreen->unk3288 = 2; + break; + case 6: + BeginNormalPaletteFade(0xffffffff, 0, 0, 16, 0); + gMonSummaryScreen->unk3288++; + break; + default: + if (!gPaletteFade.active) + sub_8137E64(taskId); + break; + } +} + +void sub_8139768(struct Sprite * sprite) +{ + if (gMonSummaryScreen->unk3020 >= 2) + return; + + if (gUnknown_203B170->unk04++ >= 2) + { + u8 v0; + + switch (gUnknown_203B170->unk08) + { + case 0: + sprite->pos1.y += gUnknown_8463FBE[gUnknown_203B170->unk00++]; + v0 = ARRAY_COUNT(gUnknown_8463FBE); + break; + case 1: + sprite->pos1.y += gUnknown_8463FC1[gUnknown_203B170->unk00++]; + v0 = ARRAY_COUNT(gUnknown_8463FC1); + break; + case 2: + sprite->pos1.y += gUnknown_8463FC6[gUnknown_203B170->unk00++]; + v0 = ARRAY_COUNT(gUnknown_8463FC6); + break; + case 3: + default: + sprite->pos1.y += gUnknown_8463FCD[gUnknown_203B170->unk00++]; + v0 = ARRAY_COUNT(gUnknown_8463FCD); + break; + } + + if (gUnknown_203B170->unk00 >= v0) + { + gUnknown_203B170->unk00 = 0; + gMonSummaryScreen->unk3020++; + } + + gUnknown_203B170->unk04 = 0; + } +} + +void sub_8139868(struct Sprite * sprite) +{ + if (gMonSummaryScreen->unk3020 >= 2) + return; + + switch (gUnknown_203B170->unk08) + { + case 0: + default: + if (gUnknown_203B170->unk04++ >= 120) + { + sprite->pos1.x += gUnknown_8463FD4[gUnknown_203B170->unk00]; + if (++gUnknown_203B170->unk00 >= ARRAY_COUNT(gUnknown_8463FD4)) + { + gUnknown_203B170->unk00 = 0; + gUnknown_203B170->unk04 = 0; + gMonSummaryScreen->unk3020++; + } + } + break; + case 1: + if (gUnknown_203B170->unk04++ >= 90) + { + sprite->pos1.x += gUnknown_8463FDF[gUnknown_203B170->unk00]; + if (++gUnknown_203B170->unk00 >= ARRAY_COUNT(gUnknown_8463FDF)) + { + gUnknown_203B170->unk00 = 0; + gUnknown_203B170->unk04 = 0; + gMonSummaryScreen->unk3020++; + } + } + break; + case 2: + if (gUnknown_203B170->unk04++ >= 60) + { + sprite->pos1.x += gUnknown_8463FEA[gUnknown_203B170->unk00]; + if (++gUnknown_203B170->unk00 >= ARRAY_COUNT(gUnknown_8463FEA)) + { + gUnknown_203B170->unk00 = 0; + gUnknown_203B170->unk04 = 0; + gMonSummaryScreen->unk3020++; + } + } + break; + } +} + +void nullsub_96(struct Sprite * sprite) +{ +} + +void sub_813995C(void) +{ + u16 spriteId; + u16 species; + u32 personality; + u32 trainerId; + + gUnknown_203B170 = AllocZeroed(sizeof(struct Struct203B170)); + + species = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SPECIES2); + personality = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_PERSONALITY); + trainerId = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_OT_ID); + + if (gMonSummaryScreen->savedCallback == CB2_ReturnToTradeMenuFromSummary) + { + if (gMonSummaryScreen->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, gLastViewedMonIndex)) + 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; + + gMonSummaryScreen->unk3010 = spriteId; + + sub_8139C44(1); + sub_8139AAC(spriteId); +} + +void sub_8139AAC(u16 spriteId) +{ + u16 curHp; + u16 maxHp; + + gMonSummaryScreen->unk3020 = 0; + + if (gMonSummaryScreen->isEgg == TRUE) + { + u8 friendship = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_FRIENDSHIP); + + if (friendship <= 5) + gUnknown_203B170->unk08 = 2; + else + { + if (friendship <= 10) + gUnknown_203B170->unk08 = 1; + else if (friendship <= 40) + gUnknown_203B170->unk08 = 0; + } + + gSprites[spriteId].callback = sub_8139868; + return; + } + + if (gMonSummaryScreen->unk326C != AILMENT_NONE && gMonSummaryScreen->unk326C != AILMENT_PKRS) + { + if (gMonSummaryScreen->unk326C == AILMENT_FNT) + return; + + gSprites[spriteId].callback = nullsub_96; + return; + } + + curHp = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_HP); + maxHp = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MAX_HP); + + if (curHp == maxHp) + gUnknown_203B170->unk08 = 3; + else if (maxHp * 0.8 <= curHp) + gUnknown_203B170->unk08 = 2; + else if (maxHp * 0.6 <= curHp) + gUnknown_203B170->unk08 = 1; + else + gUnknown_203B170->unk08 = 0; + + gSprites[spriteId].callback = sub_8139768; +} From 4bf7e4f4fb033085f9c6819a116b131e62e15ee9 Mon Sep 17 00:00:00 2001 From: luckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com> Date: Fri, 3 Jul 2020 21:35:59 -0400 Subject: [PATCH 14/25] pokemon_summary_screen.c, part 11. --- asm/pokemon_summary_screen.s | 132 ----------------------------------- src/pokemon_summary_screen.c | 57 ++++++++------- 2 files changed, 33 insertions(+), 156 deletions(-) diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index 0f7896dc8..8f4722c2b 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -5,138 +5,6 @@ .text - thumb_func_start sub_8139C44 -sub_8139C44: @ 8139C44 - lsls r0, 24 - lsrs r0, 24 - ldr r3, _08139C74 @ =gSprites - ldr r1, _08139C78 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_08139C7C: .4byte 0x00003010 - thumb_func_end sub_8139C44 - - thumb_func_start sub_8139C80 -sub_8139C80: @ 8139C80 - push {r4,lr} - ldr r0, _08139CA4 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index ec42eb65c..a3015ca85 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -28,6 +28,8 @@ #include "constants/battle.h" #include "event_data.h" #include "trainer_pokemon_sprites.h" +#include "battle_anim.h" +#include "pokeball.h" extern void sub_8138B8C(struct Pokemon * mon); void sub_8135C34(void); @@ -141,20 +143,12 @@ struct PokemonSummaryScreenData { bool32 isEnemyParty; /* 0x3024 */ struct PokeSummary { - // u8 ALIGNED(4) unk3028[POKEMON_NAME_LENGTH]; - // u8 ALIGNED(4) unk3034[POKEMON_NAME_LENGTH + 1]; - - // u8 ALIGNED(4) unk3040[OT_NAME_LENGTH + 1]; - // u8 ALIGNED(4) unk3048[2][OT_NAME_LENGTH + 1]; - 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) unk3060[7]; - //u8 ALIGNED(4) unk3068[16]; u8 ALIGNED(4) unk306C[7]; u8 ALIGNED(4) unk3074[ITEM_NAME_LENGTH + 1]; @@ -175,22 +169,6 @@ struct PokemonSummaryScreenData { u8 ALIGNED(4) unk31BC[13]; u8 ALIGNED(4) unk31CC[20]; u8 ALIGNED(4) pad31E0[0x20]; - - // u8 ALIGNED(4) unk3090[9]; - // u8 ALIGNED(4) unk309C[5][5]; - - // u8 ALIGNED(4) unk30AC[5][11]; - // u8 ALIGNED(4) unk30E4[5][11]; - // u8 ALIGNED(4) unk311C[5][13]; - // u8 ALIGNED(4) pssd4[5][5]; - // u8 ALIGNED(4) pssd5[5][5]; - - // u8 ALIGNED(4) pssd6[9]; - // u8 ALIGNED(4) pssd7[9]; - - // u8 ALIGNED(4) pssd8[13]; - // u8 ALIGNED(4) pssd9[20]; - // u8 ALIGNED(4) tempPadRemoveLater[0x2c]; } summary; u8 ALIGNED(4) isEgg; /* 0x3200 */ @@ -3513,3 +3491,34 @@ void sub_8139AAC(u16 spriteId) gSprites[spriteId].callback = sub_8139768; } + +void sub_8139C44(u8 invisible) +{ + gSprites[gMonSummaryScreen->unk3010].invisible = invisible; +} + +void sub_8139C80(void) +{ + FreeAndDestroyMonPicSprite(gMonSummaryScreen->unk3010); + FREE_AND_SET_NULL(gUnknown_203B170); +} + +void sub_8139CB0(void) +{ + u16 ballItemId; + u8 ballId; + + if (gMonSummaryScreen->isEgg == 0) + ballItemId = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_POKEBALL); + else + ballItemId = 0; + + ballId = ItemIdToBallId(ballItemId); + LoadBallGfx(ballId); + + gMonSummaryScreen->unk300C = CreateSprite(&gBallSpriteTemplates[ballId], 106, 88, 0); + gSprites[gMonSummaryScreen->unk300C].callback = SpriteCallbackDummy; + gSprites[gMonSummaryScreen->unk300C].oam.priority = 0; + + sub_8139D54(1); +} From db2fb7785d7af0a2863345435493465ea830e004 Mon Sep 17 00:00:00 2001 From: luckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com> Date: Sat, 4 Jul 2020 16:07:40 -0400 Subject: [PATCH 15/25] pokemon_summary_screen.c, part 12. --- asm/pokemon_summary_screen.s | 2606 ---------------------------------- include/pokemon_icon.h | 2 + src/pokemon_storage_system.c | 6 +- src/pokemon_summary_screen.c | 969 ++++++++++++- 4 files changed, 950 insertions(+), 2633 deletions(-) diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index 8f4722c2b..6b007b581 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -5,2612 +5,6 @@ .text - thumb_func_start sub_8139D54 -sub_8139D54: @ 8139D54 - lsls r0, 24 - lsrs r0, 24 - ldr r3, _08139D84 @ =gSprites - ldr r1, _08139D88 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_08139D8C: .4byte 0x0000300c - thumb_func_end sub_8139D54 - - thumb_func_start sub_8139D90 -sub_8139D90: @ 8139D90 - push {lr} - ldr r0, _08139DB0 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_08139EA8: - ldr r2, _08139ED8 @ =gSprites - ldr r0, _08139EDC @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_08139F1C: .4byte 0x00003014 - thumb_func_end sub_8139EE4 - - thumb_func_start sub_8139F20 -sub_8139F20: @ 8139F20 - push {r4,lr} - ldr r4, _08139F54 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - ldr r0, [r0] - ldr r1, _0813B080 @ =0x000032fc - adds r0, r1 - ldr r0, [r0] - bl DestroySpriteAndFreeResources - pop {r0} - bx r0 - .align 2, 0 -_0813B07C: .4byte gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_0813B208: .4byte 0x0000328c - thumb_func_end sub_813B120 - thumb_func_start sub_813B20C sub_813B20C: @ 813B20C push {r4-r7,lr} 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/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 index a3015ca85..83fe5ffb0 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -30,6 +30,13 @@ #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); extern void sub_8138B8C(struct Pokemon * mon); void sub_8135C34(void); @@ -123,8 +130,19 @@ extern void sub_81390B0(void); extern void sub_81391EC(void); extern void sub_8139328(struct Pokemon * mon); extern void sub_8139AAC(u16 spriteId); +extern void sub_813A124(struct Sprite * sprite); +extern void sub_813A35C(void); +extern void sub_813A620(void); +extern void sub_813A994(void); +extern void sub_813ACB4(void); +extern void sub_813AF50(void); +extern void sub_813B068(void); +extern void sub_813B0E4(void); +extern s8 sub_813B20C(s8); +extern s8 sub_813B38C(s8); -struct PokemonSummaryScreenData { +struct PokemonSummaryScreenData +{ u16 unk0[0x800]; u16 unk1000[0x800]; u16 unk2000[0x800]; @@ -142,7 +160,8 @@ struct PokemonSummaryScreenData { bool32 isEnemyParty; /* 0x3024 */ - struct PokeSummary { + struct PokeSummary + { u8 ALIGNED(4) unk3028[POKEMON_NAME_LENGTH]; u8 ALIGNED(4) unk3034[POKEMON_NAME_LENGTH + 1]; u8 ALIGNED(4) unk3040[12]; @@ -214,7 +233,8 @@ struct PokemonSummaryScreenData { struct Pokemon currentMon; - union { + union + { struct Pokemon * mons; struct BoxPokemon * boxMons; } monList; @@ -226,7 +246,8 @@ struct PokemonSummaryScreenData { u8 ALIGNED(4) unk3304[3]; /* 0x3304 */ }; -struct Struct203B144 { +struct Struct203B144 +{ u16 unk00; u16 unk02; u16 unk04; @@ -243,30 +264,66 @@ struct Struct203B144 { u16 unk26; }; -struct Struct203B160 { - struct Sprite * sprite00[11]; /* 0x00 */ +struct Struct203B160 +{ + struct Sprite * sprites[11]; /* 0x00 */ u16 unk2C[11]; /* 0x2c */ u16 unk42; /* 0x42 */ u16 unk44; /* 0x44 */ }; -struct Struct203B15C { - struct Sprite * sprite00[10]; /* 0x00 */ +struct Struct203B15C +{ + struct Sprite * sprites[10]; /* 0x00 */ u16 unk28[10]; /* 0x28 */ u16 unk3C; /* 0x3c */ u16 unk3E; /* 0x3e */ }; -struct Struct203B170 { +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 */ +}; + extern struct PokemonSummaryScreenData * gMonSummaryScreen; extern struct Struct203B144 * gUnknown_203B144; +extern struct Struct203B148 * gUnknown_203B148[4]; +extern struct Struct203B158 * gUnknown_203B158; extern struct Struct203B15C * gUnknown_203B15C; extern struct Struct203B160 * gUnknown_203B160; +extern struct Struct203B164 * gUnknown_203B164; +extern struct Struct203B168 * gUnknown_203B168; extern u8 gUnknown_203B16D; extern u8 gUnknown_203B16E; extern struct Struct203B170 * gUnknown_203B170; @@ -308,6 +365,40 @@ extern const s8 gUnknown_8463FD4[11]; extern const s8 gUnknown_8463FDF[11]; extern const s8 gUnknown_8463FEA[15]; +extern const u32 gUnknown_8463740[]; +extern const u32 gUnknown_846386C[]; + +extern const u16 gUnknown_8463720[]; +extern const struct OamData gUnknown_846398C; +extern const union AnimCmd * const gUnknown_84639A4[]; + +extern const u32 gUnknown_8E9BF48[]; +extern const u16 gUnknown_8E9BF28[]; + +extern const struct OamData gUnknown_84639AC; +extern const union AnimCmd * const gUnknown_84639F4[]; + +extern const u32 gUnknown_8E9B4B8[]; +extern const u16 * const gUnknown_8463FFC[]; +extern const struct OamData gUnknown_8463A14; +extern const union AnimCmd * const gUnknown_8463A7C[]; + +extern const u32 gUnknown_8E9B3F0[]; +extern const u16 gUnknown_8E9B578[]; + +extern const u32 gUnknown_8463B20[]; +extern const u16 gUnknown_8463B00[]; + +extern const struct OamData gUnknown_8463AEC; +extern const union AnimCmd * const gUnknown_8463AFC[]; + +extern const u32 gUnknown_8463B64[]; +extern const u16 gUnknown_8463B44[]; +extern const struct OamData gUnknown_8463B30; +extern const union AnimCmd * const gUnknown_8463B40[]; + +extern const u16 gUnknown_84636E0[]; + #define FREE_AND_SET_NULL_IF_SET(ptr) \ { \ if (ptr != NULL) \ @@ -876,12 +967,12 @@ void sub_813546C(void) for (i = 0; i < 11; i++) { gUnknown_203B160->unk2C[i] = (8 * i) + 396; - gUnknown_203B160->sprite00[i]->pos1.x = gUnknown_203B160->unk2C[i]; + gUnknown_203B160->sprites[i]->pos1.x = gUnknown_203B160->unk2C[i]; if (i >= 9) continue; gUnknown_203B15C->unk28[i] = (8 * i) + 412; - gUnknown_203B15C->sprite00[i]->pos1.x = gUnknown_203B15C->unk28[i]; + gUnknown_203B15C->sprites[i]->pos1.x = gUnknown_203B15C->unk28[i]; } } @@ -891,11 +982,11 @@ void sub_81354C4(void) for (i = 0; i < 11; i++) { gUnknown_203B160->unk2C[i] = (8 * i) + 156; - gUnknown_203B160->sprite00[i]->pos1.x = gUnknown_203B160->unk2C[i]; + gUnknown_203B160->sprites[i]->pos1.x = gUnknown_203B160->unk2C[i]; if (i >= 9) continue; gUnknown_203B15C->unk28[i] = (8 * i) + 172; - gUnknown_203B15C->sprite00[i]->pos1.x = gUnknown_203B15C->unk28[i]; + gUnknown_203B15C->sprites[i]->pos1.x = gUnknown_203B15C->unk28[i]; } } @@ -1151,17 +1242,17 @@ void sub_81358DC(u8 a0, u8 a1) for (i = 0; i < 11; i++) { if (gMonSummaryScreen->curPageIndex == PSS_PAGE_SKILLS && gMonSummaryScreen->unk3224 == 1) - gUnknown_203B160->sprite00[i]->oam.priority = bg0Priority; + gUnknown_203B160->sprites[i]->oam.priority = bg0Priority; else - gUnknown_203B160->sprite00[i]->oam.priority = bg1Priority; + gUnknown_203B160->sprites[i]->oam.priority = bg1Priority; if (i >= 9) continue; if (gMonSummaryScreen->curPageIndex == PSS_PAGE_SKILLS && gMonSummaryScreen->unk3224 == 1) - gUnknown_203B15C->sprite00[i]->oam.priority = bg0Priority; + gUnknown_203B15C->sprites[i]->oam.priority = bg0Priority; else - gUnknown_203B15C->sprite00[i]->oam.priority = bg1Priority; + gUnknown_203B15C->sprites[i]->oam.priority = bg1Priority; } SetGpuReg(REG_OFFSET_BG0CNT, (GetGpuReg(REG_OFFSET_BG0CNT) & 0xfffc) | bg0Priority); @@ -2408,7 +2499,7 @@ void sub_8137F00(void) if (gUnknown_203B160->unk2C[i] < 240) { gUnknown_203B160->unk2C[i] += 60; - gUnknown_203B160->sprite00[i]->pos1.x = gUnknown_203B160->unk2C[i] + 60; + gUnknown_203B160->sprites[i]->pos1.x = gUnknown_203B160->unk2C[i] + 60; } if (i >= 9) @@ -2417,7 +2508,7 @@ void sub_8137F00(void) if (gUnknown_203B15C->unk28[i] < 240) { gUnknown_203B15C->unk28[i] += 60; - gUnknown_203B15C->sprite00[i]->pos1.x = gUnknown_203B15C->unk28[i] + 60; + gUnknown_203B15C->sprites[i]->pos1.x = gUnknown_203B15C->unk28[i] + 60; } } } @@ -2435,7 +2526,7 @@ void sub_8137F68(void) if (gUnknown_203B160->unk2C[i] < 156 + (8 * i)) gUnknown_203B160->unk2C[i] = 156 + (8 * i); - gUnknown_203B160->sprite00[i]->pos1.x = gUnknown_203B160->unk2C[i]; + gUnknown_203B160->sprites[i]->pos1.x = gUnknown_203B160->unk2C[i]; } if (i >= 9) @@ -2448,7 +2539,7 @@ void sub_8137F68(void) if (gUnknown_203B15C->unk28[i] < 172 + (8 * i)) gUnknown_203B15C->unk28[i] = 172 + (8 * i); - gUnknown_203B15C->sprite00[i]->pos1.x = gUnknown_203B15C->unk28[i]; + gUnknown_203B15C->sprites[i]->pos1.x = gUnknown_203B15C->unk28[i]; } } } @@ -3221,7 +3312,7 @@ void sub_81393D4(u8 taskId) gMonSummaryScreen->unk3288 = 3; - if (gMonSummaryScreen->unk3268 == 1) + if (gMonSummaryScreen->unk3268 == TRUE) v0--; for (i = gUnknown_203B16D; i < v0; i++) @@ -3232,7 +3323,7 @@ void sub_81393D4(u8 taskId) return; } - if (gMonSummaryScreen->unk3268 == 0) + if (!gMonSummaryScreen->unk3268) { PlaySE(SE_SELECT); gUnknown_203B16D = i; @@ -3508,7 +3599,7 @@ void sub_8139CB0(void) u16 ballItemId; u8 ballId; - if (gMonSummaryScreen->isEgg == 0) + if (!gMonSummaryScreen->isEgg) ballItemId = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_POKEBALL); else ballItemId = 0; @@ -3522,3 +3613,833 @@ void sub_8139CB0(void) sub_8139D54(1); } + +void sub_8139D54(u8 invisible) +{ + gSprites[gMonSummaryScreen->unk300C].invisible = invisible; +} + +void sub_8139D90(void) +{ + DestroySpriteAndFreeResources2(&gSprites[gMonSummaryScreen->unk300C]); +} + +void sub_8139DBC(void) +{ + u16 species; + u32 personality; + + species = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SPECIES2); + personality = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_PERSONALITY); + + SafeLoadMonIconPalette(species); + + if (gMonSummaryScreen->savedCallback == CB2_ReturnToTradeMenuFromSummary) + { + if (gMonSummaryScreen->isEnemyParty == TRUE) + gMonSummaryScreen->unk3014 = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality, 0); + else + gMonSummaryScreen->unk3014 = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality, 1); + } + else + { + if (sub_804455C(3, gLastViewedMonIndex)) + gMonSummaryScreen->unk3014 = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality, 0); + else + gMonSummaryScreen->unk3014 = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality, 1); + } + + if (!IsPokeSpriteNotFlipped(species)) + gSprites[gMonSummaryScreen->unk3014].hFlip = TRUE; + else + gSprites[gMonSummaryScreen->unk3014].hFlip = FALSE; + + sub_8139EE4(1); +} + +void sub_8139EE4(u8 invisible) +{ + gSprites[gMonSummaryScreen->unk3014].invisible = invisible; +} + +void sub_8139F20(void) +{ + u16 species; + species = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SPECIES2); + SafeFreeMonIconPalette(species); + DestroyMonIcon(&gSprites[gMonSummaryScreen->unk3014]); +} + +void sub_8139F64(u16 tileTag, u16 palTag) +{ + u8 i; + u8 spriteId; + void * gfxBufferPtrs[2]; + gfxBufferPtrs[0] = AllocZeroed(0x20 * 64); + gfxBufferPtrs[1] = AllocZeroed(0x20 * 64); + + gUnknown_203B148[0] = AllocZeroed(sizeof(struct Struct203B148)); + gUnknown_203B148[1] = AllocZeroed(sizeof(struct Struct203B148)); + gUnknown_203B148[2] = AllocZeroed(sizeof(struct Struct203B148)); + gUnknown_203B148[3] = AllocZeroed(sizeof(struct Struct203B148)); + + LZ77UnCompWram(gUnknown_8463740, gfxBufferPtrs[0]); + LZ77UnCompWram(gUnknown_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 = gUnknown_8463720, .tag = palTag}; + struct SpriteTemplate template = { + .tileTag = tileTag + i, + .paletteTag = palTag, + .oam = &gUnknown_846398C, + .anims = gUnknown_84639A4, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813A124, + }; + + LoadSpriteSheet(&sheet); + LoadSpritePalette(&palette); + + spriteId = CreateSprite(&template, 64 * (i % 2) + 152, gUnknown_203B16D * 28 + 34, i % 2); + gUnknown_203B148[i]->sprite = &gSprites[spriteId]; + gUnknown_203B148[i]->unk04 = i; + gUnknown_203B148[i]->unk06 = tileTag + i; + gUnknown_203B148[i]->unk08 = palTag; + gUnknown_203B148[i]->sprite->subpriority = i; + + if (i > 1) + StartSpriteAnim(gUnknown_203B148[i]->sprite, 1); + } + + sub_813A0E8(1); + + FREE_AND_SET_NULL_IF_SET(gfxBufferPtrs[0]); + FREE_AND_SET_NULL_IF_SET(gfxBufferPtrs[1]); +} + +void sub_813A0E8(u8 invisible) +{ + u8 i; + for (i = 0; i < 4; i++) + gUnknown_203B148[i]->sprite->invisible = invisible; +} + +void sub_813A124(struct Sprite * sprite) +{ + u8 i; + + for (i = 0; i < 4; i++) + { + if (gMonSummaryScreen->unk3268 == TRUE && i > 1) + continue; + + gUnknown_203B148[i]->sprite->pos1.y = gUnknown_203B16D * 28 + 34; + } + + if (gMonSummaryScreen->unk3268 != TRUE) + { + if (gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO) + { + gUnknown_203B148[0]->sprite->invisible = FALSE; + gUnknown_203B148[1]->sprite->invisible = FALSE; + } + return; + } + + for (i = 0; i < 2; i++) + { + sprite = gUnknown_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; + } + } +} + +void sub_813A21C(void) +{ + u8 i; + + for (i = 0; i < 4; i++) + { + if (gUnknown_203B148[i]->sprite != NULL) + DestroySpriteAndFreeResources(gUnknown_203B148[i]->sprite); + + FREE_AND_SET_NULL_IF_SET(gUnknown_203B148[i]); + } +} + +void sub_813A254(u16 tileTag, u16 palTag) +{ + u16 spriteId; + void * gfxBufferPtr; + + gUnknown_203B158 = AllocZeroed(sizeof(struct Struct203B158)); + gfxBufferPtr = AllocZeroed(0x20 * 32); + + LZ77UnCompWram(gUnknown_8E9BF48, gfxBufferPtr); + + if (gUnknown_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 = &gUnknown_84639AC, + .anims = gUnknown_84639F4, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, + }; + + LoadSpriteSheet(&sheet); + LoadSpritePalette(&palette); + + spriteId = CreateSprite(&template, 0, 0, 0); + gUnknown_203B158->sprite = &gSprites[spriteId]; + gUnknown_203B158->unk04 = tileTag; + gUnknown_203B158->unk06 = palTag; + } + + sub_813A3B8(1); + sub_813A35C(); + FREE_AND_SET_NULL_IF_SET(gfxBufferPtr); +} + +void sub_813A334(void) +{ + if (gUnknown_203B158->sprite != NULL) + DestroySpriteAndFreeResources(gUnknown_203B158->sprite); + + FREE_AND_SET_NULL_IF_SET(gUnknown_203B158); +} + +void sub_813A35C(void) +{ + gMonSummaryScreen->unk326C = sub_8138C5C(GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_STATUS)); + + if (gMonSummaryScreen->unk326C == AILMENT_NONE) + { + sub_813A3B8(1); + return; + } + + StartSpriteAnim(gUnknown_203B158->sprite, gMonSummaryScreen->unk326C - 1); + sub_813A3B8(0); +} + +void sub_813A3B8(u8 invisible) +{ + if (gMonSummaryScreen->unk326C == AILMENT_NONE || gMonSummaryScreen->isEgg) + gUnknown_203B158->sprite->invisible = TRUE; + else + gUnknown_203B158->sprite->invisible = invisible; + + if (gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO) + { + if (gUnknown_203B158->sprite->pos1.y != 45) + { + gUnknown_203B158->sprite->pos1.x = 16; + gUnknown_203B158->sprite->pos1.y = 45; + return; + } + } + else if (gUnknown_203B158->sprite->pos1.y != 38) + { + gUnknown_203B158->sprite->pos1.x = 16; + gUnknown_203B158->sprite->pos1.y = 38; + return; + } +} + +void sub_813A45C(u16 tileTag, u16 palTag) +{ + u8 i; + u8 spriteId; + void * gfxBufferPtr; + u32 curHp; + u32 maxHp; + u8 hpBarPalTagOffset = 0; + + gUnknown_203B15C = AllocZeroed(sizeof(struct Struct203B15C)); + gfxBufferPtr = AllocZeroed(0x20 * 12); + LZ77UnCompWram(gUnknown_8E9B4B8, gfxBufferPtr); + + curHp = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_HP); + maxHp = GetMonData(&gMonSummaryScreen->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 = gUnknown_8463FFC[0], .tag = palTag}; + struct SpritePalette palette2 = {.data = gUnknown_8463FFC[1], .tag = palTag + 1}; + struct SpritePalette palette3 = {.data = gUnknown_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 = &gUnknown_8463A14, + .anims = gUnknown_8463A7C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, + }; + + gUnknown_203B15C->unk28[i] = i * 8 + 172; + spriteId = CreateSprite(&template, gUnknown_203B15C->unk28[i], 36, 0); + gUnknown_203B15C->sprites[i] = &gSprites[spriteId]; + gUnknown_203B15C->sprites[i]->invisible = FALSE; + gUnknown_203B15C->sprites[i]->oam.priority = 2; + gUnknown_203B15C->unk3C = tileTag; + gUnknown_203B15C->unk3E = palTag; + StartSpriteAnim(gUnknown_203B15C->sprites[i], 8); + } + + sub_813A620(); + sub_813A838(1); + + FREE_AND_SET_NULL_IF_SET(gfxBufferPtr); +} + +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 (gMonSummaryScreen->isEgg) + return; + + curHp = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_HP); + maxHp = GetMonData(&gMonSummaryScreen->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++) + gUnknown_203B15C->sprites[i]->oam.paletteNum = IndexOfSpritePaletteTag(TAG_PSS_UNK_78) + hpBarPalOffset; + + if (curHp == maxHp) + for (i = two; i < 8; i++) + StartSpriteAnim(gUnknown_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(gUnknown_203B15C->sprites[i], 8); + + animNum = (v1 * 6) / v0; + StartSpriteAnim(gUnknown_203B15C->sprites[numWholeHpBarTiles], animNum); + + for (i = numWholeHpBarTiles + 1; i < 8; i++) + StartSpriteAnim(gUnknown_203B15C->sprites[i], 0); + } + + StartSpriteAnim(gUnknown_203B15C->sprites[0], 9); + StartSpriteAnim(gUnknown_203B15C->sprites[1], 10); + StartSpriteAnim(gUnknown_203B15C->sprites[8], 11); +} + +void sub_813A800(void) +{ + u8 i; + + for (i = 0; i < 9; i++) + if (gUnknown_203B15C->sprites[i] != NULL) + DestroySpriteAndFreeResources(gUnknown_203B15C->sprites[i]); + + FREE_AND_SET_NULL_IF_SET(gUnknown_203B15C); +} + +void sub_813A838(u8 invisible) +{ + u8 i; + + for (i = 0; i < 9; i++) + gUnknown_203B15C->sprites[i]->invisible = invisible; +} + +void sub_813A874(u16 tileTag, u16 palTag) +{ + u8 i; + u8 spriteId; + void * gfxBufferPtr; + + gUnknown_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 = &gUnknown_8463A14, + .anims = gUnknown_8463A7C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, + }; + + gUnknown_203B160->unk2C[i] = i * 8 + 156; + spriteId = CreateSprite(&template, gUnknown_203B160->unk2C[i], 132, 0); + gUnknown_203B160->sprites[i] = &gSprites[spriteId]; + gUnknown_203B160->sprites[i]->oam.priority = 2; + gUnknown_203B160->unk42 = tileTag; + gUnknown_203B160->unk44 = palTag; + } + + sub_813A994(); + sub_813AB70(1); + + FREE_AND_SET_NULL_IF_SET(gfxBufferPtr); +} + +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 (gMonSummaryScreen->isEgg) + return; + + exp = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_EXP); + level = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_LEVEL); + species = GetMonData(&gMonSummaryScreen->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(gUnknown_203B160->sprites[i], 8); + + if (numWholeExpBarTiles >= 10) + { + if (totalExpToNextLevel == curExpToNextLevel) + return; + else + StartSpriteAnim(gUnknown_203B160->sprites[9], 7); + } + + animNum = (v1 * 8) / v0; + StartSpriteAnim(gUnknown_203B160->sprites[numWholeExpBarTiles], animNum); + + for (i = numWholeExpBarTiles + 1; i < 10; i++) + StartSpriteAnim(gUnknown_203B160->sprites[i], 0); + } + else + for (i = two; i < 10; i++) + StartSpriteAnim(gUnknown_203B160->sprites[i], 0); + + StartSpriteAnim(gUnknown_203B160->sprites[0], 9); + StartSpriteAnim(gUnknown_203B160->sprites[1], 10); + StartSpriteAnim(gUnknown_203B160->sprites[10], 11); +} + +void sub_813AB38(void) +{ + u8 i; + + for (i = 0; i < 11; i++) + if (gUnknown_203B160->sprites[i] != NULL) + DestroySpriteAndFreeResources(gUnknown_203B160->sprites[i]); + + FREE_AND_SET_NULL_IF_SET(gUnknown_203B160); +} + +void sub_813AB70(u8 invisible) +{ + u8 i; + + for (i = 0; i < 11; i++) + gUnknown_203B160->sprites[i]->invisible = invisible; +} + +void sub_813ABAC(u16 tileTag, u16 palTag) +{ + u16 spriteId; + void * gfxBufferPtr; + + gUnknown_203B164 = AllocZeroed(sizeof(struct Struct203B164)); + gfxBufferPtr = AllocZeroed(0x20 * 1); + + LZ77UnCompWram(gUnknown_8463B20, gfxBufferPtr); + + if (gUnknown_203B164 != NULL) + { + struct SpriteSheet sheet = { + .data = gfxBufferPtr, + .size = 0x20 * 1, + .tag = tileTag + }; + + struct SpritePalette palette = {.data = gUnknown_8463B00, .tag = palTag}; + struct SpriteTemplate template = { + .tileTag = tileTag, + .paletteTag = palTag, + .oam = &gUnknown_8463AEC, + .anims = gUnknown_8463AFC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, + }; + + LoadSpriteSheet(&sheet); + LoadSpritePalette(&palette); + + spriteId = CreateSprite(&template, 114, 92, 0); + gUnknown_203B164->sprite = &gSprites[spriteId]; + gUnknown_203B164->unk04 = tileTag; + gUnknown_203B164->unk06 = palTag; + } + + sub_813ACF8(1); + sub_813ACB4(); + + FREE_AND_SET_NULL_IF_SET(gfxBufferPtr); +} + +void sub_813AC8C(void) +{ + if (gUnknown_203B164->sprite != NULL) + DestroySpriteAndFreeResources(gUnknown_203B164->sprite); + + FREE_AND_SET_NULL_IF_SET(gUnknown_203B164); +} + +void sub_813ACB4(void) +{ + if (!CheckPartyPokerus(&gMonSummaryScreen->currentMon, 0) + && CheckPartyHasHadPokerus(&gMonSummaryScreen->currentMon, 0)) + sub_813ACF8(0); + else + sub_813ACF8(1); +} + +void sub_813ACF8(u8 invisible) +{ + if (!CheckPartyPokerus(&gMonSummaryScreen->currentMon, 0) + && CheckPartyHasHadPokerus(&gMonSummaryScreen->currentMon, 0)) + { + gUnknown_203B164->sprite->invisible = invisible; + return; + } + else + gUnknown_203B164->sprite->invisible = TRUE; + + if (gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO) + { + gUnknown_203B164->sprite->invisible = TRUE; + gUnknown_203B164->sprite->pos1.x = 16; + gUnknown_203B164->sprite->pos1.y = 44; + } + else + { + gUnknown_203B164->sprite->pos1.x = 114; + gUnknown_203B164->sprite->pos1.y = 92; + } +} + +void sub_813ADA8(u16 tileTag, u16 palTag) +{ + u16 spriteId; + void * gfxBufferPtr; + + gUnknown_203B168 = AllocZeroed(sizeof(struct Struct203B168)); + gfxBufferPtr = AllocZeroed(0x20 * 2); + + LZ77UnCompWram(gUnknown_8463B64, gfxBufferPtr); + + if (gUnknown_203B168 != NULL) + { + struct SpriteSheet sheet = { + .data = gfxBufferPtr, + .size = 0x20 * 2, + .tag = tileTag + }; + + struct SpritePalette palette = {.data = gUnknown_8463B44, .tag = palTag}; + struct SpriteTemplate template = { + .tileTag = tileTag, + .paletteTag = palTag, + .oam = &gUnknown_8463B30, + .anims = gUnknown_8463B40, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, + }; + + LoadSpriteSheet(&sheet); + LoadSpritePalette(&palette); + spriteId = CreateSprite(&template, 106, 40, 0); + gUnknown_203B168->sprite = &gSprites[spriteId]; + gUnknown_203B168->unk04 = tileTag; + gUnknown_203B168->unk06 = palTag; + } + + sub_813AEB0(1); + sub_813AF50(); + + FREE_AND_SET_NULL_IF_SET(gfxBufferPtr); +} + +void sub_813AE88(void) +{ + if (gUnknown_203B168->sprite != NULL) + DestroySpriteAndFreeResources(gUnknown_203B168->sprite); + + FREE_AND_SET_NULL_IF_SET(gUnknown_203B168); +} + +void sub_813AEB0(u8 invisible) +{ + if (IsMonShiny(&gMonSummaryScreen->currentMon) == TRUE + && !gMonSummaryScreen->isEgg) + gUnknown_203B168->sprite->invisible = invisible; + else + gUnknown_203B168->sprite->invisible = TRUE; + + if (gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO) + { + gUnknown_203B168->sprite->pos1.x = 8; + gUnknown_203B168->sprite->pos1.y = 24; + } + else + { + gUnknown_203B168->sprite->pos1.x = 106; + gUnknown_203B168->sprite->pos1.y = 40; + } +} + +void sub_813AF50(void) +{ + if (IsMonShiny(&gMonSummaryScreen->currentMon) == TRUE && !gMonSummaryScreen->isEgg) + sub_813AEB0(0); + else + sub_813AEB0(1); +} + +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(); +} + +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(); +} + +void sub_813AFFC(void) +{ + u32 markings = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MARKINGS); + + DestroySpriteAndFreeResources(gMonSummaryScreen->markingSprite); + gMonSummaryScreen->markingSprite = CreateMonMarkingSprite_SelectCombo(TAG_PSS_UNK_8C, TAG_PSS_UNK_8C, gUnknown_84636E0); + + if (gMonSummaryScreen->markingSprite != NULL) + { + StartSpriteAnim(gMonSummaryScreen->markingSprite, markings); + gMonSummaryScreen->markingSprite->pos1.x = 20; + gMonSummaryScreen->markingSprite->pos1.y = 91; + } + + sub_813B084(1); +} + +void sub_813B068(void) +{ + DestroySpriteAndFreeResources(gMonSummaryScreen->markingSprite); +} + +void sub_813B084(u8 invisible) +{ + u32 markings = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MARKINGS); + + if (markings == 0) + gMonSummaryScreen->markingSprite->invisible = TRUE; + else + gMonSummaryScreen->markingSprite->invisible = invisible; +} + +void sub_813B0E4(void) +{ + u32 markings = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MARKINGS); + + StartSpriteAnim(gMonSummaryScreen->markingSprite, markings); + sub_813B084(0); +} + +void sub_813B120(u8 taskId, s8 a1) +{ + s8 v0 = -1; + + if (gMonSummaryScreen->isBoxMon == TRUE) + { + if (gMonSummaryScreen->curPageIndex != 0) + { + if (a1 == 1) + a1 = 0; + else + a1 = 2; + } + else + { + if (a1 == 1) + a1 = 1; + else + a1 = 3; + } + + v0 = SeekToNextMonInBox(gMonSummaryScreen->monList.boxMons, GetLastViewedMonIndex(), gMonSummaryScreen->lastIndex, (u8)a1); + } + else + { + if (IsUpdateLinkStateCBActive() == FALSE + && gReceivedRemoteLinkPlayers == 1 + && IsMultiBattle() == TRUE) + v0 = sub_813B38C(a1); + else + v0 = sub_813B20C(a1); + } + + if (v0 == -1) + return; + + gLastViewedMonIndex = v0; + CreateTask(sub_813B3F0, 0); + gMonSummaryScreen->unk328C = 0; +} From aecf2dbf6e26469cc40ab2c3aec155aecba7091b Mon Sep 17 00:00:00 2001 From: luckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com> Date: Sat, 4 Jul 2020 17:15:04 -0400 Subject: [PATCH 16/25] pokemon_summary_screen.c, part 13. --- asm/pokemon_summary_screen.s | 817 ----------------------------------- ld_script.txt | 1 - src/pokemon_summary_screen.c | 272 +++++++++++- 3 files changed, 269 insertions(+), 821 deletions(-) delete mode 100644 asm/pokemon_summary_screen.s diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s deleted file mode 100644 index 6b007b581..000000000 --- a/asm/pokemon_summary_screen.s +++ /dev/null @@ -1,817 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_813B20C -sub_813B20C: @ 813B20C - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r2, _0813B258 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - ldr r1, [r0] - ldr r4, _0813B564 @ =0x0000328c - adds r1, r4 - b _0813B72C - .align 2, 0 -_0813B55C: .4byte gUnknown_8E9B310 -_0813B560: .4byte gMonSummaryScreen -_0813B564: .4byte 0x0000328c -_0813B568: - ldr r4, _0813B5A8 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - ldr r1, [r0] - ldr r4, _0813B650 @ =0x0000328c - adds r1, r4 - b _0813B72C - .align 2, 0 -_0813B64C: .4byte gMonSummaryScreen -_0813B650: .4byte 0x0000328c -_0813B654: - bl sub_8138A38 - bl sub_8138538 - ldr r4, _0813B670 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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 @ =gMonSummaryScreen - 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 gMonSummaryScreen -_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/ld_script.txt b/ld_script.txt index 6f7fa8624..30b9c1b30 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -269,7 +269,6 @@ SECTIONS { src/menu_indicators.o(.text); src/pokedex_area_markers.o(.text); src/pokemon_summary_screen.o(.text); - asm/pokemon_summary_screen.o(.text); src/help_system.o(.text); src/wild_pokemon_area.o(.text); src/dynamic_placeholder_text_util.o(.text); diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 83fe5ffb0..e06dcb6dd 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -231,7 +231,7 @@ struct PokemonSummaryScreenData u8 ALIGNED(4) unk3288; /* 0x3288 */ u8 ALIGNED(4) unk328C; /* 0x328C */ - struct Pokemon currentMon; + struct Pokemon currentMon; /* 0x3290 */ union { @@ -398,6 +398,7 @@ extern const struct OamData gUnknown_8463B30; extern const union AnimCmd * const gUnknown_8463B40[]; extern const u16 gUnknown_84636E0[]; +extern const u8 gUnknown_8463FB8[]; #define FREE_AND_SET_NULL_IF_SET(ptr) \ { \ @@ -2415,9 +2416,9 @@ void sub_8137C90(void) BlitMoveInfoIcon(gMonSummaryScreen->unk3000[5], gMonSummaryScreen->unk3250[4] + 1, 3, MACRO_8137270(4)); } -void sub_8137D28(u8 page) +void sub_8137D28(u8 curPageIndex) { - switch (page) + switch (curPageIndex) { case PSS_PAGE_INFO: sub_8136DA4(gUnknown_8419C1D); @@ -4443,3 +4444,268 @@ void sub_813B120(u8 taskId, s8 a1) CreateTask(sub_813B3F0, 0); gMonSummaryScreen->unk328C = 0; } + +s8 sub_813B20C(s8 a0) +{ + struct Pokemon * partyMons = gMonSummaryScreen->monList.mons; + s8 v1 = 0; + + if (gMonSummaryScreen->curPageIndex == 0) + { + if (a0 == -1 && gLastViewedMonIndex == 0) + return -1; + else if (a0 == 1 && gLastViewedMonIndex >= gMonSummaryScreen->lastIndex) + return -1; + else + return gLastViewedMonIndex + a0; + } + + while (TRUE) + { + v1 += a0; + if (0 > gLastViewedMonIndex + v1 || gLastViewedMonIndex + v1 > gMonSummaryScreen->lastIndex) + return -1; + + if (GetMonData(&partyMons[gLastViewedMonIndex + v1], MON_DATA_IS_EGG) == 0) + return gLastViewedMonIndex + v1; + } + + return -1; +} + +u8 sub_813B2C8(struct Pokemon * partyMons) +{ + if (GetMonData(partyMons, MON_DATA_SPECIES) != 0 && (gMonSummaryScreen->curPageIndex != 0 || GetMonData(partyMons, MON_DATA_IS_EGG) == 0)) + return TRUE; + + return FALSE; +} + +s8 sub_813B304(u8 a0) +{ + while (TRUE) + { + a0++; + + if (a0 == 6) + return -1; + if (sub_813B2C8(&gPlayerParty[gUnknown_8463FB8[a0]]) == TRUE) + break; + } + + return (s8)gUnknown_8463FB8[a0]; +} + +s8 sub_813B348(u8 a0) +{ + while (1) + { + if (a0 == 0) + return -1; + + a0--; + + if (sub_813B2C8(&gPlayerParty[gUnknown_8463FB8[a0]]) == TRUE) + break; + } + + return (s8)(gUnknown_8463FB8[a0]); +} + +s8 sub_813B38C(s8 a0) +{ + u8 v0 = 0; + u8 i; + + for (i = 0; i < PARTY_SIZE; i++) + if (gUnknown_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); +} + +void sub_813B3F0(u8 id) +{ + switch (gMonSummaryScreen->unk328C) + { + case 0: + StopCryAndClearCrySongs(); + gUnknown_203B16D = 0; + gUnknown_203B16E = 0; + gMonSummaryScreen->unk328C++; + break; + case 1: + sub_8139C80(); + sub_8139F20(); + sub_8139D90(); + gMonSummaryScreen->unk328C++; + break; + case 2: + sub_8138B8C(&gMonSummaryScreen->currentMon); + + gMonSummaryScreen->isEgg = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_IS_EGG); + gMonSummaryScreen->isBadEgg = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SANITY_IS_BAD_EGG); + + if (gMonSummaryScreen->isBadEgg == TRUE) + gMonSummaryScreen->isEgg = TRUE; + + gMonSummaryScreen->unk328C++; + break; + case 3: + FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); + + if (IsMonShiny(&gMonSummaryScreen->currentMon) == TRUE && !gMonSummaryScreen->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); + } + + gMonSummaryScreen->unk328C++; + break; + case 4: + if (gMonSummaryScreen->curPageIndex == PSS_PAGE_INFO) + { + if (gMonSummaryScreen->isEgg) + { + CopyToBgTilemapBuffer(gMonSummaryScreen->unk323C, gUnknown_8E9BBCC, 0, 0); + CopyToBgTilemapBuffer(gMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0); + } + else + { + CopyToBgTilemapBuffer(gMonSummaryScreen->unk323C, gUnknown_8E9B598, 0, 0); + CopyToBgTilemapBuffer(gMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0); + } + } + gMonSummaryScreen->unk328C++; + break; + case 5: + sub_81360D4(); + gMonSummaryScreen->unk328C++; + break; + case 6: + if (!gMonSummaryScreen->isEgg) + sub_8136350(); + + gMonSummaryScreen->unk328C++; + break; + case 7: + if (!gMonSummaryScreen->isEgg) + sub_81367B0(); + + gMonSummaryScreen->unk328C++; + break; + case 8: + sub_8136F4C(); + sub_81374E8(); + sub_8137BD0(); + gMonSummaryScreen->unk328C++; + break; + case 9: + sub_8138A38(); + sub_8138538(); + sub_8137D28(gMonSummaryScreen->curPageIndex); + gMonSummaryScreen->unk328C++; + break; + case 10: + CopyWindowToVram(gMonSummaryScreen->unk3000[0], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[1], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[2], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[6], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[3], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[4], 2); + CopyWindowToVram(gMonSummaryScreen->unk3000[5], 2); + CopyBgTilemapBufferToVram(0); + CopyBgTilemapBufferToVram(2); + CopyBgTilemapBufferToVram(3); + gMonSummaryScreen->unk328C++; + break; + case 11: + if (!Overworld_LinkRecvQueueLengthMoreThan2() && !sub_800B270()) + { + sub_813AFC4(); + sub_813B784(); + gMonSummaryScreen->unk328C++; + } + break; + default: + gMonSummaryScreen->unk328C = 0; + DestroyTask(id); + break; + } +} + +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; + } +} + +void sub_813B784(void) +{ + if (!GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_IS_EGG)) + { + if (ShouldPlayNormalPokeCry(&gMonSummaryScreen->currentMon) == TRUE) + PlayCry3(GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SPECIES2), 0, 0); + else + PlayCry3(GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SPECIES2), 0, 11); + } +} + +bool32 sub_813B7E0(u8 nature) +{ + if (nature == NATURE_BOLD || nature == NATURE_GENTLE) + return TRUE; + + return FALSE; +} + +bool32 sub_813B7F8(void) +{ + u8 version = GetMonData(&gMonSummaryScreen->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; +} + +bool32 sub_813B838(u8 place) +{ + if (place >= MAPSECS_KANTO && place < MAPSEC_NONE) + return TRUE; + return FALSE; +} + +void sub_813B854(void) +{ + ShowPokemonSummaryScreen(0, 0, 0, CB2_ReturnToField, PSS_MODE_NORMAL); +} From d7df6bf6e3b6066bef0bd0602b0b9c2d036f100a Mon Sep 17 00:00:00 2001 From: luckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com> Date: Sat, 4 Jul 2020 18:14:40 -0400 Subject: [PATCH 17/25] Get rid of manual sym defines in sym_ewram.txt and ld_script_modern.txt --- .gitignore | 2 -- compare.sh | 12 +++++----- constants/misc_constants.inc | 2 -- include/pokemon_summary_screen.h | 6 ++--- ld_script_modern.txt | 14 ------------ replace.sh | 9 ++++++++ src/pokemon_summary_screen.c | 23 ++++++++++--------- sym_ewram.txt | 39 +------------------------------- 8 files changed, 30 insertions(+), 77 deletions(-) create mode 100644 replace.sh diff --git a/.gitignore b/.gitignore index e83f42a30..50910379c 100644 --- a/.gitignore +++ b/.gitignore @@ -56,5 +56,3 @@ types_*.taghl _Deparsed_XSubs.pm porymap.project.cfg .vscode/*.* -baserom.txt -pokefirered.txt diff --git a/compare.sh b/compare.sh index 86db204ee..10279b616 100644 --- a/compare.sh +++ b/compare.sh @@ -1,11 +1,11 @@ -#!/bin/sh +#!/bin/bash # Compares baserom.gba and pokefirered.gba -# create baserom.txt if necessary -if [ ! -f baserom.txt ]; then - hexdump -C baserom.gba > baserom.txt # can create an empty baserom.txt if no baserom.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.txt +hexdump -C pokefirered.gba > pokefirered_compare.dump -diff -u baserom.txt pokefirered.txt | less +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/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h index 5e3603bfe..df136ac21 100644 --- a/include/pokemon_summary_screen.h +++ b/include/pokemon_summary_screen.h @@ -3,10 +3,8 @@ #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)); 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/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index e06dcb6dd..086c9585b 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -316,17 +316,18 @@ struct Struct203B168 u16 unk06; /* 0x06 */ }; -extern struct PokemonSummaryScreenData * gMonSummaryScreen; -extern struct Struct203B144 * gUnknown_203B144; -extern struct Struct203B148 * gUnknown_203B148[4]; -extern struct Struct203B158 * gUnknown_203B158; -extern struct Struct203B15C * gUnknown_203B15C; -extern struct Struct203B160 * gUnknown_203B160; -extern struct Struct203B164 * gUnknown_203B164; -extern struct Struct203B168 * gUnknown_203B168; -extern u8 gUnknown_203B16D; -extern u8 gUnknown_203B16E; -extern struct Struct203B170 * gUnknown_203B170; +static EWRAM_DATA struct PokemonSummaryScreenData * gMonSummaryScreen = NULL; +static EWRAM_DATA struct Struct203B144 * gUnknown_203B144 = NULL; +static EWRAM_DATA struct Struct203B148 * gUnknown_203B148[4] = {}; +static EWRAM_DATA struct Struct203B158 * gUnknown_203B158 = NULL; +static EWRAM_DATA struct Struct203B15C * gUnknown_203B15C = NULL; +static EWRAM_DATA struct Struct203B160 * gUnknown_203B160 = NULL; +static EWRAM_DATA struct Struct203B164 * gUnknown_203B164 = NULL; +static EWRAM_DATA struct Struct203B168 * gUnknown_203B168 = NULL; +static EWRAM_DATA u8 gLastViewedMonIndex = 0; +static EWRAM_DATA u8 gUnknown_203B16D = 0; +static EWRAM_DATA u8 gUnknown_203B16E = 0; +static EWRAM_DATA struct Struct203B170 * gUnknown_203B170 = NULL; extern const u32 gUnknown_8E9B750[]; extern const u32 gUnknown_8E9B950[]; diff --git a/sym_ewram.txt b/sym_ewram.txt index 9fabd6c3b..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" -gMonSummaryScreen: @ 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 From 1ad6f5270c38e6010bb64b3b7813b097e531f5df Mon Sep 17 00:00:00 2001 From: luckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com> Date: Sat, 4 Jul 2020 20:32:44 -0400 Subject: [PATCH 18/25] Port over PSS data to src. --- data/pokemon_summary_screen.s | 442 ----------------------- include/strings.h | 11 + ld_script.txt | 2 +- src/data/text/nature_names.h | 54 +++ src/pokemon_summary_screen.c | 662 +++++++++++++++++++++++++++++++--- 5 files changed, 670 insertions(+), 501 deletions(-) delete mode 100644 data/pokemon_summary_screen.s create mode 100644 src/data/text/nature_names.h diff --git a/data/pokemon_summary_screen.s b/data/pokemon_summary_screen.s deleted file mode 100644 index 2c221fb21..000000000 --- a/data/pokemon_summary_screen.s +++ /dev/null @@ -1,442 +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 - .byte 0x00, 0x01, 0x02 - .byte 0x00, 0x09, 0x08 - .byte 0x00, 0x05, 0x04 - .byte 0x00, 0x02, 0x03 - .byte 0x00, 0x0b, 0x0a - - .balign 4, 0 -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/strings.h b/include/strings.h index 81441d2bc..ce1a41a98 100644 --- a/include/strings.h +++ b/include/strings.h @@ -1504,5 +1504,16 @@ 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/ld_script.txt b/ld_script.txt index 30b9c1b30..2626da3ff 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -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/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/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 086c9585b..d0f4384d9 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -186,8 +186,7 @@ struct PokemonSummaryScreenData u8 ALIGNED(4) unk31B0[9]; u8 ALIGNED(4) unk31BC[13]; - u8 ALIGNED(4) unk31CC[20]; - u8 ALIGNED(4) pad31E0[0x20]; + u8 ALIGNED(4) unk31CC[52]; } summary; u8 ALIGNED(4) isEgg; /* 0x3200 */ @@ -333,73 +332,618 @@ extern const u32 gUnknown_8E9B750[]; extern const u32 gUnknown_8E9B950[]; extern const u32 gUnknown_8E9B598[]; extern const u32 gUnknown_8E9BA9C[]; -extern const u32 gUnknown_8463C80[]; -extern const u32 gUnknown_8463B88[]; extern const u32 gUnknown_8E9BBCC[]; extern const u16 gUnknown_8E9B310[]; extern const u32 gUnknown_8E9A460[]; - -extern const u32 gUnknown_84636C0[]; -extern const u32 gUnknown_8463700[]; - -extern const struct BgTemplate gUnknown_8463EFC[4]; - -extern const u8 gUnknown_8463FA4[][3]; -extern const u8 gUnknown_8463EF0[][3]; - -extern const u8 * const gUnknown_8463EC4[]; -extern const u8 * const gUnknown_8463ED4[]; - -extern const struct WindowTemplate gUnknown_8463F9C[]; -extern const struct WindowTemplate gUnknown_8463F0C[]; -extern const struct WindowTemplate gUnknown_8463F3C[]; -extern const struct WindowTemplate gUnknown_8463F5C[]; -extern const struct WindowTemplate gUnknown_8463F7C[]; -extern const struct WindowTemplate gUnknown_8463F24[]; - -extern const s8 gUnknown_8463FBE[3]; -extern const s8 gUnknown_8463FC1[5]; -extern const s8 gUnknown_8463FC6[7]; -extern const s8 gUnknown_8463FCD[7]; - -extern const s8 gUnknown_8463FD4[11]; -extern const s8 gUnknown_8463FDF[11]; -extern const s8 gUnknown_8463FEA[15]; - -extern const u32 gUnknown_8463740[]; -extern const u32 gUnknown_846386C[]; - -extern const u16 gUnknown_8463720[]; -extern const struct OamData gUnknown_846398C; -extern const union AnimCmd * const gUnknown_84639A4[]; - +extern const u16 gUnknown_8E9B578[]; extern const u32 gUnknown_8E9BF48[]; extern const u16 gUnknown_8E9BF28[]; - -extern const struct OamData gUnknown_84639AC; -extern const union AnimCmd * const gUnknown_84639F4[]; - extern const u32 gUnknown_8E9B4B8[]; -extern const u16 * const gUnknown_8463FFC[]; -extern const struct OamData gUnknown_8463A14; -extern const union AnimCmd * const gUnknown_8463A7C[]; - extern const u32 gUnknown_8E9B3F0[]; extern const u16 gUnknown_8E9B578[]; -extern const u32 gUnknown_8463B20[]; -extern const u16 gUnknown_8463B00[]; +static const u32 gUnknown_84636C0[] = INCBIN_U32("graphics/interface/pokesummary_unk_84636C0.gbapal"); +static const u16 gUnknown_84636E0[] = INCBIN_U16("graphics/interface/pokesummary_unk_84636E0.gbapal"); +static const u32 gUnknown_8463700[] = INCBIN_U32("graphics/interface/pokesummary_unk_8463700.gbapal"); +static const u16 gUnknown_8463720[] = INCBIN_U16("graphics/interface/pokesummary_unk_8463720.gbapal"); +static const u32 gUnknown_8463740[] = INCBIN_U32("graphics/interface/pokesummary_unk_8463740.4bpp.lz"); +static const u32 gUnknown_846386C[] = INCBIN_U32("graphics/interface/pokesummary_unk_846386C.4bpp.lz"); -extern const struct OamData gUnknown_8463AEC; -extern const union AnimCmd * const gUnknown_8463AFC[]; +static const struct OamData gUnknown_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 +}; -extern const u32 gUnknown_8463B64[]; -extern const u16 gUnknown_8463B44[]; -extern const struct OamData gUnknown_8463B30; -extern const union AnimCmd * const gUnknown_8463B40[]; +static const union AnimCmd gUnknown_8463994[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd gUnknown_846399C[] = +{ + ANIMCMD_FRAME(0x20, 20), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd * const gUnknown_84639A4[] = +{ + gUnknown_8463994, + gUnknown_846399C +}; + +static const struct OamData gUnknown_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 gUnknown_84639B4[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd gUnknown_84639BC[] = +{ + ANIMCMD_FRAME(4, 20), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd gUnknown_84639C4[] = +{ + ANIMCMD_FRAME(8, 20), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd gUnknown_84639CC[] = +{ + ANIMCMD_FRAME(12, 20), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd gUnknown_84639D4[] = +{ + ANIMCMD_FRAME(16, 20), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd gUnknown_84639DC[] = +{ + ANIMCMD_FRAME(20, 20), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd gUnknown_84639E4[] = +{ + ANIMCMD_FRAME(24, 20), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd gUnknown_84639EC[] = +{ + ANIMCMD_FRAME(28, 20), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd * const gUnknown_84639F4[] = +{ + gUnknown_84639B4, + gUnknown_84639BC, + gUnknown_84639C4, + gUnknown_84639CC, + gUnknown_84639D4, + gUnknown_84639DC, + gUnknown_84639E4, + gUnknown_84639EC +}; + +static const struct OamData gUnknown_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 gUnknown_8463A1C[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd gUnknown_8463A24[] = +{ + ANIMCMD_FRAME(1, 20), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd gUnknown_8463A2C[] = +{ + ANIMCMD_FRAME(2, 20), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd gUnknown_8463A34[] = +{ + ANIMCMD_FRAME(3, 20), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd gUnknown_8463A3C[] = +{ + ANIMCMD_FRAME(4, 20), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd gUnknown_8463A44[] = +{ + ANIMCMD_FRAME(5, 20), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd gUnknown_8463A4C[] = +{ + ANIMCMD_FRAME(6, 20), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd gUnknown_8463A54[] = +{ + ANIMCMD_FRAME(7, 20), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd gUnknown_8463A5C[] = +{ + ANIMCMD_FRAME(8, 20), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd gUnknown_8463A64[] = +{ + ANIMCMD_FRAME(9, 20), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd gUnknown_8463A6C[] = +{ + ANIMCMD_FRAME(10, 20), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd gUnknown_8463A74[] = +{ + ANIMCMD_FRAME(11, 20), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd * const gUnknown_8463A7C[] = +{ + gUnknown_8463A1C, + gUnknown_8463A24, + gUnknown_8463A2C, + gUnknown_8463A34, + gUnknown_8463A3C, + gUnknown_8463A44, + gUnknown_8463A4C, + gUnknown_8463A54, + gUnknown_8463A5C, + gUnknown_8463A64, + gUnknown_8463A6C, + gUnknown_8463A74 +}; + +const u16 gUnknown_8463AAC[] = INCBIN_U16("graphics/interface/pokesummary_unk_8463AAC.gbapal"); +const u16 gUnknown_8463ACC[] = INCBIN_U16("graphics/interface/pokesummary_unk_8463ACC.gbapal"); + +static const struct OamData gUnknown_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 gUnknown_8463AF4[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd * const gUnknown_8463AFC[] = +{ + gUnknown_8463AF4 +}; + +static const u16 gUnknown_8463B00[] = INCBIN_U16("graphics/interface/pokesummary_unk_8463B00.gbapal"); +static const u32 gUnknown_8463B20[] = INCBIN_U32("graphics/interface/pokesummary_unk_8463B20.4bpp.lz"); + +static const struct OamData gUnknown_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 gUnknown_8463B38[] = +{ + ANIMCMD_FRAME(1, 20), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd * const gUnknown_8463B40[] = +{ + gUnknown_8463B38 +}; + +static const u16 gUnknown_8463B44[] = INCBIN_U16( "graphics/interface/pokesummary_unk_8463B44.gbapal"); +static const u32 gUnknown_8463B64[] = INCBIN_U32( "graphics/interface/pokesummary_unk_8463B64.4bpp.lz"); +static const u32 gUnknown_8463B88[] = INCBIN_U32( "graphics/interface/pokesummary_unk_8463B88.bin.lz"); +static const u32 gUnknown_8463C80[] = INCBIN_U32( "graphics/interface/pokesummary_unk_8463C80.bin.lz"); + +#include "data/text/nature_names.h" + +static const u8 * const gUnknown_8463EC4[] = { + gUnknown_8419B44, + gUnknown_8419B7B, + gUnknown_8419BAE, + gUnknown_8419BDB +}; + +static const u8 * const gUnknown_8463ED4[] = { + gUnknown_8419A3D, + gUnknown_8419B18, + gUnknown_8419A6E, + gUnknown_8419B18, + gUnknown_8419AA2, + gUnknown_8419ADE, + gUnknown_8419B18 +}; + +static const u8 gUnknown_8463EF0[][3] = { + {0, 7, 8}, + {0, 1, 2}, + {0, 3, 4}, + {0, 5, 6} +}; + +static const struct BgTemplate gUnknown_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 gUnknown_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 gUnknown_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 gUnknown_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 gUnknown_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 gUnknown_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 gUnknown_8463F9C[] = +{ + { + .bg = 255, + .tilemapLeft = 0, + .tilemapTop = 0, + .width = 0, + .height = 0, + .paletteNum = 0, + .baseBlock = 0x0000 + }, +}; + + +static const u8 gUnknown_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) gUnknown_8463FB8[] = +{ + 0, 2, 3, 1, 4, 5 +}; + +static const s8 gUnknown_8463FBE[] = +{ + -1, 0, 1 +}; + +static const s8 gUnknown_8463FC1[] = +{ + -2, -1, 0, 1, 2 +}; + +static const s8 gUnknown_8463FC6[] = +{ + -3, -2, -1, 0, 1, 2, 3 +}; + +static const s8 gUnknown_8463FCD[] = +{ + -5, -3, -1, 0, 1, 3, 5 +}; + +static const s8 gUnknown_8463FD4[] = +{ + 1, 1, 0, -1, -1, 0, -1, -1, 0, 1, 1 +}; + +static const s8 gUnknown_8463FDF[] = +{ + 2, 1, 0, -1, -2, 0, -2, -1, 0, 1, 2 +}; + +static const s8 gUnknown_8463FEA[] = +{ + 2, 1, 1, 0, -1, -1, -2, 0, -2, -1, -1, 0, 1, 1, 2 +}; + +static const u16 * const gUnknown_8463FFC[] = +{ + gUnknown_8E9B578, + gUnknown_8463AAC, + gUnknown_8463ACC, +}; -extern const u16 gUnknown_84636E0[]; -extern const u8 gUnknown_8463FB8[]; #define FREE_AND_SET_NULL_IF_SET(ptr) \ { \ @@ -1959,7 +2503,9 @@ void sub_8137270(void) if (gMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) sub_81372E4(4); else - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 3, MACRO_8137270(4), gUnknown_8463EF0[0], TEXT_SPEED_FF, gFameCheckerText_Cancel); + AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, + 3, MACRO_8137270(4), + gUnknown_8463EF0[0], TEXT_SPEED_FF, gFameCheckerText_Cancel); } } From c4d7037f49c3ba42e0f5a0dd9ec9a851ca50c508 Mon Sep 17 00:00:00 2001 From: luckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com> Date: Sat, 4 Jul 2020 20:38:04 -0400 Subject: [PATCH 19/25] Declare some data as static. --- src/pokemon_summary_screen.c | 4 ++-- tools/analyze_source/readelf.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index d0f4384d9..f7f9014a9 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -561,8 +561,8 @@ static const union AnimCmd * const gUnknown_8463A7C[] = gUnknown_8463A74 }; -const u16 gUnknown_8463AAC[] = INCBIN_U16("graphics/interface/pokesummary_unk_8463AAC.gbapal"); -const u16 gUnknown_8463ACC[] = INCBIN_U16("graphics/interface/pokesummary_unk_8463ACC.gbapal"); +static const u16 gUnknown_8463AAC[] = INCBIN_U16("graphics/interface/pokesummary_unk_8463AAC.gbapal"); +static const u16 gUnknown_8463ACC[] = INCBIN_U16("graphics/interface/pokesummary_unk_8463ACC.gbapal"); static const struct OamData gUnknown_8463AEC = { .y = 0, diff --git a/tools/analyze_source/readelf.py b/tools/analyze_source/readelf.py index a275b0a4b..e5ad0a5cd 100644 --- a/tools/analyze_source/readelf.py +++ b/tools/analyze_source/readelf.py @@ -56,7 +56,7 @@ def read_syms(): return syms if __name__ == "__main__": - SIMPLE = True + SIMPLE = True ap = argparse.ArgumentParser() ap.add_argument("-m", "--make", dest="make", action="store_true") ap.add_argument("-p", "--path", dest="input_path") @@ -79,7 +79,7 @@ if __name__ == "__main__": sorted_syms = sorted(syms, key=lambda kv: kv.value) for sym_info in sorted_syms: if SIMPLE: - sym_dump_output += f"0x{sym_info.value:08x} {sym_info.name} (size: 0x{sym_info.size:x})\n" + sym_dump_output += f"0x{sym_info.value:08x} {sym_info.scope} {sym_info.name} (size: 0x{sym_info.size:x})\n" else: sym_dump_output += "{}: value={:08x}, size=0x{:x}, scope=\"{}\", debug=\"{}\", type=\"{}\", section=\"{}\"\n".format(sym_info.name, sym_info.value, sym_info.size, sym_info.scope, sym_info.debug, sym_info.type, sym_info.section) if sym_info.type == "F" and sym_info.value >= 0x8000000: From 1bea05746e828f4446b95799da9c52352ce1f761 Mon Sep 17 00:00:00 2001 From: luckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com> Date: Sat, 4 Jul 2020 20:46:19 -0400 Subject: [PATCH 20/25] Fix prefixes of static variables in PSS. --- src/pokemon_summary_screen.c | 2240 +++++++++++++++++----------------- 1 file changed, 1120 insertions(+), 1120 deletions(-) diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index f7f9014a9..79ad92b9c 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -315,18 +315,18 @@ struct Struct203B168 u16 unk06; /* 0x06 */ }; -static EWRAM_DATA struct PokemonSummaryScreenData * gMonSummaryScreen = NULL; -static EWRAM_DATA struct Struct203B144 * gUnknown_203B144 = NULL; -static EWRAM_DATA struct Struct203B148 * gUnknown_203B148[4] = {}; -static EWRAM_DATA struct Struct203B158 * gUnknown_203B158 = NULL; -static EWRAM_DATA struct Struct203B15C * gUnknown_203B15C = NULL; -static EWRAM_DATA struct Struct203B160 * gUnknown_203B160 = NULL; -static EWRAM_DATA struct Struct203B164 * gUnknown_203B164 = NULL; -static EWRAM_DATA struct Struct203B168 * gUnknown_203B168 = NULL; -static EWRAM_DATA u8 gLastViewedMonIndex = 0; -static EWRAM_DATA u8 gUnknown_203B16D = 0; -static EWRAM_DATA u8 gUnknown_203B16E = 0; -static EWRAM_DATA struct Struct203B170 * gUnknown_203B170 = NULL; +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[]; @@ -342,14 +342,14 @@ extern const u32 gUnknown_8E9B4B8[]; extern const u32 gUnknown_8E9B3F0[]; extern const u16 gUnknown_8E9B578[]; -static const u32 gUnknown_84636C0[] = INCBIN_U32("graphics/interface/pokesummary_unk_84636C0.gbapal"); -static const u16 gUnknown_84636E0[] = INCBIN_U16("graphics/interface/pokesummary_unk_84636E0.gbapal"); -static const u32 gUnknown_8463700[] = INCBIN_U32("graphics/interface/pokesummary_unk_8463700.gbapal"); -static const u16 gUnknown_8463720[] = INCBIN_U16("graphics/interface/pokesummary_unk_8463720.gbapal"); -static const u32 gUnknown_8463740[] = INCBIN_U32("graphics/interface/pokesummary_unk_8463740.4bpp.lz"); -static const u32 gUnknown_846386C[] = INCBIN_U32("graphics/interface/pokesummary_unk_846386C.4bpp.lz"); +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 gUnknown_846398C = +static const struct OamData sUnknown_846398C = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -365,25 +365,25 @@ static const struct OamData gUnknown_846398C = .paletteNum = 0 }; -static const union AnimCmd gUnknown_8463994[] = +static const union AnimCmd sUnknown_8463994[] = { ANIMCMD_FRAME(0, 20), ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_846399C[] = +static const union AnimCmd sUnknown_846399C[] = { ANIMCMD_FRAME(0x20, 20), ANIMCMD_JUMP(0), }; -static const union AnimCmd * const gUnknown_84639A4[] = +static const union AnimCmd * const sUnknown_84639A4[] = { - gUnknown_8463994, - gUnknown_846399C + sUnknown_8463994, + sUnknown_846399C }; -static const struct OamData gUnknown_84639AC = { +static const struct OamData sUnknown_84639AC = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -398,67 +398,67 @@ static const struct OamData gUnknown_84639AC = { .paletteNum = 0 }; -static const union AnimCmd gUnknown_84639B4[] = +static const union AnimCmd sUnknown_84639B4[] = { ANIMCMD_FRAME(0, 20), ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_84639BC[] = +static const union AnimCmd sUnknown_84639BC[] = { ANIMCMD_FRAME(4, 20), ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_84639C4[] = +static const union AnimCmd sUnknown_84639C4[] = { ANIMCMD_FRAME(8, 20), ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_84639CC[] = +static const union AnimCmd sUnknown_84639CC[] = { ANIMCMD_FRAME(12, 20), ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_84639D4[] = +static const union AnimCmd sUnknown_84639D4[] = { ANIMCMD_FRAME(16, 20), ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_84639DC[] = +static const union AnimCmd sUnknown_84639DC[] = { ANIMCMD_FRAME(20, 20), ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_84639E4[] = +static const union AnimCmd sUnknown_84639E4[] = { ANIMCMD_FRAME(24, 20), ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_84639EC[] = +static const union AnimCmd sUnknown_84639EC[] = { ANIMCMD_FRAME(28, 20), ANIMCMD_JUMP(0), }; -static const union AnimCmd * const gUnknown_84639F4[] = +static const union AnimCmd * const sUnknown_84639F4[] = { - gUnknown_84639B4, - gUnknown_84639BC, - gUnknown_84639C4, - gUnknown_84639CC, - gUnknown_84639D4, - gUnknown_84639DC, - gUnknown_84639E4, - gUnknown_84639EC + sUnknown_84639B4, + sUnknown_84639BC, + sUnknown_84639C4, + sUnknown_84639CC, + sUnknown_84639D4, + sUnknown_84639DC, + sUnknown_84639E4, + sUnknown_84639EC }; -static const struct OamData gUnknown_8463A14 = { +static const struct OamData sUnknown_8463A14 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -473,98 +473,98 @@ static const struct OamData gUnknown_8463A14 = { .paletteNum = 0 }; -static const union AnimCmd gUnknown_8463A1C[] = +static const union AnimCmd sUnknown_8463A1C[] = { ANIMCMD_FRAME(0, 20), ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_8463A24[] = +static const union AnimCmd sUnknown_8463A24[] = { ANIMCMD_FRAME(1, 20), ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_8463A2C[] = +static const union AnimCmd sUnknown_8463A2C[] = { ANIMCMD_FRAME(2, 20), ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_8463A34[] = +static const union AnimCmd sUnknown_8463A34[] = { ANIMCMD_FRAME(3, 20), ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_8463A3C[] = +static const union AnimCmd sUnknown_8463A3C[] = { ANIMCMD_FRAME(4, 20), ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_8463A44[] = +static const union AnimCmd sUnknown_8463A44[] = { ANIMCMD_FRAME(5, 20), ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_8463A4C[] = +static const union AnimCmd sUnknown_8463A4C[] = { ANIMCMD_FRAME(6, 20), ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_8463A54[] = +static const union AnimCmd sUnknown_8463A54[] = { ANIMCMD_FRAME(7, 20), ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_8463A5C[] = +static const union AnimCmd sUnknown_8463A5C[] = { ANIMCMD_FRAME(8, 20), ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_8463A64[] = +static const union AnimCmd sUnknown_8463A64[] = { ANIMCMD_FRAME(9, 20), ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_8463A6C[] = +static const union AnimCmd sUnknown_8463A6C[] = { ANIMCMD_FRAME(10, 20), ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_8463A74[] = +static const union AnimCmd sUnknown_8463A74[] = { ANIMCMD_FRAME(11, 20), ANIMCMD_JUMP(0), }; -static const union AnimCmd * const gUnknown_8463A7C[] = +static const union AnimCmd * const sUnknown_8463A7C[] = { - gUnknown_8463A1C, - gUnknown_8463A24, - gUnknown_8463A2C, - gUnknown_8463A34, - gUnknown_8463A3C, - gUnknown_8463A44, - gUnknown_8463A4C, - gUnknown_8463A54, - gUnknown_8463A5C, - gUnknown_8463A64, - gUnknown_8463A6C, - gUnknown_8463A74 + 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 gUnknown_8463AAC[] = INCBIN_U16("graphics/interface/pokesummary_unk_8463AAC.gbapal"); -static const u16 gUnknown_8463ACC[] = INCBIN_U16("graphics/interface/pokesummary_unk_8463ACC.gbapal"); +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 gUnknown_8463AEC = { +static const struct OamData sUnknown_8463AEC = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, @@ -579,21 +579,21 @@ static const struct OamData gUnknown_8463AEC = { .paletteNum = 0 }; -static const union AnimCmd gUnknown_8463AF4[] = +static const union AnimCmd sUnknown_8463AF4[] = { ANIMCMD_FRAME(0, 20), ANIMCMD_JUMP(0), }; -static const union AnimCmd * const gUnknown_8463AFC[] = +static const union AnimCmd * const sUnknown_8463AFC[] = { - gUnknown_8463AF4 + sUnknown_8463AF4 }; -static const u16 gUnknown_8463B00[] = INCBIN_U16("graphics/interface/pokesummary_unk_8463B00.gbapal"); -static const u32 gUnknown_8463B20[] = INCBIN_U32("graphics/interface/pokesummary_unk_8463B20.4bpp.lz"); +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 gUnknown_8463B30 = +static const struct OamData sUnknown_8463B30 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -609,32 +609,32 @@ static const struct OamData gUnknown_8463B30 = .paletteNum = 0 }; -static const union AnimCmd gUnknown_8463B38[] = +static const union AnimCmd sUnknown_8463B38[] = { ANIMCMD_FRAME(1, 20), ANIMCMD_JUMP(0), }; -static const union AnimCmd * const gUnknown_8463B40[] = +static const union AnimCmd * const sUnknown_8463B40[] = { - gUnknown_8463B38 + sUnknown_8463B38 }; -static const u16 gUnknown_8463B44[] = INCBIN_U16( "graphics/interface/pokesummary_unk_8463B44.gbapal"); -static const u32 gUnknown_8463B64[] = INCBIN_U32( "graphics/interface/pokesummary_unk_8463B64.4bpp.lz"); -static const u32 gUnknown_8463B88[] = INCBIN_U32( "graphics/interface/pokesummary_unk_8463B88.bin.lz"); -static const u32 gUnknown_8463C80[] = INCBIN_U32( "graphics/interface/pokesummary_unk_8463C80.bin.lz"); +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 gUnknown_8463EC4[] = { +static const u8 * const sUnknown_8463EC4[] = { gUnknown_8419B44, gUnknown_8419B7B, gUnknown_8419BAE, gUnknown_8419BDB }; -static const u8 * const gUnknown_8463ED4[] = { +static const u8 * const sUnknown_8463ED4[] = { gUnknown_8419A3D, gUnknown_8419B18, gUnknown_8419A6E, @@ -644,14 +644,14 @@ static const u8 * const gUnknown_8463ED4[] = { gUnknown_8419B18 }; -static const u8 gUnknown_8463EF0[][3] = { +static const u8 sUnknown_8463EF0[][3] = { {0, 7, 8}, {0, 1, 2}, {0, 3, 4}, {0, 5, 6} }; -static const struct BgTemplate gUnknown_8463EFC[] = +static const struct BgTemplate sUnknown_8463EFC[] = { { .bg = 0, @@ -691,7 +691,7 @@ static const struct BgTemplate gUnknown_8463EFC[] = } }; -static const struct WindowTemplate gUnknown_8463F0C[] = +static const struct WindowTemplate sUnknown_8463F0C[] = { { .bg = 1, @@ -722,7 +722,7 @@ static const struct WindowTemplate gUnknown_8463F0C[] = } }; -static const struct WindowTemplate gUnknown_8463F24[] = +static const struct WindowTemplate sUnknown_8463F24[] = { { .bg = 2, @@ -753,7 +753,7 @@ static const struct WindowTemplate gUnknown_8463F24[] = }, }; -static const struct WindowTemplate gUnknown_8463F3C[] = +static const struct WindowTemplate sUnknown_8463F3C[] = { { .bg = 0, @@ -793,7 +793,7 @@ static const struct WindowTemplate gUnknown_8463F3C[] = }, }; -static const struct WindowTemplate gUnknown_8463F5C[] = +static const struct WindowTemplate sUnknown_8463F5C[] = { { .bg = 0, @@ -833,7 +833,7 @@ static const struct WindowTemplate gUnknown_8463F5C[] = }, }; -static const struct WindowTemplate gUnknown_8463F7C[] = +static const struct WindowTemplate sUnknown_8463F7C[] = { { .bg = 0, @@ -873,7 +873,7 @@ static const struct WindowTemplate gUnknown_8463F7C[] = }, }; -static const struct WindowTemplate gUnknown_8463F9C[] = +static const struct WindowTemplate sUnknown_8463F9C[] = { { .bg = 255, @@ -887,7 +887,7 @@ static const struct WindowTemplate gUnknown_8463F9C[] = }; -static const u8 gUnknown_8463FA4[][3] = +static const u8 sUnknown_8463FA4[][3] = { {0, 14, 10}, {0, 1, 2}, @@ -897,51 +897,51 @@ static const u8 gUnknown_8463FA4[][3] = {0, 11, 10}, }; -static const u8 ALIGNED(4) gUnknown_8463FB8[] = +static const u8 ALIGNED(4) sUnknown_8463FB8[] = { 0, 2, 3, 1, 4, 5 }; -static const s8 gUnknown_8463FBE[] = +static const s8 sUnknown_8463FBE[] = { -1, 0, 1 }; -static const s8 gUnknown_8463FC1[] = +static const s8 sUnknown_8463FC1[] = { -2, -1, 0, 1, 2 }; -static const s8 gUnknown_8463FC6[] = +static const s8 sUnknown_8463FC6[] = { -3, -2, -1, 0, 1, 2, 3 }; -static const s8 gUnknown_8463FCD[] = +static const s8 sUnknown_8463FCD[] = { -5, -3, -1, 0, 1, 3, 5 }; -static const s8 gUnknown_8463FD4[] = +static const s8 sUnknown_8463FD4[] = { 1, 1, 0, -1, -1, 0, -1, -1, 0, 1, 1 }; -static const s8 gUnknown_8463FDF[] = +static const s8 sUnknown_8463FDF[] = { 2, 1, 0, -1, -2, 0, -2, -1, 0, 1, 2 }; -static const s8 gUnknown_8463FEA[] = +static const s8 sUnknown_8463FEA[] = { 2, 1, 1, 0, -1, -1, -2, 0, -2, -1, -1, 0, 1, 1, 2 }; -static const u16 * const gUnknown_8463FFC[] = +static const u16 * const sUnknown_8463FFC[] = { gUnknown_8E9B578, - gUnknown_8463AAC, - gUnknown_8463ACC, + sUnknown_8463AAC, + sUnknown_8463ACC, }; @@ -956,87 +956,87 @@ static const u16 * const gUnknown_8463FFC[] = void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, MainCallback savedCallback, u8 mode) { - gMonSummaryScreen = AllocZeroed(sizeof(struct PokemonSummaryScreenData)); - gUnknown_203B144 = AllocZeroed(sizeof(struct Struct203B144)); + sMonSummaryScreen = AllocZeroed(sizeof(struct PokemonSummaryScreenData)); + sUnknown_203B144 = AllocZeroed(sizeof(struct Struct203B144)); - if (gMonSummaryScreen == NULL) + if (sMonSummaryScreen == NULL) { SetMainCallback2(savedCallback); return; } - gLastViewedMonIndex = cursorPos; + sLastViewedMonIndex = cursorPos; - gUnknown_203B16D = 0; - gUnknown_203B16E = 0; - gMonSummaryScreen->savedCallback = savedCallback; - gMonSummaryScreen->monList.mons = party; + sUnknown_203B16D = 0; + sUnknown_203B16E = 0; + sMonSummaryScreen->savedCallback = savedCallback; + sMonSummaryScreen->monList.mons = party; if (party == gEnemyParty) - gMonSummaryScreen->isEnemyParty = TRUE; + sMonSummaryScreen->isEnemyParty = TRUE; else - gMonSummaryScreen->isEnemyParty = FALSE; + sMonSummaryScreen->isEnemyParty = FALSE; - gMonSummaryScreen->lastIndex = lastIdx; - gMonSummaryScreen->mode = mode; + sMonSummaryScreen->lastIndex = lastIdx; + sMonSummaryScreen->mode = mode; - switch (gMonSummaryScreen->mode) + switch (sMonSummaryScreen->mode) { case PSS_MODE_NORMAL: default: SetHelpContext(HELPCONTEXT_POKEMON_INFO); - gMonSummaryScreen->curPageIndex = PSS_PAGE_INFO; - gMonSummaryScreen->isBoxMon = FALSE; - gMonSummaryScreen->lockMovesFlag = FALSE; + sMonSummaryScreen->curPageIndex = PSS_PAGE_INFO; + sMonSummaryScreen->isBoxMon = FALSE; + sMonSummaryScreen->lockMovesFlag = FALSE; break; case PSS_MODE_BOX: SetHelpContext(HELPCONTEXT_POKEMON_INFO); - gMonSummaryScreen->curPageIndex = PSS_PAGE_INFO; - gMonSummaryScreen->isBoxMon = TRUE; - gMonSummaryScreen->lockMovesFlag = FALSE; + 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); - gMonSummaryScreen->curPageIndex = PSS_PAGE_MOVES_INFO; - gMonSummaryScreen->isBoxMon = FALSE; - gMonSummaryScreen->lockMovesFlag = TRUE; + sMonSummaryScreen->curPageIndex = PSS_PAGE_MOVES_INFO; + sMonSummaryScreen->isBoxMon = FALSE; + sMonSummaryScreen->lockMovesFlag = TRUE; break; } - gMonSummaryScreen->state3270 = 0; - gMonSummaryScreen->unk3274 = 0; - gMonSummaryScreen->unk3278 = 0; - gMonSummaryScreen->unk327C = 0; + sMonSummaryScreen->state3270 = 0; + sMonSummaryScreen->unk3274 = 0; + sMonSummaryScreen->unk3278 = 0; + sMonSummaryScreen->unk327C = 0; - gMonSummaryScreen->unk3238 = 0; - gMonSummaryScreen->unk323C = 2; - gMonSummaryScreen->unk3240 = 1; - gMonSummaryScreen->unk3244 = FALSE; + sMonSummaryScreen->unk3238 = 0; + sMonSummaryScreen->unk323C = 2; + sMonSummaryScreen->unk3240 = 1; + sMonSummaryScreen->unk3244 = FALSE; - gMonSummaryScreen->unk3228 = 0; - gMonSummaryScreen->unk322C = 1; + sMonSummaryScreen->unk3228 = 0; + sMonSummaryScreen->unk322C = 1; - sub_8138B8C(&gMonSummaryScreen->currentMon); - gMonSummaryScreen->isEgg = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_IS_EGG); - gMonSummaryScreen->isBadEgg = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SANITY_IS_BAD_EGG); + 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 (gMonSummaryScreen->isBadEgg == TRUE) - gMonSummaryScreen->isEgg = TRUE; + if (sMonSummaryScreen->isBadEgg == TRUE) + sMonSummaryScreen->isEgg = TRUE; - gMonSummaryScreen->unk3300[0] = 0xff; + 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); - gMonSummaryScreen->unk325A[4] = a4; + sMonSummaryScreen->unk325A[4] = a4; } u8 sub_813476C(u8 a0) { - if (gMonSummaryScreen->unk301C == TRUE && gMonSummaryScreen->unk3224 != a0) + if (sMonSummaryScreen->unk301C == TRUE && sMonSummaryScreen->unk3224 != a0) return TRUE; return FALSE; @@ -1044,12 +1044,12 @@ u8 sub_813476C(u8 a0) u32 sub_81347A4(u8 a0) { - if (gMonSummaryScreen->isEgg) + if (sMonSummaryScreen->isEgg) return FALSE; - if (gMonSummaryScreen->unk3300[0] != 0xff && gMonSummaryScreen->unk3300[0] == a0) + if (sMonSummaryScreen->unk3300[0] != 0xff && sMonSummaryScreen->unk3300[0] == a0) { - gMonSummaryScreen->unk3300[0] = 0xff; + sMonSummaryScreen->unk3300[0] = 0xff; return TRUE; } @@ -1081,20 +1081,20 @@ u32 sub_81347A4(u8 a0) void sub_8134840(u8 taskId) { - switch (gMonSummaryScreen->state3270) { + switch (sMonSummaryScreen->state3270) { case PSS_STATE3270_0: BeginNormalPaletteFade(0xffffffff, 0, 16, 0, 0); - gMonSummaryScreen->state3270 = PSS_STATE3270_1; + sMonSummaryScreen->state3270 = PSS_STATE3270_1; break; case PSS_STATE3270_1: if (!gPaletteFade.active) { sub_813B784(); - gMonSummaryScreen->state3270 = PSS_STATE3270_2; + sMonSummaryScreen->state3270 = PSS_STATE3270_2; return; } - gMonSummaryScreen->state3270 = PSS_STATE3270_1; + sMonSummaryScreen->state3270 = PSS_STATE3270_1; break; case PSS_STATE3270_2: if (MenuHelpers_CallLinkSomething() == TRUE) @@ -1104,23 +1104,23 @@ void sub_8134840(u8 taskId) else if (FuncIsActiveTask(sub_813B3F0)) return; - if (gMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) + if (sMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) { if (sub_81347A4(1) == TRUE) { if (FuncIsActiveTask(sub_8134BAC)) { - gMonSummaryScreen->unk3300[0] = 1; + sMonSummaryScreen->unk3300[0] = 1; return; } - else if (gMonSummaryScreen->curPageIndex < PSS_PAGE_MOVES) + else if (sMonSummaryScreen->curPageIndex < PSS_PAGE_MOVES) { PlaySE(SE_SELECT); HideBg(0); - gMonSummaryScreen->unk3224 = 1; - sub_8138414(gMonSummaryScreen->curPageIndex); - gMonSummaryScreen->curPageIndex++; - gMonSummaryScreen->state3270 = PSS_STATE3270_3; + sMonSummaryScreen->unk3224 = 1; + sub_8138414(sMonSummaryScreen->curPageIndex); + sMonSummaryScreen->curPageIndex++; + sMonSummaryScreen->state3270 = PSS_STATE3270_3; } return; } @@ -1128,17 +1128,17 @@ void sub_8134840(u8 taskId) { if (FuncIsActiveTask(sub_8134BAC)) { - gMonSummaryScreen->unk3300[0] = 0; + sMonSummaryScreen->unk3300[0] = 0; return; } - else if (gMonSummaryScreen->curPageIndex > PSS_PAGE_INFO) + else if (sMonSummaryScreen->curPageIndex > PSS_PAGE_INFO) { PlaySE(SE_SELECT); HideBg(0); - gMonSummaryScreen->unk3224 = 0; - sub_8138414(gMonSummaryScreen->curPageIndex); - gMonSummaryScreen->curPageIndex--; - gMonSummaryScreen->state3270 = PSS_STATE3270_3; + sMonSummaryScreen->unk3224 = 0; + sub_8138414(sMonSummaryScreen->curPageIndex); + sMonSummaryScreen->curPageIndex--; + sMonSummaryScreen->state3270 = PSS_STATE3270_3; } return; } @@ -1158,42 +1158,42 @@ void sub_8134840(u8 taskId) } else if (JOY_NEW(A_BUTTON)) { - if (gMonSummaryScreen->curPageIndex == PSS_PAGE_INFO) + if (sMonSummaryScreen->curPageIndex == PSS_PAGE_INFO) { PlaySE(SE_SELECT); - gMonSummaryScreen->state3270 = PSS_STATE3270_4; + sMonSummaryScreen->state3270 = PSS_STATE3270_4; } - else if (gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES) + else if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES) { PlaySE(SE_SELECT); - gMonSummaryScreen->unk3224 = 1; - sub_8138414(gMonSummaryScreen->curPageIndex); - gMonSummaryScreen->curPageIndex++; - gMonSummaryScreen->state3270 = PSS_STATE3270_3; + sMonSummaryScreen->unk3224 = 1; + sub_8138414(sMonSummaryScreen->curPageIndex); + sMonSummaryScreen->curPageIndex++; + sMonSummaryScreen->state3270 = PSS_STATE3270_3; } return; } else if (JOY_NEW(B_BUTTON)) { - gMonSummaryScreen->state3270 = PSS_STATE3270_4; + sMonSummaryScreen->state3270 = PSS_STATE3270_4; } } break; case PSS_STATE3270_3: - if (gMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) + if (sMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) { CreateTask(sub_8134BAC, 0); - gMonSummaryScreen->state3270 = PSS_STATE3270_2; + sMonSummaryScreen->state3270 = PSS_STATE3270_2; } else { - gTasks[gMonSummaryScreen->unk3018].func = sub_8134E84; - gMonSummaryScreen->state3270 = PSS_STATE3270_2; + gTasks[sMonSummaryScreen->unk3018].func = sub_8134E84; + sMonSummaryScreen->state3270 = PSS_STATE3270_2; } break; case PSS_STATE3270_4: BeginNormalPaletteFade(0xffffffff, 0, 0, 16, 0); - gMonSummaryScreen->state3270 = PSS_STATE3270_5; + sMonSummaryScreen->state3270 = PSS_STATE3270_5; break; case PSS_STATE3270_5: if (Overworld_LinkRecvQueueLengthMoreThan2() == TRUE) @@ -1201,7 +1201,7 @@ void sub_8134840(u8 taskId) else if (sub_800B270() == TRUE) return; - gMonSummaryScreen->state3270 = PSS_STATE3270_6; + sMonSummaryScreen->state3270 = PSS_STATE3270_6; break; default: if (!gPaletteFade.active) @@ -1220,15 +1220,15 @@ static void sub_8134BAC(u8 taskId) case 0: sub_8135638(); sub_81356EC(); - gMonSummaryScreen->lockMovesFlag = TRUE; - gMonSummaryScreen->unk301C = TRUE; - sub_813B750(gMonSummaryScreen->curPageIndex); - sub_8138280(gMonSummaryScreen->curPageIndex); + sMonSummaryScreen->lockMovesFlag = TRUE; + sMonSummaryScreen->unk301C = TRUE; + sub_813B750(sMonSummaryScreen->curPageIndex); + sub_8138280(sMonSummaryScreen->curPageIndex); break; case 1: - if (gMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) + if (sMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) { - if (!(gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES && gMonSummaryScreen->unk3224 == 0)) + if (!(sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES && sMonSummaryScreen->unk3224 == 0)) { FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); CopyBgTilemapBufferToVram(0); @@ -1243,12 +1243,12 @@ static void sub_8134BAC(u8 taskId) sub_8135AA4(); sub_8135B90(); sub_8138538(); - sub_8137D28(gMonSummaryScreen->curPageIndex); + sub_8137D28(sMonSummaryScreen->curPageIndex); break; case 3: - CopyWindowToVram(gMonSummaryScreen->unk3000[0], 2); - CopyWindowToVram(gMonSummaryScreen->unk3000[1], 2); - CopyWindowToVram(gMonSummaryScreen->unk3000[2], 2); + CopyWindowToVram(sMonSummaryScreen->unk3000[0], 2); + CopyWindowToVram(sMonSummaryScreen->unk3000[1], 2); + CopyWindowToVram(sMonSummaryScreen->unk3000[2], 2); break; case 4: if (!IsDma3ManagerBusyWithBgCopy()) @@ -1263,26 +1263,26 @@ static void sub_8134BAC(u8 taskId) break; case 5: sub_8135514(); - gMonSummaryScreen->unk3244 = TRUE; + sMonSummaryScreen->unk3244 = TRUE; break; case 6: - if (!sub_81357A0(gMonSummaryScreen->unk3224)) + if (!sub_81357A0(sMonSummaryScreen->unk3224)) return; break; case 7: sub_8136F4C(); - if (gMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) + if (sMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) sub_81374E8(); sub_8137BD0(); sub_8138A38(); break; case 8: - CopyWindowToVram(gMonSummaryScreen->unk3000[3], 2); - CopyWindowToVram(gMonSummaryScreen->unk3000[4], 2); - CopyWindowToVram(gMonSummaryScreen->unk3000[5], 2); - CopyWindowToVram(gMonSummaryScreen->unk3000[6], 2); + 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()) @@ -1297,13 +1297,13 @@ static void sub_8134BAC(u8 taskId) default: sub_8138440(); - if (gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO) - gTasks[gMonSummaryScreen->unk3018].func = sub_8138CD8; + if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO) + gTasks[sMonSummaryScreen->unk3018].func = sub_8138CD8; DestroyTask(taskId); data[0] = 0; - gMonSummaryScreen->lockMovesFlag = FALSE; - gMonSummaryScreen->unk301C = FALSE; + sMonSummaryScreen->lockMovesFlag = FALSE; + sMonSummaryScreen->unk301C = FALSE; return; } @@ -1312,17 +1312,17 @@ static void sub_8134BAC(u8 taskId) static void sub_8134E84(u8 taskId) { - switch (gMonSummaryScreen->unk3284) + switch (sMonSummaryScreen->unk3284) { case 0: - gMonSummaryScreen->lockMovesFlag = TRUE; - gMonSummaryScreen->unk301C = TRUE; - sub_8138280(gMonSummaryScreen->curPageIndex); + sMonSummaryScreen->lockMovesFlag = TRUE; + sMonSummaryScreen->unk301C = TRUE; + sub_8138280(sMonSummaryScreen->curPageIndex); break; case 1: - if (gMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) + if (sMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) { - if (!(gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES && gMonSummaryScreen->unk3224 == 0)) + if (!(sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES && sMonSummaryScreen->unk3224 == 0)) { FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); CopyBgTilemapBufferToVram(0); @@ -1336,7 +1336,7 @@ static void sub_8134E84(u8 taskId) break; case 2: sub_8135638(); - sub_813B750(gMonSummaryScreen->curPageIndex); + sub_813B750(sMonSummaryScreen->curPageIndex); sub_8135B90(); sub_8138538(); sub_8135AA4(); @@ -1350,8 +1350,8 @@ static void sub_8134E84(u8 taskId) break; case 4: - CopyWindowToVram(gMonSummaryScreen->unk3000[0], 2); - CopyWindowToVram(gMonSummaryScreen->unk3000[1], 2); + CopyWindowToVram(sMonSummaryScreen->unk3000[0], 2); + CopyWindowToVram(sMonSummaryScreen->unk3000[1], 2); break; case 5: if (!IsDma3ManagerBusyWithBgCopy()) @@ -1367,26 +1367,26 @@ static void sub_8134E84(u8 taskId) case 6: sub_8136F4C(); sub_8137BD0(); - CopyWindowToVram(gMonSummaryScreen->unk3000[3], 2); - CopyWindowToVram(gMonSummaryScreen->unk3000[5], 2); + CopyWindowToVram(sMonSummaryScreen->unk3000[3], 2); + CopyWindowToVram(sMonSummaryScreen->unk3000[5], 2); break; case 7: if (!IsDma3ManagerBusyWithBgCopy()) { CopyBgTilemapBufferToVram(0); sub_8135514(); - gMonSummaryScreen->unk3244 = TRUE; + sMonSummaryScreen->unk3244 = TRUE; } else return; break; case 8: - if (!sub_81357A0(gMonSummaryScreen->unk3224)) + if (!sub_81357A0(sMonSummaryScreen->unk3224)) return; sub_81374E8(); - CopyWindowToVram(gMonSummaryScreen->unk3000[4], 2); + CopyWindowToVram(sMonSummaryScreen->unk3000[4], 2); break; case 9: sub_8138A38(); @@ -1394,8 +1394,8 @@ static void sub_8134E84(u8 taskId) break; case 10: sub_81356EC(); - CopyWindowToVram(gMonSummaryScreen->unk3000[6], 2); - CopyWindowToVram(gMonSummaryScreen->unk3000[2], 2); + CopyWindowToVram(sMonSummaryScreen->unk3000[6], 2); + CopyWindowToVram(sMonSummaryScreen->unk3000[2], 2); break; case 11: if (!IsDma3ManagerBusyWithBgCopy()) @@ -1410,29 +1410,29 @@ static void sub_8134E84(u8 taskId) break; default: sub_8138440(); - gTasks[gMonSummaryScreen->unk3018].func = sub_8138CD8; - gMonSummaryScreen->unk3284 = 0; - gMonSummaryScreen->lockMovesFlag = FALSE; - gMonSummaryScreen->unk301C = FALSE; + gTasks[sMonSummaryScreen->unk3018].func = sub_8138CD8; + sMonSummaryScreen->unk3284 = 0; + sMonSummaryScreen->lockMovesFlag = FALSE; + sMonSummaryScreen->unk301C = FALSE; return; } - gMonSummaryScreen->unk3284++; + sMonSummaryScreen->unk3284++; return; } void sub_81351A0(u8 taskId) { - switch (gMonSummaryScreen->unk3284) + switch (sMonSummaryScreen->unk3284) { case 0: - gMonSummaryScreen->lockMovesFlag = TRUE; - gMonSummaryScreen->unk301C = TRUE; - sub_8138280(gMonSummaryScreen->curPageIndex); + sMonSummaryScreen->lockMovesFlag = TRUE; + sMonSummaryScreen->unk301C = TRUE; + sub_8138280(sMonSummaryScreen->curPageIndex); break; case 1: - if (gMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) { - if (!(gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES && gMonSummaryScreen->unk3224 == 0)) + 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); @@ -1451,9 +1451,9 @@ void sub_81351A0(u8 taskId) sub_8136F4C(); sub_81374E8(); sub_8137BD0(); - CopyWindowToVram(gMonSummaryScreen->unk3000[3], 2); - CopyWindowToVram(gMonSummaryScreen->unk3000[4], 2); - CopyWindowToVram(gMonSummaryScreen->unk3000[5], 2); + CopyWindowToVram(sMonSummaryScreen->unk3000[3], 2); + CopyWindowToVram(sMonSummaryScreen->unk3000[4], 2); + CopyWindowToVram(sMonSummaryScreen->unk3000[5], 2); CopyBgTilemapBufferToVram(0); break; case 4: @@ -1461,29 +1461,29 @@ void sub_81351A0(u8 taskId) sub_8136DF0(gUnknown_8419C82); break; case 5: - CopyWindowToVram(gMonSummaryScreen->unk3000[0], 2); - CopyWindowToVram(gMonSummaryScreen->unk3000[1], 2); + CopyWindowToVram(sMonSummaryScreen->unk3000[0], 2); + CopyWindowToVram(sMonSummaryScreen->unk3000[1], 2); CopyBgTilemapBufferToVram(2); CopyBgTilemapBufferToVram(1); break; case 6: sub_8135514(); - gMonSummaryScreen->unk3244 = TRUE; + sMonSummaryScreen->unk3244 = TRUE; sub_8135638(); - sub_813B750(gMonSummaryScreen->curPageIndex); + sub_813B750(sMonSummaryScreen->curPageIndex); sub_8138A38(); break; case 7: break; case 8: - if (sub_81357A0(gMonSummaryScreen->unk3224) == 0) + if (sub_81357A0(sMonSummaryScreen->unk3224) == 0) return; sub_8136E50(gUnknown_8419C45); break; case 9: - CopyWindowToVram(gMonSummaryScreen->unk3000[6], 2); - CopyWindowToVram(gMonSummaryScreen->unk3000[2], 2); + CopyWindowToVram(sMonSummaryScreen->unk3000[6], 2); + CopyWindowToVram(sMonSummaryScreen->unk3000[2], 2); CopyBgTilemapBufferToVram(0); CopyBgTilemapBufferToVram(2); CopyBgTilemapBufferToVram(1); @@ -1496,14 +1496,14 @@ void sub_81351A0(u8 taskId) break; default: sub_8138440(); - gTasks[gMonSummaryScreen->unk3018].func = sub_8134840; - gMonSummaryScreen->unk3284 = 0; - gMonSummaryScreen->lockMovesFlag = FALSE; - gMonSummaryScreen->unk301C = FALSE; + gTasks[sMonSummaryScreen->unk3018].func = sub_8134840; + sMonSummaryScreen->unk3284 = 0; + sMonSummaryScreen->lockMovesFlag = FALSE; + sMonSummaryScreen->unk301C = FALSE; return; } - gMonSummaryScreen->unk3284++; + sMonSummaryScreen->unk3284++; return; } @@ -1512,13 +1512,13 @@ void sub_813546C(void) u8 i; for (i = 0; i < 11; i++) { - gUnknown_203B160->unk2C[i] = (8 * i) + 396; - gUnknown_203B160->sprites[i]->pos1.x = gUnknown_203B160->unk2C[i]; + sUnknown_203B160->unk2C[i] = (8 * i) + 396; + sUnknown_203B160->sprites[i]->pos1.x = sUnknown_203B160->unk2C[i]; if (i >= 9) continue; - gUnknown_203B15C->unk28[i] = (8 * i) + 412; - gUnknown_203B15C->sprites[i]->pos1.x = gUnknown_203B15C->unk28[i]; + sUnknown_203B15C->unk28[i] = (8 * i) + 412; + sUnknown_203B15C->sprites[i]->pos1.x = sUnknown_203B15C->unk28[i]; } } @@ -1527,12 +1527,12 @@ void sub_81354C4(void) u8 i; for (i = 0; i < 11; i++) { - gUnknown_203B160->unk2C[i] = (8 * i) + 156; - gUnknown_203B160->sprites[i]->pos1.x = gUnknown_203B160->unk2C[i]; + sUnknown_203B160->unk2C[i] = (8 * i) + 156; + sUnknown_203B160->sprites[i]->pos1.x = sUnknown_203B160->unk2C[i]; if (i >= 9) continue; - gUnknown_203B15C->unk28[i] = (8 * i) + 172; - gUnknown_203B15C->sprites[i]->pos1.x = gUnknown_203B15C->unk28[i]; + sUnknown_203B15C->unk28[i] = (8 * i) + 172; + sUnknown_203B15C->sprites[i]->pos1.x = sUnknown_203B15C->unk28[i]; } } @@ -1540,27 +1540,27 @@ void sub_8135514(void) { s8 pageDelta = 1; - if (gMonSummaryScreen->unk3224 == 1) + if (sMonSummaryScreen->unk3224 == 1) pageDelta = -1; - if (gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO) + if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO) { - gMonSummaryScreen->unk324C = 240; + sMonSummaryScreen->unk324C = 240; return; } - if ((gMonSummaryScreen->curPageIndex + pageDelta) == PSS_PAGE_MOVES_INFO) + if ((sMonSummaryScreen->curPageIndex + pageDelta) == PSS_PAGE_MOVES_INFO) { sub_81358DC(0, 0); - gMonSummaryScreen->unk324C = 0; + sMonSummaryScreen->unk324C = 0; SetGpuReg(REG_OFFSET_BG1HOFS, 0); SetGpuReg(REG_OFFSET_BG2HOFS, 0); return; } - if (gMonSummaryScreen->unk3224 == 1) + if (sMonSummaryScreen->unk3224 == 1) { - gMonSummaryScreen->unk324C = 0; + sMonSummaryScreen->unk324C = 0; SetGpuReg(REG_OFFSET_BG0HOFS, 0); SetGpuReg(REG_OFFSET_BG1HOFS, 0); SetGpuReg(REG_OFFSET_BG2HOFS, 0); @@ -1570,7 +1570,7 @@ void sub_8135514(void) { u32 bg1Priority = GetGpuReg(REG_OFFSET_BG1CNT) & 3; u32 bg2Priority = GetGpuReg(REG_OFFSET_BG2CNT) & 3; - gMonSummaryScreen->unk324C = 240; + sMonSummaryScreen->unk324C = 240; if (bg1Priority > bg2Priority) SetGpuReg(REG_OFFSET_BG1HOFS, 240); @@ -1581,14 +1581,14 @@ void sub_8135514(void) sub_81358DC(1, 0); } - if (gMonSummaryScreen->curPageIndex == PSS_PAGE_SKILLS) + if (sMonSummaryScreen->curPageIndex == PSS_PAGE_SKILLS) { - if (gMonSummaryScreen->unk3224 == 1) + if (sMonSummaryScreen->unk3224 == 1) sub_81354C4(); else sub_813546C(); } - else if (gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES) + else if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES) sub_81354C4(); } @@ -1597,10 +1597,10 @@ void sub_8135638(void) { u8 newPage; - if (gMonSummaryScreen->unk3224 == 1) - newPage = gMonSummaryScreen->curPageIndex - 1; + if (sMonSummaryScreen->unk3224 == 1) + newPage = sMonSummaryScreen->curPageIndex - 1; else - newPage = gMonSummaryScreen->curPageIndex + 1; + newPage = sMonSummaryScreen->curPageIndex + 1; switch (newPage) { @@ -1611,7 +1611,7 @@ void sub_8135638(void) sub_813AB70(1); break; case PSS_PAGE_MOVES: - if (gMonSummaryScreen->unk3224 == 1) + if (sMonSummaryScreen->unk3224 == 1) { sub_8139C44(1); sub_813B084(1); @@ -1636,10 +1636,10 @@ void sub_81356EC(void) { u8 newPage; - if (gMonSummaryScreen->unk3224 == 1) - newPage = gMonSummaryScreen->curPageIndex - 1; + if (sMonSummaryScreen->unk3224 == 1) + newPage = sMonSummaryScreen->curPageIndex - 1; else - newPage = gMonSummaryScreen->curPageIndex + 1; + newPage = sMonSummaryScreen->curPageIndex + 1; switch (newPage) { @@ -1650,7 +1650,7 @@ void sub_81356EC(void) case PSS_PAGE_SKILLS: break; case PSS_PAGE_MOVES: - if (gMonSummaryScreen->unk3224 == 0) + if (sMonSummaryScreen->unk3224 == 0) { sub_813A838(0); sub_813AB70(0); @@ -1679,44 +1679,44 @@ u8 sub_81357A0(u8 a0) { s8 pageDelta = 1; - if (gMonSummaryScreen->unk3224 == 1) + if (sMonSummaryScreen->unk3224 == 1) pageDelta = -1; - if (gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO) - if (gMonSummaryScreen->unk324C <= 0) + if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO) + if (sMonSummaryScreen->unk324C <= 0) { - gMonSummaryScreen->unk324C = 0; - gMonSummaryScreen->unk3238 ^= 1; + sMonSummaryScreen->unk324C = 0; + sMonSummaryScreen->unk3238 ^= 1; sub_81358DC(0, 0); - gMonSummaryScreen->unk3244 = FALSE; + sMonSummaryScreen->unk3244 = FALSE; return TRUE; } - if ((gMonSummaryScreen->curPageIndex + pageDelta) == PSS_PAGE_MOVES_INFO) - if (gMonSummaryScreen->unk324C >= 240) + if ((sMonSummaryScreen->curPageIndex + pageDelta) == PSS_PAGE_MOVES_INFO) + if (sMonSummaryScreen->unk324C >= 240) { - gMonSummaryScreen->unk324C = 240; - gMonSummaryScreen->unk3238 ^= 1; - gMonSummaryScreen->unk3244 = FALSE; + sMonSummaryScreen->unk324C = 240; + sMonSummaryScreen->unk3238 ^= 1; + sMonSummaryScreen->unk3244 = FALSE; return TRUE; } - if (gMonSummaryScreen->unk3224 == 1) + if (sMonSummaryScreen->unk3224 == 1) { - if (gMonSummaryScreen->unk324C >= 240) + if (sMonSummaryScreen->unk324C >= 240) { - gMonSummaryScreen->unk324C = 240; - gMonSummaryScreen->unk3238 ^= 1; + sMonSummaryScreen->unk324C = 240; + sMonSummaryScreen->unk3238 ^= 1; sub_81358DC(0, 0); - gMonSummaryScreen->unk3244 = FALSE; + sMonSummaryScreen->unk3244 = FALSE; return TRUE; } } - else if (gMonSummaryScreen->unk324C <= 0) + else if (sMonSummaryScreen->unk324C <= 0) { - gMonSummaryScreen->unk3238 ^= 1; - gMonSummaryScreen->unk324C = 0; - gMonSummaryScreen->unk3244 = FALSE; + sMonSummaryScreen->unk3238 ^= 1; + sMonSummaryScreen->unk324C = 0; + sMonSummaryScreen->unk3244 = FALSE; return TRUE; } @@ -1734,7 +1734,7 @@ void sub_81358DC(u8 a0, u8 a1) bg1Priority = GetGpuReg(REG_OFFSET_BG1CNT) & 3; bg2Priority = GetGpuReg(REG_OFFSET_BG2CNT) & 3; - if (gMonSummaryScreen->unk3224 == 1) + if (sMonSummaryScreen->unk3224 == 1) { if (a0 == 0) { @@ -1776,7 +1776,7 @@ void sub_81358DC(u8 a0, u8 a1) } } - if (gMonSummaryScreen->unk3224 == 0) + if (sMonSummaryScreen->unk3224 == 0) { bg0Priority = 0; if (bg1Priority > bg2Priority) @@ -1787,18 +1787,18 @@ void sub_81358DC(u8 a0, u8 a1) for (i = 0; i < 11; i++) { - if (gMonSummaryScreen->curPageIndex == PSS_PAGE_SKILLS && gMonSummaryScreen->unk3224 == 1) - gUnknown_203B160->sprites[i]->oam.priority = bg0Priority; + if (sMonSummaryScreen->curPageIndex == PSS_PAGE_SKILLS && sMonSummaryScreen->unk3224 == 1) + sUnknown_203B160->sprites[i]->oam.priority = bg0Priority; else - gUnknown_203B160->sprites[i]->oam.priority = bg1Priority; + sUnknown_203B160->sprites[i]->oam.priority = bg1Priority; if (i >= 9) continue; - if (gMonSummaryScreen->curPageIndex == PSS_PAGE_SKILLS && gMonSummaryScreen->unk3224 == 1) - gUnknown_203B15C->sprites[i]->oam.priority = bg0Priority; + if (sMonSummaryScreen->curPageIndex == PSS_PAGE_SKILLS && sMonSummaryScreen->unk3224 == 1) + sUnknown_203B15C->sprites[i]->oam.priority = bg0Priority; else - gUnknown_203B15C->sprites[i]->oam.priority = bg1Priority; + sUnknown_203B15C->sprites[i]->oam.priority = bg1Priority; } SetGpuReg(REG_OFFSET_BG0CNT, (GetGpuReg(REG_OFFSET_BG0CNT) & 0xfffc) | bg0Priority); @@ -1810,32 +1810,32 @@ void sub_8135AA4(void) { u8 newPage; - if (gMonSummaryScreen->unk3224 == 1) - newPage = gMonSummaryScreen->curPageIndex - 1; + if (sMonSummaryScreen->unk3224 == 1) + newPage = sMonSummaryScreen->curPageIndex - 1; else - newPage = gMonSummaryScreen->curPageIndex + 1; + newPage = sMonSummaryScreen->curPageIndex + 1; switch (newPage) { case PSS_PAGE_INFO: - CopyToBgTilemapBuffer(gMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0); + CopyToBgTilemapBuffer(sMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0); break; case PSS_PAGE_SKILLS: - if (gMonSummaryScreen->unk3224 == 1) - CopyToBgTilemapBuffer(gMonSummaryScreen->unk323C, gUnknown_8E9B950, 0, 0); + if (sMonSummaryScreen->unk3224 == 1) + CopyToBgTilemapBuffer(sMonSummaryScreen->unk323C, gUnknown_8E9B950, 0, 0); else - CopyToBgTilemapBuffer(gMonSummaryScreen->unk323C, gUnknown_8E9B598, 0, 0); + CopyToBgTilemapBuffer(sMonSummaryScreen->unk323C, gUnknown_8E9B598, 0, 0); break; case PSS_PAGE_MOVES: - if (gMonSummaryScreen->unk3224 == 1) - CopyToBgTilemapBuffer(gMonSummaryScreen->unk3240, gUnknown_8E9BA9C, 0, 0); + if (sMonSummaryScreen->unk3224 == 1) + CopyToBgTilemapBuffer(sMonSummaryScreen->unk3240, gUnknown_8E9BA9C, 0, 0); else - CopyToBgTilemapBuffer(gMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0); + CopyToBgTilemapBuffer(sMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0); break; case PSS_PAGE_MOVES_INFO: - CopyToBgTilemapBuffer(gMonSummaryScreen->unk323C, gUnknown_8E9B950, 0, 0); + CopyToBgTilemapBuffer(sMonSummaryScreen->unk323C, gUnknown_8E9B950, 0, 0); break; } } @@ -1844,34 +1844,34 @@ void sub_8135B90(void) { u8 newPage; - if (gMonSummaryScreen->unk3224 == 1) - newPage = gMonSummaryScreen->curPageIndex - 1; + if (sMonSummaryScreen->unk3224 == 1) + newPage = sMonSummaryScreen->curPageIndex - 1; else - newPage = gMonSummaryScreen->curPageIndex + 1; + newPage = sMonSummaryScreen->curPageIndex + 1; switch (newPage) { case PSS_PAGE_INFO: - CopyToBgTilemapBuffer(gMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0); + CopyToBgTilemapBuffer(sMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0); break; case PSS_PAGE_SKILLS: break; case PSS_PAGE_MOVES: - if (gMonSummaryScreen->unk3224 == 1) - CopyToBgTilemapBuffer(3, gUnknown_8463C80, 0, 0); + if (sMonSummaryScreen->unk3224 == 1) + CopyToBgTilemapBuffer(3, sUnknown_8463C80, 0, 0); else - CopyToBgTilemapBuffer(3, gUnknown_8463B88, 0, 0); + CopyToBgTilemapBuffer(3, sUnknown_8463B88, 0, 0); break; case PSS_PAGE_MOVES_INFO: - CopyToBgTilemapBuffer(3, gUnknown_8463B88, 0, 0); + CopyToBgTilemapBuffer(3, sUnknown_8463B88, 0, 0); break; } } void sub_8135C34(void) { - switch (gMonSummaryScreen->unk3274) + switch (sMonSummaryScreen->unk3274) { case 0: sub_81381AC(); @@ -1908,45 +1908,45 @@ void sub_8135C34(void) sub_8138A38(); break; case 10: - if (gMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE || gMonSummaryScreen->mode == PSS_MODE_FORGET_MOVE) - CopyToBgTilemapBuffer(3, gUnknown_8463C80, 0, 0); + if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE || sMonSummaryScreen->mode == PSS_MODE_FORGET_MOVE) + CopyToBgTilemapBuffer(3, sUnknown_8463C80, 0, 0); else - CopyToBgTilemapBuffer(3, gUnknown_8463B88, 0, 0); + CopyToBgTilemapBuffer(3, sUnknown_8463B88, 0, 0); sub_8138538(); break; case 11: - if (gMonSummaryScreen->isEgg) - CopyToBgTilemapBuffer(gMonSummaryScreen->unk323C, gUnknown_8E9BBCC, 0, 0); + if (sMonSummaryScreen->isEgg) + CopyToBgTilemapBuffer(sMonSummaryScreen->unk323C, gUnknown_8E9BBCC, 0, 0); else { - if (gMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE || gMonSummaryScreen->mode == PSS_MODE_FORGET_MOVE) + if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE || sMonSummaryScreen->mode == PSS_MODE_FORGET_MOVE) { - CopyToBgTilemapBuffer(gMonSummaryScreen->unk323C, gUnknown_8E9B950, 0, 0); - CopyToBgTilemapBuffer(gMonSummaryScreen->unk3240, gUnknown_8E9BA9C, 0, 0); + CopyToBgTilemapBuffer(sMonSummaryScreen->unk323C, gUnknown_8E9B950, 0, 0); + CopyToBgTilemapBuffer(sMonSummaryScreen->unk3240, gUnknown_8E9BA9C, 0, 0); } else { - CopyToBgTilemapBuffer(gMonSummaryScreen->unk323C, gUnknown_8E9B598, 0, 0); - CopyToBgTilemapBuffer(gMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0); + CopyToBgTilemapBuffer(sMonSummaryScreen->unk323C, gUnknown_8E9B598, 0, 0); + CopyToBgTilemapBuffer(sMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0); } } break; case 12: BlendPalettes(0xffffffff, 16, 0); - sub_8137D28(gMonSummaryScreen->curPageIndex); + sub_8137D28(sMonSummaryScreen->curPageIndex); sub_8137E28(); break; case 13: BeginNormalPaletteFade(0xffffffff, 0, 16, 0, 0); - CopyWindowToVram(gMonSummaryScreen->unk3000[0], 2); - CopyWindowToVram(gMonSummaryScreen->unk3000[1], 2); - CopyWindowToVram(gMonSummaryScreen->unk3000[2], 2); - CopyWindowToVram(gMonSummaryScreen->unk3000[6], 2); - CopyWindowToVram(gMonSummaryScreen->unk3000[3], 2); - CopyWindowToVram(gMonSummaryScreen->unk3000[4], 2); - CopyWindowToVram(gMonSummaryScreen->unk3000[5], 2); + 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); @@ -1955,7 +1955,7 @@ void sub_8135C34(void) CopyBgTilemapBufferToVram(3); break; case 15: - if (gMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE || gMonSummaryScreen->mode == PSS_MODE_FORGET_MOVE) + if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE || sMonSummaryScreen->mode == PSS_MODE_FORGET_MOVE) { sub_8139EE4(0); sub_813A0E8(0); @@ -1979,16 +1979,16 @@ void sub_8135C34(void) return; } - gMonSummaryScreen->unk3274++; + sMonSummaryScreen->unk3274++; } u8 sub_8135F20(void) { - switch (gMonSummaryScreen->unk3278) + switch (sMonSummaryScreen->unk3278) { case 0: LoadPalette(gUnknown_8E9B310, 0, 0x20 * 5); - if (IsMonShiny(&gMonSummaryScreen->currentMon) == TRUE && !gMonSummaryScreen->isEgg) + if (IsMonShiny(&sMonSummaryScreen->currentMon) == TRUE && !sMonSummaryScreen->isEgg) { LoadPalette(&gUnknown_8E9B310[16 * 6], 0, 0x20); LoadPalette(&gUnknown_8E9B310[16 * 5], 0x10, 0x20); @@ -2002,7 +2002,7 @@ u8 sub_8135F20(void) break; case 1: ListMenuLoadStdPalAt(0x60, 1); - LoadPalette(gUnknown_84636C0, 0x70, 0x20); + LoadPalette(sUnknown_84636C0, 0x70, 0x20); break; case 2: ResetTempTileDataBuffers(); @@ -2020,41 +2020,41 @@ u8 sub_8135F20(void) break; default: - LoadPalette(gUnknown_8463700, 0x80, 0x20); + LoadPalette(sUnknown_8463700, 0x80, 0x20); return TRUE; } - gMonSummaryScreen->unk3278++; + sMonSummaryScreen->unk3278++; return FALSE; } u8 sub_8136040(void) { - switch (gMonSummaryScreen->unk3280) + switch (sMonSummaryScreen->unk3280) { case 0: sub_81360D4(); - if (gMonSummaryScreen->isEgg) + if (sMonSummaryScreen->isEgg) { - gMonSummaryScreen->unk3280 = 0; + sMonSummaryScreen->unk3280 = 0; return TRUE; } break; case 1: - if (gMonSummaryScreen->isEgg == 0) + if (sMonSummaryScreen->isEgg == 0) sub_8136350(); break; case 2: - if (gMonSummaryScreen->isEgg == 0) + if (sMonSummaryScreen->isEgg == 0) sub_81367B0(); break; default: - gMonSummaryScreen->unk3280 = 0; + sMonSummaryScreen->unk3280 = 0; return TRUE; } - gMonSummaryScreen->unk3280++; + sMonSummaryScreen->unk3280++; return FALSE; } @@ -2066,64 +2066,64 @@ void sub_81360D4(void) u16 heldItem; u32 otId; - dexNum = SpeciesToPokedexNum(GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SPECIES)); + dexNum = SpeciesToPokedexNum(GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES)); if (dexNum == 0xffff) - StringCopy(gMonSummaryScreen->summary.unk3064, gUnknown_8416202); + StringCopy(sMonSummaryScreen->summary.unk3064, gUnknown_8416202); else - ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk3064, dexNum, STR_CONV_MODE_LEADING_ZEROS, 3); + ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk3064, dexNum, STR_CONV_MODE_LEADING_ZEROS, 3); - gUnknown_203B144->unk00 = 0; + sUnknown_203B144->unk00 = 0; - if (!gMonSummaryScreen->isEgg) + if (!sMonSummaryScreen->isEgg) { - dexNum = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SPECIES); - GetSpeciesName(gMonSummaryScreen->summary.unk3028, dexNum); + dexNum = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES); + GetSpeciesName(sMonSummaryScreen->summary.unk3028, dexNum); } else { - GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_NICKNAME, gMonSummaryScreen->summary.unk3028); + GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_NICKNAME, sMonSummaryScreen->summary.unk3028); return; } - gMonSummaryScreen->unk3220[0] = gBaseStats[dexNum].type1; - gMonSummaryScreen->unk3220[1] = gBaseStats[dexNum].type2; + sMonSummaryScreen->unk3220[0] = gBaseStats[dexNum].type1; + sMonSummaryScreen->unk3220[1] = gBaseStats[dexNum].type2; - GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_NICKNAME, tempStr); - StringCopyN_Multibyte(gMonSummaryScreen->summary.unk3034, tempStr, POKEMON_NAME_LENGTH); - StringGetEnd10(gMonSummaryScreen->summary.unk3034); + GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_NICKNAME, tempStr); + StringCopyN_Multibyte(sMonSummaryScreen->summary.unk3034, tempStr, POKEMON_NAME_LENGTH); + StringGetEnd10(sMonSummaryScreen->summary.unk3034); - gender = GetMonGender(&gMonSummaryScreen->currentMon); - dexNum = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SPECIES2); + gender = GetMonGender(&sMonSummaryScreen->currentMon); + dexNum = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES2); if (gender == MON_FEMALE) - StringCopy(gMonSummaryScreen->summary.unk3084, gText_FemaleSymbol); + StringCopy(sMonSummaryScreen->summary.unk3084, gText_FemaleSymbol); else if (gender == MON_MALE) - StringCopy(gMonSummaryScreen->summary.unk3084, gText_MaleSymbol); + StringCopy(sMonSummaryScreen->summary.unk3084, gText_MaleSymbol); else - StringCopy(gMonSummaryScreen->summary.unk3084, gString_Dummy); + StringCopy(sMonSummaryScreen->summary.unk3084, gString_Dummy); if (dexNum == SPECIES_NIDORAN_M || dexNum == SPECIES_NIDORAN_F) - if (StringCompare(gMonSummaryScreen->summary.unk3034, gSpeciesNames[dexNum]) == 0) - StringCopy(gMonSummaryScreen->summary.unk3084, gString_Dummy); + if (StringCompare(sMonSummaryScreen->summary.unk3034, gSpeciesNames[dexNum]) == 0) + StringCopy(sMonSummaryScreen->summary.unk3084, gString_Dummy); - GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_OT_NAME, tempStr); - StringCopyN_Multibyte(gMonSummaryScreen->summary.unk3040, tempStr, OT_NAME_LENGTH); + GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_OT_NAME, tempStr); + StringCopyN_Multibyte(sMonSummaryScreen->summary.unk3040, tempStr, OT_NAME_LENGTH); - ConvertInternationalString(gMonSummaryScreen->summary.unk3040, GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_LANGUAGE)); + ConvertInternationalString(sMonSummaryScreen->summary.unk3040, GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_LANGUAGE)); - otId = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_OT_ID) & 0xffff; - ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk306C, otId, STR_CONV_MODE_LEADING_ZEROS, 5); + otId = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_OT_ID) & 0xffff; + ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk306C, otId, STR_CONV_MODE_LEADING_ZEROS, 5); - ConvertIntToDecimalStringN(tempStr, GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_LEVEL), STR_CONV_MODE_LEFT_ALIGN, 3); - StringCopy(gMonSummaryScreen->summary.unk3088, gText_Lv); - StringAppendN(gMonSummaryScreen->summary.unk3088, tempStr, 4); + 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(&gMonSummaryScreen->currentMon, MON_DATA_HELD_ITEM); + heldItem = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_HELD_ITEM); if (heldItem == ITEM_NONE) - StringCopy(gMonSummaryScreen->summary.unk3074, gUnknown_84161EF); + StringCopy(sMonSummaryScreen->summary.unk3074, gUnknown_84161EF); else - CopyItemName(heldItem, gMonSummaryScreen->summary.unk3074); + CopyItemName(heldItem, sMonSummaryScreen->summary.unk3074); } #define MACRO_8136350_0(x) (63 - StringLength((x)) * 6) @@ -2140,84 +2140,84 @@ void sub_8136350(void) u32 exp; u32 expToNextLevel; - hp = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_HP); - ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk3090, hp, STR_CONV_MODE_LEFT_ALIGN, 3); - StringAppend(gMonSummaryScreen->summary.unk3090, gText_Slash); + 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(&gMonSummaryScreen->currentMon, MON_DATA_MAX_HP); + hp = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MAX_HP); ConvertIntToDecimalStringN(tempStr, hp, STR_CONV_MODE_LEFT_ALIGN, 3); - StringAppend(gMonSummaryScreen->summary.unk3090, tempStr); + StringAppend(sMonSummaryScreen->summary.unk3090, tempStr); - gUnknown_203B144->unk02 = MACRO_8136350_0(gMonSummaryScreen->summary.unk3090); + sUnknown_203B144->unk02 = MACRO_8136350_0(sMonSummaryScreen->summary.unk3090); - if (gMonSummaryScreen->savedCallback == CB2_ReturnToTradeMenuFromSummary && gMonSummaryScreen->isEnemyParty == TRUE) + if (sMonSummaryScreen->savedCallback == CB2_ReturnToTradeMenuFromSummary && sMonSummaryScreen->isEnemyParty == TRUE) { - statValue = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_ATK2); - ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk309C[PSS_STAT_ATK], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); - gUnknown_203B144->unk04 = MACRO_8136350_1(gMonSummaryScreen->summary.unk309C[PSS_STAT_ATK]); + 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(&gMonSummaryScreen->currentMon, MON_DATA_DEF2); - ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk309C[PSS_STAT_DEF], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); - gUnknown_203B144->unk06 = MACRO_8136350_1(gMonSummaryScreen->summary.unk309C[PSS_STAT_DEF]); + 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(&gMonSummaryScreen->currentMon, MON_DATA_SPATK2); - ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk309C[PSS_STAT_SPA], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); - gUnknown_203B144->unk08 = MACRO_8136350_1(gMonSummaryScreen->summary.unk309C[PSS_STAT_SPA]); + 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(&gMonSummaryScreen->currentMon, MON_DATA_SPDEF2); - ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk309C[PSS_STAT_SPD], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); - gUnknown_203B144->unk0A = MACRO_8136350_1(gMonSummaryScreen->summary.unk309C[PSS_STAT_SPD]); + 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(&gMonSummaryScreen->currentMon, MON_DATA_SPEED2); - ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk309C[PSS_STAT_SPE], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); - gUnknown_203B144->unk0C = MACRO_8136350_1(gMonSummaryScreen->summary.unk309C[PSS_STAT_SPE]); + 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(&gMonSummaryScreen->currentMon, MON_DATA_ATK); - ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk309C[PSS_STAT_ATK], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); - gUnknown_203B144->unk04 = MACRO_8136350_1(gMonSummaryScreen->summary.unk309C[PSS_STAT_ATK]); + 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(&gMonSummaryScreen->currentMon, MON_DATA_DEF); - ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk309C[PSS_STAT_DEF], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); - gUnknown_203B144->unk06 = MACRO_8136350_1(gMonSummaryScreen->summary.unk309C[PSS_STAT_DEF]); + 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(&gMonSummaryScreen->currentMon, MON_DATA_SPATK); - ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk309C[PSS_STAT_SPA], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); - gUnknown_203B144->unk08 = MACRO_8136350_1(gMonSummaryScreen->summary.unk309C[PSS_STAT_SPA]); + 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(&gMonSummaryScreen->currentMon, MON_DATA_SPDEF); - ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk309C[PSS_STAT_SPD], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); - gUnknown_203B144->unk0A = MACRO_8136350_1(gMonSummaryScreen->summary.unk309C[PSS_STAT_SPD]); + 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(&gMonSummaryScreen->currentMon, MON_DATA_SPEED); - ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk309C[PSS_STAT_SPE], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); - gUnknown_203B144->unk0C = MACRO_8136350_1(gMonSummaryScreen->summary.unk309C[PSS_STAT_SPE]); + 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(&gMonSummaryScreen->currentMon, MON_DATA_EXP); - ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk31A4, exp, STR_CONV_MODE_LEFT_ALIGN, 7); - gUnknown_203B144->unk0E = MACRO_8136350_0(gMonSummaryScreen->summary.unk31A4); + 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(&gMonSummaryScreen->currentMon, MON_DATA_LEVEL); + level = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_LEVEL); expToNextLevel = 0; if (level < 100) { - species = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SPECIES); + species = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES); expToNextLevel = gExperienceTables[gBaseStats[species].growthRate][level + 1] - exp; } - ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk31B0, expToNextLevel, STR_CONV_MODE_LEFT_ALIGN, 7); - gUnknown_203B144->unk10 = MACRO_8136350_0(gMonSummaryScreen->summary.unk31B0); + ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk31B0, expToNextLevel, STR_CONV_MODE_LEFT_ALIGN, 7); + sUnknown_203B144->unk10 = MACRO_8136350_0(sMonSummaryScreen->summary.unk31B0); - type = GetAbilityBySpecies(GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SPECIES), GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_ABILITY_NUM)); - StringCopy(gMonSummaryScreen->summary.unk31BC, gAbilityNames[type]); - StringCopy(gMonSummaryScreen->summary.unk31CC, gAbilityDescriptionPointers[type]); + 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]); - gMonSummaryScreen->unk326C = sub_8138C5C(GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_STATUS)); - if (gMonSummaryScreen->unk326C == AILMENT_NONE) - if (CheckPartyPokerus(&gMonSummaryScreen->currentMon, 0)) - gMonSummaryScreen->unk326C = AILMENT_PKRS; + sMonSummaryScreen->unk326C = sub_8138C5C(GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_STATUS)); + if (sMonSummaryScreen->unk326C == AILMENT_NONE) + if (CheckPartyPokerus(&sMonSummaryScreen->currentMon, 0)) + sMonSummaryScreen->unk326C = AILMENT_PKRS; } void sub_81367B0(void) @@ -2227,7 +2227,7 @@ void sub_81367B0(void) for (i = 0; i < 4; i++) sub_81367E8(i); - if (gMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) sub_81367E8(4); } @@ -2236,56 +2236,56 @@ void sub_81367B0(void) void sub_81367E8(u8 i) { if (i < 4) - gMonSummaryScreen->unk325A[i] = sub_8138BEC(&gMonSummaryScreen->currentMon, i); + sMonSummaryScreen->unk325A[i] = sub_8138BEC(&sMonSummaryScreen->currentMon, i); - if (gMonSummaryScreen->unk325A[i] == 0) + if (sMonSummaryScreen->unk325A[i] == 0) { - StringCopy(gMonSummaryScreen->summary.unk3128[i], gUnknown_841620E); - StringCopy(gMonSummaryScreen->summary.unk30B8[i], gUnknown_8416210); - StringCopy(gMonSummaryScreen->summary.unk316C[i], gText_ThreeHyphens); - StringCopy(gMonSummaryScreen->summary.unk3188[i], gText_ThreeHyphens); - gUnknown_203B144->unk12[i] = 0xff; - gUnknown_203B144->unk1C[i] = 0xff; + 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; } - gMonSummaryScreen->unk3264++; - gMonSummaryScreen->unk3250[i] = gBattleMoves[gMonSummaryScreen->unk325A[i]].type; - StringCopy(gMonSummaryScreen->summary.unk3128[i], gMoveNames[gMonSummaryScreen->unk325A[i]]); + sMonSummaryScreen->unk3264++; + sMonSummaryScreen->unk3250[i] = gBattleMoves[sMonSummaryScreen->unk325A[i]].type; + StringCopy(sMonSummaryScreen->summary.unk3128[i], gMoveNames[sMonSummaryScreen->unk325A[i]]); - if (i >= 4 && gMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) + if (i >= 4 && sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) { - ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk30B8[i], - gBattleMoves[gMonSummaryScreen->unk325A[i]].pp, STR_CONV_MODE_LEFT_ALIGN, 3); - ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk30F0[i], - gBattleMoves[gMonSummaryScreen->unk325A[i]].pp, STR_CONV_MODE_LEFT_ALIGN, 3); + 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(gMonSummaryScreen->summary.unk30B8[i], - sub_8138C24(&gMonSummaryScreen->currentMon, i), STR_CONV_MODE_LEFT_ALIGN, 3); - ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk30F0[i], - CalculatePPWithBonus(gMonSummaryScreen->unk325A[i], GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_PP_BONUSES), i), + 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); } - gUnknown_203B144->unk12[i] = MACRO_81367E8_0(2, gMonSummaryScreen->summary.unk30B8[i]); - gUnknown_203B144->unk1C[i] = MACRO_81367E8_0(2, gMonSummaryScreen->summary.unk30F0[i]); + 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[gMonSummaryScreen->unk325A[i]].power <= 1) - StringCopy(gMonSummaryScreen->summary.unk316C[i], gText_ThreeHyphens); + if (gBattleMoves[sMonSummaryScreen->unk325A[i]].power <= 1) + StringCopy(sMonSummaryScreen->summary.unk316C[i], gText_ThreeHyphens); else - ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk316C[i], gBattleMoves[gMonSummaryScreen->unk325A[i]].power, STR_CONV_MODE_RIGHT_ALIGN, 3); + ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk316C[i], gBattleMoves[sMonSummaryScreen->unk325A[i]].power, STR_CONV_MODE_RIGHT_ALIGN, 3); - if (gBattleMoves[gMonSummaryScreen->unk325A[i]].accuracy == 0) - StringCopy(gMonSummaryScreen->summary.unk3188[i], gText_ThreeHyphens); + if (gBattleMoves[sMonSummaryScreen->unk325A[i]].accuracy == 0) + StringCopy(sMonSummaryScreen->summary.unk3188[i], gText_ThreeHyphens); else - ConvertIntToDecimalStringN(gMonSummaryScreen->summary.unk3188[i], gBattleMoves[gMonSummaryScreen->unk325A[i]].accuracy, STR_CONV_MODE_RIGHT_ALIGN, 3); + ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk3188[i], gBattleMoves[sMonSummaryScreen->unk325A[i]].accuracy, STR_CONV_MODE_RIGHT_ALIGN, 3); } u8 sub_8136AEC(void) { - switch (gMonSummaryScreen->unk327C) + switch (sMonSummaryScreen->unk327C) { case 0: sub_813ADA8(TAG_PSS_UNK_A0, TAG_PSS_UNK_A0); @@ -2319,7 +2319,7 @@ u8 sub_8136AEC(void) return TRUE; } - gMonSummaryScreen->unk327C++; + sMonSummaryScreen->unk327C++; return FALSE; } @@ -2340,7 +2340,7 @@ void sub_8136BC4(void) SetGpuReg(REG_OFFSET_DISPCNT, 0); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_8463EFC, ARRAY_COUNT(gUnknown_8463EFC)); + InitBgsFromTemplates(0, sUnknown_8463EFC, ARRAY_COUNT(sUnknown_8463EFC)); ChangeBgX(0, 0, 0); ChangeBgY(0, 0, 0); @@ -2355,16 +2355,16 @@ void sub_8136BC4(void) SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON | DISPCNT_WIN1_ON); - sub_813B750(gMonSummaryScreen->curPageIndex); + 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, gMonSummaryScreen->unk0); - SetBgTilemapBuffer(2, gMonSummaryScreen->unk1000); - SetBgTilemapBuffer(3, gMonSummaryScreen->unk2000); + SetBgTilemapBuffer(1, sMonSummaryScreen->unk0); + SetBgTilemapBuffer(2, sMonSummaryScreen->unk1000); + SetBgTilemapBuffer(3, sMonSummaryScreen->unk2000); ShowBg(0); ShowBg(1); @@ -2374,19 +2374,19 @@ void sub_8136BC4(void) void sub_8136D54(void) { - if (gMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE || gMonSummaryScreen->mode == PSS_MODE_FORGET_MOVE) - gMonSummaryScreen->unk3018 = CreateTask(sub_81393D4, 0); + if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE || sMonSummaryScreen->mode == PSS_MODE_FORGET_MOVE) + sMonSummaryScreen->unk3018 = CreateTask(sub_81393D4, 0); else - gMonSummaryScreen->unk3018 = CreateTask(sub_8134840, 0); + sMonSummaryScreen->unk3018 = CreateTask(sub_8134840, 0); SetMainCallback2(sub_8137EE8); } void sub_8136DA4(const u8 * str) { - FillWindowPixelBuffer(gMonSummaryScreen->unk3000[0], 0); - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[0], 2, 4, 1, gUnknown_8463FA4[1], 0, str); - PutWindowTilemap(gMonSummaryScreen->unk3000[0]); + FillWindowPixelBuffer(sMonSummaryScreen->unk3000[0], 0); + AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[0], 2, 4, 1, sUnknown_8463FA4[1], 0, str); + PutWindowTilemap(sMonSummaryScreen->unk3000[0]); } void sub_8136DF0(const u8 * str) @@ -2395,38 +2395,38 @@ void sub_8136DF0(const u8 * str) s32 width; u8 r1; - FillWindowPixelBuffer(gMonSummaryScreen->unk3000[1], 0); + FillWindowPixelBuffer(sMonSummaryScreen->unk3000[1], 0); width = GetStringWidth(0, str, 0); - r1 = gMonSummaryScreen->unk3000[1]; - AddTextPrinterParameterized3(r1, 0, 0x54 - width, 0, gUnknown_8463FA4[1], 0, str); - PutWindowTilemap(gMonSummaryScreen->unk3000[1]); + r1 = sMonSummaryScreen->unk3000[1]; + AddTextPrinterParameterized3(r1, 0, 0x54 - width, 0, sUnknown_8463FA4[1], 0, str); + PutWindowTilemap(sMonSummaryScreen->unk3000[1]); } void sub_8136E50(const u8 * msg) { - FillWindowPixelBuffer(gMonSummaryScreen->unk3000[2], 0); + FillWindowPixelBuffer(sMonSummaryScreen->unk3000[2], 0); - if (!gMonSummaryScreen->isEgg) + if (!sMonSummaryScreen->isEgg) { - if (gMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[2], 2, 4, 2, gUnknown_8463FA4[1], 0xff, gMonSummaryScreen->summary.unk3088); + if (sMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) + AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[2], 2, 4, 2, sUnknown_8463FA4[1], 0xff, sMonSummaryScreen->summary.unk3088); - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[2], 2, 40, 2, gUnknown_8463FA4[1], 0xff, gMonSummaryScreen->summary.unk3034); + AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[2], 2, 40, 2, sUnknown_8463FA4[1], 0xff, sMonSummaryScreen->summary.unk3034); - if (GetMonGender(&gMonSummaryScreen->currentMon) == MON_FEMALE) - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[2], 2, 105, 2, gUnknown_8463FA4[3], 0, gMonSummaryScreen->summary.unk3084); + if (GetMonGender(&sMonSummaryScreen->currentMon) == MON_FEMALE) + AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[2], 2, 105, 2, sUnknown_8463FA4[3], 0, sMonSummaryScreen->summary.unk3084); else - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[2], 2, 105, 2, gUnknown_8463FA4[2], 0, gMonSummaryScreen->summary.unk3084); + AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[2], 2, 105, 2, sUnknown_8463FA4[2], 0, sMonSummaryScreen->summary.unk3084); } - PutWindowTilemap(gMonSummaryScreen->unk3000[2]); + PutWindowTilemap(sMonSummaryScreen->unk3000[2]); } void sub_8136F4C(void) { - FillWindowPixelBuffer(gMonSummaryScreen->unk3000[3], 0); + FillWindowPixelBuffer(sMonSummaryScreen->unk3000[3], 0); - switch (gMonSummaryScreen->curPageIndex) + switch (sMonSummaryScreen->curPageIndex) { case PSS_PAGE_INFO: sub_8136FB0(); @@ -2440,26 +2440,26 @@ void sub_8136F4C(void) break; } - PutWindowTilemap(gMonSummaryScreen->unk3000[3]); + PutWindowTilemap(sMonSummaryScreen->unk3000[3]); } void sub_8136FB0(void) { - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 47, 19, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk3028); + AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 47, 19, sUnknown_8463FA4[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk3028); - if (!gMonSummaryScreen->isEgg) + if (!sMonSummaryScreen->isEgg) { - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 47 + gUnknown_203B144->unk00, 5, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk3064); - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 47, 49, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk3040); - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 47, 64, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk306C); - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 47, 79, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk3074); + 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(&gMonSummaryScreen->currentMon, MON_DATA_FRIENDSHIP); + eggCycles = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_FRIENDSHIP); if (eggCycles <= 5) hatchMsgIndex = 3; @@ -2470,23 +2470,23 @@ void sub_8136FB0(void) else hatchMsgIndex = 0; - if (gMonSummaryScreen->isBadEgg) + if (sMonSummaryScreen->isBadEgg) hatchMsgIndex = 0; - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 7, 45, gUnknown_8463FA4[0], TEXT_SPEED_FF, gUnknown_8463EC4[hatchMsgIndex]); + AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 7, 45, sUnknown_8463FA4[0], TEXT_SPEED_FF, sUnknown_8463EC4[hatchMsgIndex]); } } void sub_81370EC(void) { - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 14 + gUnknown_203B144->unk02, 4, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk3090); - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 50 + gUnknown_203B144->unk04, 22, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk309C[PSS_STAT_ATK]); - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 50 + gUnknown_203B144->unk06, 35, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk309C[PSS_STAT_DEF]); - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 50 + gUnknown_203B144->unk08, 48, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk309C[PSS_STAT_SPA]); - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 50 + gUnknown_203B144->unk0A, 61, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk309C[PSS_STAT_SPD]); - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 50 + gUnknown_203B144->unk0C, 74, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk309C[PSS_STAT_SPE]); - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 15 + gUnknown_203B144->unk0E, 87, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk31A4); - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 15 + gUnknown_203B144->unk10, 100, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk31B0); + 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) @@ -2498,14 +2498,14 @@ void sub_8137270(void) for (i = 0; i < 4; i++) sub_81372E4(i); - if (gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO) + if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO) { - if (gMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) sub_81372E4(4); else - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, + AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 3, MACRO_8137270(4), - gUnknown_8463EF0[0], TEXT_SPEED_FF, gFameCheckerText_Cancel); + sUnknown_8463EF0[0], TEXT_SPEED_FF, gFameCheckerText_Cancel); } } @@ -2514,17 +2514,17 @@ void sub_8137270(void) void sub_81372E4(u8 i) { u8 v0 = 0; - u8 curPP = sub_8138C24(&gMonSummaryScreen->currentMon, i); - u16 move = gMonSummaryScreen->unk325A[i]; - u8 ppBonuses = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_PP_BONUSES); + 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(gMonSummaryScreen->unk3000[3], 2, 3, MACRO_8137270(i), gUnknown_8463EF0[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk3128[i]); + AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 3, MACRO_8137270(i), sUnknown_8463EF0[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk3128[i]); - if (gMonSummaryScreen->unk325A[i] == 0 || (curPP == maxPP)) + if (sMonSummaryScreen->unk325A[i] == 0 || (curPP == maxPP)) v0 = 0; else if (curPP == 0) v0 = 3; @@ -2548,21 +2548,21 @@ void sub_81372E4(u8 i) v0 = 1; } - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 36, MACRO_81372E4(i), gUnknown_8463EF0[v0], TEXT_SPEED_FF, gUnknown_8416238); - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 46 + gUnknown_203B144->unk12[i], MACRO_81372E4(i), gUnknown_8463EF0[v0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk30B8[i]); + 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 (gMonSummaryScreen->unk325A[i] != MOVE_NONE) + if (sMonSummaryScreen->unk325A[i] != MOVE_NONE) { - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 58, MACRO_81372E4(i), gUnknown_8463EF0[v0], TEXT_SPEED_FF, gText_Slash); - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[3], 2, 64 + gUnknown_203B144->unk1C[i], MACRO_81372E4(i), gUnknown_8463EF0[v0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk30F0[i]); + 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]); } } void sub_81374E8(void) { - FillWindowPixelBuffer(gMonSummaryScreen->unk3000[4], 0); + FillWindowPixelBuffer(sMonSummaryScreen->unk3000[4], 0); - switch (gMonSummaryScreen->curPageIndex) + switch (sMonSummaryScreen->curPageIndex) { case PSS_PAGE_INFO: sub_8137554(); @@ -2577,12 +2577,12 @@ void sub_81374E8(void) break; } - PutWindowTilemap(gMonSummaryScreen->unk3000[4]); + PutWindowTilemap(sMonSummaryScreen->unk3000[4]); } void sub_8137554(void) { - if (!gMonSummaryScreen->isEgg) + if (!sMonSummaryScreen->isEgg) sub_8137944(); else sub_8137970(); @@ -2598,9 +2598,9 @@ void sub_8137578(void) u8 natureMetOrHatchedAtLevelStr[152]; DynamicPlaceholderTextUtil_Reset(); - nature = GetNature(&gMonSummaryScreen->currentMon); + nature = GetNature(&sMonSummaryScreen->currentMon); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gNatureNamePointers[nature]); - level = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MET_LEVEL); + level = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MET_LEVEL); if (level == 0) level = 5; @@ -2608,13 +2608,13 @@ void sub_8137578(void) ConvertIntToDecimalStringN(levelStr, level, STR_CONV_MODE_LEFT_ALIGN, 3); DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, levelStr); - metLocation = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MET_LOCATION); + metLocation = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MET_LOCATION); if (sub_813B838(metLocation) == TRUE) GetMapNameGeneric_(mapNameStr, metLocation); else { - if (gMonSummaryScreen->isEnemyParty == TRUE || sub_8138B4C() == TRUE) + if (sMonSummaryScreen->isEnemyParty == TRUE || sub_8138B4C() == TRUE) StringCopy(mapNameStr, gUnknown_8419C13); else StringCopy(mapNameStr, gUnknown_8419C0B); @@ -2622,9 +2622,9 @@ void sub_8137578(void) DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, mapNameStr); - if (GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MET_LEVEL) == 0) + if (GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MET_LEVEL) == 0) { - if (GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_OBEDIENCE) == 1) + if (GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_OBEDIENCE) == 1) { if (sub_813B7E0(nature)) DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_841996D); @@ -2657,7 +2657,7 @@ void sub_8137578(void) } } - AddTextPrinterParameterized4(gMonSummaryScreen->unk3000[4], 2, 0, 3, 0, 0, gUnknown_8463FA4[0], TEXT_SPEED_FF, natureMetOrHatchedAtLevelStr); + AddTextPrinterParameterized4(sMonSummaryScreen->unk3000[4], 2, 0, 3, 0, 0, sUnknown_8463FA4[0], TEXT_SPEED_FF, natureMetOrHatchedAtLevelStr); } void sub_8137724(void) @@ -2670,10 +2670,10 @@ void sub_8137724(void) u8 natureMetOrHatchedAtLevelStr[152]; DynamicPlaceholderTextUtil_Reset(); - nature = GetNature(&gMonSummaryScreen->currentMon); + nature = GetNature(&sMonSummaryScreen->currentMon); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gNatureNamePointers[nature]); - level = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MET_LEVEL); + level = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MET_LEVEL); if (level == 0) level = 5; @@ -2681,7 +2681,7 @@ void sub_8137724(void) ConvertIntToDecimalStringN(levelStr, level, STR_CONV_MODE_LEFT_ALIGN, 3); DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, levelStr); - metLocation = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MET_LOCATION); + metLocation = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MET_LOCATION); if (!sub_813B838(metLocation) || !sub_813B7F8()) { @@ -2706,7 +2706,7 @@ void sub_8137724(void) DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_8419782); } - AddTextPrinterParameterized4(gMonSummaryScreen->unk3000[4], 2, 0, 3, 0, 0, gUnknown_8463FA4[0], TEXT_SPEED_FF, natureMetOrHatchedAtLevelStr); + AddTextPrinterParameterized4(sMonSummaryScreen->unk3000[4], 2, 0, 3, 0, 0, sUnknown_8463FA4[0], TEXT_SPEED_FF, natureMetOrHatchedAtLevelStr); return; } @@ -2717,9 +2717,9 @@ void sub_8137724(void) DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, mapNameStr); - if (GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MET_LEVEL) == 0) + if (GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MET_LEVEL) == 0) { - if (GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_OBEDIENCE) == 1) + if (GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_OBEDIENCE) == 1) { if (sub_813B7E0(nature)) DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_84199F4); @@ -2752,12 +2752,12 @@ void sub_8137724(void) } } - AddTextPrinterParameterized4(gMonSummaryScreen->unk3000[4], 2, 0, 3, 0, 0, gUnknown_8463FA4[0], TEXT_SPEED_FF, natureMetOrHatchedAtLevelStr); + AddTextPrinterParameterized4(sMonSummaryScreen->unk3000[4], 2, 0, 3, 0, 0, sUnknown_8463FA4[0], TEXT_SPEED_FF, natureMetOrHatchedAtLevelStr); } void sub_8137944(void) { - if (sub_813847C(&gMonSummaryScreen->currentMon) == TRUE) + if (sub_813847C(&sMonSummaryScreen->currentMon) == TRUE) sub_8137578(); else sub_8137724(); @@ -2769,15 +2769,15 @@ void sub_8137970(void) u8 version; u8 chosenStrIndex = 0; - metLocation = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MET_LOCATION); + metLocation = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MET_LOCATION); - if (gMonSummaryScreen->monList.mons != gEnemyParty) + if (sMonSummaryScreen->monList.mons != gEnemyParty) { - if (metLocation == METLOC_FATEFUL_ENCOUNTER || GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_OBEDIENCE) == 1) + if (metLocation == METLOC_FATEFUL_ENCOUNTER || GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_OBEDIENCE) == 1) chosenStrIndex = 4; else { - version = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MET_GAME); + version = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MET_GAME); if (version != VERSION_LEAF_GREEN && version != VERSION_FIRE_RED) chosenStrIndex = 1; @@ -2785,17 +2785,17 @@ void sub_8137970(void) chosenStrIndex = 2; if (chosenStrIndex == 0 || chosenStrIndex == 2) - if (sub_813847C(&gMonSummaryScreen->currentMon) == FALSE) + if (sub_813847C(&sMonSummaryScreen->currentMon) == FALSE) chosenStrIndex++; } } else { - if (metLocation == METLOC_FATEFUL_ENCOUNTER || GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_OBEDIENCE) == 1) + if (metLocation == METLOC_FATEFUL_ENCOUNTER || GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_OBEDIENCE) == 1) chosenStrIndex = 4; else { - version = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MET_GAME); + version = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MET_GAME); if (version != VERSION_LEAF_GREEN && version != VERSION_FIRE_RED) { @@ -2805,58 +2805,58 @@ void sub_8137970(void) else if (metLocation == METLOC_SPECIAL_EGG) chosenStrIndex = 2; - if (sub_813847C(&gMonSummaryScreen->currentMon) == FALSE) + if (sub_813847C(&sMonSummaryScreen->currentMon) == FALSE) chosenStrIndex++; } } - if (gMonSummaryScreen->isBadEgg) + if (sMonSummaryScreen->isBadEgg) chosenStrIndex = 0; - AddTextPrinterParameterized4(gMonSummaryScreen->unk3000[4], 2, 0, 3, 0, 0, gUnknown_8463FA4[0], TEXT_SPEED_FF, gUnknown_8463ED4[chosenStrIndex]); + AddTextPrinterParameterized4(sMonSummaryScreen->unk3000[4], 2, 0, 3, 0, 0, sUnknown_8463FA4[0], TEXT_SPEED_FF, sUnknown_8463ED4[chosenStrIndex]); } void sub_8137A90(void) { - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[4], 2, + AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[4], 2, 26, 7, - gUnknown_8463FA4[0], TEXT_SPEED_FF, + sUnknown_8463FA4[0], TEXT_SPEED_FF, gUnknown_8419C4D); - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[4], 2, + AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[4], 2, 26, 20, - gUnknown_8463FA4[0], TEXT_SPEED_FF, + sUnknown_8463FA4[0], TEXT_SPEED_FF, gUnknown_8419C59); } void sub_8137AF8(void) { - if (gUnknown_203B16D < 5) + if (sUnknown_203B16D < 5) { - if (gMonSummaryScreen->mode != PSS_MODE_SELECT_MOVE && gUnknown_203B16D == 4) + if (sMonSummaryScreen->mode != PSS_MODE_SELECT_MOVE && sUnknown_203B16D == 4) return; - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[4], 2, + AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[4], 2, 57, 1, - gUnknown_8463FA4[0], TEXT_SPEED_FF, - gMonSummaryScreen->summary.unk316C[gUnknown_203B16D]); + sUnknown_8463FA4[0], TEXT_SPEED_FF, + sMonSummaryScreen->summary.unk316C[sUnknown_203B16D]); - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[4], 2, + AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[4], 2, 57, 15, - gUnknown_8463FA4[0], TEXT_SPEED_FF, - gMonSummaryScreen->summary.unk3188[gUnknown_203B16D]); + sUnknown_8463FA4[0], TEXT_SPEED_FF, + sMonSummaryScreen->summary.unk3188[sUnknown_203B16D]); - AddTextPrinterParameterized4(gMonSummaryScreen->unk3000[4], 2, + AddTextPrinterParameterized4(sMonSummaryScreen->unk3000[4], 2, 7, 42, 0, 0, - gUnknown_8463FA4[0], TEXT_SPEED_FF, - gMoveDescriptionPointers[gMonSummaryScreen->unk325A[gUnknown_203B16D] - 1]); + sUnknown_8463FA4[0], TEXT_SPEED_FF, + gMoveDescriptionPointers[sMonSummaryScreen->unk325A[sUnknown_203B16D] - 1]); } } void sub_8137BD0(void) { - switch (gMonSummaryScreen->curPageIndex) + switch (sMonSummaryScreen->curPageIndex) { case PSS_PAGE_INFO: break; @@ -2869,21 +2869,21 @@ void sub_8137BD0(void) break; } - PutWindowTilemap(gMonSummaryScreen->unk3000[5]); + PutWindowTilemap(sMonSummaryScreen->unk3000[5]); } #ifdef NONMATCHING // bad register allocation void sub_8137C18(void) { - FillWindowPixelBuffer(gMonSummaryScreen->unk3000[5], 0); + FillWindowPixelBuffer(sMonSummaryScreen->unk3000[5], 0); - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[5], 2, - 66, 1, gUnknown_8463FA4[0], TEXT_SPEED_FF, gMonSummaryScreen->summary.unk31CC); + AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[5], 2, + 66, 1, sUnknown_8463FA4[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk31CC); - AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[5], 2, - 2, 15, gUnknown_8463FA4[0], TEXT_SPEED_FF, - gMonSummaryScreen->summary.unk31CC); + AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[5], 2, + 2, 15, sUnknown_8463FA4[0], TEXT_SPEED_FF, + sMonSummaryScreen->summary.unk31CC); } #else @@ -2894,7 +2894,7 @@ void sub_8137C18(void) "\tmov r6, r8\n" "\tpush {r6}\n" "\tsub sp, 0xC\n" - "\tldr r5, _08137C7C @ =gMonSummaryScreen\n" + "\tldr r5, _08137C7C @ =sMonSummaryScreen\n" "\tldr r0, [r5]\n" "\tldr r4, _08137C80 @ =0x00003005\n" "\tadds r0, r4\n" @@ -2904,7 +2904,7 @@ void sub_8137C18(void) "\tldr r1, [r5]\n" "\tadds r0, r1, r4\n" "\tldrb r0, [r0]\n" - "\tldr r2, _08137C84 @ =gUnknown_8463FA4\n" + "\tldr r2, _08137C84 @ =sUnknown_8463FA4\n" "\tmov r8, r2\n" "\tstr r2, [sp]\n" "\tmovs r6, 0x1\n" @@ -2937,9 +2937,9 @@ void sub_8137C18(void) "\tpop {r0}\n" "\tbx r0\n" "\t.align 2, 0\n" - "_08137C7C: .4byte gMonSummaryScreen\n" + "_08137C7C: .4byte sMonSummaryScreen\n" "_08137C80: .4byte 0x00003005\n" - "_08137C84: .4byte gUnknown_8463FA4\n" + "_08137C84: .4byte sUnknown_8463FA4\n" "_08137C88: .4byte 0x000031bc\n" "_08137C8C: .4byte 0x000031cc"); } @@ -2949,18 +2949,18 @@ void sub_8137C90(void) { u8 i; - FillWindowPixelBuffer(gMonSummaryScreen->unk3000[5], 0); + FillWindowPixelBuffer(sMonSummaryScreen->unk3000[5], 0); for (i = 0; i < 4; i++) { - if (gMonSummaryScreen->unk325A[i] == MOVE_NONE) + if (sMonSummaryScreen->unk325A[i] == MOVE_NONE) continue; - BlitMoveInfoIcon(gMonSummaryScreen->unk3000[5], gMonSummaryScreen->unk3250[i] + 1, 3, MACRO_8137270(i)); + BlitMoveInfoIcon(sMonSummaryScreen->unk3000[5], sMonSummaryScreen->unk3250[i] + 1, 3, MACRO_8137270(i)); } - if (gMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) - BlitMoveInfoIcon(gMonSummaryScreen->unk3000[5], gMonSummaryScreen->unk3250[4] + 1, 3, MACRO_8137270(4)); + if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) + BlitMoveInfoIcon(sMonSummaryScreen->unk3000[5], sMonSummaryScreen->unk3250[4] + 1, 3, MACRO_8137270(4)); } void sub_8137D28(u8 curPageIndex) @@ -2969,7 +2969,7 @@ void sub_8137D28(u8 curPageIndex) { case PSS_PAGE_INFO: sub_8136DA4(gUnknown_8419C1D); - if (!gMonSummaryScreen->isEgg) + if (!sMonSummaryScreen->isEgg) sub_8136DF0(gUnknown_8419C62); else sub_8136DF0(gUnknown_8419C72); @@ -3006,9 +3006,9 @@ void sub_8137D28(u8 curPageIndex) void sub_8137E28(void) { - PutWindowTilemap(gMonSummaryScreen->unk3000[0]); - PutWindowTilemap(gMonSummaryScreen->unk3000[1]); - PutWindowTilemap(gMonSummaryScreen->unk3000[2]); + PutWindowTilemap(sMonSummaryScreen->unk3000[0]); + PutWindowTilemap(sMonSummaryScreen->unk3000[1]); + PutWindowTilemap(sMonSummaryScreen->unk3000[2]); } void sub_8137E64(u8 taskId) @@ -3019,15 +3019,15 @@ void sub_8137E64(u8 taskId) if (IsCryPlayingOrClearCrySongs() == TRUE) StopCryAndClearCrySongs(); - sub_8138414(gMonSummaryScreen->curPageIndex); + sub_8138414(sMonSummaryScreen->curPageIndex); FreeAllWindowBuffers(); DestroyTask(taskId); - SetMainCallback2(gMonSummaryScreen->savedCallback); + SetMainCallback2(sMonSummaryScreen->savedCallback); - gLastViewedMonIndex = GetLastViewedMonIndex(); + sLastViewedMonIndex = GetLastViewedMonIndex(); - FREE_AND_SET_NULL_IF_SET(gMonSummaryScreen); - FREE_AND_SET_NULL_IF_SET(gUnknown_203B144); + FREE_AND_SET_NULL_IF_SET(sMonSummaryScreen); + FREE_AND_SET_NULL_IF_SET(sUnknown_203B144); } void sub_8137EE8(void) @@ -3044,19 +3044,19 @@ void sub_8137F00(void) for (i = 0; i < 11; i++) { - if (gUnknown_203B160->unk2C[i] < 240) + if (sUnknown_203B160->unk2C[i] < 240) { - gUnknown_203B160->unk2C[i] += 60; - gUnknown_203B160->sprites[i]->pos1.x = gUnknown_203B160->unk2C[i] + 60; + sUnknown_203B160->unk2C[i] += 60; + sUnknown_203B160->sprites[i]->pos1.x = sUnknown_203B160->unk2C[i] + 60; } if (i >= 9) continue; - if (gUnknown_203B15C->unk28[i] < 240) + if (sUnknown_203B15C->unk28[i] < 240) { - gUnknown_203B15C->unk28[i] += 60; - gUnknown_203B15C->sprites[i]->pos1.x = gUnknown_203B15C->unk28[i] + 60; + sUnknown_203B15C->unk28[i] += 60; + sUnknown_203B15C->sprites[i]->pos1.x = sUnknown_203B15C->unk28[i] + 60; } } } @@ -3067,76 +3067,76 @@ void sub_8137F68(void) for (i = 0; i < 11; i++) { - if (gUnknown_203B160->unk2C[i] > 156 + (8 * i)) + if (sUnknown_203B160->unk2C[i] > 156 + (8 * i)) { - gUnknown_203B160->unk2C[i] -= 60; + sUnknown_203B160->unk2C[i] -= 60; - if (gUnknown_203B160->unk2C[i] < 156 + (8 * i)) - gUnknown_203B160->unk2C[i] = 156 + (8 * i); + if (sUnknown_203B160->unk2C[i] < 156 + (8 * i)) + sUnknown_203B160->unk2C[i] = 156 + (8 * i); - gUnknown_203B160->sprites[i]->pos1.x = gUnknown_203B160->unk2C[i]; + sUnknown_203B160->sprites[i]->pos1.x = sUnknown_203B160->unk2C[i]; } if (i >= 9) continue; - if (gUnknown_203B15C->unk28[i] > 172 + (8 * i)) + if (sUnknown_203B15C->unk28[i] > 172 + (8 * i)) { - gUnknown_203B15C->unk28[i] -= 60; + sUnknown_203B15C->unk28[i] -= 60; - if (gUnknown_203B15C->unk28[i] < 172 + (8 * i)) - gUnknown_203B15C->unk28[i] = 172 + (8 * i); + if (sUnknown_203B15C->unk28[i] < 172 + (8 * i)) + sUnknown_203B15C->unk28[i] = 172 + (8 * i); - gUnknown_203B15C->sprites[i]->pos1.x = gUnknown_203B15C->unk28[i]; + sUnknown_203B15C->sprites[i]->pos1.x = sUnknown_203B15C->unk28[i]; } } } void sub_8137FF4(void) { - if (gMonSummaryScreen->unk324C < 240) + if (sMonSummaryScreen->unk324C < 240) { - gMonSummaryScreen->unk324C += 60; - if (gMonSummaryScreen->unk324C > 240) - gMonSummaryScreen->unk324C = 240; + sMonSummaryScreen->unk324C += 60; + if (sMonSummaryScreen->unk324C > 240) + sMonSummaryScreen->unk324C = 240; - if (gMonSummaryScreen->unk3238 == 0) - SetGpuReg(REG_OFFSET_BG2HOFS, -gMonSummaryScreen->unk324C); + if (sMonSummaryScreen->unk3238 == 0) + SetGpuReg(REG_OFFSET_BG2HOFS, -sMonSummaryScreen->unk324C); else - SetGpuReg(REG_OFFSET_BG1HOFS, -gMonSummaryScreen->unk324C); + SetGpuReg(REG_OFFSET_BG1HOFS, -sMonSummaryScreen->unk324C); } } void sub_813805C(void) { - if (gMonSummaryScreen->unk324C >= 60) + if (sMonSummaryScreen->unk324C >= 60) { - gMonSummaryScreen->unk324C -= 60; - if (gMonSummaryScreen->unk324C < 0) - gMonSummaryScreen->unk324C = 0; + sMonSummaryScreen->unk324C -= 60; + if (sMonSummaryScreen->unk324C < 0) + sMonSummaryScreen->unk324C = 0; - if (gMonSummaryScreen->unk3238 == 0) - SetGpuReg(REG_OFFSET_BG1HOFS, -gMonSummaryScreen->unk324C); + if (sMonSummaryScreen->unk3238 == 0) + SetGpuReg(REG_OFFSET_BG1HOFS, -sMonSummaryScreen->unk324C); else - SetGpuReg(REG_OFFSET_BG2HOFS, -gMonSummaryScreen->unk324C); + SetGpuReg(REG_OFFSET_BG2HOFS, -sMonSummaryScreen->unk324C); - if (gMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) - SetGpuReg(REG_OFFSET_BG0HOFS, -gMonSummaryScreen->unk324C); + if (sMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) + SetGpuReg(REG_OFFSET_BG0HOFS, -sMonSummaryScreen->unk324C); } } void sub_81380F0(void) { - if (gMonSummaryScreen->unk3224 == 1) + if (sMonSummaryScreen->unk3224 == 1) { - if (gMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) + if (sMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) sub_8137FF4(); else sub_813805C(); } else { - if (gMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES) + if (sMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES) sub_813805C(); else sub_8137FF4(); @@ -3145,12 +3145,12 @@ void sub_81380F0(void) void sub_8138134(void) { - if (gMonSummaryScreen->curPageIndex == PSS_PAGE_SKILLS - && gMonSummaryScreen->unk3224 == 0) + if (sMonSummaryScreen->curPageIndex == PSS_PAGE_SKILLS + && sMonSummaryScreen->unk3224 == 0) sub_8137F68(); - if (gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES - && gMonSummaryScreen->unk3224 == 1) + if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES + && sMonSummaryScreen->unk3224 == 1) sub_8137F00(); } @@ -3160,7 +3160,7 @@ void sub_813817C(void) ProcessSpriteCopyRequests(); TransferPlttBuffer(); - if (gMonSummaryScreen->unk3244 == FALSE) + if (sMonSummaryScreen->unk3244 == FALSE) return; sub_81380F0(); @@ -3182,23 +3182,23 @@ void sub_81381D0(void) { u8 i; - InitWindows(gUnknown_8463F9C); + InitWindows(sUnknown_8463F9C); for (i = 0; i < 3; i++) - gMonSummaryScreen->unk3000[i] = AddWindow(&gUnknown_8463F0C[i]); + sMonSummaryScreen->unk3000[i] = AddWindow(&sUnknown_8463F0C[i]); for (i = 0; i < 4; i++) - switch (gMonSummaryScreen->curPageIndex) + switch (sMonSummaryScreen->curPageIndex) { case PSS_PAGE_INFO: - gMonSummaryScreen->unk3000[i + 3] = AddWindow(&gUnknown_8463F3C[i]); + sMonSummaryScreen->unk3000[i + 3] = AddWindow(&sUnknown_8463F3C[i]); break; case PSS_PAGE_SKILLS: - gMonSummaryScreen->unk3000[i + 3] = AddWindow(&gUnknown_8463F5C[i]); + sMonSummaryScreen->unk3000[i + 3] = AddWindow(&sUnknown_8463F5C[i]); break; case PSS_PAGE_MOVES: case PSS_PAGE_MOVES_INFO: - gMonSummaryScreen->unk3000[i + 3] = AddWindow(&gUnknown_8463F7C[i]); + sMonSummaryScreen->unk3000[i + 3] = AddWindow(&sUnknown_8463F7C[i]); break; default: break; @@ -3212,41 +3212,41 @@ void sub_8138280(u8 curPageIndex) u32 bgPriority2 = GetGpuReg(REG_OFFSET_BG2CNT) & 3; for (i = 0; i < 7; i++) - gMonSummaryScreen->unk3000[i] = 0xff; + sMonSummaryScreen->unk3000[i] = 0xff; - if ((gMonSummaryScreen->unk3224 == 1 && gMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) - || (gMonSummaryScreen->unk3224 == 0 && gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES)) + 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++) - gMonSummaryScreen->unk3000[i] = AddWindow(&gUnknown_8463F24[i]); + sMonSummaryScreen->unk3000[i] = AddWindow(&sUnknown_8463F24[i]); else for (i = 0; i < 3; i++) - gMonSummaryScreen->unk3000[i] = AddWindow(&gUnknown_8463F0C[i]); + sMonSummaryScreen->unk3000[i] = AddWindow(&sUnknown_8463F0C[i]); } else { if (bgPriority2 > bgPriority1) for (i = 0; i < 3; i++) - gMonSummaryScreen->unk3000[i] = AddWindow(&gUnknown_8463F0C[i]); + sMonSummaryScreen->unk3000[i] = AddWindow(&sUnknown_8463F0C[i]); else for (i = 0; i < 3; i++) - gMonSummaryScreen->unk3000[i] = AddWindow(&gUnknown_8463F24[i]); + sMonSummaryScreen->unk3000[i] = AddWindow(&sUnknown_8463F24[i]); } for (i = 0; i < 4; i++) switch (curPageIndex) { case PSS_PAGE_INFO: - gMonSummaryScreen->unk3000[i + 3] = AddWindow(&gUnknown_8463F3C[i]); + sMonSummaryScreen->unk3000[i + 3] = AddWindow(&sUnknown_8463F3C[i]); break; case PSS_PAGE_SKILLS: default: - gMonSummaryScreen->unk3000[i + 3] = AddWindow(&gUnknown_8463F5C[i]); + sMonSummaryScreen->unk3000[i + 3] = AddWindow(&sUnknown_8463F5C[i]); break; case PSS_PAGE_MOVES: case PSS_PAGE_MOVES_INFO: - gMonSummaryScreen->unk3000[i + 3] = AddWindow(&gUnknown_8463F7C[i]); + sMonSummaryScreen->unk3000[i + 3] = AddWindow(&sUnknown_8463F7C[i]); break; } } @@ -3256,13 +3256,13 @@ void sub_8138414(u8 curPageIndex) u8 i; for (i = 0; i < 7; i++) - RemoveWindow(gMonSummaryScreen->unk3000[i]); + RemoveWindow(sMonSummaryScreen->unk3000[i]); } void sub_8138440(void) { - switch (gMonSummaryScreen->curPageIndex) + switch (sMonSummaryScreen->curPageIndex) { case PSS_PAGE_INFO: SetHelpContext(HELPCONTEXT_POKEMON_INFO); @@ -3283,24 +3283,24 @@ u8 sub_813847C(struct Pokemon * mon) u8 multiplayerId; u32 trainerId = 0; - if (gMonSummaryScreen->monList.mons == gEnemyParty) + if (sMonSummaryScreen->monList.mons == gEnemyParty) { multiplayerId = GetMultiplayerId() ^ 1; trainerId = gLinkPlayers[multiplayerId].trainerId & 0xffff; - StringCopy(gMonSummaryScreen->summary.unk304C[0], gLinkPlayers[multiplayerId].name); + StringCopy(sMonSummaryScreen->summary.unk304C[0], gLinkPlayers[multiplayerId].name); } else { trainerId = GetPlayerTrainerId() & 0xffff; - StringCopy(gMonSummaryScreen->summary.unk304C[0], gSaveBlock2Ptr->playerName); + StringCopy(sMonSummaryScreen->summary.unk304C[0], gSaveBlock2Ptr->playerName); } if (trainerId != (GetMonData(mon, MON_DATA_OT_ID) & 0xffff)) return FALSE; - GetMonData(mon, MON_DATA_OT_NAME, gMonSummaryScreen->summary.unk304C[1]); + GetMonData(mon, MON_DATA_OT_NAME, sMonSummaryScreen->summary.unk304C[1]); - if (!StringCompareWithoutExtCtrlCodes(gMonSummaryScreen->summary.unk304C[0], gMonSummaryScreen->summary.unk304C[1])) + if (!StringCompareWithoutExtCtrlCodes(sMonSummaryScreen->summary.unk304C[0], sMonSummaryScreen->summary.unk304C[1])) return TRUE; else return FALSE; @@ -3312,10 +3312,10 @@ u8 sub_813847C(struct Pokemon * mon) void sub_8138538(void) { - switch (gMonSummaryScreen->curPageIndex) + switch (sMonSummaryScreen->curPageIndex) { case PSS_PAGE_INFO: - if (!gMonSummaryScreen->isEgg) + 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); @@ -3368,7 +3368,7 @@ void sub_8138538(void) FillBgTilemapBufferRect(3, 64 + SUB_8138538_BASE_TILE_NUM, 18, 1, 1, 1, 0); break; case PSS_PAGE_MOVES_INFO: - if (gMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) + 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); @@ -3394,15 +3394,15 @@ void sub_8138538(void) void sub_8138A38(void) { - switch (gMonSummaryScreen->curPageIndex) + switch (sMonSummaryScreen->curPageIndex) { case PSS_PAGE_INFO: - if (!gMonSummaryScreen->isEgg) + if (!sMonSummaryScreen->isEgg) { - BlitMoveInfoIcon(gMonSummaryScreen->unk3000[3], gMonSummaryScreen->unk3220[0] + 1, 47, 35); + BlitMoveInfoIcon(sMonSummaryScreen->unk3000[3], sMonSummaryScreen->unk3220[0] + 1, 47, 35); - if (gMonSummaryScreen->unk3220[0] != gMonSummaryScreen->unk3220[1]) - BlitMoveInfoIcon(gMonSummaryScreen->unk3000[3], gMonSummaryScreen->unk3220[1] + 1, 83, 35); + if (sMonSummaryScreen->unk3220[0] != sMonSummaryScreen->unk3220[1]) + BlitMoveInfoIcon(sMonSummaryScreen->unk3000[3], sMonSummaryScreen->unk3220[1] + 1, 83, 35); } break; case PSS_PAGE_SKILLS: @@ -3410,30 +3410,30 @@ void sub_8138A38(void) case PSS_PAGE_MOVES: break; case PSS_PAGE_MOVES_INFO: - FillWindowPixelBuffer(gMonSummaryScreen->unk3000[6], 0); - BlitMoveInfoIcon(gMonSummaryScreen->unk3000[6], gMonSummaryScreen->unk3220[0] + 1, 0, 3); + FillWindowPixelBuffer(sMonSummaryScreen->unk3000[6], 0); + BlitMoveInfoIcon(sMonSummaryScreen->unk3000[6], sMonSummaryScreen->unk3220[0] + 1, 0, 3); - if (gMonSummaryScreen->unk3220[0] != gMonSummaryScreen->unk3220[1]) - BlitMoveInfoIcon(gMonSummaryScreen->unk3000[6], gMonSummaryScreen->unk3220[1] + 1, 36, 3); + if (sMonSummaryScreen->unk3220[0] != sMonSummaryScreen->unk3220[1]) + BlitMoveInfoIcon(sMonSummaryScreen->unk3000[6], sMonSummaryScreen->unk3220[1] + 1, 36, 3); - PutWindowTilemap(gMonSummaryScreen->unk3000[6]); + PutWindowTilemap(sMonSummaryScreen->unk3000[6]); break; } } u8 GetLastViewedMonIndex(void) { - return gLastViewedMonIndex; + return sLastViewedMonIndex; } u8 GetMoveSlotToReplace(void) { - return gUnknown_203B16E; + return sUnknown_203B16E; } void sub_8138B38(u8 mode) { - gMonSummaryScreen->mode = mode; + sMonSummaryScreen->mode = mode; } bool32 sub_8138B4C(void) @@ -3441,7 +3441,7 @@ bool32 sub_8138B4C(void) if (!IsUpdateLinkStateCBActive() && IsMultiBattle() == TRUE && gReceivedRemoteLinkPlayers == 1 - && (gLastViewedMonIndex >= 4 || gLastViewedMonIndex == 1)) + && (sLastViewedMonIndex >= 4 || sLastViewedMonIndex == 1)) return TRUE; return FALSE; @@ -3449,14 +3449,14 @@ bool32 sub_8138B4C(void) void sub_8138B8C(struct Pokemon * mon) { - if (!gMonSummaryScreen->isBoxMon) + if (!sMonSummaryScreen->isBoxMon) { - struct Pokemon * partyMons = gMonSummaryScreen->monList.mons; + struct Pokemon * partyMons = sMonSummaryScreen->monList.mons; *mon = partyMons[GetLastViewedMonIndex()]; } else { - struct BoxPokemon * boxMons = gMonSummaryScreen->monList.boxMons; + struct BoxPokemon * boxMons = sMonSummaryScreen->monList.boxMons; BoxMonToMon(&boxMons[GetLastViewedMonIndex()], mon); } } @@ -3506,7 +3506,7 @@ u16 sub_8138C24(struct Pokemon * mon, u8 moveSlot) u8 sub_8138C5C(u32 status) { - if (GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_HP) == 0) + if (GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_HP) == 0) return AILMENT_FNT; if ((status & STATUS1_PSN_ANY) != 0) @@ -3524,7 +3524,7 @@ u8 sub_8138C5C(u32 status) if ((status & STATUS1_BURN) != 0) return AILMENT_BRN; - if (CheckPartyPokerus(&gMonSummaryScreen->currentMon, 0)) + if (CheckPartyPokerus(&sMonSummaryScreen->currentMon, 0)) return AILMENT_PKRS; return AILMENT_NONE; @@ -3534,7 +3534,7 @@ void sub_8138CD8(u8 id) { u8 i; - switch (gMonSummaryScreen->unk3288) + switch (sMonSummaryScreen->unk3288) { case 0: if (MenuHelpers_CallLinkSomething() == TRUE || sub_800B270() == TRUE) @@ -3542,80 +3542,80 @@ void sub_8138CD8(u8 id) if (JOY_NEW(DPAD_UP)) { - if (gUnknown_203B16D > 0) + if (sUnknown_203B16D > 0) { - gMonSummaryScreen->unk3288 = 2; + sMonSummaryScreen->unk3288 = 2; PlaySE(SE_SELECT); - for (i = gUnknown_203B16D; i > 0; i--) - if (gMonSummaryScreen->unk325A[i - 1] != 0) + for (i = sUnknown_203B16D; i > 0; i--) + if (sMonSummaryScreen->unk325A[i - 1] != 0) { PlaySE(SE_SELECT); - gUnknown_203B16D = i - 1; + sUnknown_203B16D = i - 1; return; } } else { - gUnknown_203B16D = 4; - gMonSummaryScreen->unk3288 = 2; + sUnknown_203B16D = 4; + sMonSummaryScreen->unk3288 = 2; PlaySE(SE_SELECT); - if (gMonSummaryScreen->unk3268 == TRUE) - for (i = gUnknown_203B16D; i > 0; i--) - if (gMonSummaryScreen->unk325A[i - 1] != 0) + if (sMonSummaryScreen->unk3268 == TRUE) + for (i = sUnknown_203B16D; i > 0; i--) + if (sMonSummaryScreen->unk325A[i - 1] != 0) { PlaySE(SE_SELECT); - gUnknown_203B16D = i - 1; + sUnknown_203B16D = i - 1; return; } } } else if (JOY_NEW(DPAD_DOWN)) { - if (gUnknown_203B16D < 4) + if (sUnknown_203B16D < 4) { u8 v0 = 4; - gMonSummaryScreen->unk3288 = 2; + sMonSummaryScreen->unk3288 = 2; - if (gMonSummaryScreen->unk3268 == TRUE) + if (sMonSummaryScreen->unk3268 == TRUE) { - if (gUnknown_203B16D == 5 - 2) + if (sUnknown_203B16D == 5 - 2) { - gUnknown_203B16D = 0; - gMonSummaryScreen->unk3288 = 2; + sUnknown_203B16D = 0; + sMonSummaryScreen->unk3288 = 2; PlaySE(SE_SELECT); return; } v0--; } - for (i = gUnknown_203B16D; i < v0; i++) - if (gMonSummaryScreen->unk325A[i + 1] != 0) + for (i = sUnknown_203B16D; i < v0; i++) + if (sMonSummaryScreen->unk325A[i + 1] != 0) { PlaySE(SE_SELECT); - gUnknown_203B16D = i + 1; + sUnknown_203B16D = i + 1; return; } - if (!gMonSummaryScreen->unk3268) + if (!sMonSummaryScreen->unk3268) { PlaySE(SE_SELECT); - gUnknown_203B16D = i; + sUnknown_203B16D = i; } else { PlaySE(SE_SELECT); - gUnknown_203B16D = 0; + sUnknown_203B16D = 0; } return; } - else if (gUnknown_203B16D == 4) + else if (sUnknown_203B16D == 4) { - gUnknown_203B16D = 0; - gMonSummaryScreen->unk3288 = 2; + sUnknown_203B16D = 0; + sMonSummaryScreen->unk3288 = 2; PlaySE(SE_SELECT); return; } @@ -3623,91 +3623,91 @@ void sub_8138CD8(u8 id) else if (JOY_NEW(A_BUTTON)) { PlaySE(SE_SELECT); - if (gUnknown_203B16D == 4) + if (sUnknown_203B16D == 4) { - gUnknown_203B16D = 0; - gUnknown_203B16E = 0; - gMonSummaryScreen->unk3268 = FALSE; + sUnknown_203B16D = 0; + sUnknown_203B16E = 0; + sMonSummaryScreen->unk3268 = FALSE; sub_813A0E8(1); - gMonSummaryScreen->unk3224 = 0; - sub_8138414(gMonSummaryScreen->curPageIndex); - gMonSummaryScreen->curPageIndex--; - gMonSummaryScreen->unk3288 = 1; + sMonSummaryScreen->unk3224 = 0; + sub_8138414(sMonSummaryScreen->curPageIndex); + sMonSummaryScreen->curPageIndex--; + sMonSummaryScreen->unk3288 = 1; return; } - if (gMonSummaryScreen->unk3268 != TRUE) + if (sMonSummaryScreen->unk3268 != TRUE) { - if (gMonSummaryScreen->isEnemyParty == FALSE + if (sMonSummaryScreen->isEnemyParty == FALSE && gMain.inBattle == 0 && gReceivedRemoteLinkPlayers == 0) { - gUnknown_203B16E = gUnknown_203B16D; - gMonSummaryScreen->unk3268 = TRUE; + sUnknown_203B16E = sUnknown_203B16D; + sMonSummaryScreen->unk3268 = TRUE; } return; } else { - gMonSummaryScreen->unk3268 = FALSE; + sMonSummaryScreen->unk3268 = FALSE; - if (gUnknown_203B16D == gUnknown_203B16E) + if (sUnknown_203B16D == sUnknown_203B16E) return; - if (gMonSummaryScreen->isBoxMon == 0) + if (sMonSummaryScreen->isBoxMon == 0) sub_81390B0(); else sub_81391EC(); - sub_8139328(&gMonSummaryScreen->currentMon); + sub_8139328(&sMonSummaryScreen->currentMon); sub_81367B0(); - gMonSummaryScreen->unk3288 = 2; + sMonSummaryScreen->unk3288 = 2; return; } } else if (JOY_NEW(B_BUTTON)) { - if (gMonSummaryScreen->unk3268 == TRUE) + if (sMonSummaryScreen->unk3268 == TRUE) { - gUnknown_203B16E = gUnknown_203B16D; - gMonSummaryScreen->unk3268 = FALSE; + sUnknown_203B16E = sUnknown_203B16D; + sMonSummaryScreen->unk3268 = FALSE; return; } - if (gUnknown_203B16D == 4) + if (sUnknown_203B16D == 4) { - gUnknown_203B16D = 0; - gUnknown_203B16E = 0; + sUnknown_203B16D = 0; + sUnknown_203B16E = 0; } sub_813A0E8(1); - gMonSummaryScreen->unk3224 = 0; - sub_8138414(gMonSummaryScreen->curPageIndex); - gMonSummaryScreen->curPageIndex--; - gMonSummaryScreen->unk3288 = 1; + sMonSummaryScreen->unk3224 = 0; + sub_8138414(sMonSummaryScreen->curPageIndex); + sMonSummaryScreen->curPageIndex--; + sMonSummaryScreen->unk3288 = 1; } break; case 1: - gTasks[gMonSummaryScreen->unk3018].func = sub_81351A0; - gMonSummaryScreen->unk3288 = 0; + gTasks[sMonSummaryScreen->unk3018].func = sub_81351A0; + sMonSummaryScreen->unk3288 = 0; break; case 2: sub_8136F4C(); sub_81374E8(); sub_8137BD0(); - gMonSummaryScreen->unk3288 = 3; + sMonSummaryScreen->unk3288 = 3; break; case 3: if (MenuHelpers_CallLinkSomething() == TRUE || sub_800B270() == TRUE) return; - CopyWindowToVram(gMonSummaryScreen->unk3000[3], 2); - CopyWindowToVram(gMonSummaryScreen->unk3000[4], 2); - CopyWindowToVram(gMonSummaryScreen->unk3000[5], 2); - CopyWindowToVram(gMonSummaryScreen->unk3000[6], 2); + CopyWindowToVram(sMonSummaryScreen->unk3000[3], 2); + CopyWindowToVram(sMonSummaryScreen->unk3000[4], 2); + CopyWindowToVram(sMonSummaryScreen->unk3000[5], 2); + CopyWindowToVram(sMonSummaryScreen->unk3000[6], 2); CopyBgTilemapBufferToVram(0); CopyBgTilemapBufferToVram(3); - gMonSummaryScreen->unk3288 = 0; + sMonSummaryScreen->unk3288 = 0; break; default: break; @@ -3724,28 +3724,28 @@ void sub_81390B0(void) u8 allMovesPPBonuses; u8 move1ppBonus, move2ppBonus; - partyMons = gMonSummaryScreen->monList.mons; + partyMons = sMonSummaryScreen->monList.mons; mon = &partyMons[GetLastViewedMonIndex()]; - move1 = GetMonData(mon, MON_DATA_MOVE1 + gUnknown_203B16D); - move2 = GetMonData(mon, MON_DATA_MOVE1 + gUnknown_203B16E); + move1 = GetMonData(mon, MON_DATA_MOVE1 + sUnknown_203B16D); + move2 = GetMonData(mon, MON_DATA_MOVE1 + sUnknown_203B16E); - pp1 = GetMonData(mon, MON_DATA_PP1 + gUnknown_203B16D); - pp2 = GetMonData(mon, MON_DATA_PP1 + gUnknown_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[gUnknown_203B16D]) >> (gUnknown_203B16D * 2); - move2ppBonus = (allMovesPPBonuses & gPPUpGetMask[gUnknown_203B16E]) >> (gUnknown_203B16E * 2); + move1ppBonus = (allMovesPPBonuses & gPPUpGetMask[sUnknown_203B16D]) >> (sUnknown_203B16D * 2); + move2ppBonus = (allMovesPPBonuses & gPPUpGetMask[sUnknown_203B16E]) >> (sUnknown_203B16E * 2); - allMovesPPBonuses &= ~gPPUpGetMask[gUnknown_203B16D]; - allMovesPPBonuses &= ~gPPUpGetMask[gUnknown_203B16E]; - allMovesPPBonuses |= (move1ppBonus << (gUnknown_203B16E * 2)) + (move2ppBonus << (gUnknown_203B16D * 2)); + allMovesPPBonuses &= ~gPPUpGetMask[sUnknown_203B16D]; + allMovesPPBonuses &= ~gPPUpGetMask[sUnknown_203B16E]; + allMovesPPBonuses |= (move1ppBonus << (sUnknown_203B16E * 2)) + (move2ppBonus << (sUnknown_203B16D * 2)); - SetMonData(mon, MON_DATA_MOVE1 + gUnknown_203B16D, (u8 *)&move2); - SetMonData(mon, MON_DATA_MOVE1 + gUnknown_203B16E, (u8 *)&move1); - SetMonData(mon, MON_DATA_PP1 + gUnknown_203B16D, &pp2); - SetMonData(mon, MON_DATA_PP1 + gUnknown_203B16E, &pp1); + 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); } @@ -3759,43 +3759,43 @@ void sub_81391EC(void) u8 allMovesPPBonuses; u8 move1ppBonus, move2ppBonus; - boxMons = gMonSummaryScreen->monList.boxMons; + boxMons = sMonSummaryScreen->monList.boxMons; boxMon = &boxMons[GetLastViewedMonIndex()]; - move1 = GetBoxMonData(boxMon, MON_DATA_MOVE1 + gUnknown_203B16D); - move2 = GetBoxMonData(boxMon, MON_DATA_MOVE1 + gUnknown_203B16E); + move1 = GetBoxMonData(boxMon, MON_DATA_MOVE1 + sUnknown_203B16D); + move2 = GetBoxMonData(boxMon, MON_DATA_MOVE1 + sUnknown_203B16E); - pp1 = GetBoxMonData(boxMon, MON_DATA_PP1 + gUnknown_203B16D); - pp2 = GetBoxMonData(boxMon, MON_DATA_PP1 + gUnknown_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[gUnknown_203B16D]) >> (gUnknown_203B16D * 2); - move2ppBonus = (allMovesPPBonuses & gPPUpGetMask[gUnknown_203B16E]) >> (gUnknown_203B16E * 2); + move1ppBonus = (allMovesPPBonuses & gPPUpGetMask[sUnknown_203B16D]) >> (sUnknown_203B16D * 2); + move2ppBonus = (allMovesPPBonuses & gPPUpGetMask[sUnknown_203B16E]) >> (sUnknown_203B16E * 2); - allMovesPPBonuses &= ~gPPUpGetMask[gUnknown_203B16D]; - allMovesPPBonuses &= ~gPPUpGetMask[gUnknown_203B16E]; - allMovesPPBonuses |= (move1ppBonus << (gUnknown_203B16E * 2)) + (move2ppBonus << (gUnknown_203B16D * 2)); + allMovesPPBonuses &= ~gPPUpGetMask[sUnknown_203B16D]; + allMovesPPBonuses &= ~gPPUpGetMask[sUnknown_203B16E]; + allMovesPPBonuses |= (move1ppBonus << (sUnknown_203B16E * 2)) + (move2ppBonus << (sUnknown_203B16D * 2)); - SetBoxMonData(boxMon, MON_DATA_MOVE1 + gUnknown_203B16D, (u8 *)&move2); - SetBoxMonData(boxMon, MON_DATA_MOVE1 + gUnknown_203B16E, (u8 *)&move1); - SetBoxMonData(boxMon, MON_DATA_PP1 + gUnknown_203B16D, &pp2); - SetBoxMonData(boxMon, MON_DATA_PP1 + gUnknown_203B16E, &pp1); + 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); } void sub_8139328(struct Pokemon * mon) { - if (!gMonSummaryScreen->isBoxMon) + if (!sMonSummaryScreen->isBoxMon) { struct Pokemon * partyMons; - partyMons = gMonSummaryScreen->monList.mons; + partyMons = sMonSummaryScreen->monList.mons; *mon = partyMons[GetLastViewedMonIndex()]; } else { struct BoxPokemon * boxMons; - boxMons = gMonSummaryScreen->monList.boxMons; + boxMons = sMonSummaryScreen->monList.boxMons; BoxMonToMon(&boxMons[GetLastViewedMonIndex()], mon); } } @@ -3804,9 +3804,9 @@ u8 sub_8139388(void) { u16 move; - move = sub_8138BEC(&gMonSummaryScreen->currentMon, gUnknown_203B16D); + move = sub_8138BEC(&sMonSummaryScreen->currentMon, sUnknown_203B16D); - if (IsMoveHm(move) == TRUE && gMonSummaryScreen->mode != PSS_MODE_FORGET_MOVE) + if (IsMoveHm(move) == TRUE && sMonSummaryScreen->mode != PSS_MODE_FORGET_MOVE) return FALSE; return TRUE; @@ -3816,132 +3816,132 @@ void sub_81393D4(u8 taskId) { u8 i; - switch (gMonSummaryScreen->unk3288) + switch (sMonSummaryScreen->unk3288) { case 0: BeginNormalPaletteFade(0xffffffff, 0, 16, 0, 0); - gMonSummaryScreen->unk3288++; + sMonSummaryScreen->unk3288++; break; case 1: if (!gPaletteFade.active) { sub_813B784(); - gMonSummaryScreen->unk3288++; + sMonSummaryScreen->unk3288++; } break; case 2: if (JOY_NEW(DPAD_UP)) { - if (gUnknown_203B16D > 0) + if (sUnknown_203B16D > 0) { - gMonSummaryScreen->unk3288 = 3; + sMonSummaryScreen->unk3288 = 3; PlaySE(SE_SELECT); - for (i = gUnknown_203B16D; i > 0; i--) - if (gMonSummaryScreen->unk325A[i - 1] != 0) + for (i = sUnknown_203B16D; i > 0; i--) + if (sMonSummaryScreen->unk325A[i - 1] != 0) { PlaySE(SE_SELECT); - gUnknown_203B16D = i - 1; + sUnknown_203B16D = i - 1; return; } } else { - gUnknown_203B16D = 4; - gMonSummaryScreen->unk3288 = 3; + sUnknown_203B16D = 4; + sMonSummaryScreen->unk3288 = 3; PlaySE(SE_SELECT); return; } } else if (JOY_NEW(DPAD_DOWN)) { - if (gUnknown_203B16D < 4) + if (sUnknown_203B16D < 4) { u8 v0 = 4; - gMonSummaryScreen->unk3288 = 3; + sMonSummaryScreen->unk3288 = 3; - if (gMonSummaryScreen->unk3268 == TRUE) + if (sMonSummaryScreen->unk3268 == TRUE) v0--; - for (i = gUnknown_203B16D; i < v0; i++) - if (gMonSummaryScreen->unk325A[i + 1] != 0) + for (i = sUnknown_203B16D; i < v0; i++) + if (sMonSummaryScreen->unk325A[i + 1] != 0) { PlaySE(SE_SELECT); - gUnknown_203B16D = i + 1; + sUnknown_203B16D = i + 1; return; } - if (!gMonSummaryScreen->unk3268) + if (!sMonSummaryScreen->unk3268) { PlaySE(SE_SELECT); - gUnknown_203B16D = i; + sUnknown_203B16D = i; } return; } - else if (gUnknown_203B16D == 4) + else if (sUnknown_203B16D == 4) { - gUnknown_203B16D = 0; - gMonSummaryScreen->unk3288 = 3; + sUnknown_203B16D = 0; + sMonSummaryScreen->unk3288 = 3; PlaySE(SE_SELECT); return; } } else if (JOY_NEW(A_BUTTON)) { - if (sub_8139388() == TRUE || gUnknown_203B16D == 4) + if (sub_8139388() == TRUE || sUnknown_203B16D == 4) { PlaySE(SE_SELECT); - gUnknown_203B16E = gUnknown_203B16D; - gSpecialVar_0x8005 = gUnknown_203B16E; - gMonSummaryScreen->unk3288 = 6; + sUnknown_203B16E = sUnknown_203B16D; + gSpecialVar_0x8005 = sUnknown_203B16E; + sMonSummaryScreen->unk3288 = 6; } else { PlaySE(SE_HAZURE); - gMonSummaryScreen->unk3288 = 5; + sMonSummaryScreen->unk3288 = 5; } } else if (JOY_NEW(B_BUTTON)) { - gUnknown_203B16E = 4; - gSpecialVar_0x8005 = (u16)gUnknown_203B16E; - gMonSummaryScreen->unk3288 = 6; + sUnknown_203B16E = 4; + gSpecialVar_0x8005 = (u16)sUnknown_203B16E; + sMonSummaryScreen->unk3288 = 6; } break; case 3: sub_8136F4C(); sub_81374E8(); sub_8137BD0(); - gMonSummaryScreen->unk3288 = 4; + sMonSummaryScreen->unk3288 = 4; break; case 4: if (MenuHelpers_CallLinkSomething() == TRUE || sub_800B270() == TRUE) return; - CopyWindowToVram(gMonSummaryScreen->unk3000[3], 2); - CopyWindowToVram(gMonSummaryScreen->unk3000[4], 2); - CopyWindowToVram(gMonSummaryScreen->unk3000[5], 2); - CopyWindowToVram(gMonSummaryScreen->unk3000[6], 2); + CopyWindowToVram(sMonSummaryScreen->unk3000[3], 2); + CopyWindowToVram(sMonSummaryScreen->unk3000[4], 2); + CopyWindowToVram(sMonSummaryScreen->unk3000[5], 2); + CopyWindowToVram(sMonSummaryScreen->unk3000[6], 2); CopyBgTilemapBufferToVram(0); CopyBgTilemapBufferToVram(3); - gMonSummaryScreen->unk3288 = 2; + sMonSummaryScreen->unk3288 = 2; break; case 5: - FillWindowPixelBuffer(gMonSummaryScreen->unk3000[4], 0); - AddTextPrinterParameterized4(gMonSummaryScreen->unk3000[4], 2, + FillWindowPixelBuffer(sMonSummaryScreen->unk3000[4], 0); + AddTextPrinterParameterized4(sMonSummaryScreen->unk3000[4], 2, 7, 42, 0, 0, - gUnknown_8463FA4[0], TEXT_SPEED_FF, + sUnknown_8463FA4[0], TEXT_SPEED_FF, gUnknown_8419CB9); - CopyWindowToVram(gMonSummaryScreen->unk3000[4], 2); + CopyWindowToVram(sMonSummaryScreen->unk3000[4], 2); CopyBgTilemapBufferToVram(0); CopyBgTilemapBufferToVram(3); - gMonSummaryScreen->unk3288 = 2; + sMonSummaryScreen->unk3288 = 2; break; case 6: BeginNormalPaletteFade(0xffffffff, 0, 0, 16, 0); - gMonSummaryScreen->unk3288++; + sMonSummaryScreen->unk3288++; break; default: if (!gPaletteFade.active) @@ -3952,85 +3952,85 @@ void sub_81393D4(u8 taskId) void sub_8139768(struct Sprite * sprite) { - if (gMonSummaryScreen->unk3020 >= 2) + if (sMonSummaryScreen->unk3020 >= 2) return; - if (gUnknown_203B170->unk04++ >= 2) + if (sUnknown_203B170->unk04++ >= 2) { u8 v0; - switch (gUnknown_203B170->unk08) + switch (sUnknown_203B170->unk08) { case 0: - sprite->pos1.y += gUnknown_8463FBE[gUnknown_203B170->unk00++]; - v0 = ARRAY_COUNT(gUnknown_8463FBE); + sprite->pos1.y += sUnknown_8463FBE[sUnknown_203B170->unk00++]; + v0 = ARRAY_COUNT(sUnknown_8463FBE); break; case 1: - sprite->pos1.y += gUnknown_8463FC1[gUnknown_203B170->unk00++]; - v0 = ARRAY_COUNT(gUnknown_8463FC1); + sprite->pos1.y += sUnknown_8463FC1[sUnknown_203B170->unk00++]; + v0 = ARRAY_COUNT(sUnknown_8463FC1); break; case 2: - sprite->pos1.y += gUnknown_8463FC6[gUnknown_203B170->unk00++]; - v0 = ARRAY_COUNT(gUnknown_8463FC6); + sprite->pos1.y += sUnknown_8463FC6[sUnknown_203B170->unk00++]; + v0 = ARRAY_COUNT(sUnknown_8463FC6); break; case 3: default: - sprite->pos1.y += gUnknown_8463FCD[gUnknown_203B170->unk00++]; - v0 = ARRAY_COUNT(gUnknown_8463FCD); + sprite->pos1.y += sUnknown_8463FCD[sUnknown_203B170->unk00++]; + v0 = ARRAY_COUNT(sUnknown_8463FCD); break; } - if (gUnknown_203B170->unk00 >= v0) + if (sUnknown_203B170->unk00 >= v0) { - gUnknown_203B170->unk00 = 0; - gMonSummaryScreen->unk3020++; + sUnknown_203B170->unk00 = 0; + sMonSummaryScreen->unk3020++; } - gUnknown_203B170->unk04 = 0; + sUnknown_203B170->unk04 = 0; } } void sub_8139868(struct Sprite * sprite) { - if (gMonSummaryScreen->unk3020 >= 2) + if (sMonSummaryScreen->unk3020 >= 2) return; - switch (gUnknown_203B170->unk08) + switch (sUnknown_203B170->unk08) { case 0: default: - if (gUnknown_203B170->unk04++ >= 120) + if (sUnknown_203B170->unk04++ >= 120) { - sprite->pos1.x += gUnknown_8463FD4[gUnknown_203B170->unk00]; - if (++gUnknown_203B170->unk00 >= ARRAY_COUNT(gUnknown_8463FD4)) + sprite->pos1.x += sUnknown_8463FD4[sUnknown_203B170->unk00]; + if (++sUnknown_203B170->unk00 >= ARRAY_COUNT(sUnknown_8463FD4)) { - gUnknown_203B170->unk00 = 0; - gUnknown_203B170->unk04 = 0; - gMonSummaryScreen->unk3020++; + sUnknown_203B170->unk00 = 0; + sUnknown_203B170->unk04 = 0; + sMonSummaryScreen->unk3020++; } } break; case 1: - if (gUnknown_203B170->unk04++ >= 90) + if (sUnknown_203B170->unk04++ >= 90) { - sprite->pos1.x += gUnknown_8463FDF[gUnknown_203B170->unk00]; - if (++gUnknown_203B170->unk00 >= ARRAY_COUNT(gUnknown_8463FDF)) + sprite->pos1.x += sUnknown_8463FDF[sUnknown_203B170->unk00]; + if (++sUnknown_203B170->unk00 >= ARRAY_COUNT(sUnknown_8463FDF)) { - gUnknown_203B170->unk00 = 0; - gUnknown_203B170->unk04 = 0; - gMonSummaryScreen->unk3020++; + sUnknown_203B170->unk00 = 0; + sUnknown_203B170->unk04 = 0; + sMonSummaryScreen->unk3020++; } } break; case 2: - if (gUnknown_203B170->unk04++ >= 60) + if (sUnknown_203B170->unk04++ >= 60) { - sprite->pos1.x += gUnknown_8463FEA[gUnknown_203B170->unk00]; - if (++gUnknown_203B170->unk00 >= ARRAY_COUNT(gUnknown_8463FEA)) + sprite->pos1.x += sUnknown_8463FEA[sUnknown_203B170->unk00]; + if (++sUnknown_203B170->unk00 >= ARRAY_COUNT(sUnknown_8463FEA)) { - gUnknown_203B170->unk00 = 0; - gUnknown_203B170->unk04 = 0; - gMonSummaryScreen->unk3020++; + sUnknown_203B170->unk00 = 0; + sUnknown_203B170->unk04 = 0; + sMonSummaryScreen->unk3020++; } } break; @@ -4048,22 +4048,22 @@ void sub_813995C(void) u32 personality; u32 trainerId; - gUnknown_203B170 = AllocZeroed(sizeof(struct Struct203B170)); + sUnknown_203B170 = AllocZeroed(sizeof(struct Struct203B170)); - species = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SPECIES2); - personality = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_PERSONALITY); - trainerId = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_OT_ID); + species = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES2); + personality = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_PERSONALITY); + trainerId = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_OT_ID); - if (gMonSummaryScreen->savedCallback == CB2_ReturnToTradeMenuFromSummary) + if (sMonSummaryScreen->savedCallback == CB2_ReturnToTradeMenuFromSummary) { - if (gMonSummaryScreen->isEnemyParty == TRUE) + 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, gLastViewedMonIndex)) + 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); @@ -4076,7 +4076,7 @@ void sub_813995C(void) else gSprites[spriteId].hFlip = FALSE; - gMonSummaryScreen->unk3010 = spriteId; + sMonSummaryScreen->unk3010 = spriteId; sub_8139C44(1); sub_8139AAC(spriteId); @@ -4087,59 +4087,59 @@ void sub_8139AAC(u16 spriteId) u16 curHp; u16 maxHp; - gMonSummaryScreen->unk3020 = 0; + sMonSummaryScreen->unk3020 = 0; - if (gMonSummaryScreen->isEgg == TRUE) + if (sMonSummaryScreen->isEgg == TRUE) { - u8 friendship = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_FRIENDSHIP); + u8 friendship = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_FRIENDSHIP); if (friendship <= 5) - gUnknown_203B170->unk08 = 2; + sUnknown_203B170->unk08 = 2; else { if (friendship <= 10) - gUnknown_203B170->unk08 = 1; + sUnknown_203B170->unk08 = 1; else if (friendship <= 40) - gUnknown_203B170->unk08 = 0; + sUnknown_203B170->unk08 = 0; } gSprites[spriteId].callback = sub_8139868; return; } - if (gMonSummaryScreen->unk326C != AILMENT_NONE && gMonSummaryScreen->unk326C != AILMENT_PKRS) + if (sMonSummaryScreen->unk326C != AILMENT_NONE && sMonSummaryScreen->unk326C != AILMENT_PKRS) { - if (gMonSummaryScreen->unk326C == AILMENT_FNT) + if (sMonSummaryScreen->unk326C == AILMENT_FNT) return; gSprites[spriteId].callback = nullsub_96; return; } - curHp = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_HP); - maxHp = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MAX_HP); + curHp = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_HP); + maxHp = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MAX_HP); if (curHp == maxHp) - gUnknown_203B170->unk08 = 3; + sUnknown_203B170->unk08 = 3; else if (maxHp * 0.8 <= curHp) - gUnknown_203B170->unk08 = 2; + sUnknown_203B170->unk08 = 2; else if (maxHp * 0.6 <= curHp) - gUnknown_203B170->unk08 = 1; + sUnknown_203B170->unk08 = 1; else - gUnknown_203B170->unk08 = 0; + sUnknown_203B170->unk08 = 0; gSprites[spriteId].callback = sub_8139768; } void sub_8139C44(u8 invisible) { - gSprites[gMonSummaryScreen->unk3010].invisible = invisible; + gSprites[sMonSummaryScreen->unk3010].invisible = invisible; } void sub_8139C80(void) { - FreeAndDestroyMonPicSprite(gMonSummaryScreen->unk3010); - FREE_AND_SET_NULL(gUnknown_203B170); + FreeAndDestroyMonPicSprite(sMonSummaryScreen->unk3010); + FREE_AND_SET_NULL(sUnknown_203B170); } void sub_8139CB0(void) @@ -4147,29 +4147,29 @@ void sub_8139CB0(void) u16 ballItemId; u8 ballId; - if (!gMonSummaryScreen->isEgg) - ballItemId = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_POKEBALL); + if (!sMonSummaryScreen->isEgg) + ballItemId = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_POKEBALL); else ballItemId = 0; ballId = ItemIdToBallId(ballItemId); LoadBallGfx(ballId); - gMonSummaryScreen->unk300C = CreateSprite(&gBallSpriteTemplates[ballId], 106, 88, 0); - gSprites[gMonSummaryScreen->unk300C].callback = SpriteCallbackDummy; - gSprites[gMonSummaryScreen->unk300C].oam.priority = 0; + sMonSummaryScreen->unk300C = CreateSprite(&gBallSpriteTemplates[ballId], 106, 88, 0); + gSprites[sMonSummaryScreen->unk300C].callback = SpriteCallbackDummy; + gSprites[sMonSummaryScreen->unk300C].oam.priority = 0; sub_8139D54(1); } void sub_8139D54(u8 invisible) { - gSprites[gMonSummaryScreen->unk300C].invisible = invisible; + gSprites[sMonSummaryScreen->unk300C].invisible = invisible; } void sub_8139D90(void) { - DestroySpriteAndFreeResources2(&gSprites[gMonSummaryScreen->unk300C]); + DestroySpriteAndFreeResources2(&gSprites[sMonSummaryScreen->unk300C]); } void sub_8139DBC(void) @@ -4177,45 +4177,45 @@ void sub_8139DBC(void) u16 species; u32 personality; - species = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SPECIES2); - personality = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_PERSONALITY); + species = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES2); + personality = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_PERSONALITY); SafeLoadMonIconPalette(species); - if (gMonSummaryScreen->savedCallback == CB2_ReturnToTradeMenuFromSummary) + if (sMonSummaryScreen->savedCallback == CB2_ReturnToTradeMenuFromSummary) { - if (gMonSummaryScreen->isEnemyParty == TRUE) - gMonSummaryScreen->unk3014 = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality, 0); + if (sMonSummaryScreen->isEnemyParty == TRUE) + sMonSummaryScreen->unk3014 = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality, 0); else - gMonSummaryScreen->unk3014 = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality, 1); + sMonSummaryScreen->unk3014 = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality, 1); } else { - if (sub_804455C(3, gLastViewedMonIndex)) - gMonSummaryScreen->unk3014 = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality, 0); + if (sub_804455C(3, sLastViewedMonIndex)) + sMonSummaryScreen->unk3014 = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality, 0); else - gMonSummaryScreen->unk3014 = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality, 1); + sMonSummaryScreen->unk3014 = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality, 1); } if (!IsPokeSpriteNotFlipped(species)) - gSprites[gMonSummaryScreen->unk3014].hFlip = TRUE; + gSprites[sMonSummaryScreen->unk3014].hFlip = TRUE; else - gSprites[gMonSummaryScreen->unk3014].hFlip = FALSE; + gSprites[sMonSummaryScreen->unk3014].hFlip = FALSE; sub_8139EE4(1); } void sub_8139EE4(u8 invisible) { - gSprites[gMonSummaryScreen->unk3014].invisible = invisible; + gSprites[sMonSummaryScreen->unk3014].invisible = invisible; } void sub_8139F20(void) { u16 species; - species = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SPECIES2); + species = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES2); SafeFreeMonIconPalette(species); - DestroyMonIcon(&gSprites[gMonSummaryScreen->unk3014]); + DestroyMonIcon(&gSprites[sMonSummaryScreen->unk3014]); } void sub_8139F64(u16 tileTag, u16 palTag) @@ -4226,13 +4226,13 @@ void sub_8139F64(u16 tileTag, u16 palTag) gfxBufferPtrs[0] = AllocZeroed(0x20 * 64); gfxBufferPtrs[1] = AllocZeroed(0x20 * 64); - gUnknown_203B148[0] = AllocZeroed(sizeof(struct Struct203B148)); - gUnknown_203B148[1] = AllocZeroed(sizeof(struct Struct203B148)); - gUnknown_203B148[2] = AllocZeroed(sizeof(struct Struct203B148)); - gUnknown_203B148[3] = AllocZeroed(sizeof(struct Struct203B148)); + 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(gUnknown_8463740, gfxBufferPtrs[0]); - LZ77UnCompWram(gUnknown_846386C, gfxBufferPtrs[1]); + LZ77UnCompWram(sUnknown_8463740, gfxBufferPtrs[0]); + LZ77UnCompWram(sUnknown_846386C, gfxBufferPtrs[1]); for (i = 0; i < 4; i++) { @@ -4242,12 +4242,12 @@ void sub_8139F64(u16 tileTag, u16 palTag) .tag = tileTag + i }; - struct SpritePalette palette = {.data = gUnknown_8463720, .tag = palTag}; + struct SpritePalette palette = {.data = sUnknown_8463720, .tag = palTag}; struct SpriteTemplate template = { .tileTag = tileTag + i, .paletteTag = palTag, - .oam = &gUnknown_846398C, - .anims = gUnknown_84639A4, + .oam = &sUnknown_846398C, + .anims = sUnknown_84639A4, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = sub_813A124, @@ -4256,15 +4256,15 @@ void sub_8139F64(u16 tileTag, u16 palTag) LoadSpriteSheet(&sheet); LoadSpritePalette(&palette); - spriteId = CreateSprite(&template, 64 * (i % 2) + 152, gUnknown_203B16D * 28 + 34, i % 2); - gUnknown_203B148[i]->sprite = &gSprites[spriteId]; - gUnknown_203B148[i]->unk04 = i; - gUnknown_203B148[i]->unk06 = tileTag + i; - gUnknown_203B148[i]->unk08 = palTag; - gUnknown_203B148[i]->sprite->subpriority = i; + 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(gUnknown_203B148[i]->sprite, 1); + StartSpriteAnim(sUnknown_203B148[i]->sprite, 1); } sub_813A0E8(1); @@ -4277,7 +4277,7 @@ void sub_813A0E8(u8 invisible) { u8 i; for (i = 0; i < 4; i++) - gUnknown_203B148[i]->sprite->invisible = invisible; + sUnknown_203B148[i]->sprite->invisible = invisible; } void sub_813A124(struct Sprite * sprite) @@ -4286,25 +4286,25 @@ void sub_813A124(struct Sprite * sprite) for (i = 0; i < 4; i++) { - if (gMonSummaryScreen->unk3268 == TRUE && i > 1) + if (sMonSummaryScreen->unk3268 == TRUE && i > 1) continue; - gUnknown_203B148[i]->sprite->pos1.y = gUnknown_203B16D * 28 + 34; + sUnknown_203B148[i]->sprite->pos1.y = sUnknown_203B16D * 28 + 34; } - if (gMonSummaryScreen->unk3268 != TRUE) + if (sMonSummaryScreen->unk3268 != TRUE) { - if (gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO) + if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO) { - gUnknown_203B148[0]->sprite->invisible = FALSE; - gUnknown_203B148[1]->sprite->invisible = FALSE; + sUnknown_203B148[0]->sprite->invisible = FALSE; + sUnknown_203B148[1]->sprite->invisible = FALSE; } return; } for (i = 0; i < 2; i++) { - sprite = gUnknown_203B148[i]->sprite; + sprite = sUnknown_203B148[i]->sprite; sprite->data[0]++; if (sprite->invisible) @@ -4329,10 +4329,10 @@ void sub_813A21C(void) for (i = 0; i < 4; i++) { - if (gUnknown_203B148[i]->sprite != NULL) - DestroySpriteAndFreeResources(gUnknown_203B148[i]->sprite); + if (sUnknown_203B148[i]->sprite != NULL) + DestroySpriteAndFreeResources(sUnknown_203B148[i]->sprite); - FREE_AND_SET_NULL_IF_SET(gUnknown_203B148[i]); + FREE_AND_SET_NULL_IF_SET(sUnknown_203B148[i]); } } @@ -4341,12 +4341,12 @@ void sub_813A254(u16 tileTag, u16 palTag) u16 spriteId; void * gfxBufferPtr; - gUnknown_203B158 = AllocZeroed(sizeof(struct Struct203B158)); + sUnknown_203B158 = AllocZeroed(sizeof(struct Struct203B158)); gfxBufferPtr = AllocZeroed(0x20 * 32); LZ77UnCompWram(gUnknown_8E9BF48, gfxBufferPtr); - if (gUnknown_203B158 != NULL) + if (sUnknown_203B158 != NULL) { struct SpriteSheet sheet = { .data = gfxBufferPtr, @@ -4358,8 +4358,8 @@ void sub_813A254(u16 tileTag, u16 palTag) struct SpriteTemplate template = { .tileTag = tileTag, .paletteTag = palTag, - .oam = &gUnknown_84639AC, - .anims = gUnknown_84639F4, + .oam = &sUnknown_84639AC, + .anims = sUnknown_84639F4, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, @@ -4369,9 +4369,9 @@ void sub_813A254(u16 tileTag, u16 palTag) LoadSpritePalette(&palette); spriteId = CreateSprite(&template, 0, 0, 0); - gUnknown_203B158->sprite = &gSprites[spriteId]; - gUnknown_203B158->unk04 = tileTag; - gUnknown_203B158->unk06 = palTag; + sUnknown_203B158->sprite = &gSprites[spriteId]; + sUnknown_203B158->unk04 = tileTag; + sUnknown_203B158->unk06 = palTag; } sub_813A3B8(1); @@ -4381,46 +4381,46 @@ void sub_813A254(u16 tileTag, u16 palTag) void sub_813A334(void) { - if (gUnknown_203B158->sprite != NULL) - DestroySpriteAndFreeResources(gUnknown_203B158->sprite); + if (sUnknown_203B158->sprite != NULL) + DestroySpriteAndFreeResources(sUnknown_203B158->sprite); - FREE_AND_SET_NULL_IF_SET(gUnknown_203B158); + FREE_AND_SET_NULL_IF_SET(sUnknown_203B158); } void sub_813A35C(void) { - gMonSummaryScreen->unk326C = sub_8138C5C(GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_STATUS)); + sMonSummaryScreen->unk326C = sub_8138C5C(GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_STATUS)); - if (gMonSummaryScreen->unk326C == AILMENT_NONE) + if (sMonSummaryScreen->unk326C == AILMENT_NONE) { sub_813A3B8(1); return; } - StartSpriteAnim(gUnknown_203B158->sprite, gMonSummaryScreen->unk326C - 1); + StartSpriteAnim(sUnknown_203B158->sprite, sMonSummaryScreen->unk326C - 1); sub_813A3B8(0); } void sub_813A3B8(u8 invisible) { - if (gMonSummaryScreen->unk326C == AILMENT_NONE || gMonSummaryScreen->isEgg) - gUnknown_203B158->sprite->invisible = TRUE; + if (sMonSummaryScreen->unk326C == AILMENT_NONE || sMonSummaryScreen->isEgg) + sUnknown_203B158->sprite->invisible = TRUE; else - gUnknown_203B158->sprite->invisible = invisible; + sUnknown_203B158->sprite->invisible = invisible; - if (gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO) + if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO) { - if (gUnknown_203B158->sprite->pos1.y != 45) + if (sUnknown_203B158->sprite->pos1.y != 45) { - gUnknown_203B158->sprite->pos1.x = 16; - gUnknown_203B158->sprite->pos1.y = 45; + sUnknown_203B158->sprite->pos1.x = 16; + sUnknown_203B158->sprite->pos1.y = 45; return; } } - else if (gUnknown_203B158->sprite->pos1.y != 38) + else if (sUnknown_203B158->sprite->pos1.y != 38) { - gUnknown_203B158->sprite->pos1.x = 16; - gUnknown_203B158->sprite->pos1.y = 38; + sUnknown_203B158->sprite->pos1.x = 16; + sUnknown_203B158->sprite->pos1.y = 38; return; } } @@ -4434,12 +4434,12 @@ void sub_813A45C(u16 tileTag, u16 palTag) u32 maxHp; u8 hpBarPalTagOffset = 0; - gUnknown_203B15C = AllocZeroed(sizeof(struct Struct203B15C)); + sUnknown_203B15C = AllocZeroed(sizeof(struct Struct203B15C)); gfxBufferPtr = AllocZeroed(0x20 * 12); LZ77UnCompWram(gUnknown_8E9B4B8, gfxBufferPtr); - curHp = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_HP); - maxHp = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MAX_HP); + curHp = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_HP); + maxHp = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MAX_HP); if (maxHp / 4 > curHp) hpBarPalTagOffset = 2; @@ -4454,9 +4454,9 @@ void sub_813A45C(u16 tileTag, u16 palTag) .tag = tileTag }; - struct SpritePalette palette1 = {.data = gUnknown_8463FFC[0], .tag = palTag}; - struct SpritePalette palette2 = {.data = gUnknown_8463FFC[1], .tag = palTag + 1}; - struct SpritePalette palette3 = {.data = gUnknown_8463FFC[2], .tag = palTag + 2}; + 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); @@ -4469,21 +4469,21 @@ void sub_813A45C(u16 tileTag, u16 palTag) struct SpriteTemplate template = { .tileTag = tileTag, .paletteTag = palTag + hpBarPalTagOffset, - .oam = &gUnknown_8463A14, - .anims = gUnknown_8463A7C, + .oam = &sUnknown_8463A14, + .anims = sUnknown_8463A7C, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; - gUnknown_203B15C->unk28[i] = i * 8 + 172; - spriteId = CreateSprite(&template, gUnknown_203B15C->unk28[i], 36, 0); - gUnknown_203B15C->sprites[i] = &gSprites[spriteId]; - gUnknown_203B15C->sprites[i]->invisible = FALSE; - gUnknown_203B15C->sprites[i]->oam.priority = 2; - gUnknown_203B15C->unk3C = tileTag; - gUnknown_203B15C->unk3E = palTag; - StartSpriteAnim(gUnknown_203B15C->sprites[i], 8); + 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(); @@ -4504,11 +4504,11 @@ void sub_813A620(void) s64 v0; s64 v1; - if (gMonSummaryScreen->isEgg) + if (sMonSummaryScreen->isEgg) return; - curHp = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_HP); - maxHp = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MAX_HP); + curHp = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_HP); + maxHp = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MAX_HP); if (maxHp / 5 >= curHp) hpBarPalOffset = 2; @@ -4530,11 +4530,11 @@ void sub_813A620(void) } for (i = 0; i < 9; i++) - gUnknown_203B15C->sprites[i]->oam.paletteNum = IndexOfSpritePaletteTag(TAG_PSS_UNK_78) + hpBarPalOffset; + sUnknown_203B15C->sprites[i]->oam.paletteNum = IndexOfSpritePaletteTag(TAG_PSS_UNK_78) + hpBarPalOffset; if (curHp == maxHp) for (i = two; i < 8; i++) - StartSpriteAnim(gUnknown_203B15C->sprites[i], 8); + StartSpriteAnim(sUnknown_203B15C->sprites[i], 8); else { @@ -4552,18 +4552,18 @@ void sub_813A620(void) numWholeHpBarTiles += two; for (i = two; i < numWholeHpBarTiles; i++) - StartSpriteAnim(gUnknown_203B15C->sprites[i], 8); + StartSpriteAnim(sUnknown_203B15C->sprites[i], 8); animNum = (v1 * 6) / v0; - StartSpriteAnim(gUnknown_203B15C->sprites[numWholeHpBarTiles], animNum); + StartSpriteAnim(sUnknown_203B15C->sprites[numWholeHpBarTiles], animNum); for (i = numWholeHpBarTiles + 1; i < 8; i++) - StartSpriteAnim(gUnknown_203B15C->sprites[i], 0); + StartSpriteAnim(sUnknown_203B15C->sprites[i], 0); } - StartSpriteAnim(gUnknown_203B15C->sprites[0], 9); - StartSpriteAnim(gUnknown_203B15C->sprites[1], 10); - StartSpriteAnim(gUnknown_203B15C->sprites[8], 11); + StartSpriteAnim(sUnknown_203B15C->sprites[0], 9); + StartSpriteAnim(sUnknown_203B15C->sprites[1], 10); + StartSpriteAnim(sUnknown_203B15C->sprites[8], 11); } void sub_813A800(void) @@ -4571,10 +4571,10 @@ void sub_813A800(void) u8 i; for (i = 0; i < 9; i++) - if (gUnknown_203B15C->sprites[i] != NULL) - DestroySpriteAndFreeResources(gUnknown_203B15C->sprites[i]); + if (sUnknown_203B15C->sprites[i] != NULL) + DestroySpriteAndFreeResources(sUnknown_203B15C->sprites[i]); - FREE_AND_SET_NULL_IF_SET(gUnknown_203B15C); + FREE_AND_SET_NULL_IF_SET(sUnknown_203B15C); } void sub_813A838(u8 invisible) @@ -4582,7 +4582,7 @@ void sub_813A838(u8 invisible) u8 i; for (i = 0; i < 9; i++) - gUnknown_203B15C->sprites[i]->invisible = invisible; + sUnknown_203B15C->sprites[i]->invisible = invisible; } void sub_813A874(u16 tileTag, u16 palTag) @@ -4591,7 +4591,7 @@ void sub_813A874(u16 tileTag, u16 palTag) u8 spriteId; void * gfxBufferPtr; - gUnknown_203B160 = AllocZeroed(sizeof(struct Struct203B160)); + sUnknown_203B160 = AllocZeroed(sizeof(struct Struct203B160)); gfxBufferPtr = AllocZeroed(0x20 * 12); LZ77UnCompWram(gUnknown_8E9B3F0, gfxBufferPtr); @@ -4613,19 +4613,19 @@ void sub_813A874(u16 tileTag, u16 palTag) struct SpriteTemplate template = { .tileTag = tileTag, .paletteTag = palTag, - .oam = &gUnknown_8463A14, - .anims = gUnknown_8463A7C, + .oam = &sUnknown_8463A14, + .anims = sUnknown_8463A7C, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; - gUnknown_203B160->unk2C[i] = i * 8 + 156; - spriteId = CreateSprite(&template, gUnknown_203B160->unk2C[i], 132, 0); - gUnknown_203B160->sprites[i] = &gSprites[spriteId]; - gUnknown_203B160->sprites[i]->oam.priority = 2; - gUnknown_203B160->unk42 = tileTag; - gUnknown_203B160->unk44 = palTag; + 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(); @@ -4648,12 +4648,12 @@ void sub_813A994(void) u8 animNum; u8 two = 2; - if (gMonSummaryScreen->isEgg) + if (sMonSummaryScreen->isEgg) return; - exp = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_EXP); - level = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_LEVEL); - species = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SPECIES); + exp = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_EXP); + level = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_LEVEL); + species = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES); if (level < 100) { @@ -4673,29 +4673,29 @@ void sub_813A994(void) numWholeExpBarTiles += two; for (i = two; i < numWholeExpBarTiles; i++) - StartSpriteAnim(gUnknown_203B160->sprites[i], 8); + StartSpriteAnim(sUnknown_203B160->sprites[i], 8); if (numWholeExpBarTiles >= 10) { if (totalExpToNextLevel == curExpToNextLevel) return; else - StartSpriteAnim(gUnknown_203B160->sprites[9], 7); + StartSpriteAnim(sUnknown_203B160->sprites[9], 7); } animNum = (v1 * 8) / v0; - StartSpriteAnim(gUnknown_203B160->sprites[numWholeExpBarTiles], animNum); + StartSpriteAnim(sUnknown_203B160->sprites[numWholeExpBarTiles], animNum); for (i = numWholeExpBarTiles + 1; i < 10; i++) - StartSpriteAnim(gUnknown_203B160->sprites[i], 0); + StartSpriteAnim(sUnknown_203B160->sprites[i], 0); } else for (i = two; i < 10; i++) - StartSpriteAnim(gUnknown_203B160->sprites[i], 0); + StartSpriteAnim(sUnknown_203B160->sprites[i], 0); - StartSpriteAnim(gUnknown_203B160->sprites[0], 9); - StartSpriteAnim(gUnknown_203B160->sprites[1], 10); - StartSpriteAnim(gUnknown_203B160->sprites[10], 11); + StartSpriteAnim(sUnknown_203B160->sprites[0], 9); + StartSpriteAnim(sUnknown_203B160->sprites[1], 10); + StartSpriteAnim(sUnknown_203B160->sprites[10], 11); } void sub_813AB38(void) @@ -4703,10 +4703,10 @@ void sub_813AB38(void) u8 i; for (i = 0; i < 11; i++) - if (gUnknown_203B160->sprites[i] != NULL) - DestroySpriteAndFreeResources(gUnknown_203B160->sprites[i]); + if (sUnknown_203B160->sprites[i] != NULL) + DestroySpriteAndFreeResources(sUnknown_203B160->sprites[i]); - FREE_AND_SET_NULL_IF_SET(gUnknown_203B160); + FREE_AND_SET_NULL_IF_SET(sUnknown_203B160); } void sub_813AB70(u8 invisible) @@ -4714,7 +4714,7 @@ void sub_813AB70(u8 invisible) u8 i; for (i = 0; i < 11; i++) - gUnknown_203B160->sprites[i]->invisible = invisible; + sUnknown_203B160->sprites[i]->invisible = invisible; } void sub_813ABAC(u16 tileTag, u16 palTag) @@ -4722,12 +4722,12 @@ void sub_813ABAC(u16 tileTag, u16 palTag) u16 spriteId; void * gfxBufferPtr; - gUnknown_203B164 = AllocZeroed(sizeof(struct Struct203B164)); + sUnknown_203B164 = AllocZeroed(sizeof(struct Struct203B164)); gfxBufferPtr = AllocZeroed(0x20 * 1); - LZ77UnCompWram(gUnknown_8463B20, gfxBufferPtr); + LZ77UnCompWram(sUnknown_8463B20, gfxBufferPtr); - if (gUnknown_203B164 != NULL) + if (sUnknown_203B164 != NULL) { struct SpriteSheet sheet = { .data = gfxBufferPtr, @@ -4735,12 +4735,12 @@ void sub_813ABAC(u16 tileTag, u16 palTag) .tag = tileTag }; - struct SpritePalette palette = {.data = gUnknown_8463B00, .tag = palTag}; + struct SpritePalette palette = {.data = sUnknown_8463B00, .tag = palTag}; struct SpriteTemplate template = { .tileTag = tileTag, .paletteTag = palTag, - .oam = &gUnknown_8463AEC, - .anims = gUnknown_8463AFC, + .oam = &sUnknown_8463AEC, + .anims = sUnknown_8463AFC, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, @@ -4750,9 +4750,9 @@ void sub_813ABAC(u16 tileTag, u16 palTag) LoadSpritePalette(&palette); spriteId = CreateSprite(&template, 114, 92, 0); - gUnknown_203B164->sprite = &gSprites[spriteId]; - gUnknown_203B164->unk04 = tileTag; - gUnknown_203B164->unk06 = palTag; + sUnknown_203B164->sprite = &gSprites[spriteId]; + sUnknown_203B164->unk04 = tileTag; + sUnknown_203B164->unk06 = palTag; } sub_813ACF8(1); @@ -4763,16 +4763,16 @@ void sub_813ABAC(u16 tileTag, u16 palTag) void sub_813AC8C(void) { - if (gUnknown_203B164->sprite != NULL) - DestroySpriteAndFreeResources(gUnknown_203B164->sprite); + if (sUnknown_203B164->sprite != NULL) + DestroySpriteAndFreeResources(sUnknown_203B164->sprite); - FREE_AND_SET_NULL_IF_SET(gUnknown_203B164); + FREE_AND_SET_NULL_IF_SET(sUnknown_203B164); } void sub_813ACB4(void) { - if (!CheckPartyPokerus(&gMonSummaryScreen->currentMon, 0) - && CheckPartyHasHadPokerus(&gMonSummaryScreen->currentMon, 0)) + if (!CheckPartyPokerus(&sMonSummaryScreen->currentMon, 0) + && CheckPartyHasHadPokerus(&sMonSummaryScreen->currentMon, 0)) sub_813ACF8(0); else sub_813ACF8(1); @@ -4780,25 +4780,25 @@ void sub_813ACB4(void) void sub_813ACF8(u8 invisible) { - if (!CheckPartyPokerus(&gMonSummaryScreen->currentMon, 0) - && CheckPartyHasHadPokerus(&gMonSummaryScreen->currentMon, 0)) + if (!CheckPartyPokerus(&sMonSummaryScreen->currentMon, 0) + && CheckPartyHasHadPokerus(&sMonSummaryScreen->currentMon, 0)) { - gUnknown_203B164->sprite->invisible = invisible; + sUnknown_203B164->sprite->invisible = invisible; return; } else - gUnknown_203B164->sprite->invisible = TRUE; + sUnknown_203B164->sprite->invisible = TRUE; - if (gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO) + if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO) { - gUnknown_203B164->sprite->invisible = TRUE; - gUnknown_203B164->sprite->pos1.x = 16; - gUnknown_203B164->sprite->pos1.y = 44; + sUnknown_203B164->sprite->invisible = TRUE; + sUnknown_203B164->sprite->pos1.x = 16; + sUnknown_203B164->sprite->pos1.y = 44; } else { - gUnknown_203B164->sprite->pos1.x = 114; - gUnknown_203B164->sprite->pos1.y = 92; + sUnknown_203B164->sprite->pos1.x = 114; + sUnknown_203B164->sprite->pos1.y = 92; } } @@ -4807,12 +4807,12 @@ void sub_813ADA8(u16 tileTag, u16 palTag) u16 spriteId; void * gfxBufferPtr; - gUnknown_203B168 = AllocZeroed(sizeof(struct Struct203B168)); + sUnknown_203B168 = AllocZeroed(sizeof(struct Struct203B168)); gfxBufferPtr = AllocZeroed(0x20 * 2); - LZ77UnCompWram(gUnknown_8463B64, gfxBufferPtr); + LZ77UnCompWram(sUnknown_8463B64, gfxBufferPtr); - if (gUnknown_203B168 != NULL) + if (sUnknown_203B168 != NULL) { struct SpriteSheet sheet = { .data = gfxBufferPtr, @@ -4820,12 +4820,12 @@ void sub_813ADA8(u16 tileTag, u16 palTag) .tag = tileTag }; - struct SpritePalette palette = {.data = gUnknown_8463B44, .tag = palTag}; + struct SpritePalette palette = {.data = sUnknown_8463B44, .tag = palTag}; struct SpriteTemplate template = { .tileTag = tileTag, .paletteTag = palTag, - .oam = &gUnknown_8463B30, - .anims = gUnknown_8463B40, + .oam = &sUnknown_8463B30, + .anims = sUnknown_8463B40, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, @@ -4834,9 +4834,9 @@ void sub_813ADA8(u16 tileTag, u16 palTag) LoadSpriteSheet(&sheet); LoadSpritePalette(&palette); spriteId = CreateSprite(&template, 106, 40, 0); - gUnknown_203B168->sprite = &gSprites[spriteId]; - gUnknown_203B168->unk04 = tileTag; - gUnknown_203B168->unk06 = palTag; + sUnknown_203B168->sprite = &gSprites[spriteId]; + sUnknown_203B168->unk04 = tileTag; + sUnknown_203B168->unk06 = palTag; } sub_813AEB0(1); @@ -4847,35 +4847,35 @@ void sub_813ADA8(u16 tileTag, u16 palTag) void sub_813AE88(void) { - if (gUnknown_203B168->sprite != NULL) - DestroySpriteAndFreeResources(gUnknown_203B168->sprite); + if (sUnknown_203B168->sprite != NULL) + DestroySpriteAndFreeResources(sUnknown_203B168->sprite); - FREE_AND_SET_NULL_IF_SET(gUnknown_203B168); + FREE_AND_SET_NULL_IF_SET(sUnknown_203B168); } void sub_813AEB0(u8 invisible) { - if (IsMonShiny(&gMonSummaryScreen->currentMon) == TRUE - && !gMonSummaryScreen->isEgg) - gUnknown_203B168->sprite->invisible = invisible; + if (IsMonShiny(&sMonSummaryScreen->currentMon) == TRUE + && !sMonSummaryScreen->isEgg) + sUnknown_203B168->sprite->invisible = invisible; else - gUnknown_203B168->sprite->invisible = TRUE; + sUnknown_203B168->sprite->invisible = TRUE; - if (gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO) + if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO) { - gUnknown_203B168->sprite->pos1.x = 8; - gUnknown_203B168->sprite->pos1.y = 24; + sUnknown_203B168->sprite->pos1.x = 8; + sUnknown_203B168->sprite->pos1.y = 24; } else { - gUnknown_203B168->sprite->pos1.x = 106; - gUnknown_203B168->sprite->pos1.y = 40; + sUnknown_203B168->sprite->pos1.x = 106; + sUnknown_203B168->sprite->pos1.y = 40; } } void sub_813AF50(void) { - if (IsMonShiny(&gMonSummaryScreen->currentMon) == TRUE && !gMonSummaryScreen->isEgg) + if (IsMonShiny(&sMonSummaryScreen->currentMon) == TRUE && !sMonSummaryScreen->isEgg) sub_813AEB0(0); else sub_813AEB0(1); @@ -4913,16 +4913,16 @@ void sub_813AFC4(void) void sub_813AFFC(void) { - u32 markings = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MARKINGS); + u32 markings = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MARKINGS); - DestroySpriteAndFreeResources(gMonSummaryScreen->markingSprite); - gMonSummaryScreen->markingSprite = CreateMonMarkingSprite_SelectCombo(TAG_PSS_UNK_8C, TAG_PSS_UNK_8C, gUnknown_84636E0); + DestroySpriteAndFreeResources(sMonSummaryScreen->markingSprite); + sMonSummaryScreen->markingSprite = CreateMonMarkingSprite_SelectCombo(TAG_PSS_UNK_8C, TAG_PSS_UNK_8C, sUnknown_84636E0); - if (gMonSummaryScreen->markingSprite != NULL) + if (sMonSummaryScreen->markingSprite != NULL) { - StartSpriteAnim(gMonSummaryScreen->markingSprite, markings); - gMonSummaryScreen->markingSprite->pos1.x = 20; - gMonSummaryScreen->markingSprite->pos1.y = 91; + StartSpriteAnim(sMonSummaryScreen->markingSprite, markings); + sMonSummaryScreen->markingSprite->pos1.x = 20; + sMonSummaryScreen->markingSprite->pos1.y = 91; } sub_813B084(1); @@ -4930,24 +4930,24 @@ void sub_813AFFC(void) void sub_813B068(void) { - DestroySpriteAndFreeResources(gMonSummaryScreen->markingSprite); + DestroySpriteAndFreeResources(sMonSummaryScreen->markingSprite); } void sub_813B084(u8 invisible) { - u32 markings = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MARKINGS); + u32 markings = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MARKINGS); if (markings == 0) - gMonSummaryScreen->markingSprite->invisible = TRUE; + sMonSummaryScreen->markingSprite->invisible = TRUE; else - gMonSummaryScreen->markingSprite->invisible = invisible; + sMonSummaryScreen->markingSprite->invisible = invisible; } void sub_813B0E4(void) { - u32 markings = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MARKINGS); + u32 markings = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MARKINGS); - StartSpriteAnim(gMonSummaryScreen->markingSprite, markings); + StartSpriteAnim(sMonSummaryScreen->markingSprite, markings); sub_813B084(0); } @@ -4955,9 +4955,9 @@ void sub_813B120(u8 taskId, s8 a1) { s8 v0 = -1; - if (gMonSummaryScreen->isBoxMon == TRUE) + if (sMonSummaryScreen->isBoxMon == TRUE) { - if (gMonSummaryScreen->curPageIndex != 0) + if (sMonSummaryScreen->curPageIndex != 0) { if (a1 == 1) a1 = 0; @@ -4972,7 +4972,7 @@ void sub_813B120(u8 taskId, s8 a1) a1 = 3; } - v0 = SeekToNextMonInBox(gMonSummaryScreen->monList.boxMons, GetLastViewedMonIndex(), gMonSummaryScreen->lastIndex, (u8)a1); + v0 = SeekToNextMonInBox(sMonSummaryScreen->monList.boxMons, GetLastViewedMonIndex(), sMonSummaryScreen->lastIndex, (u8)a1); } else { @@ -4987,34 +4987,34 @@ void sub_813B120(u8 taskId, s8 a1) if (v0 == -1) return; - gLastViewedMonIndex = v0; + sLastViewedMonIndex = v0; CreateTask(sub_813B3F0, 0); - gMonSummaryScreen->unk328C = 0; + sMonSummaryScreen->unk328C = 0; } s8 sub_813B20C(s8 a0) { - struct Pokemon * partyMons = gMonSummaryScreen->monList.mons; + struct Pokemon * partyMons = sMonSummaryScreen->monList.mons; s8 v1 = 0; - if (gMonSummaryScreen->curPageIndex == 0) + if (sMonSummaryScreen->curPageIndex == 0) { - if (a0 == -1 && gLastViewedMonIndex == 0) + if (a0 == -1 && sLastViewedMonIndex == 0) return -1; - else if (a0 == 1 && gLastViewedMonIndex >= gMonSummaryScreen->lastIndex) + else if (a0 == 1 && sLastViewedMonIndex >= sMonSummaryScreen->lastIndex) return -1; else - return gLastViewedMonIndex + a0; + return sLastViewedMonIndex + a0; } while (TRUE) { v1 += a0; - if (0 > gLastViewedMonIndex + v1 || gLastViewedMonIndex + v1 > gMonSummaryScreen->lastIndex) + if (0 > sLastViewedMonIndex + v1 || sLastViewedMonIndex + v1 > sMonSummaryScreen->lastIndex) return -1; - if (GetMonData(&partyMons[gLastViewedMonIndex + v1], MON_DATA_IS_EGG) == 0) - return gLastViewedMonIndex + v1; + if (GetMonData(&partyMons[sLastViewedMonIndex + v1], MON_DATA_IS_EGG) == 0) + return sLastViewedMonIndex + v1; } return -1; @@ -5022,7 +5022,7 @@ s8 sub_813B20C(s8 a0) u8 sub_813B2C8(struct Pokemon * partyMons) { - if (GetMonData(partyMons, MON_DATA_SPECIES) != 0 && (gMonSummaryScreen->curPageIndex != 0 || GetMonData(partyMons, MON_DATA_IS_EGG) == 0)) + if (GetMonData(partyMons, MON_DATA_SPECIES) != 0 && (sMonSummaryScreen->curPageIndex != 0 || GetMonData(partyMons, MON_DATA_IS_EGG) == 0)) return TRUE; return FALSE; @@ -5036,11 +5036,11 @@ s8 sub_813B304(u8 a0) if (a0 == 6) return -1; - if (sub_813B2C8(&gPlayerParty[gUnknown_8463FB8[a0]]) == TRUE) + if (sub_813B2C8(&gPlayerParty[sUnknown_8463FB8[a0]]) == TRUE) break; } - return (s8)gUnknown_8463FB8[a0]; + return (s8)sUnknown_8463FB8[a0]; } s8 sub_813B348(u8 a0) @@ -5052,11 +5052,11 @@ s8 sub_813B348(u8 a0) a0--; - if (sub_813B2C8(&gPlayerParty[gUnknown_8463FB8[a0]]) == TRUE) + if (sub_813B2C8(&gPlayerParty[sUnknown_8463FB8[a0]]) == TRUE) break; } - return (s8)(gUnknown_8463FB8[a0]); + return (s8)(sUnknown_8463FB8[a0]); } s8 sub_813B38C(s8 a0) @@ -5065,7 +5065,7 @@ s8 sub_813B38C(s8 a0) u8 i; for (i = 0; i < PARTY_SIZE; i++) - if (gUnknown_8463FB8[i] == GetLastViewedMonIndex()) + if (sUnknown_8463FB8[i] == GetLastViewedMonIndex()) { v0 = i; break; @@ -5083,35 +5083,35 @@ s8 sub_813B38C(s8 a0) void sub_813B3F0(u8 id) { - switch (gMonSummaryScreen->unk328C) + switch (sMonSummaryScreen->unk328C) { case 0: StopCryAndClearCrySongs(); - gUnknown_203B16D = 0; - gUnknown_203B16E = 0; - gMonSummaryScreen->unk328C++; + sUnknown_203B16D = 0; + sUnknown_203B16E = 0; + sMonSummaryScreen->unk328C++; break; case 1: sub_8139C80(); sub_8139F20(); sub_8139D90(); - gMonSummaryScreen->unk328C++; + sMonSummaryScreen->unk328C++; break; case 2: - sub_8138B8C(&gMonSummaryScreen->currentMon); + sub_8138B8C(&sMonSummaryScreen->currentMon); - gMonSummaryScreen->isEgg = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_IS_EGG); - gMonSummaryScreen->isBadEgg = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SANITY_IS_BAD_EGG); + sMonSummaryScreen->isEgg = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_IS_EGG); + sMonSummaryScreen->isBadEgg = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SANITY_IS_BAD_EGG); - if (gMonSummaryScreen->isBadEgg == TRUE) - gMonSummaryScreen->isEgg = TRUE; + if (sMonSummaryScreen->isBadEgg == TRUE) + sMonSummaryScreen->isEgg = TRUE; - gMonSummaryScreen->unk328C++; + sMonSummaryScreen->unk328C++; break; case 3: FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); - if (IsMonShiny(&gMonSummaryScreen->currentMon) == TRUE && !gMonSummaryScreen->isEgg) + if (IsMonShiny(&sMonSummaryScreen->currentMon) == TRUE && !sMonSummaryScreen->isEgg) { LoadPalette(&gUnknown_8E9B310[16 * 6], 0, 0x20); LoadPalette(&gUnknown_8E9B310[16 * 5], 0x10, 0x20); @@ -5122,75 +5122,75 @@ void sub_813B3F0(u8 id) LoadPalette(&gUnknown_8E9B310[16 * 1], 0x10, 0x20); } - gMonSummaryScreen->unk328C++; + sMonSummaryScreen->unk328C++; break; case 4: - if (gMonSummaryScreen->curPageIndex == PSS_PAGE_INFO) + if (sMonSummaryScreen->curPageIndex == PSS_PAGE_INFO) { - if (gMonSummaryScreen->isEgg) + if (sMonSummaryScreen->isEgg) { - CopyToBgTilemapBuffer(gMonSummaryScreen->unk323C, gUnknown_8E9BBCC, 0, 0); - CopyToBgTilemapBuffer(gMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0); + CopyToBgTilemapBuffer(sMonSummaryScreen->unk323C, gUnknown_8E9BBCC, 0, 0); + CopyToBgTilemapBuffer(sMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0); } else { - CopyToBgTilemapBuffer(gMonSummaryScreen->unk323C, gUnknown_8E9B598, 0, 0); - CopyToBgTilemapBuffer(gMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0); + CopyToBgTilemapBuffer(sMonSummaryScreen->unk323C, gUnknown_8E9B598, 0, 0); + CopyToBgTilemapBuffer(sMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0); } } - gMonSummaryScreen->unk328C++; + sMonSummaryScreen->unk328C++; break; case 5: sub_81360D4(); - gMonSummaryScreen->unk328C++; + sMonSummaryScreen->unk328C++; break; case 6: - if (!gMonSummaryScreen->isEgg) + if (!sMonSummaryScreen->isEgg) sub_8136350(); - gMonSummaryScreen->unk328C++; + sMonSummaryScreen->unk328C++; break; case 7: - if (!gMonSummaryScreen->isEgg) + if (!sMonSummaryScreen->isEgg) sub_81367B0(); - gMonSummaryScreen->unk328C++; + sMonSummaryScreen->unk328C++; break; case 8: sub_8136F4C(); sub_81374E8(); sub_8137BD0(); - gMonSummaryScreen->unk328C++; + sMonSummaryScreen->unk328C++; break; case 9: sub_8138A38(); sub_8138538(); - sub_8137D28(gMonSummaryScreen->curPageIndex); - gMonSummaryScreen->unk328C++; + sub_8137D28(sMonSummaryScreen->curPageIndex); + sMonSummaryScreen->unk328C++; break; case 10: - CopyWindowToVram(gMonSummaryScreen->unk3000[0], 2); - CopyWindowToVram(gMonSummaryScreen->unk3000[1], 2); - CopyWindowToVram(gMonSummaryScreen->unk3000[2], 2); - CopyWindowToVram(gMonSummaryScreen->unk3000[6], 2); - CopyWindowToVram(gMonSummaryScreen->unk3000[3], 2); - CopyWindowToVram(gMonSummaryScreen->unk3000[4], 2); - CopyWindowToVram(gMonSummaryScreen->unk3000[5], 2); + 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); - gMonSummaryScreen->unk328C++; + sMonSummaryScreen->unk328C++; break; case 11: if (!Overworld_LinkRecvQueueLengthMoreThan2() && !sub_800B270()) { sub_813AFC4(); sub_813B784(); - gMonSummaryScreen->unk328C++; + sMonSummaryScreen->unk328C++; } break; default: - gMonSummaryScreen->unk328C = 0; + sMonSummaryScreen->unk328C = 0; DestroyTask(id); break; } @@ -5214,12 +5214,12 @@ void sub_813B750(u8 curPageIndex) void sub_813B784(void) { - if (!GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_IS_EGG)) + if (!GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_IS_EGG)) { - if (ShouldPlayNormalPokeCry(&gMonSummaryScreen->currentMon) == TRUE) - PlayCry3(GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SPECIES2), 0, 0); + if (ShouldPlayNormalPokeCry(&sMonSummaryScreen->currentMon) == TRUE) + PlayCry3(GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES2), 0, 0); else - PlayCry3(GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SPECIES2), 0, 11); + PlayCry3(GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES2), 0, 11); } } @@ -5233,7 +5233,7 @@ bool32 sub_813B7E0(u8 nature) bool32 sub_813B7F8(void) { - u8 version = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MET_GAME); + u8 version = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MET_GAME); if (version == VERSION_LEAF_GREEN || version == VERSION_FIRE_RED From ed4a7038381702461b6f3b49dae97aaac4b59630 Mon Sep 17 00:00:00 2001 From: luckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com> Date: Sat, 4 Jul 2020 20:54:24 -0400 Subject: [PATCH 21/25] Apply static modifier to static functions in PSS. --- include/pokemon_summary_screen.h | 8 +- src/pokemon_summary_screen.c | 460 +++++++++++++++---------------- 2 files changed, 233 insertions(+), 235 deletions(-) diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h index df136ac21..f70337677 100644 --- a/include/pokemon_summary_screen.h +++ b/include/pokemon_summary_screen.h @@ -7,10 +7,12 @@ 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. @@ -54,10 +56,6 @@ enum PokemonSummaryScreenStat PSS_STAT_SPE }; -u8 GetLastViewedMonIndex(void); -void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, void (*callback)(void), u8 a4); -void sub_8138B38(u8); - #define TAG_PSS_UNK_64 0x64 #define TAG_PSS_UNK_65 0x65 #define TAG_PSS_UNK_66 0x66 diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 79ad92b9c..781ccf390 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -38,108 +38,108 @@ // 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); -extern void sub_8138B8C(struct Pokemon * mon); -void sub_8135C34(void); -extern void sub_813B784(void); -extern void sub_8138414(u8 curPageIndex); +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); -extern void sub_813B3F0(u8 taskId); -extern void sub_813B120(u8, s8); -extern void sub_8137E64(u8 taskId); -void sub_8135638(void); -void sub_81356EC(void); -extern void sub_813B750(u8 curPageIndex); -extern void sub_8138280(u8 curPageIndex); -extern void sub_8137D28(u8 curPageIndex); -void sub_8135514(void); -u8 sub_81357A0(u8); -extern void sub_8138440(void); -extern void sub_8138CD8(u8 taskId); -void sub_8135AA4(void); -void sub_8135B90(void); -extern void sub_8138538(void); -extern void sub_8137D28(u8 curPageIndex); -extern void sub_8136F4C(void); -extern void sub_81374E8(void); -extern void sub_8137BD0(void); -extern void sub_8138A38(void); -void sub_8136DA4(const u8 * str); -void sub_8136DF0(const u8 * str); -extern void sub_8136E50(const u8 * str); -void sub_81358DC(u8, u8); -extern void sub_813A838(u8 invisible); -extern void sub_813AB70(u8 invisible); -extern void sub_8139C44(u8 invisible); -extern void sub_813B084(u8 invisible); -extern void sub_8139D54(u8 invisible); -extern void sub_813A3B8(u8 invisible); -extern void sub_813ACF8(u8 invisible); -extern void sub_813AEB0(u8 invisible); -extern void sub_813A0E8(u8 invisible); -extern void sub_8139EE4(u8 invisible); -extern void sub_81381AC(void); -void sub_8136BC4(void); -void sub_8136BAC(void); -u8 sub_8135F20(void); -u8 sub_8136AEC(void); -extern void sub_81381D0(void); -u8 sub_8136040(void); -extern void sub_8137E28(void); -extern void sub_81381C0(void); -void sub_8136D54(void); -extern void sub_81360D4(void); -extern void sub_8136350(void); -extern void sub_81367B0(void); -extern u8 sub_8138C5C(u32 status); -void sub_81367E8(u8); -u16 sub_8138BEC(struct Pokemon * mon, u8 moveSlot); -u16 sub_8138C24(struct Pokemon * mon, u8 moveSlot); -extern void sub_813ADA8(u16, u16); -extern void sub_813ABAC(u16, u16); -extern void sub_813AFFC(void); -extern void sub_8139F64(u16, u16); -extern void sub_813A254(u16, u16); -extern void sub_813A45C(u16, u16); -extern void sub_813A874(u16, u16); -extern void sub_8139CB0(void); -extern void sub_8139DBC(void); -extern void sub_813995C(void); -extern void sub_81393D4(u8 taskId); -extern void sub_8137EE8(void); -extern void sub_8136FB0(void); -extern void sub_81370EC(void); -extern void sub_8137270(void); -extern void sub_81372E4(u8 i); -extern void sub_8137554(void); -void sub_8137A90(void); -extern void sub_8137AF8(void); -void sub_8137944(void); -void sub_8137970(void); -extern bool32 sub_813B838(u8 metLocation); -extern bool32 sub_8138B4C(void); -extern bool32 sub_813B7E0(u8 nature); -void sub_8137724(void); -extern bool32 sub_813B7F8(void); -extern u8 sub_813847C(struct Pokemon * mon); -extern void sub_8137C18(void); -extern void sub_8137C90(void); -extern void sub_813AF90(void); -void sub_81380F0(void); -extern void sub_81390B0(void); -extern void sub_81391EC(void); -extern void sub_8139328(struct Pokemon * mon); -extern void sub_8139AAC(u16 spriteId); -extern void sub_813A124(struct Sprite * sprite); -extern void sub_813A35C(void); -extern void sub_813A620(void); -extern void sub_813A994(void); -extern void sub_813ACB4(void); -extern void sub_813AF50(void); -extern void sub_813B068(void); -extern void sub_813B0E4(void); -extern s8 sub_813B20C(s8); -extern s8 sub_813B38C(s8); +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 { @@ -1034,7 +1034,7 @@ void ShowSelectMovePokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 sMonSummaryScreen->unk325A[4] = a4; } -u8 sub_813476C(u8 a0) +static u8 sub_813476C(u8 a0) { if (sMonSummaryScreen->unk301C == TRUE && sMonSummaryScreen->unk3224 != a0) return TRUE; @@ -1079,7 +1079,7 @@ u32 sub_81347A4(u8 a0) return FALSE; } -void sub_8134840(u8 taskId) +static void sub_8134840(u8 taskId) { switch (sMonSummaryScreen->state3270) { case PSS_STATE3270_0: @@ -1421,7 +1421,7 @@ static void sub_8134E84(u8 taskId) return; } -void sub_81351A0(u8 taskId) +static void sub_81351A0(u8 taskId) { switch (sMonSummaryScreen->unk3284) { @@ -1507,7 +1507,7 @@ void sub_81351A0(u8 taskId) return; } -void sub_813546C(void) +static void sub_813546C(void) { u8 i; for (i = 0; i < 11; i++) @@ -1522,7 +1522,7 @@ void sub_813546C(void) } } -void sub_81354C4(void) +static void sub_81354C4(void) { u8 i; for (i = 0; i < 11; i++) @@ -1536,7 +1536,7 @@ void sub_81354C4(void) } } -void sub_8135514(void) +static void sub_8135514(void) { s8 pageDelta = 1; @@ -1593,7 +1593,7 @@ void sub_8135514(void) } -void sub_8135638(void) +static void sub_8135638(void) { u8 newPage; @@ -1632,7 +1632,7 @@ void sub_8135638(void) } } -void sub_81356EC(void) +static void sub_81356EC(void) { u8 newPage; @@ -1675,7 +1675,7 @@ void sub_81356EC(void) } } -u8 sub_81357A0(u8 a0) +static u8 sub_81357A0(u8 a0) { s8 pageDelta = 1; @@ -1723,7 +1723,7 @@ u8 sub_81357A0(u8 a0) return FALSE; } -void sub_81358DC(u8 a0, u8 a1) +static void sub_81358DC(u8 a0, u8 a1) { u8 i; u32 bg0Priority; @@ -1806,7 +1806,7 @@ void sub_81358DC(u8 a0, u8 a1) SetGpuReg(REG_OFFSET_BG2CNT, (GetGpuReg(REG_OFFSET_BG2CNT) & 0xfffc) | bg2Priority); } -void sub_8135AA4(void) +static void sub_8135AA4(void) { u8 newPage; @@ -1840,7 +1840,7 @@ void sub_8135AA4(void) } } -void sub_8135B90(void) +static void sub_8135B90(void) { u8 newPage; @@ -1869,7 +1869,7 @@ void sub_8135B90(void) } } -void sub_8135C34(void) +static void sub_8135C34(void) { switch (sMonSummaryScreen->unk3274) { @@ -1982,7 +1982,7 @@ void sub_8135C34(void) sMonSummaryScreen->unk3274++; } -u8 sub_8135F20(void) +static u8 sub_8135F20(void) { switch (sMonSummaryScreen->unk3278) { @@ -2028,7 +2028,7 @@ u8 sub_8135F20(void) return FALSE; } -u8 sub_8136040(void) +static u8 sub_8136040(void) { switch (sMonSummaryScreen->unk3280) { @@ -2058,7 +2058,7 @@ u8 sub_8136040(void) return FALSE; } -void sub_81360D4(void) +static void sub_81360D4(void) { u8 tempStr[20]; u16 dexNum; @@ -2129,7 +2129,7 @@ void sub_81360D4(void) #define MACRO_8136350_0(x) (63 - StringLength((x)) * 6) #define MACRO_8136350_1(x) (27 - StringLength((x)) * 6) -void sub_8136350(void) +static void sub_8136350(void) { u8 tempStr[20]; u8 level; @@ -2220,7 +2220,7 @@ void sub_8136350(void) sMonSummaryScreen->unk326C = AILMENT_PKRS; } -void sub_81367B0(void) +static void sub_81367B0(void) { u8 i; @@ -2233,7 +2233,7 @@ void sub_81367B0(void) #define MACRO_81367E8_0(a, b) ((6 * (a)) - StringLength((b)) * 6) -void sub_81367E8(u8 i) +static void sub_81367E8(u8 i) { if (i < 4) sMonSummaryScreen->unk325A[i] = sub_8138BEC(&sMonSummaryScreen->currentMon, i); @@ -2283,7 +2283,7 @@ void sub_81367E8(u8 i) ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk3188[i], gBattleMoves[sMonSummaryScreen->unk325A[i]].accuracy, STR_CONV_MODE_RIGHT_ALIGN, 3); } -u8 sub_8136AEC(void) +static u8 sub_8136AEC(void) { switch (sMonSummaryScreen->unk327C) { @@ -2323,7 +2323,7 @@ u8 sub_8136AEC(void) return FALSE; } -void sub_8136BAC(void) +static void sub_8136BAC(void) { ResetSpriteData(); ResetPaletteFade(); @@ -2331,7 +2331,7 @@ void sub_8136BAC(void) ScanlineEffect_Stop(); } -void sub_8136BC4(void) +static void sub_8136BC4(void) { DmaClearLarge16(3, (void *)VRAM, VRAM_SIZE, 0x1000); DmaClear32(3, (void *)OAM, OAM_SIZE); @@ -2372,7 +2372,7 @@ void sub_8136BC4(void) ShowBg(3); } -void sub_8136D54(void) +static void sub_8136D54(void) { if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE || sMonSummaryScreen->mode == PSS_MODE_FORGET_MOVE) sMonSummaryScreen->unk3018 = CreateTask(sub_81393D4, 0); @@ -2382,14 +2382,14 @@ void sub_8136D54(void) SetMainCallback2(sub_8137EE8); } -void sub_8136DA4(const u8 * str) +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]); } -void sub_8136DF0(const u8 * str) +static void sub_8136DF0(const u8 * str) { u8 v0; s32 width; @@ -2402,7 +2402,7 @@ void sub_8136DF0(const u8 * str) PutWindowTilemap(sMonSummaryScreen->unk3000[1]); } -void sub_8136E50(const u8 * msg) +static void sub_8136E50(const u8 * msg) { FillWindowPixelBuffer(sMonSummaryScreen->unk3000[2], 0); @@ -2422,7 +2422,7 @@ void sub_8136E50(const u8 * msg) PutWindowTilemap(sMonSummaryScreen->unk3000[2]); } -void sub_8136F4C(void) +static void sub_8136F4C(void) { FillWindowPixelBuffer(sMonSummaryScreen->unk3000[3], 0); @@ -2443,7 +2443,7 @@ void sub_8136F4C(void) PutWindowTilemap(sMonSummaryScreen->unk3000[3]); } -void sub_8136FB0(void) +static void sub_8136FB0(void) { AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 47, 19, sUnknown_8463FA4[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk3028); @@ -2477,7 +2477,7 @@ void sub_8136FB0(void) } } -void sub_81370EC(void) +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]); @@ -2491,7 +2491,7 @@ void sub_81370EC(void) #define MACRO_8137270(x) ((x) * 28 + 5) -void sub_8137270(void) +static void sub_8137270(void) { u8 i; @@ -2511,7 +2511,7 @@ void sub_8137270(void) #define MACRO_81372E4(x) ((x) * 28 + 16) -void sub_81372E4(u8 i) +static void sub_81372E4(u8 i) { u8 v0 = 0; u8 curPP = sub_8138C24(&sMonSummaryScreen->currentMon, i); @@ -2558,7 +2558,7 @@ void sub_81372E4(u8 i) } } -void sub_81374E8(void) +static void sub_81374E8(void) { FillWindowPixelBuffer(sMonSummaryScreen->unk3000[4], 0); @@ -2580,7 +2580,7 @@ void sub_81374E8(void) PutWindowTilemap(sMonSummaryScreen->unk3000[4]); } -void sub_8137554(void) +static void sub_8137554(void) { if (!sMonSummaryScreen->isEgg) sub_8137944(); @@ -2588,7 +2588,7 @@ void sub_8137554(void) sub_8137970(); } -void sub_8137578(void) +static void sub_8137578(void) { u8 nature; u8 level; @@ -2660,7 +2660,7 @@ void sub_8137578(void) AddTextPrinterParameterized4(sMonSummaryScreen->unk3000[4], 2, 0, 3, 0, 0, sUnknown_8463FA4[0], TEXT_SPEED_FF, natureMetOrHatchedAtLevelStr); } -void sub_8137724(void) +static void sub_8137724(void) { u8 nature; u8 level; @@ -2755,7 +2755,7 @@ void sub_8137724(void) AddTextPrinterParameterized4(sMonSummaryScreen->unk3000[4], 2, 0, 3, 0, 0, sUnknown_8463FA4[0], TEXT_SPEED_FF, natureMetOrHatchedAtLevelStr); } -void sub_8137944(void) +static void sub_8137944(void) { if (sub_813847C(&sMonSummaryScreen->currentMon) == TRUE) sub_8137578(); @@ -2763,7 +2763,7 @@ void sub_8137944(void) sub_8137724(); } -void sub_8137970(void) +static void sub_8137970(void) { u8 metLocation; u8 version; @@ -2816,7 +2816,7 @@ void sub_8137970(void) AddTextPrinterParameterized4(sMonSummaryScreen->unk3000[4], 2, 0, 3, 0, 0, sUnknown_8463FA4[0], TEXT_SPEED_FF, sUnknown_8463ED4[chosenStrIndex]); } -void sub_8137A90(void) +static void sub_8137A90(void) { AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[4], 2, 26, 7, @@ -2829,7 +2829,7 @@ void sub_8137A90(void) gUnknown_8419C59); } -void sub_8137AF8(void) +static void sub_8137AF8(void) { if (sUnknown_203B16D < 5) { @@ -2854,7 +2854,7 @@ void sub_8137AF8(void) } } -void sub_8137BD0(void) +static void sub_8137BD0(void) { switch (sMonSummaryScreen->curPageIndex) { @@ -2874,7 +2874,7 @@ void sub_8137BD0(void) #ifdef NONMATCHING // bad register allocation -void sub_8137C18(void) +static void sub_8137C18(void) { FillWindowPixelBuffer(sMonSummaryScreen->unk3000[5], 0); @@ -2888,7 +2888,7 @@ void sub_8137C18(void) } #else NAKED -void sub_8137C18(void) +static void sub_8137C18(void) { asm_unified("\tpush {r4-r6,lr}\n" "\tmov r6, r8\n" @@ -2945,7 +2945,7 @@ void sub_8137C18(void) } #endif // NONMATCHING -void sub_8137C90(void) +static void sub_8137C90(void) { u8 i; @@ -2963,7 +2963,7 @@ void sub_8137C90(void) BlitMoveInfoIcon(sMonSummaryScreen->unk3000[5], sMonSummaryScreen->unk3250[4] + 1, 3, MACRO_8137270(4)); } -void sub_8137D28(u8 curPageIndex) +static void sub_8137D28(u8 curPageIndex) { switch (curPageIndex) { @@ -3004,14 +3004,14 @@ void sub_8137D28(u8 curPageIndex) } } -void sub_8137E28(void) +static void sub_8137E28(void) { PutWindowTilemap(sMonSummaryScreen->unk3000[0]); PutWindowTilemap(sMonSummaryScreen->unk3000[1]); PutWindowTilemap(sMonSummaryScreen->unk3000[2]); } -void sub_8137E64(u8 taskId) +static void sub_8137E64(u8 taskId) { sub_813AF90(); FreeAllSpritePalettes(); @@ -3030,7 +3030,7 @@ void sub_8137E64(u8 taskId) FREE_AND_SET_NULL_IF_SET(sUnknown_203B144); } -void sub_8137EE8(void) +static void sub_8137EE8(void) { RunTasks(); AnimateSprites(); @@ -3038,7 +3038,7 @@ void sub_8137EE8(void) UpdatePaletteFade(); } -void sub_8137F00(void) +static void sub_8137F00(void) { u8 i; @@ -3061,7 +3061,7 @@ void sub_8137F00(void) } } -void sub_8137F68(void) +static void sub_8137F68(void) { u8 i; @@ -3092,7 +3092,7 @@ void sub_8137F68(void) } } -void sub_8137FF4(void) +static void sub_8137FF4(void) { if (sMonSummaryScreen->unk324C < 240) { @@ -3107,7 +3107,7 @@ void sub_8137FF4(void) } } -void sub_813805C(void) +static void sub_813805C(void) { if (sMonSummaryScreen->unk324C >= 60) { @@ -3125,7 +3125,7 @@ void sub_813805C(void) } } -void sub_81380F0(void) +static void sub_81380F0(void) { if (sMonSummaryScreen->unk3224 == 1) { @@ -3143,7 +3143,7 @@ void sub_81380F0(void) } } -void sub_8138134(void) +static void sub_8138134(void) { if (sMonSummaryScreen->curPageIndex == PSS_PAGE_SKILLS && sMonSummaryScreen->unk3224 == 0) @@ -3154,7 +3154,7 @@ void sub_8138134(void) sub_8137F00(); } -void sub_813817C(void) +static void sub_813817C(void) { LoadOam(); ProcessSpriteCopyRequests(); @@ -3167,18 +3167,18 @@ void sub_813817C(void) sub_8138134(); } -void sub_81381AC(void) +static void sub_81381AC(void) { SetVBlankCallback(NULL); SetHBlankCallback(NULL); } -void sub_81381C0(void) +static void sub_81381C0(void) { SetVBlankCallback(sub_813817C); } -void sub_81381D0(void) +static void sub_81381D0(void) { u8 i; @@ -3205,7 +3205,7 @@ void sub_81381D0(void) } } -void sub_8138280(u8 curPageIndex) +static void sub_8138280(u8 curPageIndex) { u8 i; u32 bgPriority1 = GetGpuReg(REG_OFFSET_BG1CNT) & 3; @@ -3251,7 +3251,7 @@ void sub_8138280(u8 curPageIndex) } } -void sub_8138414(u8 curPageIndex) +static void sub_8138414(u8 curPageIndex) { u8 i; @@ -3260,7 +3260,7 @@ void sub_8138414(u8 curPageIndex) } -void sub_8138440(void) +static void sub_8138440(void) { switch (sMonSummaryScreen->curPageIndex) { @@ -3277,7 +3277,7 @@ void sub_8138440(void) } } -u8 sub_813847C(struct Pokemon * mon) +static u8 sub_813847C(struct Pokemon * mon) { u8 i; u8 multiplayerId; @@ -3310,7 +3310,7 @@ u8 sub_813847C(struct Pokemon * mon) #define SUB_8138538_BASE_TILE_NUM (345) -void sub_8138538(void) +static void sub_8138538(void) { switch (sMonSummaryScreen->curPageIndex) { @@ -3392,7 +3392,7 @@ void sub_8138538(void) } } -void sub_8138A38(void) +static void sub_8138A38(void) { switch (sMonSummaryScreen->curPageIndex) { @@ -3436,7 +3436,7 @@ void sub_8138B38(u8 mode) sMonSummaryScreen->mode = mode; } -bool32 sub_8138B4C(void) +static bool32 sub_8138B4C(void) { if (!IsUpdateLinkStateCBActive() && IsMultiBattle() == TRUE @@ -3447,7 +3447,7 @@ bool32 sub_8138B4C(void) return FALSE; } -void sub_8138B8C(struct Pokemon * mon) +static void sub_8138B8C(struct Pokemon * mon) { if (!sMonSummaryScreen->isBoxMon) { @@ -3461,7 +3461,7 @@ void sub_8138B8C(struct Pokemon * mon) } } -u16 sub_8138BEC(struct Pokemon * mon, u8 moveSlot) +static u16 sub_8138BEC(struct Pokemon * mon, u8 moveSlot) { u16 move; @@ -3483,7 +3483,7 @@ u16 sub_8138BEC(struct Pokemon * mon, u8 moveSlot) return move; } -u16 sub_8138C24(struct Pokemon * mon, u8 moveSlot) +static u16 sub_8138C24(struct Pokemon * mon, u8 moveSlot) { u16 pp; @@ -3504,7 +3504,7 @@ u16 sub_8138C24(struct Pokemon * mon, u8 moveSlot) return pp; } -u8 sub_8138C5C(u32 status) +static u8 sub_8138C5C(u32 status) { if (GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_HP) == 0) return AILMENT_FNT; @@ -3530,7 +3530,7 @@ u8 sub_8138C5C(u32 status) return AILMENT_NONE; } -void sub_8138CD8(u8 id) +static void sub_8138CD8(u8 id) { u8 i; @@ -3714,7 +3714,7 @@ void sub_8138CD8(u8 id) } } -void sub_81390B0(void) +static void sub_81390B0(void) { struct Pokemon * partyMons; struct Pokemon * mon; @@ -3749,7 +3749,7 @@ void sub_81390B0(void) SetMonData(mon, MON_DATA_PP_BONUSES, &allMovesPPBonuses); } -void sub_81391EC(void) +static void sub_81391EC(void) { struct BoxPokemon * boxMons; struct BoxPokemon * boxMon; @@ -3784,7 +3784,7 @@ void sub_81391EC(void) SetBoxMonData(boxMon, MON_DATA_PP_BONUSES, &allMovesPPBonuses); } -void sub_8139328(struct Pokemon * mon) +static void sub_8139328(struct Pokemon * mon) { if (!sMonSummaryScreen->isBoxMon) { @@ -3800,7 +3800,7 @@ void sub_8139328(struct Pokemon * mon) } } -u8 sub_8139388(void) +static u8 sub_8139388(void) { u16 move; @@ -3812,7 +3812,7 @@ u8 sub_8139388(void) return TRUE; } -void sub_81393D4(u8 taskId) +static void sub_81393D4(u8 taskId) { u8 i; @@ -3950,7 +3950,7 @@ void sub_81393D4(u8 taskId) } } -void sub_8139768(struct Sprite * sprite) +static void sub_8139768(struct Sprite * sprite) { if (sMonSummaryScreen->unk3020 >= 2) return; @@ -3990,7 +3990,7 @@ void sub_8139768(struct Sprite * sprite) } } -void sub_8139868(struct Sprite * sprite) +static void sub_8139868(struct Sprite * sprite) { if (sMonSummaryScreen->unk3020 >= 2) return; @@ -4037,11 +4037,11 @@ void sub_8139868(struct Sprite * sprite) } } -void nullsub_96(struct Sprite * sprite) +static void nullsub_96(struct Sprite * sprite) { } -void sub_813995C(void) +static void sub_813995C(void) { u16 spriteId; u16 species; @@ -4082,7 +4082,7 @@ void sub_813995C(void) sub_8139AAC(spriteId); } -void sub_8139AAC(u16 spriteId) +static void sub_8139AAC(u16 spriteId) { u16 curHp; u16 maxHp; @@ -4131,18 +4131,18 @@ void sub_8139AAC(u16 spriteId) gSprites[spriteId].callback = sub_8139768; } -void sub_8139C44(u8 invisible) +static void sub_8139C44(u8 invisible) { gSprites[sMonSummaryScreen->unk3010].invisible = invisible; } -void sub_8139C80(void) +static void sub_8139C80(void) { FreeAndDestroyMonPicSprite(sMonSummaryScreen->unk3010); FREE_AND_SET_NULL(sUnknown_203B170); } -void sub_8139CB0(void) +static void sub_8139CB0(void) { u16 ballItemId; u8 ballId; @@ -4162,17 +4162,17 @@ void sub_8139CB0(void) sub_8139D54(1); } -void sub_8139D54(u8 invisible) +static void sub_8139D54(u8 invisible) { gSprites[sMonSummaryScreen->unk300C].invisible = invisible; } -void sub_8139D90(void) +static void sub_8139D90(void) { DestroySpriteAndFreeResources2(&gSprites[sMonSummaryScreen->unk300C]); } -void sub_8139DBC(void) +static void sub_8139DBC(void) { u16 species; u32 personality; @@ -4205,12 +4205,12 @@ void sub_8139DBC(void) sub_8139EE4(1); } -void sub_8139EE4(u8 invisible) +static void sub_8139EE4(u8 invisible) { gSprites[sMonSummaryScreen->unk3014].invisible = invisible; } -void sub_8139F20(void) +static void sub_8139F20(void) { u16 species; species = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES2); @@ -4218,7 +4218,7 @@ void sub_8139F20(void) DestroyMonIcon(&gSprites[sMonSummaryScreen->unk3014]); } -void sub_8139F64(u16 tileTag, u16 palTag) +static void sub_8139F64(u16 tileTag, u16 palTag) { u8 i; u8 spriteId; @@ -4273,14 +4273,14 @@ void sub_8139F64(u16 tileTag, u16 palTag) FREE_AND_SET_NULL_IF_SET(gfxBufferPtrs[1]); } -void sub_813A0E8(u8 invisible) +static void sub_813A0E8(u8 invisible) { u8 i; for (i = 0; i < 4; i++) sUnknown_203B148[i]->sprite->invisible = invisible; } -void sub_813A124(struct Sprite * sprite) +static void sub_813A124(struct Sprite * sprite) { u8 i; @@ -4323,7 +4323,7 @@ void sub_813A124(struct Sprite * sprite) } } -void sub_813A21C(void) +static void sub_813A21C(void) { u8 i; @@ -4336,7 +4336,7 @@ void sub_813A21C(void) } } -void sub_813A254(u16 tileTag, u16 palTag) +static void sub_813A254(u16 tileTag, u16 palTag) { u16 spriteId; void * gfxBufferPtr; @@ -4379,7 +4379,7 @@ void sub_813A254(u16 tileTag, u16 palTag) FREE_AND_SET_NULL_IF_SET(gfxBufferPtr); } -void sub_813A334(void) +static void sub_813A334(void) { if (sUnknown_203B158->sprite != NULL) DestroySpriteAndFreeResources(sUnknown_203B158->sprite); @@ -4387,7 +4387,7 @@ void sub_813A334(void) FREE_AND_SET_NULL_IF_SET(sUnknown_203B158); } -void sub_813A35C(void) +static void sub_813A35C(void) { sMonSummaryScreen->unk326C = sub_8138C5C(GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_STATUS)); @@ -4401,7 +4401,7 @@ void sub_813A35C(void) sub_813A3B8(0); } -void sub_813A3B8(u8 invisible) +static void sub_813A3B8(u8 invisible) { if (sMonSummaryScreen->unk326C == AILMENT_NONE || sMonSummaryScreen->isEgg) sUnknown_203B158->sprite->invisible = TRUE; @@ -4425,7 +4425,7 @@ void sub_813A3B8(u8 invisible) } } -void sub_813A45C(u16 tileTag, u16 palTag) +static void sub_813A45C(u16 tileTag, u16 palTag) { u8 i; u8 spriteId; @@ -4492,7 +4492,7 @@ void sub_813A45C(u16 tileTag, u16 palTag) FREE_AND_SET_NULL_IF_SET(gfxBufferPtr); } -void sub_813A620(void) +static void sub_813A620(void) { u8 numWholeHpBarTiles = 0; u8 i; @@ -4566,7 +4566,7 @@ void sub_813A620(void) StartSpriteAnim(sUnknown_203B15C->sprites[8], 11); } -void sub_813A800(void) +static void sub_813A800(void) { u8 i; @@ -4577,7 +4577,7 @@ void sub_813A800(void) FREE_AND_SET_NULL_IF_SET(sUnknown_203B15C); } -void sub_813A838(u8 invisible) +static void sub_813A838(u8 invisible) { u8 i; @@ -4585,7 +4585,7 @@ void sub_813A838(u8 invisible) sUnknown_203B15C->sprites[i]->invisible = invisible; } -void sub_813A874(u16 tileTag, u16 palTag) +static void sub_813A874(u16 tileTag, u16 palTag) { u8 i; u8 spriteId; @@ -4634,7 +4634,7 @@ void sub_813A874(u16 tileTag, u16 palTag) FREE_AND_SET_NULL_IF_SET(gfxBufferPtr); } -void sub_813A994(void) +static void sub_813A994(void) { u8 numWholeExpBarTiles = 0; u8 i; @@ -4698,7 +4698,7 @@ void sub_813A994(void) StartSpriteAnim(sUnknown_203B160->sprites[10], 11); } -void sub_813AB38(void) +static void sub_813AB38(void) { u8 i; @@ -4709,7 +4709,7 @@ void sub_813AB38(void) FREE_AND_SET_NULL_IF_SET(sUnknown_203B160); } -void sub_813AB70(u8 invisible) +static void sub_813AB70(u8 invisible) { u8 i; @@ -4717,7 +4717,7 @@ void sub_813AB70(u8 invisible) sUnknown_203B160->sprites[i]->invisible = invisible; } -void sub_813ABAC(u16 tileTag, u16 palTag) +static void sub_813ABAC(u16 tileTag, u16 palTag) { u16 spriteId; void * gfxBufferPtr; @@ -4761,7 +4761,7 @@ void sub_813ABAC(u16 tileTag, u16 palTag) FREE_AND_SET_NULL_IF_SET(gfxBufferPtr); } -void sub_813AC8C(void) +static void sub_813AC8C(void) { if (sUnknown_203B164->sprite != NULL) DestroySpriteAndFreeResources(sUnknown_203B164->sprite); @@ -4769,7 +4769,7 @@ void sub_813AC8C(void) FREE_AND_SET_NULL_IF_SET(sUnknown_203B164); } -void sub_813ACB4(void) +static void sub_813ACB4(void) { if (!CheckPartyPokerus(&sMonSummaryScreen->currentMon, 0) && CheckPartyHasHadPokerus(&sMonSummaryScreen->currentMon, 0)) @@ -4778,7 +4778,7 @@ void sub_813ACB4(void) sub_813ACF8(1); } -void sub_813ACF8(u8 invisible) +static void sub_813ACF8(u8 invisible) { if (!CheckPartyPokerus(&sMonSummaryScreen->currentMon, 0) && CheckPartyHasHadPokerus(&sMonSummaryScreen->currentMon, 0)) @@ -4802,7 +4802,7 @@ void sub_813ACF8(u8 invisible) } } -void sub_813ADA8(u16 tileTag, u16 palTag) +static void sub_813ADA8(u16 tileTag, u16 palTag) { u16 spriteId; void * gfxBufferPtr; @@ -4845,7 +4845,7 @@ void sub_813ADA8(u16 tileTag, u16 palTag) FREE_AND_SET_NULL_IF_SET(gfxBufferPtr); } -void sub_813AE88(void) +static void sub_813AE88(void) { if (sUnknown_203B168->sprite != NULL) DestroySpriteAndFreeResources(sUnknown_203B168->sprite); @@ -4853,7 +4853,7 @@ void sub_813AE88(void) FREE_AND_SET_NULL_IF_SET(sUnknown_203B168); } -void sub_813AEB0(u8 invisible) +static void sub_813AEB0(u8 invisible) { if (IsMonShiny(&sMonSummaryScreen->currentMon) == TRUE && !sMonSummaryScreen->isEgg) @@ -4873,7 +4873,7 @@ void sub_813AEB0(u8 invisible) } } -void sub_813AF50(void) +static void sub_813AF50(void) { if (IsMonShiny(&sMonSummaryScreen->currentMon) == TRUE && !sMonSummaryScreen->isEgg) sub_813AEB0(0); @@ -4881,7 +4881,7 @@ void sub_813AF50(void) sub_813AEB0(1); } -void sub_813AF90(void) +static void sub_813AF90(void) { sub_813A21C(); sub_813A800(); @@ -4896,7 +4896,7 @@ void sub_813AF90(void) ResetSpriteData(); } -void sub_813AFC4(void) +static void sub_813AFC4(void) { sub_8139CB0(); sub_8139D54(0); @@ -4911,7 +4911,7 @@ void sub_813AFC4(void) sub_813AF50(); } -void sub_813AFFC(void) +static void sub_813AFFC(void) { u32 markings = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MARKINGS); @@ -4928,12 +4928,12 @@ void sub_813AFFC(void) sub_813B084(1); } -void sub_813B068(void) +static void sub_813B068(void) { DestroySpriteAndFreeResources(sMonSummaryScreen->markingSprite); } -void sub_813B084(u8 invisible) +static void sub_813B084(u8 invisible) { u32 markings = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MARKINGS); @@ -4943,7 +4943,7 @@ void sub_813B084(u8 invisible) sMonSummaryScreen->markingSprite->invisible = invisible; } -void sub_813B0E4(void) +static void sub_813B0E4(void) { u32 markings = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MARKINGS); @@ -4951,7 +4951,7 @@ void sub_813B0E4(void) sub_813B084(0); } -void sub_813B120(u8 taskId, s8 a1) +static void sub_813B120(u8 taskId, s8 a1) { s8 v0 = -1; @@ -4992,7 +4992,7 @@ void sub_813B120(u8 taskId, s8 a1) sMonSummaryScreen->unk328C = 0; } -s8 sub_813B20C(s8 a0) +static s8 sub_813B20C(s8 a0) { struct Pokemon * partyMons = sMonSummaryScreen->monList.mons; s8 v1 = 0; @@ -5020,7 +5020,7 @@ s8 sub_813B20C(s8 a0) return -1; } -u8 sub_813B2C8(struct Pokemon * partyMons) +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; @@ -5028,7 +5028,7 @@ u8 sub_813B2C8(struct Pokemon * partyMons) return FALSE; } -s8 sub_813B304(u8 a0) +static s8 sub_813B304(u8 a0) { while (TRUE) { @@ -5043,7 +5043,7 @@ s8 sub_813B304(u8 a0) return (s8)sUnknown_8463FB8[a0]; } -s8 sub_813B348(u8 a0) +static s8 sub_813B348(u8 a0) { while (1) { @@ -5059,7 +5059,7 @@ s8 sub_813B348(u8 a0) return (s8)(sUnknown_8463FB8[a0]); } -s8 sub_813B38C(s8 a0) +static s8 sub_813B38C(s8 a0) { u8 v0 = 0; u8 i; @@ -5081,7 +5081,7 @@ s8 sub_813B38C(s8 a0) return sub_813B348(v0); } -void sub_813B3F0(u8 id) +static void sub_813B3F0(u8 id) { switch (sMonSummaryScreen->unk328C) { @@ -5196,7 +5196,7 @@ void sub_813B3F0(u8 id) } } -void sub_813B750(u8 curPageIndex) +static void sub_813B750(u8 curPageIndex) { ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN1_ON); @@ -5212,7 +5212,7 @@ void sub_813B750(u8 curPageIndex) } } -void sub_813B784(void) +static void sub_813B784(void) { if (!GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_IS_EGG)) { @@ -5223,7 +5223,7 @@ void sub_813B784(void) } } -bool32 sub_813B7E0(u8 nature) +static bool32 sub_813B7E0(u8 nature) { if (nature == NATURE_BOLD || nature == NATURE_GENTLE) return TRUE; @@ -5231,7 +5231,7 @@ bool32 sub_813B7E0(u8 nature) return FALSE; } -bool32 sub_813B7F8(void) +static bool32 sub_813B7F8(void) { u8 version = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MET_GAME); @@ -5245,14 +5245,14 @@ bool32 sub_813B7F8(void) return FALSE; } -bool32 sub_813B838(u8 place) +static bool32 sub_813B838(u8 place) { if (place >= MAPSECS_KANTO && place < MAPSEC_NONE) return TRUE; return FALSE; } -void sub_813B854(void) +static void sub_813B854(void) { ShowPokemonSummaryScreen(0, 0, 0, CB2_ReturnToField, PSS_MODE_NORMAL); } From 5df6d9f94092d0bccd257fd50a263d5e07319dc9 Mon Sep 17 00:00:00 2001 From: luckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com> Date: Sat, 4 Jul 2020 20:56:40 -0400 Subject: [PATCH 22/25] Get rid of readelf.py Maybe I'll touch it up and submit it in another PR. --- tools/analyze_source/readelf.py | 92 --------------------------------- 1 file changed, 92 deletions(-) delete mode 100644 tools/analyze_source/readelf.py diff --git a/tools/analyze_source/readelf.py b/tools/analyze_source/readelf.py deleted file mode 100644 index e5ad0a5cd..000000000 --- a/tools/analyze_source/readelf.py +++ /dev/null @@ -1,92 +0,0 @@ -import re -import subprocess -from collections import namedtuple -import sys -import os -import argparse - -class SymInfo: - __slots__ = ("value", "scope", "debug", "type", "section", "name", "size") - def __init__(self, *sym_list, **kwargs): - self.value = sym_list[0] - self.scope = sym_list[1] - self.debug = sym_list[2] - self.type = sym_list[3] - self.section = sym_list[4] - self.size = sym_list[5] - self.name = sym_list[6] - -sym_line_regex = re.compile(r"^([0-9a-f]{8}) (.).{4}(.)(.) ([^\t]+)\t([0-9a-f]{8}) (\S+)$") - -def make_and_read_syms(): - nproc_value = subprocess.check_output(["nproc"]).decode("utf-8").strip() - subprocess.check_call(["make", "-j" + nproc_value]) - return read_syms() - -def read_syms(): - syms = [] - syms_small = set() - - print("Reading syms...") - - objdump_path = "./tools/binutils/bin/arm-none-eabi-objdump" - if 'win' in os.name: - output = subprocess.check_output([objdump_path + ".exe", "-t", "pokefirered.elf"]) - else: - output = subprocess.check_output([objdump_path, "-t", "pokefirered.elf"]) - - lines = output.splitlines()[4:] - - for line in lines: - try: - sym_tuple = sym_line_regex.findall(line.decode("utf-8"))[0] - except IndexError: - break - - sym_list = list(sym_tuple) - sym_list[0] = int(sym_list[0], 16) - sym_list[5] = int(sym_list[5], 16) - - temp_small_sym = (sym_list[0], sym_list[5], sym_list[6]) - if temp_small_sym not in syms_small: - syms_small.add(temp_small_sym) - syms.append(SymInfo(*sym_list)) - - print("Done reading syms!") - return syms - -if __name__ == "__main__": - SIMPLE = True - ap = argparse.ArgumentParser() - ap.add_argument("-m", "--make", dest="make", action="store_true") - ap.add_argument("-p", "--path", dest="input_path") - args = ap.parse_args() - - if args.input_path is None and os.path.basename(os.getcwd()) == "analyze_source": - os.chdir("../..") - elif args.input_path is not None: - os.chdir(args.input_path) - - if args.make: - syms = make_and_read_syms() - else: - syms = read_syms() - - print("Size: %s" % sys.getsizeof(syms)) - sym_dump_output = "" - cfg_output = "" - highest_sym_value = 0 - sorted_syms = sorted(syms, key=lambda kv: kv.value) - for sym_info in sorted_syms: - if SIMPLE: - sym_dump_output += f"0x{sym_info.value:08x} {sym_info.scope} {sym_info.name} (size: 0x{sym_info.size:x})\n" - else: - sym_dump_output += "{}: value={:08x}, size=0x{:x}, scope=\"{}\", debug=\"{}\", type=\"{}\", section=\"{}\"\n".format(sym_info.name, sym_info.value, sym_info.size, sym_info.scope, sym_info.debug, sym_info.type, sym_info.section) - if sym_info.type == "F" and sym_info.value >= 0x8000000: - cfg_output += "{} 0x{:x} {}\n".format("thumb_func", sym_info.value, sym_info.name) - - with open("pokefirered_syms.dump", "w+") as f: - f.write(sym_dump_output) - - #with open("bn6f.cfg", "w+") as f: - # f.write(cfg_output) From 8a323538cf5f147205be8b4033274f7f5560fbb0 Mon Sep 17 00:00:00 2001 From: luckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com> Date: Sat, 4 Jul 2020 21:23:57 -0400 Subject: [PATCH 23/25] Forgot to add some excludes to grep shell scripts. --- cgrep.sh | 2 +- hgrep.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cgrep.sh b/cgrep.sh index f3312ab0b..aeb829028 100644 --- a/cgrep.sh +++ b/cgrep.sh @@ -7,4 +7,4 @@ else grep_flags="$2" fi -grep "$1" "$grep_flags" --include="*.c" --include="*.h" --include="*.s" --include="*.inc" --include="*.txt" --exclude-dir=".git" --exclude-dir=".travis" --exclude-dir="build" --exclude-dir="common_syms" --exclude-dir="data" --exclude-dir="graphics" --exclude-dir="sound" --exclude-dir="tools" +grep "$1" "$grep_flags" --include="*.c" --include="*.h" --include="*.s" --include="*.inc" --include="*.txt" --exclude-dir=".git" --exclude-dir=".travis" --exclude-dir="build" --exclude-dir="common_syms" --exclude-dir="data" --exclude-dir="graphics" --exclude-dir="sound" --exclude-dir="tools" --exclude-dir="berry_fix/build" --exclude-dir="berry_fix/payload/build" diff --git a/hgrep.sh b/hgrep.sh index 81e14120e..1906f28d0 100644 --- a/hgrep.sh +++ b/hgrep.sh @@ -7,4 +7,4 @@ else grep_flags="$2" fi -grep "$1" "$grep_flags" --include="*.h" --include="*.s" --include="*.inc" --include="*.txt" --exclude-dir=".git" --exclude-dir=".travis" --exclude-dir="build" --exclude-dir="common_syms" --exclude-dir="data" --exclude-dir="graphics" --exclude-dir="sound" --exclude-dir="tools" +grep "$1" "$grep_flags" --include="*.h" --include="*.s" --include="*.inc" --include="*.txt" --exclude-dir=".git" --exclude-dir=".travis" --exclude-dir="build" --exclude-dir="common_syms" --exclude-dir="data" --exclude-dir="graphics" --exclude-dir="sound" --exclude-dir="tools" --exclude-dir="berry_fix/build" --exclude-dir="berry_fix/payload/build" From 71d26549e697ff63f9930ff5386d837cf4e0eb6f Mon Sep 17 00:00:00 2001 From: luckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com> Date: Wed, 8 Jul 2020 15:40:04 -0400 Subject: [PATCH 24/25] Remove cgrep.sh and hgrep.sh Will be added in another PR. --- cgrep.sh | 10 ---------- hgrep.sh | 10 ---------- 2 files changed, 20 deletions(-) delete mode 100644 cgrep.sh delete mode 100644 hgrep.sh diff --git a/cgrep.sh b/cgrep.sh deleted file mode 100644 index aeb829028..000000000 --- a/cgrep.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -# $1: phrase to find - -if [ "$2" == "" ]; then - grep_flags="-wr" -else - grep_flags="$2" -fi - -grep "$1" "$grep_flags" --include="*.c" --include="*.h" --include="*.s" --include="*.inc" --include="*.txt" --exclude-dir=".git" --exclude-dir=".travis" --exclude-dir="build" --exclude-dir="common_syms" --exclude-dir="data" --exclude-dir="graphics" --exclude-dir="sound" --exclude-dir="tools" --exclude-dir="berry_fix/build" --exclude-dir="berry_fix/payload/build" diff --git a/hgrep.sh b/hgrep.sh deleted file mode 100644 index 1906f28d0..000000000 --- a/hgrep.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -# $1: phrase to find - -if [ "$2" == "" ]; then - grep_flags="-wr" -else - grep_flags="$2" -fi - -grep "$1" "$grep_flags" --include="*.h" --include="*.s" --include="*.inc" --include="*.txt" --exclude-dir=".git" --exclude-dir=".travis" --exclude-dir="build" --exclude-dir="common_syms" --exclude-dir="data" --exclude-dir="graphics" --exclude-dir="sound" --exclude-dir="tools" --exclude-dir="berry_fix/build" --exclude-dir="berry_fix/payload/build" From 4672e05560da3f49a9fdb6be1b1a5fa73e8adccd Mon Sep 17 00:00:00 2001 From: luckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com> Date: Wed, 8 Jul 2020 15:41:54 -0400 Subject: [PATCH 25/25] Fix sub_8137C18 nonmatching. --- src/pokemon_summary_screen.c | 62 +----------------------------------- 1 file changed, 1 insertion(+), 61 deletions(-) diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 781ccf390..78366e210 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -2872,78 +2872,18 @@ static void sub_8137BD0(void) PutWindowTilemap(sMonSummaryScreen->unk3000[5]); } -#ifdef NONMATCHING -// bad register allocation 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.unk31CC); + 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); } -#else -NAKED -static void sub_8137C18(void) -{ - asm_unified("\tpush {r4-r6,lr}\n" - "\tmov r6, r8\n" - "\tpush {r6}\n" - "\tsub sp, 0xC\n" - "\tldr r5, _08137C7C @ =sMonSummaryScreen\n" - "\tldr r0, [r5]\n" - "\tldr r4, _08137C80 @ =0x00003005\n" - "\tadds r0, r4\n" - "\tldrb r0, [r0]\n" - "\tmovs r1, 0\n" - "\tbl FillWindowPixelBuffer\n" - "\tldr r1, [r5]\n" - "\tadds r0, r1, r4\n" - "\tldrb r0, [r0]\n" - "\tldr r2, _08137C84 @ =sUnknown_8463FA4\n" - "\tmov r8, r2\n" - "\tstr r2, [sp]\n" - "\tmovs r6, 0x1\n" - "\tnegs r6, r6\n" - "\tstr r6, [sp, 0x4]\n" - "\tldr r2, _08137C88 @ =0x000031bc\n" - "\tadds r1, r2\n" - "\tstr r1, [sp, 0x8]\n" - "\tmovs r1, 0x2\n" - "\tmovs r2, 0x42\n" - "\tmovs r3, 0x1\n" - "\tbl AddTextPrinterParameterized3\n" - "\tldr r1, [r5]\n" - "\tadds r4, r1, r4\n" - "\tldrb r0, [r4]\n" - "\tmov r2, r8\n" - "\tstr r2, [sp]\n" - "\tstr r6, [sp, 0x4]\n" - "\tldr r2, _08137C8C @ =0x000031cc\n" - "\tadds r1, r2\n" - "\tstr r1, [sp, 0x8]\n" - "\tmovs r1, 0x2\n" - "\tmovs r2, 0x2\n" - "\tmovs r3, 0xF\n" - "\tbl AddTextPrinterParameterized3\n" - "\tadd sp, 0xC\n" - "\tpop {r3}\n" - "\tmov r8, r3\n" - "\tpop {r4-r6}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" - "_08137C7C: .4byte sMonSummaryScreen\n" - "_08137C80: .4byte 0x00003005\n" - "_08137C84: .4byte sUnknown_8463FA4\n" - "_08137C88: .4byte 0x000031bc\n" - "_08137C8C: .4byte 0x000031cc"); -} -#endif // NONMATCHING static void sub_8137C90(void) {